MediaWiki:Common.js

De DerechoPedia
Revisión del 20:11 18 abr 2026 de Francisca Contardo Pi (discusión | contribs.) (Inyecta grilla de guías laborales en portada via #dp-guias-portada)
Ir a la navegaciónIr a la búsqueda

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
  • Opera: Presiona Ctrl+F5.
/* === DERECHOPEDIA SKIN REDESIGN JS 2025 v3.2 === */
$(function () {
  var pageName = mw.config.get('wgPageName');
  var isMain = (pageName === 'Página_principal');

  /* ── 1. Top navigation bar ── */
  var topnav = document.createElement('div');
  topnav.id = 'dp-topnav';
  topnav.innerHTML =
    '<div class="dp-mainbar">' +
      '<a class="dp-logo-block" href="/">' +
        '<img class="dp-logo-img" src="https://www.derechopedia.cl/images/thumb/c/c9/Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png/300px-Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png" alt="DerechoPedia">' +
        '<div><span class="dp-logo-sitename">DerechoPedia</span><span class="dp-logo-sub">Enciclopedia jurídica</span></div>' +
      '</a>' +
      '<div class="dp-nav-zone">' +
        '<ul class="dp-nav-links">' +
          '<li' + (isMain ? ' class="dp-active"' : '') + '><a href="/">Portada</a></li>' +
          '<li><a href="/Categoría:Derecho_laboral">Derecho Laboral</a></li>' +
          '<li><a href="/Categoría:Derecho_de_familia">Derecho de Familia</a></li>' +
          '<li><a href="/Código_del_Trabajo">Normas</a></li>' +
          '<li><a href="/Herramientas">Herramientas</a></li>' +
        '</ul>' +
        '<a class="dp-cta-btn" href="https://wa.me/56974717602" target="_blank">' +
          '<span class="dp-cta-dot"></span>Consultar abogado' +
        '</a>' +
        '<button class="dp-hamburger" id="dp-hamburger" aria-label="Abrir menú">&#9776;</button>' +
      '</div>' +
    '</div>' +
    '<div class="dp-mobile-menu" id="dp-mobile-menu">' +
      '<ul class="dp-mobile-nav">' +
        '<li><a href="/">Portada</a></li>' +
        '<li><a href="/Categoría:Derecho_laboral">Derecho Laboral</a></li>' +
        '<li><a href="/Categoría:Derecho_de_familia">Derecho de Familia</a></li>' +
        '<li><a href="/Código_del_Trabajo">Normas</a></li>' +
        '<li><a href="/Herramientas">Herramientas</a></li>' +
      '</ul>' +
      '<div class="dp-mobile-search-wrap">' +
        '<input type="text" class="dp-mobile-search-input" id="dp-mobile-search-input" placeholder="Buscar en DerechoPedia...">' +
        '<button class="dp-mobile-search-btn" id="dp-mobile-search-btn">&#128269;</button>' +
      '</div>' +
      '<div class="dp-mobile-cta-wrap">' +
        '<a class="dp-mobile-cta" href="https://wa.me/56974717602" target="_blank">&#128172; Consultar abogado</a>' +
      '</div>' +
    '</div>';
  document.body.insertBefore(topnav, document.body.firstChild);

  /* Toggle hamburger */
  document.getElementById('dp-hamburger').addEventListener('click', function () {
    var menu = document.getElementById('dp-mobile-menu');
    var isOpen = menu.classList.toggle('dp-menu-open');
    this.innerHTML = isOpen ? '&#10005;' : '&#9776;';
    this.setAttribute('aria-label', isOpen ? 'Cerrar menú' : 'Abrir menú');
  });

  /* Buscar desde menu mobile */
  function dpMobileSearch() {
    var q = document.getElementById('dp-mobile-search-input').value.trim();
    if (q) window.location.href = '/index.php?search=' + encodeURIComponent(q);
  }
  document.getElementById('dp-mobile-search-btn').addEventListener('click', dpMobileSearch);
  document.getElementById('dp-mobile-search-input').addEventListener('keypress', function (e) {
    if (e.key === 'Enter') dpMobileSearch();
  });

  /* ── 2. Kopaitic firma block ── */
  var firma = document.createElement('div');
  firma.id = 'dp-firma';
  firma.innerHTML =
    '<div class="dp-firma-head">' +
      '<img class="dp-firma-logo" src="https://www.derechopedia.cl/images/thumb/c/c9/Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png/300px-Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png" alt="Kopaitic y Asociados">' +
      '<div class="dp-firma-name">Kopaitic &amp; Asociados<small>Abogados laboralistas · Viña del Mar</small></div>' +
    '</div>' +
    '<div class="dp-firma-lawyers">' +
      '<a class="dp-sb-lawyer" href="https://kopaitic.cl/emiliokopaitic-2/" target="_blank">' +
        '<img src="https://www.derechopedia.cl/images/thumb/0/06/Emilio_Kopaitic_Abogado_Laboral.jpg/200px-Emilio_Kopaitic_Abogado_Laboral.jpg" alt="Emilio Kopaitic">' +
        '<div><span class="dp-sb-lawyer-name">Emilio K.</span><span class="dp-sb-lawyer-role">Socio</span></div>' +
      '</a>' +
      '<a class="dp-sb-lawyer" href="https://kopaitic.cl/franciscacontardo-2/" target="_blank">' +
        '<img src="https://www.derechopedia.cl/images/thumb/2/2c/Francisca_Contardo_Derechopedia.jpg.JPG/200px-Francisca_Contardo_Derechopedia.jpg.JPG" alt="Francisca Contardo">' +
        '<div><span class="dp-sb-lawyer-name">Francisca C.</span><span class="dp-sb-lawyer-role">Abogada</span></div>' +
      '</a>' +
    '</div>' +
    '<a class="dp-firma-wa" href="https://wa.me/56974717602" target="_blank">💬 Hablar con un abogado</a>';
  var colOne = document.getElementById('column-one');
  colOne.insertBefore(firma, colOne.firstChild);

  /* ── 3. Urgente card ── */
  var urgente = document.createElement('a');
  urgente.id = 'dp-urgente';
  urgente.href = '/%C2%BFQu%C3%A9_hacer_en_caso_de_despido%3F';
  urgente.innerHTML =
    '<span class="dp-urg-label">¿Tienes dudas?</span>' +
    '<span class="dp-urg-title">¿Te despidieron o quieres renunciar?</span>' +
    '<span class="dp-urg-desc">Lee la guía antes de firmar cualquier documento.</span>' +
    '<span class="dp-urg-link">Leer guía completa →</span>';
  colOne.insertBefore(urgente, firma.nextSibling);

  /* ── 4. Tool card + divisor ── */
  var tbPortlet = document.getElementById('p-tb');
  if (tbPortlet) {
    var hr1 = document.createElement('hr');
    hr1.className = 'dp-sb-hr';
    tbPortlet.parentNode.insertBefore(hr1, tbPortlet);
    var toolCard = document.createElement('a');
    toolCard.className = 'dp-sb-tool';
    toolCard.href = 'https://kopaitic.cl/contador-plazos-laborales/';
    toolCard.target = '_blank';
    toolCard.innerHTML =
      '<span class="dp-sb-tool-icon">📅</span>' +
      '<span class="dp-sb-tool-name">Contador de Plazos Laborales</span>' +
      '<span class="dp-sb-tool-desc">Calcula fechas límite. Herramienta gratuita.</span>';
    tbPortlet.parentNode.insertBefore(toolCard, tbPortlet);
  }

  /* ── 5. Divisores ── */
  var navPortlet = document.getElementById('p-navigation');
  if (navPortlet) {
    var hr2 = document.createElement('hr');
    hr2.className = 'dp-sb-hr';
    navPortlet.parentNode.insertBefore(hr2, navPortlet);
  }
  var normasPortlet = document.getElementById('p-Normas');
  if (normasPortlet) {
    var hr3 = document.createElement('hr');
    hr3.className = 'dp-sb-hr';
    normasPortlet.parentNode.insertBefore(hr3, normasPortlet);
  }

  /* ── 6. Iconos en h3 ── */
  var icons = {
    'p-Principales': '🏠',
    'p-Secciones': '📂',
    'p-Normas': '📋',
    'p-navigation': '🔗',
    'p-tb': '🔧'
  };
  Object.keys(icons).forEach(function (id) {
    var el = document.getElementById(id);
    if (el) {
      var h3 = el.querySelector('h3');
      if (h3) h3.innerHTML = '<span style="opacity:.65;font-size:10px;margin-right:4px;">' + icons[id] + '</span>' + h3.textContent.trim();
    }
  });
});


/* === PORTADA: GRILLA DE GUÍAS LABORALES === */
(function() {
  var target = document.getElementById('dp-guias-portada');
  if (!target) return;

  target.innerHTML = [
    '<div style="margin-bottom:28px;">',
    '<div style="font-family:Georgia,serif;font-size:18px;font-weight:normal;color:#202122;border-bottom:1px solid #a2a9b1;padding-bottom:6px;margin-bottom:14px;">Guías para trabajadores</div>',
    '<div class="dp-capture-grid">',

    dpItem('🚫','¿Qué hacer si me despidieron?','Pasos inmediatos para proteger tus derechos laborales.','/%C2%BFQu%C3%A9_hacer_en_caso_de_despido%3F'),
    dpItem('🔄','Autodespido (despido indirecto)','Cuándo puedes renunciar y cobrar indemnización igual.','/Autodespido'),
    dpItem('🤱','Fuero maternal','Protección desde el embarazo hasta un año post-natal.','/Fuero_maternal'),
    dpItem('😤','Acoso laboral','Qué conductas constituyen acoso y cómo demandarlo.','/Acoso_laboral'),
    dpItem('⏰','Horas extraordinarias no pagadas','Cómo cobrar las horas extra adeudadas con recargo legal.','/Horas_extraordinarias'),
    dpItem('⚖️','Tutela laboral','Cuando el empleador vulnera tus derechos fundamentales.','/Tutela_laboral'),
    dpItem('📄','Nulidad del despido (Ley Bustos)','Si te despidieron con cotizaciones adeudadas, el contrato sigue vigente.','/Nulidad_del_Despido'),
    dpItem('💰','Indemnización por años de servicio','Cómo se calcula y cuánto te corresponde cobrar.','/Indemnizaci%C3%B3n_por_a%C3%B1os_de_servicios'),
    dpItem('📋','Finiquito: qué revisar antes de firmar','Los errores más comunes y qué prestaciones te corresponden.','/Finiquito'),
    dpItem('🏭','Despido por necesidades de la empresa','¿Es justificado? ¿Qué debe pagar el empleador?','/Despido_por_necesidades_de_la_empresa'),

    '</div>',
    '<div style="font-family:Georgia,serif;font-size:17px;font-weight:normal;color:#202122;border-bottom:1px solid #a2a9b1;padding-bottom:5px;margin-bottom:12px;margin-top:20px;">Situaciones frecuentes</div>',
    '<div class="dp-sit-grid">',

    dpSit('🧾','Boletas de honorarios y relación laboral encubierta','/Boleta_de_honorarios'),
    dpSit('🔕','Fuero sindical: protección de dirigentes','/Fuero_sindical'),
    dpSit('✂️','Reducción unilateral de jornada o sueldo','/Jornada_de_trabajo'),
    dpSit('🚑','Accidente del trabajo: derechos y demandas','/Accidente_del_trabajo'),
    dpSit('🏠','Teletrabajo: obligaciones del empleador','/Teletrabajo'),
    dpSit('📅','Feriado proporcional: cuánto corresponde','/Feriado_proporcional'),
    dpSit('👴','Desahucio y jubilación forzada','/Desahucio'),
    dpSit('📊','Gratificación legal: cálculo y cobro','/Gratificaci%C3%B3n'),
    dpSit('👶','Post-natal parental extendido','/Postnatal_parental'),
    dpSit('🏥','Despido durante licencia médica','/Licencia_m%C3%A9dica'),

    '</div>',
    '</div>'
  ].join('');

  function dpItem(ico, name, desc, href) {
    return '<a class="dp-capture-item" href="' + href + '">' +
      '<span class="dp-cap-ico">' + ico + '</span>' +
      '<span class="dp-cap-name">' + name + '</span>' +
      '<span class="dp-cap-desc">' + desc + '</span>' +
      '<span class="dp-cap-arrow">Leer guía →</span>' +
      '</a>';
  }
  function dpSit(ico, txt, href) {
    return '<a class="dp-sit-item" href="' + href + '">' +
      '<span class="dp-sit-ico">' + ico + '</span>' +
      '<span class="dp-sit-txt">' + txt + '</span>' +
      '<span class="dp-sit-arr">→</span>' +
      '</a>';
  }
})();