mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-10 16:05:49 +01:00
closes #4961
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
"use strict";
|
||||
/* global define, socket, app, templates */
|
||||
|
||||
/* global define, socket, app */
|
||||
|
||||
|
||||
define('admin/advanced/events', ['forum/infinitescroll'], function(infinitescroll) {
|
||||
define('admin/advanced/events', function() {
|
||||
var Events = {};
|
||||
|
||||
Events.init = function() {
|
||||
@@ -16,25 +17,6 @@ define('admin/advanced/events', ['forum/infinitescroll'], function(infinitescrol
|
||||
});
|
||||
});
|
||||
|
||||
infinitescroll.init(function(direction) {
|
||||
if (direction < 0 || !$('.events').length) {
|
||||
return;
|
||||
}
|
||||
|
||||
infinitescroll.loadMore('admin.getMoreEvents', $('[data-next]').attr('data-next'), function(data, done) {
|
||||
if (data.events && data.events.length) {
|
||||
templates.parse('admin/advanced/events', 'events', {events: data.events}, function(html) {
|
||||
$('.events-list').append(html);
|
||||
done();
|
||||
});
|
||||
|
||||
$('[data-next]').attr('data-next', data.next);
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return Events;
|
||||
|
||||
@@ -1,18 +1,38 @@
|
||||
'use strict';
|
||||
|
||||
var async = require('async');
|
||||
|
||||
var db = require('../../database');
|
||||
var events = require('../../events');
|
||||
var pagination = require('../../pagination');
|
||||
|
||||
var eventsController = {};
|
||||
|
||||
|
||||
eventsController.get = function(req, res, next) {
|
||||
events.getEvents(0, 19, function(err, events) {
|
||||
|
||||
var page = parseInt(req.query.page, 10) || 1;
|
||||
var itemsPerPage = 20;
|
||||
var start = (page - 1) * 20;
|
||||
var stop = start + itemsPerPage - 1;
|
||||
|
||||
async.parallel({
|
||||
eventCount: function(next) {
|
||||
db.sortedSetCard('events:time', next);
|
||||
},
|
||||
events: function(next) {
|
||||
events.getEvents(start, stop, next);
|
||||
}
|
||||
}, function(err, results) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
var pageCount = Math.max(1, Math.ceil(results.eventCount / itemsPerPage));
|
||||
|
||||
res.render('admin/advanced/events', {
|
||||
events: events,
|
||||
events: results.events,
|
||||
pagination: pagination.create(page, pageCount),
|
||||
next: 20
|
||||
});
|
||||
});
|
||||
|
||||
@@ -47,16 +47,19 @@ var async = require('async'),
|
||||
db.getObjects(keys, next);
|
||||
},
|
||||
function(eventsData, next) {
|
||||
eventsData.forEach(function(event) {
|
||||
var e = utils.merge(event);
|
||||
e.eid = e.uid = e.type = e.ip = undefined;
|
||||
event.jsonString = JSON.stringify(e, null, 4);
|
||||
event.timestampISO = new Date(parseInt(event.timestamp, 10)).toUTCString();
|
||||
});
|
||||
addUserData(eventsData, 'uid', 'user', next);
|
||||
},
|
||||
function(eventsData, next) {
|
||||
addUserData(eventsData, 'targetUid', 'targetUser', next);
|
||||
},
|
||||
function(eventsData, next) {
|
||||
eventsData.forEach(function(event) {
|
||||
var e = utils.merge(event);
|
||||
e.eid = e.uid = e.type = e.ip = e.user = undefined;
|
||||
event.jsonString = JSON.stringify(e, null, 4);
|
||||
event.timestampISO = new Date(parseInt(event.timestamp, 10)).toUTCString();
|
||||
});
|
||||
next(null, eventsData);
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
@@ -251,20 +251,6 @@ SocketAdmin.errors.clear = function(socket, data, callback) {
|
||||
meta.errors.clear(callback);
|
||||
};
|
||||
|
||||
SocketAdmin.getMoreEvents = function(socket, next, callback) {
|
||||
var start = parseInt(next, 10);
|
||||
if (start < 0) {
|
||||
return callback(null, {data: [], next: next});
|
||||
}
|
||||
var stop = start + 10;
|
||||
events.getEvents(start, stop, function(err, events) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
callback(null, {events: events, next: stop + 1});
|
||||
});
|
||||
};
|
||||
|
||||
SocketAdmin.deleteAllEvents = function(socket, data, callback) {
|
||||
events.deleteAll(callback);
|
||||
};
|
||||
|
||||
@@ -34,7 +34,20 @@ module.exports = function(SocketUser) {
|
||||
};
|
||||
|
||||
SocketUser.unbanUsers = function(socket, uids, callback) {
|
||||
toggleBan(socket.uid, uids, user.unban, callback);
|
||||
toggleBan(socket.uid, uids, user.unban, function(err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
async.each(uids, function(uid, next) {
|
||||
events.log({
|
||||
type: 'user-unban',
|
||||
uid: socket.uid,
|
||||
targetUid: uid,
|
||||
ip: socket.ip
|
||||
}, next);
|
||||
}, callback);
|
||||
});
|
||||
};
|
||||
|
||||
function toggleBan(uid, uids, method, callback) {
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<pre>{events.jsonString}</pre>
|
||||
</div>
|
||||
<!-- END events -->
|
||||
<!-- IMPORT partials/paginator.tpl -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user