MediaWiki:Common.js: differenze tra le versioni

Pagina dell'interfaccia di MediaWiki
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 21: Riga 21:




console.log("🚀 filter script: Common.js caricato");  
(function($) {
  // Debug
  console.log("🔍 filtro NPC attivato – righe trovate:", $('#characterTable tr:has(td)').length);


mw.loader.using(['mediawiki.util','jquery'], function($) {
  // Se non ho trovati nemmeno 1 riga, vuol dire che o l'id della tabella è sbagliato
   console.log("✅ filter script: jQuery pronto, righe trovate:",
   if ( $('#characterTable tr:has(td)').length === 0 ) {
              $('#characterTable tr:has(td)').length);
    console.warn("❗ characterTable tr:has(td) restituisce 0: controlla id/tabella");
   // … qui tutto il resto del tuo script …
    return;
});
   }


  var razze = {}, luoghi = {}, sessioni = {}, statuses = {};


/*FILTRO PER LISA*/
  // 1) Raccogli i valori unici
mw.loader.using('jquery', function($){
  $('#characterTable tr:has(td)').each(function(){
   $(function(){
    var $c   = $(this).children('td'),
    var razze = {}, luoghi = {}, sessioni = {}, statuses = {};
        r    = $.trim($c.eq(1).text()),
        l    = $.trim($c.eq(3).text()),
        se  = $.trim($c.eq(6).text()),
        src  = $c.eq(7).find('img').attr('src') || '',
        file = src.split('/').pop();


     // 1) Scorri tutte le righe che hanno <td>
     if (r) razze[r]       = true;
    $('#characterTable tr:has(td)').each(function(){
    if (lluoghi[l]      = true;
       var $c = $(this).children('td');
    if (se) sessioni[se= true;
      var r = $.trim($c.eq(1).text());
    if (file) statuses[file] = true;
      var l  = $.trim($c.eq(3).text());
  });
      var se = $.trim($c.eq(6).text());
      var src = $c.eq(7).find('img').attr('src') || '';
      var file = src.split('/').pop(); // solo il nome del file


      if (r) razze[r] = true;
  function popola(items, selId) {
      if (l) luoghi[l] = true;
    var $sel = $('#'+selId);
       if (se) sessioni[se] = true;
    Object.keys(items).sort().forEach(function(v){
      if (file) statuses[file] = true;
       $sel.append( $('<option>').val(v).text(v) );
     });
     });
  }


    // 2) Funzione di aiuto per popolare le <select>
  popola(razze,    'filter-razza');
    function popola(items, sel) {
  popola(luoghi,  'filter-luogo');
      var $sel = $('#'+sel);
  popola(sessioni, 'filter-sessione');
      $.each(Object.keys(items).sort(), function(i,v){
  popola(statuses, 'filter-status');
        $sel.append( $('<option>').val(v).text(v) );
      });
    }
    popola(razze,    'filter-razza');
    popola(luoghi,  'filter-luogo');
    popola(sessioni, 'filter-sessione');
    popola(statuses, 'filter-status');


    // 3) Applica i filtri al cambio di valore
  // 2) Applica i filtri
    $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status')
  $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status')
    .change(function(){
  .on('change', function(){
      var fR  = $('#filter-razza').val(),
    var fR  = $('#filter-razza').val(),
          fL  = $('#filter-luogo').val(),
        fL  = $('#filter-luogo').val(),
          fS  = $('#filter-sessione').val(),
        fS  = $('#filter-sessione').val(),
          fSt = $('#filter-status').val();
        fSt = $('#filter-status').val();


      $('#characterTable tr:has(td)').each(function(){
    $('#characterTable tr:has(td)').each(function(){
        var $c = $(this).children('td');
      var $c   = $(this).children('td'),
        var r   = $.trim($c.eq(1).text()),
          r     = $.trim($c.eq(1).text()),
            l   = $.trim($c.eq(3).text()),
          l     = $.trim($c.eq(3).text()),
            se = $.trim($c.eq(6).text()),
          se   = $.trim($c.eq(6).text()),
            file= ($c.eq(7).find('img').attr('src')||'').split('/').pop();
          file = ($c.eq(7).find('img').attr('src')||'').split('/').pop(),
 
          match = (!fR  || r===fR)
        var ok = (!fR  || r===fR)
                && (!fL  || l===fL)
              && (!fL  || l===fL)
                && (!fS  || se===fS)
              && (!fS  || se===fS)
                && (!fSt || file===fSt);
              && (!fSt || file===fSt);


        $(this).toggle(ok);
      $(this).toggle(match);
      });
     });
     });
   });
   });
});
})(jQuery);

Versione delle 08:59, 30 lug 2025

/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */

/*CAPITALIZE SEARCH*/
document.addEventListener("DOMContentLoaded", function () {
  const input = document.querySelector("#searchInput");

  input.addEventListener("input", function () {
    const words = input.value.split(" ").map(word => {
      return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
    });
    const capitalized = words.join(" ");
    
    // Only update value if it's changed to avoid cursor jump
    if (input.value !== capitalized) {
      const cursorPos = input.selectionStart;
      input.value = capitalized;
      input.setSelectionRange(cursorPos, cursorPos);
    }
  });
});


(function($) {
  // Debug
  console.log("🔍 filtro NPC attivato – righe trovate:", $('#characterTable tr:has(td)').length);

  // Se non ho trovati nemmeno 1 riga, vuol dire che o l'id della tabella è sbagliato
  if ( $('#characterTable tr:has(td)').length === 0 ) {
    console.warn("❗ characterTable tr:has(td) restituisce 0: controlla id/tabella");
    return;
  }

  var razze = {}, luoghi = {}, sessioni = {}, statuses = {};

  // 1) Raccogli i valori unici
  $('#characterTable tr:has(td)').each(function(){
    var $c   = $(this).children('td'),
        r    = $.trim($c.eq(1).text()),
        l    = $.trim($c.eq(3).text()),
        se   = $.trim($c.eq(6).text()),
        src  = $c.eq(7).find('img').attr('src') || '',
        file = src.split('/').pop();

    if (r)  razze[r]       = true;
    if (l)  luoghi[l]      = true;
    if (se) sessioni[se]   = true;
    if (file) statuses[file] = true;
  });

  function popola(items, selId) {
    var $sel = $('#'+selId);
    Object.keys(items).sort().forEach(function(v){
      $sel.append( $('<option>').val(v).text(v) );
    });
  }

  popola(razze,    'filter-razza');
  popola(luoghi,   'filter-luogo');
  popola(sessioni, 'filter-sessione');
  popola(statuses, 'filter-status');

  // 2) Applica i filtri
  $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status')
  .on('change', function(){
    var fR  = $('#filter-razza').val(),
        fL  = $('#filter-luogo').val(),
        fS  = $('#filter-sessione').val(),
        fSt = $('#filter-status').val();

    $('#characterTable tr:has(td)').each(function(){
      var $c    = $(this).children('td'),
          r     = $.trim($c.eq(1).text()),
          l     = $.trim($c.eq(3).text()),
          se    = $.trim($c.eq(6).text()),
          file  = ($c.eq(7).find('img').attr('src')||'').split('/').pop(),
          match = (!fR  || r===fR)
                && (!fL  || l===fL)
                && (!fS  || se===fS)
                && (!fSt || file===fSt);

      $(this).toggle(match);
    });
  });
})(jQuery);