This commit is contained in:
Julian Lam
2017-08-24 12:37:22 -04:00
parent 3705251359
commit 53ca6d1199
5 changed files with 138 additions and 13 deletions

View File

@@ -211,3 +211,9 @@ Analytics.getErrorAnalytics = function (callback) {
}, callback);
};
Analytics.getBlacklistAnalytics = function (callback) {
async.parallel({
daily: async.apply(Analytics.getDailyStatsForSet, 'analytics:blacklist', Date.now(), 7),
hourly: async.apply(Analytics.getHourlyStatsForSet, 'analytics:blacklist', Date.now(), 24),
}, callback);
};

View File

@@ -2,19 +2,22 @@
var async = require('async');
var meta = require('../../meta');
var analytics = require('../../analytics');
var blacklistController = module.exports;
blacklistController.get = function (req, res, next) {
async.waterfall([
function (next) {
meta.blacklist.get(next);
},
function (rules) {
res.render('admin/manage/ip-blacklist', {
rules: rules,
title: '[[pages:ip-blacklist]]',
});
},
], next);
// Analytics.getBlacklistAnalytics
async.parallel({
rules: async.apply(meta.blacklist.get),
analytics: async.apply(analytics.getBlacklistAnalytics),
}, function (err, data) {
if (err) {
return next(err);
}
res.render('admin/manage/ip-blacklist', Object.assign(data, {
title: '[[pages:ip-blacklist]]',
}));
});
};

View File

@@ -7,6 +7,25 @@
[[admin/manage/ip-blacklist:description]]
</p>
<div class="row">
<div class="col-sm-6">
<div class="panel panel-default">
<div class="panel-body">
<div><canvas id="blacklist:hourly" height="250"></canvas></div>
</div>
<div class="panel-footer"><small>[[admin/manage/ip-blacklist:analytics.blacklist-hourly]]</small></div>
</div>
</div>
<div class="col-sm-6">
<div class="panel panel-default">
<div class="panel-body">
<div><canvas id="blacklist:daily" height="250"></canvas></div>
</div>
<div class="panel-footer"><small>[[admin/manage/ip-blacklist:analytics.blacklist-daily]]</small></div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<textarea id="blacklist-rules">{rules}</textarea>