|
const reset = document.getElementById("reset"); |
|
const currentClassProbabilitiesList = document.getElementById("class-probabilities"); |
|
const currentPredictedClass = document.getElementById('predicted-class') |
|
const staticDiv = document.getElementById("static"); |
|
const dynamicDiv = document.getElementById("dynamic"); |
|
var chartData; |
|
|
|
|
|
|
|
|
|
function initializeChart(data, backgroundColor, borderColor, labels) { |
|
|
|
data = data.map(function (element) { |
|
return parseFloat(element).toFixed(2); |
|
}); |
|
document.querySelectorAll('.bestSellers').forEach(function (canvas) { |
|
|
|
new Chart(canvas, { |
|
type: 'doughnut', |
|
data: { |
|
datasets: [{ |
|
data: data, |
|
backgroundColor: backgroundColor, |
|
borderColor: borderColor, |
|
}], |
|
labels: labels |
|
}, |
|
options: { |
|
responsive: true, |
|
cutoutPercentage: 80, |
|
legend: { |
|
display: false, |
|
}, |
|
animation: { |
|
animateScale: true, |
|
animateRotate: true |
|
}, |
|
plugins: { |
|
datalabels: { |
|
display: false, |
|
align: 'center', |
|
anchor: 'center' |
|
} |
|
} |
|
} |
|
}); |
|
}); |
|
} |
|
document.addEventListener('DOMContentLoaded', function() { |
|
loadResults(); |
|
}); |
|
function loadResults() { |
|
fetch('/voice') |
|
.then(response => response.text()) |
|
.then(html => { |
|
const responseDOM = new DOMParser().parseFromString(html, "text/html"); |
|
const classProbabilitiesList = responseDOM.getElementById("class-probabilities"); |
|
currentClassProbabilitiesList.innerHTML = classProbabilitiesList.innerHTML; |
|
const PredictedClass = responseDOM.getElementById("predicted-class") |
|
currentPredictedClass.innerHTML = PredictedClass.innerHTML; |
|
|
|
var canvasElement = responseDOM.querySelector('.bestSellers'); |
|
console.log(canvasElement); |
|
chartData = canvasElement.getAttribute('data-chart'); |
|
console.log(chartData); |
|
var data = JSON.parse(chartData).datasets[0].data.slice(0, 5); |
|
var backgroundColor = JSON.parse(chartData).datasets[0].backgroundColor.slice(0, 5); |
|
var borderColor = JSON.parse(chartData).datasets[0].borderColor.slice(0, 5); |
|
var labels = JSON.parse(chartData).labels.slice(0, 5); |
|
|
|
|
|
loadDashboardScript(data, backgroundColor, borderColor, labels); |
|
}) |
|
.catch(error => console.error('Error:', error)); |
|
} |
|
|
|
|
|
|
|
function loadDashboardScript(data, backgroundColor, borderColor, labels) { |
|
var scriptElement = document.createElement('script'); |
|
scriptElement.type = 'text/javascript'; |
|
scriptElement.src = '../static/js/dashboard_pdf.js'; |
|
|
|
scriptElement.onload = function () { |
|
initializeChart(data, backgroundColor, borderColor, labels); |
|
}; |
|
document.body.appendChild(scriptElement); |
|
} |
|
|
|
function destroyPreviousCharts() { |
|
|
|
document.querySelectorAll('.bestSellers').forEach(function (canvas) { |
|
|
|
var chartInstance = Chart.getChart(canvas); |
|
|
|
if (chartInstance) { |
|
chartInstance.destroy(); |
|
} |
|
}); |
|
} |
|
|
|
function createResponseElement(response) { |
|
var pdfResponseElement = document.createElement('ul'); |
|
pdfResponseElement.classList.add('graph-legend-rectangle'); |
|
pdfResponseElement.innerHTML = response; |
|
return pdfResponseElement; |
|
} |
|
|
|
|
|
function reloadDashboardScript(data, backgroundColor, borderColor, labels) { |
|
var scriptElement = document.createElement('script'); |
|
scriptElement.type = 'text/javascript'; |
|
scriptElement.src = `../static/js/dashboard_pdf.js?data=${encodeURIComponent(JSON.stringify(data))}&backgroundColor=${encodeURIComponent(JSON.stringify(backgroundColor))}&borderColor=${encodeURIComponent(JSON.stringify(borderColor))}&labels=${encodeURIComponent(JSON.stringify(labels))}`; |
|
document.body.appendChild(scriptElement); |
|
} |
|
|