MediaWiki:Common.js: differenze tra le versioni

Pagina dell'interfaccia di MediaWiki
Creata pagina con "Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti.: 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'..."
 
Nessun oggetto della modifica
Riga 1: Riga 1:
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */
/*CAPITALIZE SEARCH*/
document.addEventListener("DOMContentLoaded", function () {
document.addEventListener("DOMContentLoaded", function () {
   const input = document.querySelector("#searchInput");
   const input = document.querySelector("#searchInput");
Riga 15: Riga 17:
       input.setSelectionRange(cursorPos, cursorPos);
       input.setSelectionRange(cursorPos, cursorPos);
     }
     }
  });
});
/*FILTRO PER LISA*/
// FILE: MediaWiki:Common.js
mw.loader.using('jquery', function($){
  $(function(){
    var razze = {}, luoghi = {}, sessioni = {}, statuses = {};
    // 1) Scorri tutte le righe che hanno <td>
    $('#characterTable tr:has(td)').each(function(){
      var $c = $(this).children('td');
      var r  = $.trim($c.eq(1).text());
      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;
      if (l)  luoghi[l] = true;
      if (se) sessioni[se] = true;
      if (file) statuses[file] = true;
    });
    // 2) Funzione di aiuto per popolare le <select>
    function popola(items, sel) {
      var $sel = $('#'+sel);
      $.each(Object.keys(items).sort(), function(i,v){
        $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
    $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status')
    .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');
        var 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();
        var ok = (!fR  || r===fR)
              && (!fL  || l===fL)
              && (!fS  || se===fS)
              && (!fSt || file===fSt);
        $(this).toggle(ok);
      });
    });
   });
   });
});
});

Versione delle 08:55, 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);
    }
  });
});


/*FILTRO PER LISA*/
// FILE: MediaWiki:Common.js
mw.loader.using('jquery', function($){
  $(function(){
    var razze = {}, luoghi = {}, sessioni = {}, statuses = {};

    // 1) Scorri tutte le righe che hanno <td>
    $('#characterTable tr:has(td)').each(function(){
      var $c = $(this).children('td');
      var r  = $.trim($c.eq(1).text());
      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;
      if (l)  luoghi[l] = true;
      if (se) sessioni[se] = true;
      if (file) statuses[file] = true;
    });

    // 2) Funzione di aiuto per popolare le <select>
    function popola(items, sel) {
      var $sel = $('#'+sel);
      $.each(Object.keys(items).sort(), function(i,v){
        $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
    $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status')
    .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');
        var 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();

        var ok = (!fR  || r===fR)
              && (!fL  || l===fL)
              && (!fS  || se===fS)
              && (!fSt || file===fSt);

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