aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--view/js/main.js50
-rw-r--r--view/tpl/notifications_widget.tpl47
2 files changed, 55 insertions, 42 deletions
diff --git a/view/js/main.js b/view/js/main.js
index f427df8ad..f5d7e7fde 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -548,8 +548,10 @@ function markRead(notifType) {
$('#nav-' + notifType + '-menu').html('');
$('#nav-' + notifType + '-sub').removeClass('show');
sessionStorage.removeItem('notification_open');
- sse_setNotificationsStatus();
+ $(document).trigger('hz:sse_setNotificationsStatus');
});
+
+
}
function markItemRead(itemId) {
@@ -717,52 +719,18 @@ function updateConvItems(mode,data) {
}
}
- // take care of the notifications count updates
- var nmids = $(this).data('b64mids');
-
- nmids.forEach(function(nmid, index) {
-
- sse_rmids.push(nmid);
-
- if($('.notification[data-b64mid=\'' + nmid + '\']').length) {
- $('.notification[data-b64mid=\'' + nmid + '\']').each(function() {
- var n = this.parentElement.id.split('-');
- return sse_updateNotifications(n[1], nmid);
- });
- }
-
- // 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();
+ $(document).trigger('hz:sse_setNotificationsStatus', [$(this).data('b64mids')]);
});
$(window).scrollTop(scroll_position);
if(followUpPageLoad)
- sse_bs_counts();
+ $(document).trigger('hz:sse_bs_counts');
+
else
- sse_bs_init();
+ $(document).trigger('hz:sse_bs_init');
+
if(commentBusy) {
commentBusy = false;
@@ -902,7 +870,7 @@ function updateInit() {
liveUpdate();
}
else {
- sse_bs_init();
+ $(document).trigger('hz:sse_bs_init');
}
if($('#live-photos').length || $('#live-cards').length || $('#live-articles').length ) {
diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl
index 5cbfcc214..2a4651c99 100644
--- a/view/tpl/notifications_widget.tpl
+++ b/view/tpl/notifications_widget.tpl
@@ -137,6 +137,18 @@
}
});
+ $(document).on('hz:sse_setNotificationsStatus', function(e, data) {
+ sse_setNotificationsStatus(data);
+ });
+
+ $(document).on('hz:sse_bs_init', function() {
+ sse_bs_init();
+ });
+
+ $(document).on('hz:sse_bs_counts', function() {
+ sse_bs_counts();
+ });
+
});
{{foreach $notifications as $notification}}
@@ -421,7 +433,7 @@
}
- function sse_setNotificationsStatus() {
+ function sse_setNotificationsStatus(data) {
var primary_notifications = ['dm', 'home', 'intros', 'register', 'notify', 'files'];
var secondary_notifications = ['network', 'forums', 'all_events', 'pubs'];
var all_notifications = primary_notifications.concat(secondary_notifications);
@@ -458,6 +470,39 @@
$('#notifications').hide();
}
+ if (typeof data !== typeof undefined) {
+ data.forEach(function(nmid, index) {
+
+ sse_rmids.push(nmid);
+
+ if($('.notification[data-b64mid=\'' + nmid + '\']').length) {
+ $('.notification[data-b64mid=\'' + nmid + '\']').each(function() {
+ var n = this.parentElement.id.split('-');
+ return sse_updateNotifications(n[1], nmid);
+ });
+ }
+
+ // 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();
+ }
+ });
+ });
+ }
+
}
function sse_fallback() {