diff options
author | Mario <mario@mariovavti.com> | 2019-12-07 13:05:07 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2019-12-07 13:05:07 +0000 |
commit | 161ea6d51fea95be8071bea8e8f0999a25241801 (patch) | |
tree | d61e2f49f136a9da7b5821cde08f0accc103bfa0 /view | |
parent | 88e755037b27647ecb11d5d3bd5d08c401fe3b0d (diff) | |
download | volse-hubzilla-161ea6d51fea95be8071bea8e8f0999a25241801.tar.gz volse-hubzilla-161ea6d51fea95be8071bea8e8f0999a25241801.tar.bz2 volse-hubzilla-161ea6d51fea95be8071bea8e8f0999a25241801.zip |
sse: initial commit to deal with forum notifications
Diffstat (limited to 'view')
-rw-r--r-- | view/js/main.js | 29 | ||||
-rw-r--r-- | view/tpl/notifications_widget.tpl | 2 |
2 files changed, 28 insertions, 3 deletions
diff --git a/view/js/main.js b/view/js/main.js index 1baf1ca1f..f471bc909 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -696,11 +696,11 @@ function updateConvItems(mode,data) { // take care of the notifications count updates $('.thread-wrapper', data).each(function() { - //var nmid = $(this).data('b64mid'); var nmids = $(this).data('b64mids'); nmids.forEach(function(nmid, index) { sse_mids.push(nmid); + if($('.notification[data-b64mid=\'' + nmid + '\']').length) { $('.notification[data-b64mid=\'' + nmid + '\']').each(function() { var n = this.parentElement.id.split('-'); @@ -708,6 +708,27 @@ function updateConvItems(mode,data) { }); sse_mids = []; } + + // special handling for forum notification + $('.notification-forum').filter(function() { + var fmids = $(this).data('b64mids'); + var n = this.parentElement.id.split('-'); + if(fmids.indexOf(nmid) > -1) { + var fcount = Number($('.' + n[1] + '-update').html()); + fcount--; + $('.' + n[1] + '-update').html(fcount); + if(fcount < 1) + $('.' + n[1] + '-button').fadeOut(); + + var count = Number($(this).find('.badge-secondary').html()); + count--; + $(this).find('.badge-secondary').html(count); + if(count < 1) + $(this).remove(); + } + }); + + }); sse_setNotificationsStatus(); @@ -1757,7 +1778,11 @@ function sse_handleNotificationsItems(notifyType, data, replace, followup) { if(sse_mids.indexOf(this.b64mid) >= 0) { return sse_updateNotifications(notifyType, this.b64mid, false); } - html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.addr,this.message,this.when,this.hclass,this.b64mid,this.notify_id,this.thread_top,this.unseen,this.private_forum); + // TODO: this replace() is ugly - try to fix this in a better way. + // The problem is that allthough we use single quotes in the template + // the browser turns it into double quotes. JQuery picks up the double qoutes + // from the browser and breaks the JSON string due to that. + html = notifications_tpl.replace(/"/g, "'").format(this.notify_link,this.photo,this.name,this.addr,this.message,this.when,this.hclass,this.b64mid,this.notify_id,this.thread_top,this.unseen,this.private_forum, this.mids); notify_menu.append(html); }); diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl index 057d5b491..9191c2470 100644 --- a/view/tpl/notifications_widget.tpl +++ b/view/tpl/notifications_widget.tpl @@ -143,7 +143,7 @@ </a> </div> <div id="nav-notifications-forums-template" rel="template"> - <a class="list-group-item clearfix notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}"> + <a class="list-group-item clearfix notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-b64mids='{12}'> <span class="float-right badge badge-secondary">{10}</span> <img class="menu-img-1" src="{1}"> <span class="">{2}</span> |