Greasy Fork is available in English.

Secretaria Toolkit - PROJUDI TJBA

Conjunto de ferramentas para auxiliar no uso do PROJUDI TJBA

// ==UserScript==
// @name         Secretaria Toolkit - PROJUDI TJBA
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Conjunto de ferramentas para auxiliar no uso do PROJUDI TJBA
// @author       Levi Raniere
// @match        https://projudi.tjba.jus.br/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Script 1: Destacar Processos - Projudi TJBA
    function colorirProcesso() {
        function processarTexto(node) {
            const regex = /\b(\d{7}-\d{2}\.\d{4}\.\d\.\d{2}\.\d{4})\b/g;

            if (node.nodeType === 3) {
                const texto = node.nodeValue;
                if (regex.test(texto)) {
                    const span = document.createElement('span');
                    span.innerHTML = texto.replace(regex, function(match) {
                        const primeiraParte = match.substring(0, 1);
                        const quatroPrimeiros = match.substring(1, 5);
                        const restoNumero = match.substring(5);

                        return `${primeiraParte}<span style="color: #0000FF; font-size: 1.4em;">${quatroPrimeiros}</span>${restoNumero}`;
                    });
                    node.parentNode.replaceChild(span, node);
                }
            } else if (node.nodeType === 1 && !['SCRIPT', 'STYLE', 'TEXTAREA'].includes(node.tagName)) {
                Array.from(node.childNodes).forEach(processarTexto);
            }
        }

        processarTexto(document.body);

        const observer = new MutationObserver((mutations) => {
            mutations.forEach((mutation) => {
                mutation.addedNodes.forEach((node) => {
                    processarTexto(node);
                });
            });
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    }

    if (document.readyState === "loading") {
        document.addEventListener('DOMContentLoaded', colorirProcesso);
    } else {
        colorirProcesso();
    }

    // Script 2: Número de Processo na Guia - Projudi TJBA
    const url = window.location.href;
    if (url.includes('projudi/listagens') || url.includes('projudi/movimentacao')) {
        const processNumberPattern = /\d{7}-\d{2}\.\d{4}\.\d\.\d{2}\.\d{4}/;
        let titleUpdated = false;

        function updateTitleWithProcessNumber() {
            if (titleUpdated) return;

            const bodyText = document.body.innerText;
            const processNumberMatch = bodyText.match(processNumberPattern);

            if (processNumberMatch && processNumberMatch.length > 0) {
                const processNumber = processNumberMatch[0];
                const firstFourDigits = processNumber.slice(1, 5);

                document.title = firstFourDigits;
                console.log(`Título atualizado: ${firstFourDigits}`);

                titleUpdated = true;
                observer.disconnect();
                clearInterval(intervalId);
            } else {
                console.log('Número do processo não encontrado.');
            }
        }

        const observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                updateTitleWithProcessNumber();
            });
        });

        observer.observe(document.body, { childList: true, subtree: true });

        const intervalId = setInterval(updateTitleWithProcessNumber, 100);
    }

    // Script 3: Selecionar Checkboxes Automaticamente - PROJUDI TJBA
    if (url.includes('https://projudi.tjba.jus.br/projudi/buscas/JuntadasParaRealizar?numeroProcesso=')) {
        function selecionarCheckboxes() {
            console.log("Tentando selecionar checkboxes...");
            var checkboxes = document.querySelectorAll('input[type="checkbox"]');
            console.log("Número de checkboxes encontradas:", checkboxes.length);
            if (checkboxes.length > 0) {
                checkboxes.forEach(function(checkbox) {
                    checkbox.checked = true;
                    console.log("Checkbox selecionada:", checkbox);
                });
            } else {
                console.warn("Nenhuma checkbox encontrada. Verifique o seletor CSS.");
            }
        }

        setTimeout(function() {
            selecionarCheckboxes();
        }, 1000);
    }

    // Script 4: Mostrar Advogados automaticamente - PROJUDI TJBA
    var clickedButtons = new Set();

    function clickMostrarOcultar() {
        console.log("Executando clickMostrarOcultar");
        var links = document.querySelectorAll('a[href*="mostraOculta"][href*="\'Adv\'"]');
        console.log("Número de links encontrados:", links.length);

        links.forEach(function(link) {
            var buttonId = link.href;

            if (!clickedButtons.has(buttonId)) {
                console.log("Clicando em:", link);
                link.click();
                clickedButtons.add(buttonId);
            } else {
                console.log("Botão já clicado:", link);
            }
        });
    }

    clickMostrarOcultar();

    var targetNode = document.querySelector('table.tabelaLista');
    if (targetNode) {
        var observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                if (mutation.addedNodes.length > 0) {
                    clickMostrarOcultar();
                }
            });
        });
        var config = { attributes: true, childList: true, subtree: true };
        observer.observe(targetNode, config);
    }

    // Script 5: Mudar Cor do Texto de Substabelecimento - Projudi TJBA
    function mudarCorTextoSubstabelecimento() {
        const elementos = document.evaluate(
            "//font[contains(text(), 'Juntada de Petição de Substabelecimento')]",
            document,
            null,
            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
            null
        );

        for (let i = 0; i < elementos.snapshotLength; i++) {
            const elemento = elementos.snapshotItem(i);
            elemento.style.color = '#ffa500';
        }
    }

    window.addEventListener('load', mudarCorTextoSubstabelecimento);
    mudarCorTextoSubstabelecimento();

    // Script 6: Mudar Cor do Texto de Recurso - Projudi TJBA
    function mudarCorTextoRecurso() {
        const elementos = document.evaluate(
            "//font[contains(text(), 'Recurso')]",
            document,
            null,
            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
            null
        );

        for (let i = 0; i < elementos.snapshotLength; i++) {
            const elemento = elementos.snapshotItem(i);
            elemento.style.color = '#eead2d';
        }
    }

    if (url.includes('https://projudi.tjba.jus.br/projudi/listagens/DadosProcesso?numeroProcesso=')) {
        window.addEventListener('load', mudarCorTextoRecurso);
        mudarCorTextoRecurso();
    }

    // Script 7: Mudar Cor do Texto de Habilitação de Advogado - Projudi TJBA
    function mudarCorTextoHabilitacao() {
        const elementos = document.evaluate(
            "//font[contains(text(), 'Juntada de Petição de Requisição de Habilitação')]",
            document,
            null,
            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
            null
        );

        for (let i = 0; i < elementos.snapshotLength; i++) {
            const elemento = elementos.snapshotItem(i);
            elemento.style.color = '#0000FF';
        }
    }

    window.addEventListener('load', mudarCorTextoHabilitacao);
    mudarCorTextoHabilitacao();

    // Script 8: Mudar Cor do Texto de Contestação de Advogado - Projudi TJBA
    function mudarCorTextoContestacao() {
        const elementos = document.evaluate(
            "//font[contains(text(), 'Juntada de Petição de Contestação')]",
            document,
            null,
            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
            null
        );

        for (let i = 0; i < elementos.snapshotLength; i++) {
            const elemento = elementos.snapshotItem(i);
            elemento.style.color = '#A020F0';
        }
    }

    window.addEventListener('load', mudarCorTextoContestacao);
    mudarCorTextoContestacao();
})();