MediaWiki:Common.js: mudanças entre as edições

De WIKI Netnews
Ir para navegação Ir para pesquisar
Sem resumo de edição
Etiqueta: Reversão manual
Sem resumo de edição
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
async function atualizarStatus(host, elementId) {
$(function () {
    try {
        const response = await fetch('/noc/status.php?host=' + host);
        const data = await response.json();
        const el = document.getElementById(elementId);


        if (!el) return;
function formatUptime(seconds) {
    if (!seconds) return '-';
 
    var days = Math.floor(seconds / 86400);
    var hours = Math.floor((seconds % 86400) / 3600);
    var minutes = Math.floor((seconds % 3600) / 60);
 
    return days + "d " + hours + "h " + minutes + "m";
}


         let html = '';
function atualizarStatus(host, elementId) {
 
    $.getJSON('/noc/status.php?host=' + host)
    .done(function(data){
 
         var el = $('#' + elementId);
        if (!el.length) return;


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


             html =
             el.html(
                 '<span style="color:#22c55e;font-weight:600;">● OPERACIONAL</span><br>' +
                 '<span class="status-dot status-green"></span> Operacional<br>' +
                 '<small>Uptime: ' + formatUptime(data.uptime) + '</small><br>' +
                 '<small>Uptime: ' + formatUptime(data.uptime) + '</small><br>' +
                 '<small>Atualizado: ' + formatHora(data.lastcheck) + '</small>';
                 '<small>Último check: ' + data.lastcheck + '</small>'
            );


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


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


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


             el.classList.add("blink");
             el.addClass("blink");


         } else {
         } else {


             html =
             el.html('<span class="status-dot status-yellow"></span> Indefinido');
                '<span style="color:#facc15;font-weight:600;">● INDEFINIDO</span>';


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


         el.innerHTML = html;
    })
    .fail(function(){
         $('#' + elementId).html("🟡 Erro");
    });


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


function formatUptime(seconds) {
function atualizarTodos() {
     if (!seconds || seconds <= 0) return '-';
    atualizarStatus("web01", "web01-status");
    atualizarStatus("web02", "web02-status");
    atualizarStatus("web03", "web03-status");
    atualizarStatus("web04", "web04-status");
    atualizarStatus("ns1-cloud", "ns1-status");
    atualizarStatus("ns2-cloud", "ns2-status");
}
 
atualizarTodos();
setInterval(atualizarTodos, 30000);
 
});
 
function criarNovoCliente() {
    var nome = prompt("Digite o nome do cliente:");
 
     if (!nome) return;
 
    nome = nome.trim().replace(/\s+/g, "_");


     const days = Math.floor(seconds / 86400);
     var url = mw.util.getUrl("Cliente/" + nome, {
     const hours = Math.floor((seconds % 86400) / 3600);
        action: "edit",
        preload: "Cliente:MODELO"
     });


     return days + 'd ' + hours + 'h';
     window.location.href = url;
}
}


function formatHora(datetime) {
document.addEventListener("DOMContentLoaded", function () {
     if (!datetime) return '-';
 
    var btn = document.getElementById("btnCriarCliente");
 
    if (!btn) return;
 
    btn.addEventListener("click", function () {
 
        var nome = prompt("Digite o nome do cliente:");
 
        if (!nome) return;
 
        nome = nome.trim().replace(/\s+/g, "_");
 
        var base = mw.config.get("wgScriptPath") + "/index.php/";
 
        var url = base + "Cliente/" + nome + "?action=edit&preload=Cliente:MODELO";
 
        window.location.href = url;
 
    });
 
});
 
document.addEventListener("DOMContentLoaded", function () {
 
    function atualizarStatusServidor(nome) {
 
        fetch('/noc/status.php?host=' + nome.toLowerCase())
            .then(response => response.json())
            .then(data => {
 
                var el = document.getElementById('status-' + nome);
 
                if (!el) return;
 
                if (data.status === "online") {
                    el.innerHTML = "🟢 Operacional<br><small>Uptime: "
                        + formatUptime(data.uptime)
                        + "</small><br><small>Último check: "
                        + data.lastcheck + "</small>";
                } else if (data.status === "offline") {
                    el.innerHTML = "🔴 Offline<br><small>Último check: "
                        + data.lastcheck + "</small>";
                } else {
                    el.innerHTML = "🟡 Indefinido";
                }
 
            });
     }
 
    function formatUptime(seconds) {
        if (!seconds) return '-';
 
        const days = Math.floor(seconds / 86400);
        const hours = Math.floor((seconds % 86400) / 3600);
        const minutes = Math.floor((seconds % 3600) / 60);


    const partes = datetime.split(' ');
         return `${days}d ${hours}h ${minutes}m`;
    if (partes.length > 1) {
         return partes[1];
     }
     }
    return datetime;
}


function atualizarTodos() {
    // Detecta automaticamente nome do servidor pela URL
     atualizarStatus("web01", "web01-status");
     var pageName = mw.config.get("wgTitle");
     atualizarStatus("web02", "web02-status");
 
    atualizarStatus("web03", "web03-status");
     if (pageName.startsWith("WEB") || pageName.startsWith("NS")) {
    atualizarStatus("web04", "web04-status");
        atualizarStatusServidor(pageName);
    atualizarStatus("ns1", "ns1-status");
     }
     atualizarStatus("ns2", "ns2-status");
}


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

Edição atual tal como às 19h44min de 20 de fevereiro de 2026

$(function () {

function formatUptime(seconds) {
    if (!seconds) return '-';

    var days = Math.floor(seconds / 86400);
    var hours = Math.floor((seconds % 86400) / 3600);
    var minutes = Math.floor((seconds % 3600) / 60);

    return days + "d " + hours + "h " + minutes + "m";
}

function atualizarStatus(host, elementId) {

    $.getJSON('/noc/status.php?host=' + host)
    .done(function(data){

        var el = $('#' + elementId);
        if (!el.length) return;

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

            el.html(
                '<span class="status-dot status-green"></span> Operacional<br>' +
                '<small>Uptime: ' + formatUptime(data.uptime) + '</small><br>' +
                '<small>Último check: ' + data.lastcheck + '</small>'
            );

            el.removeClass("blink");

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

            el.html(
                '<span class="status-dot status-red"></span> Offline<br>' +
                '<small>Último check: ' + (data.lastcheck || '-') + '</small>'
            );

            el.addClass("blink");

        } else {

            el.html('<span class="status-dot status-yellow"></span> Indefinido');

        }

    })
    .fail(function(){
        $('#' + elementId).html("🟡 Erro");
    });

}

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

atualizarTodos();
setInterval(atualizarTodos, 30000);

});

function criarNovoCliente() {
    var nome = prompt("Digite o nome do cliente:");

    if (!nome) return;

    nome = nome.trim().replace(/\s+/g, "_");

    var url = mw.util.getUrl("Cliente/" + nome, {
        action: "edit",
        preload: "Cliente:MODELO"
    });

    window.location.href = url;
}

document.addEventListener("DOMContentLoaded", function () {

    var btn = document.getElementById("btnCriarCliente");

    if (!btn) return;

    btn.addEventListener("click", function () {

        var nome = prompt("Digite o nome do cliente:");

        if (!nome) return;

        nome = nome.trim().replace(/\s+/g, "_");

        var base = mw.config.get("wgScriptPath") + "/index.php/";

        var url = base + "Cliente/" + nome + "?action=edit&preload=Cliente:MODELO";

        window.location.href = url;

    });

});

document.addEventListener("DOMContentLoaded", function () {

    function atualizarStatusServidor(nome) {

        fetch('/noc/status.php?host=' + nome.toLowerCase())
            .then(response => response.json())
            .then(data => {

                var el = document.getElementById('status-' + nome);

                if (!el) return;

                if (data.status === "online") {
                    el.innerHTML = "🟢 Operacional<br><small>Uptime: " 
                        + formatUptime(data.uptime) 
                        + "</small><br><small>Último check: " 
                        + data.lastcheck + "</small>";
                } else if (data.status === "offline") {
                    el.innerHTML = "🔴 Offline<br><small>Último check: " 
                        + data.lastcheck + "</small>";
                } else {
                    el.innerHTML = "🟡 Indefinido";
                }

            });
    }

    function formatUptime(seconds) {
        if (!seconds) return '-';

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

        return `${days}d ${hours}h ${minutes}m`;
    }

    // Detecta automaticamente nome do servidor pela URL
    var pageName = mw.config.get("wgTitle");

    if (pageName.startsWith("WEB") || pageName.startsWith("NS")) {
        atualizarStatusServidor(pageName);
    }

});