From 667630ff5d71d1a9c4add600de8a06c9a568940f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 23 May 2018 17:17:57 -0400 Subject: [PATCH] closes #6450 --- public/src/modules/notifications.js | 37 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index 4a5f86c625..0287ecedcd 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -38,15 +38,7 @@ define('notifications', ['sounds', 'translator', 'components', 'navigator', 'ben return; } var nid = notifEl.attr('data-nid'); - socket.emit('notifications.markRead', nid, function (err) { - if (err) { - return app.alertError(err.message); - } - - if (unreadNotifs[nid]) { - delete unreadNotifs[nid]; - } - }); + markNotification(nid, true); }); notifContainer.on('click', '.mark-all-read', Notifications.markAllRead); @@ -55,17 +47,8 @@ define('notifications', ['sounds', 'translator', 'components', 'navigator', 'ben var liEl = $(this).parent(); var unread = liEl.hasClass('unread'); var nid = liEl.attr('data-nid'); - - socket.emit('notifications.mark' + (unread ? 'Read' : 'Unread'), nid, function (err) { - if (err) { - return app.alertError(err.message); - } - + markNotification(nid, unread, function () { liEl.toggleClass('unread'); - - if (unread && unreadNotifs[nid]) { - delete unreadNotifs[nid]; - } }); return false; }); @@ -82,6 +65,7 @@ define('notifications', ['sounds', 'translator', 'components', 'navigator', 'ben payload.message = notifData.bodyShort; payload.type = 'info'; payload.clickfn = function () { + markNotification(notifData.nid, true); if (notifData.path.startsWith('http') || notifData.path.startsWith('https')) { window.location.href = notifData.path; } else { @@ -119,6 +103,21 @@ define('notifications', ['sounds', 'translator', 'components', 'navigator', 'ben }); }; + function markNotification(nid, read, callback) { + socket.emit('notifications.mark' + (read ? 'Read' : 'Unread'), nid, function (err) { + if (err) { + return app.alertError(err.message); + } + + if (read && unreadNotifs[nid]) { + delete unreadNotifs[nid]; + } + if (callback) { + callback(); + } + }); + } + function scrollToPostIndexIfOnPage(notifEl) { // Scroll to index if already in topic (gh#5873) var pid = notifEl.attr('data-pid');