Diferencia entre revisiones de «MediaWiki:Common.js»

De DerechoPedia
Ir a la navegaciónIr a la búsqueda
(CTA al final de guías + link iniciar sesión en topnav)
(Login link inline en topnav HTML (fix timing) + CTA al final de guías)
Línea 7: Línea 7:
   var topnav = document.createElement('div');
   var topnav = document.createElement('div');
   topnav.id = 'dp-topnav';
   topnav.id = 'dp-topnav';
  var dpLoginHtml = !mw.config.get('wgUserName')
    ? '<div style="margin-left:8px;flex-shrink:0;"><a href="/index.php?title=Special:UserLogin" ' +
      'style="color:#fff;font-size:13px;font-weight:500;text-decoration:none;opacity:0.85;' +
      'white-space:nowrap;border:1px solid rgba(255,255,255,0.4);padding:5px 12px;border-radius:4px;">' +
      'Iniciar sesi&#243;n</a></div>'
    : '<div style="margin-left:8px;flex-shrink:0;"><a href="/index.php?title=Special:UserLogout" ' +
      'style="color:#fff;font-size:13px;font-weight:500;text-decoration:none;opacity:0.85;white-space:nowrap;">' +
      '&#128100; ' + mw.config.get('wgUserName') + '</a></div>';
   topnav.innerHTML =
   topnav.innerHTML =
     '<div class="dp-mainbar">' +
     '<div class="dp-mainbar">' +
Línea 22: Línea 30:
           '<li><a href="https://kopaitic.cl/calculadora-de-finiquito/" target="_blank">Calculadora de Finiquito</a></li>' +
           '<li><a href="https://kopaitic.cl/calculadora-de-finiquito/" target="_blank">Calculadora de Finiquito</a></li>' +
         '</ul>' +
         '</ul>' +
        dpLoginHtml +
         '<a class="dp-cta-btn" href="https://wa.me/56974717602" target="_blank">' +
         '<a class="dp-cta-btn" href="https://wa.me/56974717602" target="_blank">' +
           '<span class="dp-cta-dot"></span>Consultar abogado' +
           '<span class="dp-cta-dot"></span>Consultar abogado' +
Línea 300: Línea 309:
})();
})();


