|
|
| Linha 1: |
Linha 1: |
| /* Lógica do Sistema Orbital de Anexos com Tradução de Nomes, Auto-Ocultação e Tooltips Puros */ | | /* Página Normas - Texto Principal Lógica para Ativação de Notas Explicativas no texto de Norma/Anexo */ |
| $(document).ready(function() { | | $(document).ready(function() { |
| var $containerOrbital = $('#sistema-orbital');
| | // Varre todas as notas sobrescritas que possuem conteúdo vindo do banco |
| if ($containerOrbital.length === 0) return;
| | $('.item-nr .nota-sup').each(function() { |
| | | var textoNota = $(this).text().trim(); |
| var $listaPlanetas = $containerOrbital.find('.planeta-satelite');
| |
| var totalPlanetas = $listaPlanetas.length;
| |
| | |
| // SE NÃO HOUVER ANEXOS, FAZ A CAIXA INTEIRA SUMIR DO LAYOUT
| |
| if (totalPlanetas === 0) {
| |
| $containerOrbital.closest('.caixa-orbital-container').hide();
| |
| return;
| |
| }
| |
| | |
| // 1. EXTRAI E LIMPA O TOOLTIP DO SOL (NORMA CENTRO) - CORRIGIDO | |
| var $sol = $containerOrbital.find('.bolha-centro'); | |
| var apelidoSol = $containerOrbital.find('.shadow-apelido-sol').text().trim();
| |
|
| |
| if (apelidoSol) {
| |
| $sol.attr('title', apelidoSol);
| |
| }
| |
| | |
| // Mapeamento de exceções para nomes visuais nas bolhas
| |
| var mapeamentoNomes = {
| |
| "30": "13-A",
| |
| "50": "Glossário",
| |
| "60": "(*)"
| |
| };
| |
| | |
| var raio = 96;
| |
| var centroX = 120;
| |
| var centroY = 120;
| |
| | |
| // 2. CONFIGURA CADA PLANETA (POSIÇÃO, NOME E TOOLTIP SEGURO)
| |
| $listaPlanetas.each(function(index) {
| |
| var $item = $(this); | |
| var idOrigem = $item.data('anexo').toString().trim();
| |
| | | |
| var apelidoPlaneta = $item.data('apelido').toString().trim();
| | // Se a nota contiver texto (ex: [1]), transforma esse texto no Tooltip oficial |
| | | if (textoNota && textoNota !== "[]") { |
| if (apelidoPlaneta) { | | $(this).attr('title', 'Nota Explicativa ' + textoNota); |
| $item.attr('title', apelidoPlaneta); | |
| } | | } |
|
| |
| // Localiza o span de forma infalível
| |
| var $spanTexto = $item.find('span');
| |
|
| |
| // Define o texto visual interno da bolha
| |
| if (mapeamentoNomes[idOrigem]) {
| |
| if (mapeamentoNomes[idOrigem] === "Glossário" || mapeamentoNomes[idOrigem] === "(*)") {
| |
| $spanTexto.html(mapeamentoNomes[idOrigem]);
| |
| } else {
| |
| $spanTexto.html("Anexo<br>" + mapeamentoNomes[idOrigem]);
| |
| }
| |
| } else {
| |
| $spanTexto.html("Anexo<br>" + idOrigem);
| |
| }
| |
|
| |
| // Distribuição matemática na órbita circular
| |
| var angulo = (index * (2 * Math.PI) / totalPlanetas) - (Math.PI / 2);
| |
| var x = centroX + raio * Math.cos(angulo) - 22;
| |
| var y = centroY + raio * Math.sin(angulo) - 22;
| |
|
| |
| $item.css({
| |
| 'left': x + 'px',
| |
| 'top': y + 'px',
| |
| 'width': '44px',
| |
| 'height': '44px'
| |
| });
| |
| });
| |
| });
| |
| /* Lógica para Ativação de Notas Explicativas na Lauda */
| |
| $(document).ready(function() {
| |
| $('.item-linha[data-nota]:not([data-nota=""])').each(function() {
| |
| var textoNota = $(this).attr('data-nota');
| |
| $(this).find('.item-nota-explicativa').attr('title', textoNota);
| |
| });
| |
| });
| |
|
| |
|
| |
| /* Motor Injetor de Formulário Seguro (Máquina do Tempo dd/mm/aaaa) */
| |
| $(document).ready(function() {
| |
| var $ancora = $('#ancora-maquina-tempo');
| |
| if ($ancora.length === 0) return;
| |
|
| |
| // 1. INJETA O INPUT E O BOTÃO DIRETO PONTUALMENTE NA TELA
| |
| var htmlForm = '<div style="margin-bottom: 8px;">' +
| |
| '<input type="text" id="mt-data-br" placeholder="dd/mm/aaaa" maxlength="10" style="width: 100%; padding: 7px; border: 1px solid #cbd5e0; border-radius: 4px; box-sizing: border-box; text-align: center; font-size: 13px; background: #ffffff !important; color: #2d3748 !important;">' +
| |
| '</div>' +
| |
| '<button type="button" id="btn-viajar-tempo" style="width: 100%; padding: 7px; background: #3182ce; color: white; border: none; border-radius: 4px; font-weight: bold; cursor: pointer; font-size: 12px;">Viajar no Tempo</button>';
| |
|
| |
| $ancora.html(htmlForm);
| |
|
| |
| // 2. MÁSCARA EM PORTUGUÊS (Adiciona as barras sozinhos no input)
| |
| $(document).on('input', '#mt-data-br', function() {
| |
| var v = $(this).val().replace(/\D/g, ''); // Remove letras
| |
| if (v.length > 8) v = v.substring(0, 8);
| |
|
| |
| if (v.length > 4) {
| |
| v = v.replace(/^(\d{2})(\d{2})(\d{4})$/, "$1/$2/$3");
| |
| } else if (v.length > 2) {
| |
| v = v.replace(/^(\d{2})(\d{1,2})$/, "$1/$2");
| |
| }
| |
| $(this).val(v);
| |
| });
| |
|
| |
| // 3. CAPTURA O CLIQUE E TRADUZ PARA O CARGO (dd/mm/aaaa -> AAAA-MM-DD)
| |
| $(document).on('click', '#btn-viajar-tempo', function() {
| |
| var dataBr = $('#mt-data-br').val().trim();
| |
|
| |
| if (dataBr.length < 10) {
| |
| alert('Por favor, digite a data completa no formato dd/mm/aaaa.');
| |
| return;
| |
| }
| |
|
| |
| var partes = dataBr.split('/');
| |
| var dia = partes[0];
| |
| var mes = partes[1];
| |
| var ano = partes[2];
| |
|
| |
| var dataIso = ano + '-' + mes + '-' + dia;
| |
|
| |
| // Atualiza a URL mantendo a lauda limpa e enviando o filtro temporal
| |
| var urlAtual = window.location.protocol + "//" + window.location.host + window.location.pathname;
| |
| window.location.href = urlAtual + '?data_pesquisa=' + dataIso;
| |
| }); | | }); |
| }); | | }); |