MediaWiki:Gadget-CollapsibleSidebar.js

From JoJo's Bizarre Encyclopedia - JoJo Wiki
Jump to navigation Jump to search

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.
$(function(){
	/*
	 * Make sidebar sections collapsible
	 * 
	 * Taken from the Aether Wiki
	 */
	$panel = $("#mw-panel");
	$("#mw-panel .vector-menu-portal").each(function(index, el){
		var $el = $(el);
		var $id = $el.attr("id");
		if(!$id){
			return;
		}
		// for < 1366px
		$el.removeClass("expanded");
		// for >= 1366px
		if(localStorage.getItem("sidebar_vector_c_"+$id) === "y"){
			$el.addClass("collapsed").find(".vector-menu-content").slideUp(0);
		}
		// tab selectable
		$el.find("h3").attr("tabindex", 0).on("keypress", function(event) {
			if (event.which == 13) {
				$(this).trigger("click");
				event.stopImmediatePropagation()
			}
		});
	});
	$("#mw-panel .vector-menu-portal").on("click", "h3", function(event){
		var $el = $(this).parent();
		var $id = $el.attr("id");
		if(!$id){
			return;
		}
		event.stopPropagation();
		if($panel.width() < 200){
			$el.toggleClass("collapsed");
			if($el.hasClass("collapsed")){ // more consistent between class and slide status.
				localStorage.setItem("sidebar_vector_c_"+$id, "y");
				$el.find(".vector-menu-content").slideUp("fast");
			}
			else{
				localStorage.setItem("sidebar_vector_c_"+$id, "n");
				$el.find(".vector-menu-content").slideDown("fast");
			}
		}
		else{
			$("#mw-panel .vector-menu-portal").not($el).removeClass("expanded");
			$el.toggleClass("expanded");
		}
	});
});