mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-06 14:05:46 +01:00
Merge remote-tracking branch 'origin/master' into user-icons
Conflicts: public/src/app.js public/src/client/account/edit.js
This commit is contained in:
@@ -5,11 +5,8 @@ var async = require('async'),
|
||||
cron = require('cron').CronJob,
|
||||
nconf = require('nconf'),
|
||||
S = require('string'),
|
||||
_ = require('underscore'),
|
||||
|
||||
db = require('./database'),
|
||||
utils = require('../public/src/utils'),
|
||||
events = require('./events'),
|
||||
User = require('./user'),
|
||||
groups = require('./groups'),
|
||||
meta = require('./meta'),
|
||||
@@ -232,31 +229,43 @@ var async = require('async'),
|
||||
return callback();
|
||||
}
|
||||
|
||||
db.getObjectField(nid, 'datetime', function(err, datetime) {
|
||||
datetime = datetime || Date.now();
|
||||
db.getObject('notification:' + nid, function(err, notification) {
|
||||
if (err || !notification) {
|
||||
return callback(err || new Error('[[error:no-notification]]'));
|
||||
}
|
||||
notification.datetime = notification.datetime || Date.now();
|
||||
|
||||
async.parallel([
|
||||
async.apply(db.sortedSetRemove, 'uid:' + uid + ':notifications:read', nid),
|
||||
async.apply(db.sortedSetAdd, 'uid:' + uid + ':notifications:unread', datetime, nid)
|
||||
async.apply(db.sortedSetAdd, 'uid:' + uid + ':notifications:unread', notification.datetime, nid)
|
||||
], callback);
|
||||
});
|
||||
};
|
||||
|
||||
Notifications.markReadMultiple = function(nids, uid, callback) {
|
||||
callback = callback || function() {};
|
||||
nids = nids.filter(Boolean);
|
||||
if (!Array.isArray(nids) || !nids.length) {
|
||||
return callback();
|
||||
}
|
||||
|
||||
var notificationKeys = nids.filter(Boolean).map(function(nid) {
|
||||
var notificationKeys = nids.map(function(nid) {
|
||||
return 'notifications:' + nid;
|
||||
});
|
||||
|
||||
db.getObjectsFields(notificationKeys, ['datetime'], function(err, notificationData) {
|
||||
db.getObjectsFields(notificationKeys, ['nid', 'datetime'], function(err, notificationData) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
notificationData = notificationData.filter(function(notification) {
|
||||
return notification && notification.nid;
|
||||
});
|
||||
|
||||
nids = notificationData.map(function(notification) {
|
||||
return notification.nid;
|
||||
});
|
||||
|
||||
var datetimes = notificationData.map(function(notification) {
|
||||
return (notification && notification.datetime) || Date.now();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user