-
Cost Avoidance This Period
+
+
Cost Avoidance
+
+
diff --git a/public/js/admin/audit-analytics.js b/public/js/admin/audit-analytics.js
index 06f12992..eb18eaf8 100644
--- a/public/js/admin/audit-analytics.js
+++ b/public/js/admin/audit-analytics.js
@@ -182,8 +182,18 @@ async function renderBusinessIntelligence() {
});
}
- // Cost Avoidance - load from API
- const blockedDecisions = auditData.filter(d => !d.allowed);
+ // Cost Avoidance - filter by selected period
+ const period = document.getElementById('cost-period-selector')?.value || '30';
+ let filteredData = auditData;
+
+ if (period !== 'all') {
+ const days = parseInt(period);
+ const cutoffDate = new Date();
+ cutoffDate.setDate(cutoffDate.getDate() - days);
+ filteredData = auditData.filter(d => new Date(d.timestamp) >= cutoffDate);
+ }
+
+ const blockedDecisions = filteredData.filter(d => !d.allowed);
let totalCost = 0;
const costByLevel = { CRITICAL: 0, HIGH: 0, MEDIUM: 0, LOW: 0 };
@@ -1144,6 +1154,16 @@ function init() {
configCostsBtn.addEventListener('click', showCostConfigModal);
}
+ // Setup cost period selector
+ const periodSelector = document.getElementById('cost-period-selector');
+ if (periodSelector) {
+ console.log('[Audit Analytics] Cost period selector found, attaching event listener');
+ periodSelector.addEventListener('change', () => {
+ console.log('[Audit Analytics] Period changed, recalculating cost avoidance...');
+ renderBusinessIntelligence();
+ });
+ }
+
// Load initial data
loadAuditData();
}