MediaWiki:CharacterTable.js: Difference between revisions

From Blue Archive Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
(Fixed filtering by multiple toggles)
Line 1: Line 1:
$( document ).ready(function() {
$( document ).ready(function() {
var charactertable_filters = new Set();
$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));});
$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));});
});
});
Line 10: Line 11:
if (toggleItem.hasClass("inactive")) {
if (toggleItem.hasClass("inactive")) {
toggleItem.addClass('active').removeClass('inactive');
toggleItem.addClass('active').removeClass('inactive');
charactertable_filters.delete(toggleItem.attr('data-toggle'));
toggleState = true;
}
}
else {
else {
toggleItem.addClass('inactive').removeClass('active');
toggleItem.addClass('inactive').removeClass('active');
charactertable_filters.add(toggleItem.attr('data-toggle'));
toggleState = false;
}
}


$(".charactertable tr."+toggleItem.attr('data-toggle')).each(function (element){
$(".charactertable tr").each(function (element){
hideRow = false;
(toggleState) ? $(this).addClass('visible').removeClass('hidden') : $(this).addClass('hidden').removeClass('visible');
charactertable_filters.forEach(filter => {
if ($(this).hasClass(filter)) hideRow = true;
});
if (hideRow) $(this).addClass('hidden').removeClass('visible');
else $(this).addClass('visible').removeClass('hidden');
});
});



Revision as of 18:38, 3 February 2023

$( document ).ready(function() {
	var charactertable_filters = new Set();
	$(".charactertable-controls > .controls > span").on("click", function(){characterTableToggle($(this));});
});

function characterTableToggle (toggleItem){
	//console.log('toggling '+toggleItem.attr('data-toggle'));
	toggleItem = (typeof toggleItem !== 'undefined') ? toggleItem : false; //default false, ES5 does not support function defaults

	if (toggleItem) {
		if (toggleItem.hasClass("inactive")) {
			toggleItem.addClass('active').removeClass('inactive');
			charactertable_filters.delete(toggleItem.attr('data-toggle'));
		}
		else {
			toggleItem.addClass('inactive').removeClass('active');
			charactertable_filters.add(toggleItem.attr('data-toggle'));
		}

		$(".charactertable tr").each(function (element){
			hideRow = false;
			charactertable_filters.forEach(filter => {
				if ($(this).hasClass(filter)) hideRow = true;
			});
			
			if (hideRow) $(this).addClass('hidden').removeClass('visible');
			else $(this).addClass('visible').removeClass('hidden');
		});

	}
}