botui/ui/suite/monitoring/metrics.js
Rodrigo Rodriguez (Pragmatismo) 1f95ac7a15 refactor: Extract inline CSS/JS to separate files for monitoring module
- Create individual CSS files: monitoring.css, alerts.css, health.css, logs.css, metrics.css, resources.css
- Create individual JS files: monitoring.js, alerts.js, health.js, logs.js, metrics.js, resources.js
- Update HTML files to reference external CSS/JS files
- Add CSS/JS files for other modules (analytics, chat, mail, meet, tasks, etc.)
- Remove obsolete implementation plan files
2025-12-07 09:56:27 -03:00

54 lines
1.6 KiB
JavaScript

/* Metrics page JavaScript */
function updateMetricsRange(range) {
localStorage.setItem('metrics-time-range', range);
refreshMetrics();
}
function refreshMetrics() {
// Refresh all metric components
htmx.trigger('.key-metrics', 'refresh');
htmx.trigger('#requests-chart', 'refresh');
htmx.trigger('#latency-chart', 'refresh');
htmx.trigger('#errors-chart', 'refresh');
htmx.trigger('#throughput-chart', 'refresh');
}
function updateChartType(chart, type) {
// This would update the chart visualization type
console.log(`Updating ${chart} chart to ${type} type`);
// Implementation depends on charting library
}
function filterMetrics(query) {
const rows = document.querySelectorAll('.metrics-table tbody tr');
const lowerQuery = query.toLowerCase();
rows.forEach(row => {
const text = row.textContent.toLowerCase();
row.style.display = text.includes(lowerQuery) ? '' : 'none';
});
}
function filterByCategory(category) {
const rows = document.querySelectorAll('.metrics-table tbody tr');
rows.forEach(row => {
if (category === 'all') {
row.style.display = '';
} else {
const rowCategory = row.dataset.category || '';
row.style.display = rowCategory === category ? '' : 'none';
}
});
}
// Initialize on page load
document.addEventListener('DOMContentLoaded', function() {
// Restore time range preference
const savedRange = localStorage.getItem('metrics-time-range');
if (savedRange) {
const select = document.getElementById('metrics-time-range');
if (select) select.value = savedRange;
}
});