MediaWiki:CharacterTable.js

Revision as of 18:40, 3 February 2023 by Electricsheep (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
var charactertable_filters = new Set();
$( document ).ready(function() {
	$(".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');
		});

	}
}