MediaWiki:Common.js

Pagina dell'interfaccia di MediaWiki

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5.
/* 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);
    }
  });
});


console.log("🚀 filter script: Common.js caricato"); 

mw.loader.using(['mediawiki.util','jquery'], function($) {
  console.log("✅ filter script: jQuery pronto, righe trovate:", 
              $('#characterTable tr:has(td)').length);
  // … qui tutto il resto del tuo script …
});


/*FILTRO PER LISA*/
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);
      });
    });
  });
});