Files
NodeBB/src/controllers/admin/flags.js

49 lines
1.1 KiB
JavaScript
Raw Normal View History

2015-09-17 16:25:15 -04:00
"use strict";
2016-02-03 18:21:34 +02:00
var async = require('async');
2016-09-26 17:05:30 +03:00
var validator = require('validator');
2015-09-17 16:25:15 -04:00
var posts = require('../../posts');
2016-07-04 17:49:02 +03:00
var analytics = require('../../analytics');
2015-09-17 16:25:15 -04:00
var flagsController = {};
flagsController.get = function(req, res, next) {
var sortBy = req.query.sortBy || 'count';
var byUsername = req.query.byUsername || '';
var start = 0;
var stop = 19;
2016-02-03 18:21:34 +02:00
async.waterfall([
function (next) {
2016-07-04 17:49:02 +03:00
async.parallel({
posts: function(next) {
if (byUsername) {
posts.getUserFlags(byUsername, sortBy, req.uid, start, stop, next);
} else {
var set = sortBy === 'count' ? 'posts:flags:count' : 'posts:flagged';
posts.getFlags(set, req.uid, start, stop, next);
}
},
analytics: function(next) {
analytics.getDailyStatsForSet('analytics:flags', Date.now(), 30, next);
}
}, next);
2016-02-03 18:21:34 +02:00
}
2016-07-04 17:49:02 +03:00
], function (err, results) {
2016-02-03 18:21:34 +02:00
if (err) {
return next(err);
}
2016-02-04 21:44:16 +02:00
var data = {
2016-07-04 17:49:02 +03:00
posts: results.posts,
analytics: results.analytics,
next: stop + 1,
2016-09-26 17:05:30 +03:00
byUsername: validator.escape(String(byUsername)),
2016-02-04 21:44:16 +02:00
title: '[[pages:flagged-posts]]'
};
res.render('admin/manage/flags', data);
2016-02-03 18:21:34 +02:00
});
2015-09-17 16:25:15 -04:00
};
module.exports = flagsController;