rebase from live enviornment
This commit is contained in:
212
wp/plugins/wordfence/lib/dashboard/widget_networkattacks.php
Normal file
212
wp/plugins/wordfence/lib/dashboard/widget_networkattacks.php
Normal file
@@ -0,0 +1,212 @@
|
||||
<?php if (!defined('WORDFENCE_VERSION')) { exit; } ?>
|
||||
<div class="wf-row">
|
||||
<div class="wf-col-xs-12">
|
||||
<div class="wf-dashboard-item active">
|
||||
<div class="wf-dashboard-item-inner">
|
||||
<div class="wf-dashboard-item-content">
|
||||
<div class="wf-dashboard-item-title">
|
||||
<strong><?php esc_html_e('Total Attacks Blocked:', 'wordfence'); ?> </strong><?php esc_html_e('Wordfence Network', 'wordfence'); ?>
|
||||
</div>
|
||||
<div class="wf-dashboard-item-action"><div class="wf-dashboard-item-action-disclosure"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wf-dashboard-item-extra">
|
||||
<ul class="wf-dashboard-item-list">
|
||||
<li>
|
||||
<?php if ($d->networkBlock24h === null): ?>
|
||||
<div class="wf-dashboard-item-list-text"><p><em><?php esc_html_e('Blocked attack counts not available yet.', 'wordfence'); ?></em></p></div>
|
||||
<?php else: ?>
|
||||
<div class="wf-dashboard-graph-wrapper">
|
||||
<div class="wf-dashboard-toggle-btns">
|
||||
<ul class="wf-pagination wf-pagination-sm">
|
||||
<li class="wf-active"><a href="#" class="wf-dashboard-graph-attacks" data-grouping="24h" role="button"><?php esc_html_e('24 Hours', 'wordfence'); ?></a></li>
|
||||
<li><a href="#" class="wf-dashboard-graph-attacks" data-grouping="30d" role="button"><?php esc_html_e('30 Days', 'wordfence'); ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="wf-dashboard-network-blocks"><canvas id="wf-dashboard-network-blocks-24h"></canvas></div>
|
||||
<div class="wf-dashboard-network-blocks wf-hidden"><canvas id="wf-dashboard-network-blocks-7d"></canvas></div>
|
||||
<div class="wf-dashboard-network-blocks wf-hidden"><canvas id="wf-dashboard-network-blocks-30d"></canvas></div>
|
||||
</div>
|
||||
<script type="application/javascript">
|
||||
<?php
|
||||
$totalAttacksString = json_encode(__("Total Attacks", 'wordfence'));
|
||||
$styling = <<<STYLING
|
||||
label: $totalAttacksString,
|
||||
fill: false,
|
||||
lineTension: 0.1,
|
||||
backgroundColor: "rgba(75,192,192,0.4)",
|
||||
borderColor: "#16bc9b",
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
pointBorderColor: "rgba(75,192,192,1)",
|
||||
pointBackgroundColor: "#fff",
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 5,
|
||||
pointHoverBackgroundColor: "rgba(75,192,192,1)",
|
||||
pointHoverBorderColor: "rgba(220,220,220,1)",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 1,
|
||||
pointHitRadius: 10,
|
||||
spanGaps: false,
|
||||
STYLING;
|
||||
|
||||
?>
|
||||
(function($) {
|
||||
$(document).ready(function() {
|
||||
new Chart($('#wf-dashboard-network-blocks-24h'), {
|
||||
type: 'line',
|
||||
data: {
|
||||
<?php
|
||||
$blocks = $d->networkBlock24h;
|
||||
$labels = array();
|
||||
$values = array();
|
||||
|
||||
foreach ($blocks as $b) {
|
||||
$values[] = $b['c'];
|
||||
$labels[] = "'" . wfUtils::formatLocalTime('g a', $b['t']) . "'";
|
||||
}
|
||||
?>
|
||||
labels: [<?php echo implode(',', $labels); ?>],
|
||||
datasets: [
|
||||
{
|
||||
<?php echo $styling; ?>
|
||||
data: [<?php echo implode(',', $values) ?>]
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
ticks: {
|
||||
callback: function(value, index, values) {
|
||||
return value.toLocaleString();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltips: {
|
||||
callbacks: {
|
||||
label: function(tooltipItem, data) {
|
||||
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
|
||||
var label = parseInt(tooltipItem.yLabel).toLocaleString();
|
||||
return datasetLabel + ': ' + label;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
new Chart($('#wf-dashboard-network-blocks-7d'), {
|
||||
type: 'line',
|
||||
data: {
|
||||
<?php
|
||||
$blocks = $d->networkBlock7d;
|
||||
$labels = array();
|
||||
$values = array();
|
||||
|
||||
foreach ($blocks as $b) {
|
||||
$values[] = $b['c'];
|
||||
$labels[] = "'" . wfUtils::formatLocalTime('M j', $b['t']) . "'";
|
||||
}
|
||||
?>
|
||||
labels: [<?php echo implode(',', $labels); ?>],
|
||||
datasets: [
|
||||
{
|
||||
<?php echo $styling; ?>
|
||||
data: [<?php echo implode(',', $values) ?>]
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
ticks: {
|
||||
callback: function(value, index, values) {
|
||||
return value.toLocaleString();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltips: {
|
||||
callbacks: {
|
||||
label: function(tooltipItem, data) {
|
||||
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
|
||||
var label = parseInt(tooltipItem.yLabel).toLocaleString();
|
||||
return datasetLabel + ': ' + label;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
new Chart($('#wf-dashboard-network-blocks-30d'), {
|
||||
type: 'line',
|
||||
data: {
|
||||
<?php
|
||||
$blocks = $d->networkBlock30d;
|
||||
$labels = array();
|
||||
$values = array();
|
||||
|
||||
foreach ($blocks as $b) {
|
||||
$values[] = $b['c'];
|
||||
$labels[] = "'" . wfUtils::formatLocalTime('M j', $b['t']) . "'";
|
||||
}
|
||||
?>
|
||||
labels: [<?php echo implode(',', $labels); ?>],
|
||||
datasets: [
|
||||
{
|
||||
<?php echo $styling; ?>
|
||||
data: [<?php echo implode(',', $values) ?>]
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
ticks: {
|
||||
callback: function(value, index, values) {
|
||||
return value.toLocaleString();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltips: {
|
||||
callbacks: {
|
||||
label: function(tooltipItem, data) {
|
||||
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
|
||||
var label = parseInt(tooltipItem.yLabel).toLocaleString();
|
||||
return datasetLabel + ': ' + label;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('.wf-dashboard-graph-attacks').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
$(this).closest('ul').find('li').removeClass('wf-active');
|
||||
$(this).closest('li').addClass('wf-active');
|
||||
|
||||
$('.wf-dashboard-network-blocks').addClass('wf-hidden');
|
||||
$('#wf-dashboard-network-blocks-' + $(this).data('grouping')).closest('.wf-dashboard-network-blocks').removeClass('wf-hidden');
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="wf-dashboard-last-updated"><?php echo esc_html(sprintf(
|
||||
/* translators: Time since. Example: 1 minute, 2 seconds */
|
||||
__('Last Updated: %s ago', 'wordfence'), wfUtils::makeTimeAgo(time() - $d->lastGenerated))); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user