From 8bd41592efd737812404b0cc2cc690cd4f7ee852 Mon Sep 17 00:00:00 2001
From: rabuzarus <>
Date: Sat, 8 Apr 2017 20:25:10 +0200
Subject: [PATCH] Desktop-Notifs: include the user id into the storage key for
local browser storage
---
js/main.js | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/js/main.js b/js/main.js
index aaeef00cf7..f6e1cc1150 100644
--- a/js/main.js
+++ b/js/main.js
@@ -223,8 +223,11 @@
var nnm = $("#nav-notifications-menu");
nnm.html(notifications_all + notifications_mark);
- var notification_lastitem = parseInt(localStorage.getItem("notification-lastitem"));
+ var lastItemStorageKey = "notification-lastitem:" + localUser;
+ var notification_lastitem = parseInt(localStorage.getItem(lastItemStorageKey));
var notification_id = 0;
+
+ // Insert notifs into the notifications-menu
$(data.notifications).each(function(key, notif){
var text = notif.message.format('' + notif.name + '');
var contact = ('' + notif.name + '');
@@ -232,19 +235,21 @@
var html = notifications_tpl.format(
notif.href, // {0} // link to the source
notif.photo, // {1} // photo of the contact
- text, // {2} // preformatted text (autor + text)
+ text, // {2} // preformatted text (autor + text)
notif.date, // {3} // date of notification (time ago)
- seenclass, // {4} // visited status of the notification
+ seenclass, // {4} // visited status of the notification
new Date(notif.timestamp*1000), // {5} // date of notification
notif.url, // {6} // profile url of the contact
notif.message.format(contact), // {7} // preformatted html (text including author profile url)
- '' // {8} // Deprecated
+ '' // {8} // Deprecated
);
nnm.append(html);
});
+
+ // Desktop Notifications
$(data.notifications.reverse()).each(function(key, e){
notification_id = parseInt(e.timestamp);
- if (notification_lastitem !== null && notification_id > notification_lastitem) {
+ if (notification_lastitem !== null && notification_id > notification_lastitem && !e.seen) {
if (getNotificationPermission() === "granted") {
var notification = new Notification(document.title, {
body: decodeHtml(e.message.replace('→ ', '').format(e.name)),
@@ -259,7 +264,7 @@
});
notification_lastitem = notification_id;
- localStorage.setItem("notification-lastitem", notification_lastitem)
+ localStorage.setItem(lastItemStorageKey, notification_lastitem)
$("img[data-src]", nnm).each(function(i, el){
// Add src attribute for images with a data-src attribute
@@ -285,7 +290,7 @@
$.jGrowl(message, {sticky: false, theme: 'info', life: 5000});
});
- /* update the js scrollbars */
+ // Update the js scrollbars
$('#nav-notifications-menu').perfectScrollbar('update');
});