botui/ui/suite/monitoring/resources.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.5 KiB
JavaScript

/* Resources page JavaScript */
function refreshDiskInfo() {
htmx.trigger('#disk-partitions', 'refresh');
}
function sortProcesses(sortBy) {
const sortParam = `?sort=${sortBy}`;
htmx.ajax('GET', `/api/monitoring/resources/processes${sortParam}`, {
target: '#process-list',
swap: 'innerHTML'
});
}
// Color-code usage based on percentage
function updateUsageColors() {
document.querySelectorAll('.card-value').forEach(el => {
const value = parseInt(el.textContent);
if (value >= 90) {
el.classList.add('error');
el.classList.remove('warning');
} else if (value >= 75) {
el.classList.add('warning');
el.classList.remove('error');
} else {
el.classList.remove('warning', 'error');
}
});
document.querySelectorAll('.usage-fill, .progress-fill').forEach(el => {
const width = parseInt(el.style.width);
if (width >= 90) {
el.classList.add('error');
el.classList.remove('warning');
} else if (width >= 75) {
el.classList.add('warning');
el.classList.remove('error');
} else {
el.classList.remove('warning', 'error');
}
});
}
// Run on HTMX swap for resources
document.body.addEventListener('htmx:afterSwap', function(evt) {
if (evt.target.closest('.resources-container')) {
updateUsageColors();
}
});
// Initialize on page load
document.addEventListener('DOMContentLoaded', function() {
updateUsageColors();
});