/* === LINK INICIAR SESION EN TOPNAV === */
/* login inline en topnav - ver dpLoginHtml arriba */
(function() {
/*(function() {
   var userName = mw.config.get('wgUserName');
   var userName = mw.config.get('wgUserName');
   var nav = document.getElementById('dp-topnav');
   var nav = document.getElementById('dp-topnav');
Línea 318: Línea 327:
     nav.appendChild(loginWrap);
     nav.appendChild(loginWrap);
   }
   }
})();
})*/()
*/

Revisión del 23:01 20 abr 2026

/* === 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';
  var dpLoginHtml = !mw.config.get('wgUserName')
    ? '<div style="margin-left:8px;flex-shrink:0;"><a href="/index.php?title=Special:UserLogin" ' +
      'style="color:#fff;font-size:13px;font-weight:500;text-decoration:none;opacity:0.85;' +
      'white-space:nowrap;border:1px solid rgba(255,255,255,0.4);padding:5px 12px;border-radius:4px;">' +
      'Iniciar sesi&#243;n</a></div>'
    : '<div style="margin-left:8px;flex-shrink:0;"><a href="/index.php?title=Special:UserLogout" ' +
      'style="color:#fff;font-size:13px;font-weight:500;text-decoration:none;opacity:0.85;white-space:nowrap;">' +
      '&#128100; ' + mw.config.get('wgUserName') + '</a></div>';
  topnav.innerHTML =
    '<div class="dp-mainbar">' +
      '<a class="dp-logo-block" href="/">' +
        '<img class="dp-logo-img" src="https://www.derechopedia.cl/resources/assets/logoDerechoPedia_small_2.png" alt="DerechoPedia" style="background:#fff;border-radius:5px;padding:3px 6px;">' +
        '<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="/Código_del_Trabajo">Normas</a></li>' +
          '<li><a href="/#dp-guias-portada">Guías para trabajadores</a></li>' +
          '<li><a href="/Correos_para_oficios">Correos para oficios</a></li>' +
          '<li><a href="https://kopaitic.cl/contador-plazos-laborales/" target="_blank">Contador de Plazos</a></li>' +
          '<li><a href="https://kopaitic.cl/calculadora-de-finiquito/" target="_blank">Calculadora de Finiquito</a></li>' +
        '</ul>' +
        dpLoginHtml +
        '<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-mob-search-bar" style="display:none;align-items:center;gap:4px;flex:1;max-width:180px;margin-right:6px;">' +
        '<input type="text" id="dp-mob-search-input" placeholder="Buscar..." style="width:100%;padding:5px 10px;border:1px solid #c8ccd1;border-radius:20px;font-size:13px;outline:none;">' +
        '<button id="dp-mob-search-btn" style="background:none;border:none;cursor:pointer;font-size:16px;padding:2px 4px;">&#128269;</button>' +
      '</div>' +
      '<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="/Código_del_Trabajo">Normas</a></li>' +
        '<li><a href="/#dp-guias-portada">Guías para trabajadores</a></li>' +
        '<li><a href="/Correos_para_oficios">Correos para oficios</a></li>' +
        '<li><a href="https://kopaitic.cl/contador-plazos-laborales/" target="_blank">Contador de Plazos</a></li>' +
        '<li><a href="https://kopaitic.cl/calculadora-de-finiquito/" target="_blank">Calculadora de Finiquito</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ú');
  });

  /* Barra busqueda topnav mobile */
  (function() {
    var bar = document.getElementById('dp-mob-search-bar');
    if (!bar) return;
    function dpToggleMobSearch() {
      bar.style.display = window.innerWidth <= 768 ? 'flex' : 'none';
    }
    dpToggleMobSearch();
    window.addEventListener('resize', dpToggleMobSearch);
    var btn = document.getElementById('dp-mob-search-btn');
    var inp = document.getElementById('dp-mob-search-input');
    if (btn) btn.addEventListener('click', function() {
      var q = inp ? inp.value.trim() : '';
      if (q) window.location.href = '/index.php?search=' + encodeURIComponent(q);
    });
    if (inp) inp.addEventListener('keydown', function(e) {
      if (e.key === 'Enter' && this.value.trim())
        window.location.href = '/index.php?search=' + encodeURIComponent(this.value.trim());
    });
  })();

  /* 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/resources/assets/logoDerechoPedia_small_2.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;
  var CH = 'background:#f0f4fa; padding:11px 18px; border-bottom:1px solid #e8edf3;';
  var CT = 'font-size:14px; font-weight:700; color:#2d3c6b;';
  var CARD = 'background:#fff; border:1px solid #e8edf3; border-radius:8px; margin-bottom:16px; overflow:hidden;';
  target.innerHTML = [
    '<div style="' + CARD + '">',
    '<div style="' + CH + '"><div style="' + CT + '">Guías para trabajadores</div></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_extraodinarias_en_Chile'),
    dpItem('⚖️','Tutela laboral','Cuando el empleador vulnera tus derechos fundamentales.','/Tutela_laboral_e_indemnizaci%C3%B3n_por_da%C3%B1o_moral'),
    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>',
    '<div style="' + CARD + '">',
    '<div style="' + CH + '"><div style="' + CT + '">Situaciones frecuentes</div></div>',
    '<div class="dp-sit-grid">',
    dpSit('🧾','Contratos a honorarios y relación laboral','/Contratos_a_honorarios'),
    dpSit('🔕','Fuero Laboral: tipos y protección','/Fuero_Laboral'),
    dpSit('✂️','Ley de las 40 horas','/Ley_de_las_40_horas'),
    dpSit('🚑','Accidentes del trabajo y enfermedades profesionales','/Accidentes_del_Trabajo_y_Enfermedades_Profesionales'),
    dpSit('🏠','Teletrabajo: obligaciones del empleador','/Teletrabajo'),
    dpSit('📅','Feriado proporcional al término del contrato','/%C2%BFQu%C3%A9_pasos_deben_seguirse_para_calcular_el_pago_del_feriado_proporcional_al_t%C3%A9rmino_del_contrato_de_un_trabajador%3F'),
    dpSit('👴','Desahucio y jubilación forzada','/Desahucio'),
    dpSit('📊','Gratificación en feriado proporcional','/%C2%BFCorresponde_incluir_la_gratificaci%C3%B3n_mensual_en_el_c%C3%A1lculo_del_feriado_proporcional%3F'),
    dpSit('👶','Extensión del postnatal parental (Ley 21.474)','/Extensi%C3%B3n_Excepcional_del_Permiso_Postnatal_Parental_(Ley_N%C2%B0_21.474)'),
    dpSit('🏥','Despido durante licencia médica','/Despido_con_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>';
  }
})();


/* === FIX: EDIT TABS VISIBILITY === */
(function() {
  var pc = document.getElementById('p-cactions');
  var ct = document.getElementById('content');
  if (!pc || !ct) return;
  // Move p-cactions out of the overflow-hidden sidebar into the visible content area
  var sn = document.getElementById('siteNotice');
  if (sn && sn.parentNode === ct) {
    ct.insertBefore(pc, sn.nextSibling);
  } else {
    ct.insertBefore(pc, ct.firstChild);
  }
  // Style as a visible horizontal tab bar
  pc.style.cssText = 'display:flex;align-items:center;gap:4px;padding:6px 10px;background:#f8f9fa;border:1px solid #ddd;border-radius:4px;margin:4px 0 8px 0;box-sizing:border-box;';
  var ul = pc.querySelector('ul');
  if (ul) { ul.style.cssText = 'display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap;'; }
  var lis = pc.querySelectorAll('li');
  lis.forEach(function(li) {
    li.style.cssText = 'margin:0;padding:0;';
    var a = li.querySelector('a');
    if (a) { a.style.cssText = 'display:inline-block;padding:5px 12px;background:#fff;border:1px solid #c8ccd1;border-radius:4px;color:#1c2e4a;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;'; }
  });
  var h3 = pc.querySelector('h3');
  if (h3) { h3.style.display = 'none'; }
})();

/* === PORTADA: BANNER DE HERRAMIENTAS === */
(function() {
  var banner = document.getElementById('dp-tools-banner');
  if (!banner) return;
  var SW = 'display:flex;gap:10px;padding:6px 20px 8px;max-width:860px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;box-sizing:border-box;';
  var SC = 'flex:1;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#eef4ff,#dce8f5);border:1px solid #b0c8e8;border-radius:8px;padding:11px 15px;text-decoration:none;cursor:pointer;';
  var SI = 'font-size:26px;flex-shrink:0;line-height:1;';
  var SB = 'flex:1;';
  var SN = 'display:block;font-size:12.5px;font-weight:700;color:#1c2e4a;margin-bottom:2px;line-height:1.3;';
  var SD = 'display:block;font-size:10.5px;color:#5a6474;line-height:1.4;margin-bottom:5px;';
  var ST = 'display:inline-block;background:#1c2e4a;color:#fff;font-size:10.5px;font-weight:600;padding:4px 10px;border-radius:4px;text-decoration:none;';
  banner.setAttribute('style', SW);
  banner.innerHTML =
    '<a style="' + SC + '" href="https://kopaitic.cl/contador-plazos-laborales/" target="_blank">' +
    '<span style="' + SI + '">⏰</span>' +
    '<span style="' + SB + '">' +
    '<span style="' + SN + '">Contador de Plazos Laborales</span>' +
    '<span style="' + SD + '">Calcula autom\u00E1ticamente los plazos para demandar, apelar o presentar recursos. Herramienta gratuita.</span>' +
    '<span style="' + ST + '">Usar herramienta →</span>' +
    '</span></a>' +
    '<a style="' + SC + '" href="https://kopaitic.cl/calculadora-de-finiquito/" target="_blank">' +
    '<span style="' + SI + '">💰</span>' +
    '<span style="' + SB + '">' +
    '<span style="' + SN + '">Calculadora de Finiquito</span>' +
    '<span style="' + SD + '">Estima cu\u00E1nto te corresponde cobrar al t\u00E9rmino del contrato. Incluye indemnizaciones y feriado proporcional.</span>' +
    '<span style="' + ST + '">Calcular ahora →</span>' +
    '</span></a>';
})();

/* === CTA AL FINAL DE GUIAS === */
(function() {
  var ns = mw.config.get('wgNamespaceNumber');
  var page = mw.config.get('wgPageName');
  var action = mw.config.get('wgAction');
  if (ns !== 0 || page === 'Página_principal' || action !== 'view') return;
  var body = document.getElementById('bodyContent');
  if (!body) return;
  var cta = document.createElement('div');
  cta.style.cssText = 'margin:40px 0 20px 0;background:linear-gradient(135deg,#1c2e4a,#2a4a7f);border-radius:12px;padding:32px 28px;text-align:center;color:#fff;';
  cta.innerHTML =
    '<div style="font-size:34px;margin-bottom:10px;">&#9878;</div>' +
    '<h3 style="color:#fff;font-size:20px;margin:0 0 10px 0;font-weight:700;">&#191;Esta situaci&#243;n te afecta a ti?</h3>' +
    '<p style="color:rgba(255,255,255,0.85);font-size:14px;margin:0 0 22px 0;line-height:1.6;">Nuestros abogados especializados en derecho laboral pueden orientarte sobre tus opciones y derechos espec&#237;ficos.</p>' +
    '<a href="https://wa.me/56974717602" target="_blank" style="display:inline-block;background:#25D366;color:#fff;padding:12px 28px;border-radius:30px;font-size:15px;font-weight:600;text-decoration:none;">&#128172; Consultar con un abogado</a>';
  body.appendChild(cta);
})();

/* login inline en topnav - ver dpLoginHtml arriba */
/*(function() {
  var userName = mw.config.get('wgUserName');
  var nav = document.getElementById('dp-topnav');
  if (!nav) return;
  var loginWrap = document.createElement('div');
  loginWrap.style.cssText = 'margin-left:8px;flex-shrink:0;';
  if (!userName) {
    loginWrap.innerHTML = '<a href="/index.php?title=Special:UserLogin" style="color:#fff;font-size:13px;font-weight:500;text-decoration:none;opacity:0.85;white-space:nowrap;border:1px solid rgba(255,255,255,0.4);padding:5px 12px;border-radius:4px;">Iniciar sesi&#243;n</a>';
  } else {
    loginWrap.innerHTML = '<a href="/index.php?title=Special:UserLogout" style="color:#fff;font-size:13px;font-weight:500;text-decoration:none;opacity:0.85;white-space:nowrap;">&#128100; ' + userName + '</a>';
  }
  var ctaBtn = nav.querySelector('.dp-cta-btn');
  if (ctaBtn) {
    ctaBtn.parentNode.insertBefore(loginWrap, ctaBtn);
  } else {
    nav.appendChild(loginWrap);
  }
})*/()
*/