web_defender/static/ransomware/js/detect-bar-chart.js
2024-12-09 13:43:16 +05:30

84 lines
2.6 KiB
JavaScript

var ctx = document.getElementById('barChart').getContext('2d');
var initialData = {
labels: ['unknown', 'Not revealed', 'REEvil', 'WannaCry', 'Maze', 'Clop', 'Conti', 'Darkside'],
datasets: [{
label: 'Data',
data: [2, 2, 2, 2, 2, 2, 2, 2],
backgroundColor: [
'rgba(255, 165, 0, 0.5)', // orange
'rgba(255, 0, 0, 0.5)', // red
'rgba(255, 192, 203, 0.5)', // pink
'rgba(0, 0, 255, 0.5)', // blue
'rgba(0, 255, 255, 0.5)', // aqua
'rgba(238, 130, 238, 0.5)', // violet
'rgba(192, 192, 192, 0.5)', // silver
'rgba(0, 0, 0, 0.5)' // black
],
borderColor: [
'rgba(255, 165, 0, 1)', // orange
'rgba(255, 0, 0, 1)', // red
'rgba(255, 192, 203, 1)', // pink
'rgba(0, 0, 255, 1)', // blue
'rgba(0, 255, 255, 1)', // aqua
'rgba(238, 130, 238, 1)', // violet
'rgba(192, 192, 192, 1)', // silver
'rgba(0, 0, 0, 1)' // black
],
borderWidth: 1
}]
};
var options = {
scales: {
y: {
beginAtZero: false,
min: 1,
max: 100,
stepSize: 10
}
}
};
var myBarChart = new Chart(ctx, {
type: 'bar',
data: initialData,
options: options
});
function updateChartData(newData) {
myBarChart.data.datasets[0].data = newData;
myBarChart.update();
}
function fetchDataAndUpdateChart() {
var deviceId = localStorage.getItem('deviceId');
var logDataEndpoint;
if (deviceId === 'xAq9W1PO5rmAuuQ') {
logDataEndpoint = '/log-data/';
} else if (deviceId === 'wzI0R1JqWqV0Lyi') {
logDataEndpoint = '/log-data1/';
} else {
// Device ID doesn't match, set all values to 2 and clear old data
updateChartData([2, 2, 2, 2, 2, 2, 2, 2]);
$('#detect-log').empty(); // Clear old data
return;
}
$.get(logDataEndpoint, function (logData) {
if (logData.trim() !== '') {
$('#detect-log').html(logData);
$('#change-button').show();
updateChartData([5, 100, 2, 2, 2, 2, 2, 2]);
} else {
$('#detect-log').html('No threat detected');
$('#change-button').hide();
var output = document.getElementById("output");
output.style.display = "none";
updateChartData([2, 2, 2, 2, 2, 2, 2, 2]);
}
});
}
setInterval(fetchDataAndUpdateChart, 1000);