Ir para o conteúdo

Predefinição:ExibirPaginaNormaDatada: mudanças entre as edições

De Normas Regulamentadoras
Sem resumo de edição
Sem resumo de edição
Linha 1: Linha 1:
/* ==========================================================================
<noinclude>
  CARREGADOR DA PÁGINA DE ESTUDO TRANSVERSAL (AJAX SEGURO - nr.wiki.br)
Predefinição estrutural de Estudo Transversal para Normas Regulamentadoras - Lógica Imutável.
  ========================================================================== */
</noinclude>
mw.loader.using(['mediawiki.util', 'mediawiki.api']).then(function() {
<!-- TÍTULO DINÂMICO (SEMPRE) -->
    $(document).ready(function() {
<includeonly><div style="text-align: center; font-size: 1.6em; font-weight: bold; margin: -10px 0 -5px 0; padding: 0 !important; background: none !important;">{{#cargo_query:tables=Normas|fields=CONCAT('NR-',{{{norma|}}},' ',Normas.nome)=t|where=Normas.norma={{{norma|}}}|format=raw}}</div>
        var rootContainer = $('#estudo-transversal-root');
       
        if (rootContainer.length) {
            var urlParams = new URLSearchParams(window.location.search);
            var norma = urlParams.get('normaq') || '1';
            var data = urlParams.get('date');


            if (!data) {
<div class="norma-page-layout">
                rootContainer.html('<div style="text-align:center; padding:30px; color:red; font-weight:bold;">❌ ERRO: Coordenada temporal ausente.</div>');
                return;
            }


            // Costura a chamada limpa da nova predefinição datada
  <!-- PAINEL ESQUERDA: TEXTO DA NORMA (SEMPRE) -->
            var wikitextToRender = '{{ExibirPaginaNormaDatada|norma=' + norma + '|data=' + data + '}}';
  <div class="norma-main-column">
    <div class="norma-block-box principal-texto-norma">
      <div class="conteudo-itens-norma">
        {{#cargo_query:
        |tables=ItensNR
        |fields=publica, vige, sai, norma, origem, ordena, nivel, texto, grafico, nota, forma, code, infra, classe


            new mw.Api().post({
        |where=norma={{{norma|1}}} AND origem=0 AND publica <= '{{{data}}}' AND (sai > '{{{data}}}' OR sai IS NULL)
                action: 'parse',
        |order by=ordena ASC
                text: wikitextToRender,
        |limit=3000
                contentmodel: 'wikitext',
        |format=template
                format: 'json',
        |template=NormaItemLinha
                disablelimitreport: true
        |named args=yes
            }).done(function(res) {
        }}
                if (res && res.parse && res.parse.text) {
      </div>
                    // Injeta todo o conteúdo estruturado carbono na tela
    </div>
                    rootContainer.html(res.parse.text['*']);
  </div>
                   
 
                    // Dispara nativamente a sua rotina orbital antiga sobre o novo #sistema-orbital injetado
  <!-- PAINEL DIREITA: PAINÉIS LATERAIS -->
                    // Como o ID agora é o mesmo do presente, sua função original rodará sozinha com segurança!
  <div class="norma-sidebar-column">
                    if (typeof processarSistemaOrbital === 'function') {
 
                        processarSistemaOrbital($('#sistema-orbital'));
    <!-- 1) SISTEMA NAVEGAÇÃO NO ESPAÇO: ORBITAL -->
                    }
    <div class="norma-block-box caixa-orbital-container">
                } else {
      <div class="espaco-orbital">
                    rootContainer.html('<div style="text-align:center; padding:30px; color:red;">❌ Erro ao renderizar registros históricos.</div>');
        <div class="container-satelites" id="sistema-orbital">
                }
          {{#cargo_query:
            }).fail(function() {
          |table=PortariasNormas
                rootContainer.html('<div style="text-align:center; padding:30px; color:red;">❌ Erro crítico de conexão de rede temporal.</div>');
          |fields=origem, apelido, vigencia, norma
            });
 
        }
          |where=norma={{{norma|1}}} AND verbo='R' AND publica <= '{{{data}}}' AND (sai > '{{{data}}}' OR sai IS NULL)
     });
          |order by=origem ASC
});
          |limit=17
          |format=template
          |template=ComposicaoOrbitalLinha
          |named args=yes
          }}
        </div>
      </div>
    </div>
 
    <!-- 2) SISTEMA NAVEGAÇÃO NO TEMPO: DELOREAN -->
    <div class="norma-block-box">
      <h4>Máquina do Tempo</h4>
      {{DataçãoLinha|norma={{{norma|1}}}}}
    </div>
 
    <!-- 3) MAPA DE PORTARIAS: VIGÊNCIAS -->
    <div class="norma-block-box">
      <div id="infografico-vigencia" class="info-historico-infografico">
        {{#cargo_query:
        |tables=PortariasNormas, PortariasDados
        |join on=PortariasNormas.vigencia=PortariasDados.vigencia
        |fields=PortariasNormas.verbo=verbo, PortariasNormas.vigencia=vigencia, PortariasNormas.publica=publica, PortariasDados.link=link
 
        |where=norma={{{norma|1}}} AND PortariasNormas.origem=0 AND PortariasNormas.publica <= '{{{data}}}'
        |order by=PortariasNormas.publica DESC
        |limit=100
        |format=template
        |template=HistoricoLinha
        |named args=yes
        }}
      </div>
    </div>
 
    <!-- 4) CERTIDÃO DE NASCIMENTO: QUADRO ENVELHECIDO -->
    <div class="norma-block-box">
      <h4>Documento Histórico</h4>
      <div class="container-preview-historico">
        <div class="preview-velho-wrapper">https://nr.wiki.br{{{norma|1}}}.png</div>
      </div>
     </div>
 
  </div>
 
</div>
</includeonly>

Edição das 15h58min de 5 de agosto de 2026

Predefinição estrutural de Estudo Transversal para Normas Regulamentadoras - Lógica Imutável.