Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 20: | Riga 20: | ||
}); | }); | ||
/*FILTRO LISA NPC*/ | |||
(function($) { | |||
// debug rapido | |||
console.log("🔍 filtro NPC attivato – righe trovate:", $('#characterTable tr:has(td)').length); | |||
if ($('#characterTable tr:has(td)').length === 0) { | |||
console.warn("❗ characterTable tr:has(td) restituisce 0: controlla id/tabella"); | |||
return; | |||
} | |||
/ | // 1) Raccogli i valori unici | ||
var razze = {}, luoghi = {}, sessioni = {}, statuses = {}; | |||
$('#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(); | |||
if(r) razze[r] = true; | |||
if(l) luoghi[l] = true; | |||
if(se) sessioni[se] = true; | |||
if(file) statuses[file]= true; | |||
}); | |||
// 2) Popola le select | |||
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'); | |||
// 3) Filtro al change | |||
function | $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status') | ||
var $ | .on('change', function(){ | ||
$.each( | 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); | |||
}); | }); | ||
} | }); | ||
// | // 4) Reset button | ||
$('#filter-reset').on('click', function(){ | |||
var btn = $(this); | |||
btn.addClass('rotating'); | |||
// svuota tutte le select e riapplica il filtro | |||
$('#filter-razza, #filter-luogo, #filter-sessione, #filter-status') | $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status') | ||
.val('').trigger('change'); | |||
// togli classe dopo l'animazione | |||
setTimeout(function(){ btn.removeClass('rotating'); }, 500); | |||
}); | |||
})(jQuery); | |||
Versione attuale delle 09:03, 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 LISA NPC*/ (function($) { // debug rapido console.log("🔍 filtro NPC attivato – righe trovate:", $('#characterTable tr:has(td)').length); if ($('#characterTable tr:has(td)').length === 0) { console.warn("❗ characterTable tr:has(td) restituisce 0: controlla id/tabella"); return; } // 1) Raccogli i valori unici var razze = {}, luoghi = {}, sessioni = {}, statuses = {}; $('#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(); if(r) razze[r] = true; if(l) luoghi[l] = true; if(se) sessioni[se] = true; if(file) statuses[file]= true; }); // 2) Popola le select 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'); // 3) Filtro al change $('#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); }); }); // 4) Reset button $('#filter-reset').on('click', function(){ var btn = $(this); btn.addClass('rotating'); // svuota tutte le select e riapplica il filtro $('#filter-razza, #filter-luogo, #filter-sessione, #filter-status') .val('').trigger('change'); // togli classe dopo l'animazione setTimeout(function(){ btn.removeClass('rotating'); }, 500); }); })(jQuery);