44 lines
1.8 KiB
JavaScript
44 lines
1.8 KiB
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
|
console.log("Cargando: charts.js");
|
|
|
|
const languageLabels = JSON.parse(document.getElementById("language-data").textContent);
|
|
const textCounts = JSON.parse(document.getElementById("text-counts").textContent);
|
|
const fileCounts = JSON.parse(document.getElementById("file-counts").textContent);
|
|
const mediaCounts = JSON.parse(document.getElementById("media-counts").textContent);
|
|
|
|
const ctx = document.getElementById('languageTypeChart').getContext('2d');
|
|
|
|
// Crear gráfico y asignarlo a window para acceso global
|
|
window.languageTypeChart = new Chart(ctx, {
|
|
type: 'bar',
|
|
data: {
|
|
labels: languageLabels,
|
|
datasets: [
|
|
{ label: 'Text Pastes', data: textCounts, backgroundColor: '#4E79A7' },
|
|
{ label: 'File Pastes', data: fileCounts, backgroundColor: '#F28E2C' },
|
|
{ label: 'Media Pastes', data: mediaCounts, backgroundColor: '#E15759' }
|
|
]
|
|
},
|
|
options: {
|
|
responsive: true,
|
|
plugins: {
|
|
legend: { position: 'top', labels: { font: { size: 10 } } }
|
|
},
|
|
scales: {
|
|
x: { stacked: true, ticks: { font: { size: 10 } } },
|
|
y: { stacked: true, beginAtZero: true, ticks: { font: { size: 10 } } }
|
|
}
|
|
}
|
|
});
|
|
|
|
// Definir función para actualizar dinámicamente el gráfico
|
|
window.updateCharts = function(stats) {
|
|
const chart = window.languageTypeChart;
|
|
chart.data.labels = stats.languageLabels;
|
|
chart.data.datasets[0].data = stats.textCounts;
|
|
chart.data.datasets[1].data = stats.fileCounts;
|
|
chart.data.datasets[2].data = stats.mediaCounts;
|
|
chart.update();
|
|
};
|
|
});
|