v1.18.x
Baris Usakli 8 years ago
parent d1805300f7
commit 8ea5c060f5

@ -1,7 +1,7 @@
'use strict';
define('forum/notifications', ['components', 'notifications'], function (components, notifs) {
define('forum/notifications', ['components'], function (components) {
var Notifications = {};
Notifications.init = function () {
@ -12,14 +12,6 @@ define('forum/notifications', ['components', 'notifications'], function (compone
if (err) {
return app.alertError(err);
}
socket.emit('notifications.getCount', function (err, count) {
if (err) {
return app.alertError(err.message);
}
notifs.updateNotifCount(count);
});
});
});
@ -32,7 +24,6 @@ define('forum/notifications', ['components', 'notifications'], function (compone
}
components.get('notifications/item').removeClass('unread');
notifs.updateNotifCount(0);
});
});
};

@ -10,29 +10,27 @@ define('notifications', ['sounds', 'translator', 'components'], function (sounds
var notifContainer = components.get('notifications');
var notifTrigger = notifContainer.children('a');
var notifList = components.get('notifications/list');
var notifIcon = components.get('notifications/icon');
notifTrigger
.on('click', function (e) {
e.preventDefault();
if (notifContainer.hasClass('open')) {
return;
}
notifTrigger.on('click', function (e) {
e.preventDefault();
if (notifContainer.hasClass('open')) {
return;
}
Notifications.loadNotifications(notifList);
});
Notifications.loadNotifications(notifList);
});
notifList.on('click', '[data-nid]', function () {
var unread = $(this).hasClass('unread');
var nid = $(this).attr('data-nid');
if (!unread) {
return;
}
var nid = $(this).attr('data-nid');
socket.emit('notifications.markRead', nid, function (err) {
if (err) {
return app.alertError(err.message);
}
incrementNotifCount(-1);
if (unreadNotifs[nid]) {
delete unreadNotifs[nid];
}
@ -52,7 +50,7 @@ define('notifications', ['sounds', 'translator', 'components'], function (sounds
}
liEl.toggleClass('unread');
incrementNotifCount(unread ? -1 : 1);
if (unread && unreadNotifs[nid]) {
delete unreadNotifs[nid];
}
@ -60,11 +58,6 @@ define('notifications', ['sounds', 'translator', 'components'], function (sounds
return false;
});
function incrementNotifCount(delta) {
var count = parseInt(notifIcon.attr('data-content'), 10) + delta;
Notifications.updateNotifCount(count);
}
socket.on('event:new_notification', function (notifData) {
// If a path is defined, show notif data, otherwise show generic data
var payload = {
@ -164,7 +157,6 @@ define('notifications', ['sounds', 'translator', 'components'], function (sounds
if (err) {
app.alertError(err.message);
}
Notifications.updateNotifCount(0);
unreadNotifs = {};
});
};

@ -292,7 +292,9 @@ Notifications.markUnread = function (nid, uid, callback) {
async.apply(db.sortedSetAdd, 'uid:' + uid + ':notifications:unread', notification.datetime, nid),
], next);
},
], callback);
], function (err) {
callback(err);
});
};
Notifications.markReadMultiple = function (nids, uid, callback) {

@ -1,5 +1,7 @@
'use strict';
var async = require('async');
var user = require('../user');
var notifications = require('../notifications');
var SocketNotifs = module.exports;
@ -25,13 +27,37 @@ SocketNotifs.deleteAll = function (socket, data, callback) {
};
SocketNotifs.markRead = function (socket, nid, callback) {
notifications.markRead(nid, socket.uid, callback);
async.waterfall([
function (next) {
notifications.markRead(nid, socket.uid, next);
},
function (next) {
user.notifications.pushCount(socket.uid);
next();
},
], callback);
};
SocketNotifs.markUnread = function (socket, nid, callback) {
notifications.markUnread(nid, socket.uid, callback);
async.waterfall([
function (next) {
notifications.markUnread(nid, socket.uid, next);
},
function (next) {
user.notifications.pushCount(socket.uid);
next();
},
], callback);
};
SocketNotifs.markAllRead = function (socket, data, callback) {
notifications.markAllRead(socket.uid, callback);
async.waterfall([
function (next) {
notifications.markAllRead(socket.uid, next);
},
function (next) {
user.notifications.pushCount(socket.uid);
next();
},
], callback);
};

Loading…
Cancel
Save