diff options
Diffstat (limited to 'view/js')
-rw-r--r-- | view/js/main.js | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/view/js/main.js b/view/js/main.js index 1baf1ca1f..84fa44d4a 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 notifications + $('.notification-forum').filter(function() { + var fmids = decodeURIComponent($(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(); @@ -1743,7 +1764,7 @@ function sse_handleNotifications(obj, replace, followup) { } function sse_handleNotificationsItems(notifyType, data, replace, followup) { - var notifications_tpl = ((notifyType == 'forums') ? unescape($("#nav-notifications-forums-template[rel=template]").html()) : unescape($("#nav-notifications-template[rel=template]").html())); + var notifications_tpl = ((notifyType == 'forums') ? decodeURIComponent($("#nav-notifications-forums-template[rel=template]").html()) : decodeURIComponent($("#nav-notifications-template[rel=template]").html())); var notify_menu = $("#nav-" + notifyType + "-menu"); var notify_loading = $("#nav-" + notifyType + "-loading"); var notify_count = $("." + notifyType + "-update"); @@ -1757,7 +1778,8 @@ 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); + + 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, encodeURIComponent(this.mids)); notify_menu.append(html); }); |