You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nodebb/public/src/client/ip-blacklist.js

135 lines
3.0 KiB
JavaScript

'use strict';
define('forum/ip-blacklist', ['Chart', 'benchpress'], function (Chart, Benchpress) {
var Blacklist = {};
Blacklist.init = function () {
9 years ago
var blacklist = $('#blacklist-rules');
blacklist.on('keyup', function () {
$('#blacklist-rules-holder').val(blacklist.val());
});
$('[data-action="apply"]').on('click', function () {
socket.emit('blacklist.save', blacklist.val(), function (err) {
9 years ago
if (err) {
return app.alertError(err.message);
}
app.alert({
type: 'success',
alert_id: 'blacklist-saved',
title: '[[ip-blacklist:alerts.applied-success]]',
});
});
});
$('[data-action="test"]').on('click', function () {
9 years ago
socket.emit('blacklist.validate', {
rules: blacklist.val(),
}, function (err, data) {
if (err) {
return app.alertError(err.message);
}
Benchpress.parse('admin/partials/blacklist-validate', data, function (html) {
bootbox.alert(html);
});
});
});
8 years ago
Blacklist.setupAnalytics();
};
Blacklist.setupAnalytics = function () {
var hourlyCanvas = document.getElementById('blacklist:hourly');
var dailyCanvas = document.getElementById('blacklist:daily');
var hourlyLabels = utils.getHoursArray().map(function (text, idx) {
return idx % 3 ? '' : text;
});
8 years ago
var dailyLabels = utils.getDaysArray().slice(-7).map(function (text, idx) {
8 years ago
return idx % 3 ? '' : text;
});
if (utils.isMobile()) {
Chart.defaults.global.tooltips.enabled = false;
}
var data = {
'blacklist:hourly': {
labels: hourlyLabels,
datasets: [
{
label: '',
backgroundColor: 'rgba(186,139,175,0.2)',
borderColor: 'rgba(186,139,175,1)',
pointBackgroundColor: 'rgba(186,139,175,1)',
pointHoverBackgroundColor: '#fff',
pointBorderColor: '#fff',
pointHoverBorderColor: 'rgba(186,139,175,1)',
data: ajaxify.data.analytics.hourly,
},
],
},
'blacklist:daily': {
labels: dailyLabels,
datasets: [
{
label: '',
backgroundColor: 'rgba(151,187,205,0.2)',
borderColor: 'rgba(151,187,205,1)',
pointBackgroundColor: 'rgba(151,187,205,1)',
pointHoverBackgroundColor: '#fff',
pointBorderColor: '#fff',
pointHoverBorderColor: 'rgba(151,187,205,1)',
data: ajaxify.data.analytics.daily,
},
],
},
};
hourlyCanvas.width = $(hourlyCanvas).parent().width();
dailyCanvas.width = $(dailyCanvas).parent().width();
new Chart(hourlyCanvas.getContext('2d'), {
type: 'line',
data: data['blacklist:hourly'],
options: {
responsive: true,
animation: false,
legend: {
display: false,
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
},
}],
},
},
});
new Chart(dailyCanvas.getContext('2d'), {
type: 'line',
data: data['blacklist:daily'],
options: {
responsive: true,
animation: false,
legend: {
display: false,
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
},
}],
},
},
});
};
return Blacklist;
8 years ago
});