Cleanup + code simplification

This commit is contained in:
zandercymatics 2025-02-12 10:31:01 -07:00
parent 0cdcedf955
commit b3a3dcad6d
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 27 additions and 42 deletions

View file

@ -41,7 +41,6 @@ function initAnalyticsExportButtons() {
}); });
}); });
} }
}; };
/** /**
@ -88,8 +87,8 @@ function createDiagonalPattern(backgroundColor, lineColor, rightToLeft=false, li
return context.createPattern(shape, "repeat"); return context.createPattern(shape, "repeat");
} }
function createComparativeColumnChart(canvasId, title, labelOne, labelTwo, chartInstances) { function createComparativeColumnChart(id, title, labelOne, labelTwo) {
var canvas = document.getElementById(canvasId); var canvas = document.getElementById(id);
if (!canvas) { if (!canvas) {
return return
} }
@ -140,22 +139,23 @@ function createComparativeColumnChart(canvasId, title, labelOne, labelTwo, chart
}, },
}, },
}; };
return new Chart(ctx, {
if (chartInstances.has(canvasId)) {
chartInstances.get(canvasId).destroy();
}
const chart = new Chart(ctx, {
type: "bar", type: "bar",
data: data, data: data,
options: options, options: options,
}); });
chartInstances.set(canvasId, chart);
} }
function initComparativeColumnCharts(chartInstances) { /** An IIFE to initialize the analytics page
// Create charts */
export function initAnalyticsDashboard() {
const analyticsPageContainer = document.querySelector('.analytics-dashboard .analytics-dashboard-charts');
if (analyticsPageContainer) {
document.addEventListener("DOMContentLoaded", function () {
initAnalyticsExportButtons();
// Create charts and store each instance of it
const chartInstances = new Map();
const charts = [ const charts = [
{ id: "managed-domains-chart", title: "Managed domains" }, { id: "managed-domains-chart", title: "Managed domains" },
{ id: "unmanaged-domains-chart", title: "Unmanaged domains" }, { id: "unmanaged-domains-chart", title: "Unmanaged domains" },
@ -165,13 +165,9 @@ function initComparativeColumnCharts(chartInstances) {
{ id: "all-requests-chart", title: "All requests" } { id: "all-requests-chart", title: "All requests" }
]; ];
charts.forEach(chart => { charts.forEach(chart => {
createComparativeColumnChart( if (chartInstances.has(chart.id)) chartInstances.get(chart.id).destroy();
chart.id, let chart = createComparativeColumnChart(...chart, "Start Date", "End Date");
chart.title, chartInstances.set(chart.id, chart);
"Start Date",
"End Date",
chartInstances
);
}); });
// Add resize listener to each chart // Add resize listener to each chart
@ -180,17 +176,6 @@ function initComparativeColumnCharts(chartInstances) {
if (chart?.canvas) chart.resize(); if (chart?.canvas) chart.resize();
}); });
}, 200)); }, 200));
};
/** An IIFE to initialize the analytics page
*/
export function initAnalyticsDashboard() {
const chartInstances = new Map();
const analyticsPageContainer = document.querySelector('.analytics-dashboard .analytics-dashboard-charts');
if (analyticsPageContainer) {
document.addEventListener("DOMContentLoaded", function () {
initAnalyticsExportButtons();
initComparativeColumnCharts(chartInstances);
}); });
} }
}; };