v1.18.x
barisusakli 9 years ago
parent f4fafeb500
commit e4fa0289d6

@ -1,8 +1,9 @@
"use strict"; "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 = {}; var Events = {};
Events.init = function() { 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; return Events;

@ -1,18 +1,38 @@
'use strict'; 'use strict';
var async = require('async');
var db = require('../../database');
var events = require('../../events'); var events = require('../../events');
var pagination = require('../../pagination');
var eventsController = {}; var eventsController = {};
eventsController.get = function(req, res, next) { 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) { if (err) {
return next(err); return next(err);
} }
var pageCount = Math.max(1, Math.ceil(results.eventCount / itemsPerPage));
res.render('admin/advanced/events', { res.render('admin/advanced/events', {
events: events, events: results.events,
pagination: pagination.create(page, pageCount),
next: 20 next: 20
}); });
}); });

@ -46,17 +46,20 @@ var async = require('async'),
}); });
db.getObjects(keys, next); db.getObjects(keys, next);
}, },
function(eventsData, next) {
addUserData(eventsData, 'uid', 'user', next);
},
function(eventsData, next) {
addUserData(eventsData, 'targetUid', 'targetUser', next);
},
function(eventsData, next) { function(eventsData, next) {
eventsData.forEach(function(event) { eventsData.forEach(function(event) {
var e = utils.merge(event); var e = utils.merge(event);
e.eid = e.uid = e.type = e.ip = undefined; e.eid = e.uid = e.type = e.ip = e.user = undefined;
event.jsonString = JSON.stringify(e, null, 4); event.jsonString = JSON.stringify(e, null, 4);
event.timestampISO = new Date(parseInt(event.timestamp, 10)).toUTCString(); event.timestampISO = new Date(parseInt(event.timestamp, 10)).toUTCString();
}); });
addUserData(eventsData, 'uid', 'user', next); next(null, eventsData);
},
function(eventsData, next) {
addUserData(eventsData, 'targetUid', 'targetUser', next);
} }
], callback); ], callback);
}; };

@ -251,20 +251,6 @@ SocketAdmin.errors.clear = function(socket, data, callback) {
meta.errors.clear(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) { SocketAdmin.deleteAllEvents = function(socket, data, callback) {
events.deleteAll(callback); events.deleteAll(callback);
}; };

@ -34,7 +34,20 @@ module.exports = function(SocketUser) {
}; };
SocketUser.unbanUsers = function(socket, uids, callback) { 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) { function toggleBan(uid, uids, method, callback) {

@ -23,6 +23,7 @@
<pre>{events.jsonString}</pre> <pre>{events.jsonString}</pre>
</div> </div>
<!-- END events --> <!-- END events -->
<!-- IMPORT partials/paginator.tpl -->
</div> </div>
</div> </div>
</div> </div>

Loading…
Cancel
Save