Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 21: | Riga 21: | ||
console.log(" | (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); |
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);