User:Jason Quinn/toggle-vector-sidebar.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* toggle-vector-sidebar.js: Adds a button to toggle visibility of the Vector sidebar.
   Original written by PleaseStand at User:PleaseStand/hide-vector-sidebar.js
   Public domain; all copyright claims waived as described in
   http://en.wikipedia.org/wiki/Template:PD-self

   Tiny changes to PleaseStand's script by User:Jason Quinn
*/

( function ( mw, $ ) {
	var sidebarSwitch;

	function sidebarHide() {
		document.getElementById( 'mw-panel'        ).style.visibility = 'hidden';
		document.getElementById( 'mw-head-base'    ).style.marginLeft = '0';
		document.getElementById( 'content'         ).style.marginLeft = '0';
		document.getElementById( 'left-navigation' ).style.marginLeft = '0';
		document.getElementById( 'footer'          ).style.marginLeft = '0';
		if ( sidebarSwitch ) {
			sidebarSwitch.parentNode.removeChild(sidebarSwitch);
		}
		sidebarSwitch = mw.util.addPortletLink( 'p-cactions', '#', 'Show sidebar', 'ca-sidebar', 'Show the navigation links', 'a' );
		$( sidebarSwitch ).click( function ( e ) {
			e.preventDefault();
			sidebarShow();
		} );
	}
	
	function sidebarShow() {
		document.getElementById( 'mw-panel'        ).style.visibility = '';
		document.getElementById( 'mw-head-base'    ).style.marginLeft = '';
		document.getElementById( 'content'         ).style.marginLeft = '';
		document.getElementById( 'left-navigation' ).style.marginLeft = '';
		document.getElementById( 'footer'          ).style.marginLeft = '';
		if ( sidebarSwitch ) {
			sidebarSwitch.parentNode.removeChild(sidebarSwitch);
		}
		sidebarSwitch = mw.util.addPortletLink( 'p-cactions', '#', 'Hide sidebar', 'ca-sidebar', 'Hide the navigation links', 'a' );
		$( sidebarSwitch ).click( function ( e ) {
			e.preventDefault();
			sidebarHide();
		} );
	}
	
	// Only activate on Vector skin
	if ( mw.config.get( 'skin' ) === 'vector' ) {
		$.when($.ready,mw.loader.using('mediawiki.util')).then(function(){
			// Change this if you want to hide the sidebar by default
			sidebarShow();
		} );
	}
	
}( mediaWiki, jQuery ) );