MediaWiki:Common.js

De WIKI Netnews
Revisão de 17h32min de 18 de fevereiro de 2026 por Netnews (discussão | contribs)
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
  • Opera: Pressione Ctrl-F5.
async function atualizarStatus(host, elementId) {
    try {
        const response = await fetch('/noc/status.php?host=' + host);
        const data = await response.json();
        const el = document.getElementById(elementId);

        if (!el) return;

        let html = '';

        if (data.status === "online") {

            html =
                '<span style="color:#22c55e;font-weight:600;">● OPERACIONAL</span><br>' +
                '<small>Uptime: ' + formatUptime(data.uptime) + '</small><br>' +
                '<small>Atualizado: ' + formatHora(data.lastcheck) + '</small>';

            el.classList.remove("blink");

        } else if (data.status === "offline") {

            html =
                '<span style="color:#ef4444;font-weight:600;">● OFFLINE</span><br>' +
                '<small>Último check: ' + (data.lastcheck || '-') + '</small>';

            el.classList.add("blink");

        } else {

            html =
                '<span style="color:#facc15;font-weight:600;">● INDEFINIDO</span>';

            el.classList.remove("blink");
        }

        el.innerHTML = html;

    } catch (e) {
        document.getElementById(elementId).innerHTML =
            '<span style="color:#facc15;">● ERRO</span>';
    }
}

function formatUptime(seconds) {
    if (!seconds || seconds <= 0) return '-';

    const days = Math.floor(seconds / 86400);
    const hours = Math.floor((seconds % 86400) / 3600);

    return days + 'd ' + hours + 'h';
}

function formatHora(datetime) {
    if (!datetime) return '-';

    const partes = datetime.split(' ');
    if (partes.length > 1) {
        return partes[1];
    }
    return datetime;
}

function atualizarTodos() {
    atualizarStatus("web01", "web01-status");
    atualizarStatus("web02", "web02-status");
    atualizarStatus("web03", "web03-status");
    atualizarStatus("web04", "web04-status");
    atualizarStatus("ns1", "ns1-status");
    atualizarStatus("ns2", "ns2-status");
}

document.addEventListener("DOMContentLoaded", function () {
    atualizarTodos();
    setInterval(atualizarTodos, 30000);
});