User:Gary/expand hidden templates.js

/*	EXPAND HIDDEN TEMPLATES Description: Expands and collapses hidden templates on a page. Templates affected include, , and their derivatives. Documentation: Expand Hidden Templates

if (typeof(unsafeWindow) != 'undefined') {	addPortletLink = mw.util.addPortletLink; collapseTable = unsafeWindow.collapseTable; expandHiddenTemplates = expandHiddenTemplates; toggleNavigationBar = unsafeWindow.toggleNavigationBar; wgAction = mw.config.get('wgAction') }

if (typeof(expandHiddenTemplates) == 'undefined') expandHiddenTemplates = {};

expandHiddenTemplatesMain = function {	var nodeText = document.getElementById('t-expand-hidden-templates').firstChild.firstChild.firstChild; if (nodeText.nodeValue == 'Expand templates') var action = 'expanding'; else var action = 'collapsing'; // .collapseButton var buttons = document.getElementsByClassName('collapseButton'); for (var i = 0; i < buttons.length; i++) {		if (			(action == 'expanding' && buttons[i].childNodes[1].firstChild.nodeValue == 'show')			|| (action == 'collapsing' && buttons[i].childNodes[1].firstChild.nodeValue == 'hide')		) buttons[i].childNodes[1].click; // IE-only? }	// .NavToggle var toggles = document.getElementsByClassName('NavToggle'); for (var i = 0; i < toggles.length; i++) {		if (			(action == 'expanding' && toggles[i].firstChild.nodeValue == '[show]')			|| (action == 'collapsing' && toggles[i].firstChild.nodeValue == '[hide]')		) toggles[i].click; // IE-only? }	if (buttons.length == 0 && toggles.length == 0) alert('There are no templates to expand on this page.'); else {		if (action == 'expanding') nodeText.nodeValue = 'Collapse templates'; else nodeText.nodeValue = 'Expand templates'; } }

expandHiddenTemplatesPortletLink = function {   var wgAction = mw.config.get('wgAction'); if ( mw.util.addPortletLink) {		if ((wgAction != 'view' && wgAction != 'submit' && wgAction != 'edit' && wgAction != 'purge') || navigator.appName.indexOf('Microsoft Internet Explorer') == -1) return; var buttons = document.getElementsByClassName('collapseButton'); var toggles = document.getElementsByClassName('NavToggle'); if (buttons.length + toggles.length == 0) return; if (typeof(expandHiddenTemplates) == 'undefined') expandHiddenTemplates = {}; if (typeof(expandHiddenTemplates.addTab) == 'undefined') expandHiddenTemplates.addTab = false; if (typeof(expandHiddenTemplates.addToNavigation) == 'undefined') expandHiddenTemplates.addToNavigation = false; if (expandHiddenTemplates.addTab) mw.util.addPortletLink('p-cactions', 'javascript:expandHiddenTemplatesMain', 'Expand templates', 't-expand-hidden-templates', 'Expands or hides all collapsible templates'); if (expandHiddenTemplates.addToNavigation) mw.util.addPortletLink('p-navigation', 'javascript:expandHiddenTemplatesMain', 'Expand templates', 't-expand-hidden-templates', 'Expands or hides all collapsible templates'); if (!expandHiddenTemplates.addTab && !expandHiddenTemplates.addToNavigation) mw.util.addPortletLink('p-tb', 'javascript:expandHiddenTemplatesMain', 'Expand templates', 't-expand-hidden-templates', 'Expands or hides all collapsible templates'); } }

if (typeof(unsafeWindow) == 'undefined') $(expandHiddenTemplatesPortletLink); else expandHiddenTemplatesPortletLink;

if (typeof(unsafeWindow) != 'undefined') unsafeWindow.expandHiddenTemplatesMain = expandHiddenTemplatesMain;