2015-09-17 16:25:15 -04:00
|
|
|
"use strict";
|
|
|
|
|
|
2016-02-03 18:21:34 +02:00
|
|
|
var async = require('async');
|
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-02-04 21:44:16 +02:00
|
|
|
byUsername: byUsername,
|
|
|
|
|
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;
|