Difference between revisions of "MediaWiki:Common.js"
From Medical Billing Wiki - Medical Billing and Coding Dictionary
Omgbilling (Talk | contribs) |
Omgbilling (Talk | contribs) |
||
Line 62: | Line 62: | ||
addOnloadHook( CustomizeModificationsOfSidebar ); | addOnloadHook( CustomizeModificationsOfSidebar ); | ||
+ | |||
+ | // ------------------------------------------------------------------------------- | ||
+ | // Force Preview JavaScript code - Start | ||
+ | // | ||
+ | // To allow any group to bypass being forced to preview, | ||
+ | // enter the group name in the permittedGroups array. | ||
+ | // E.g. | ||
+ | // var permittedGroups = []; // force everyone | ||
+ | // var permittedGroups = [ "user"]; // permit logged-in users | ||
+ | // var permittedGroups = [ "sysop", "bureaucrat"]; // permit sysop, bureaucrat | ||
+ | // ------------------------------------------------------------------------------- | ||
+ | var permittedGroups = []; | ||
+ | |||
+ | Array.prototype.intersects = function() { | ||
+ | // -------------------------------------------------------- | ||
+ | // Returns true if any element in the argument array | ||
+ | // is the same as an element in this array | ||
+ | // -------------------------------------------------------- | ||
+ | if ( !arguments.length ) return false; | ||
+ | |||
+ | var array2 = arguments[0]; | ||
+ | |||
+ | var len1 = this.length; | ||
+ | var len2 = array2.length; | ||
+ | if ( len2 == 0 ) return false; | ||
+ | |||
+ | for ( var i = 0; i < len1; i++ ) { | ||
+ | for ( var j = 0; j < len2; j++ ) { | ||
+ | if ( this[i] === array2[j] ) return true; | ||
+ | } | ||
+ | } | ||
+ | return false; | ||
+ | }; | ||
+ | |||
+ | function forcePreview() { | ||
+ | if ( mw.config.get( "wgAction" ) != "edit" ) return; | ||
+ | if ( mw.config.get( "wgUserGroups" ).intersects( permittedGroups ) ) return; | ||
+ | var saveButton = document.getElementById( "wpSave" ); | ||
+ | if ( !saveButton ) return; | ||
+ | saveButton.disabled = true; | ||
+ | saveButton.value = "Save page (use preview first)"; | ||
+ | saveButton.style.fontWeight = "normal"; | ||
+ | document.getElementById("wpPreview").style.fontWeight = "bold"; | ||
+ | } | ||
+ | |||
+ | jQuery(document).ready( forcePreview ); | ||
+ | // ----------------------------------------------------- | ||
+ | // Force Preview JavaScript code - End | ||
+ | // ----------------------------------------------------- |
Revision as of 09:33, 3 December 2014
/* Any JavaScript here will be loaded for all users on every page load. */ function ModifySidebar( action, section, name, link ) { try { switch ( section ) { case 'languages': var target = 'p-lang'; break; case 'toolbox': var target = 'p-tb'; break; case 'navigation': var target = 'p-navigation'; break; default: var target = 'p-' + section; break; } if ( action == 'add' ) { var node = document.getElementById( target ) .getElementsByTagName( 'div' )[0] .getElementsByTagName( 'ul' )[0]; var aNode = document.createElement( 'a' ); var liNode = document.createElement( 'li' ); aNode.appendChild( document.createTextNode( name ) ); aNode.setAttribute( 'href', link ); liNode.appendChild( aNode ); liNode.className = 'plainlinks'; node.appendChild( liNode ); } if ( action == 'remove' ) { var list = document.getElementById( target ) .getElementsByTagName( 'div' )[0] .getElementsByTagName( 'ul' )[0]; var listelements = list.getElementsByTagName( 'li' ); for ( var i = 0; i < listelements.length; i++ ) { if ( listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name || listelements[i].getElementsByTagName( 'a' )[0].href == link ) { list.removeChild( listelements[i] ); } } } } catch( e ) { // let's just ignore what's happened return; } } function CustomizeModificationsOfSidebar() { ModifySidebar( 'remove', 'toolbox', 'Special pages', 'http://medicalbilling.wiki/index.php?title=Special:SpecialPages' ); } addOnloadHook( CustomizeModificationsOfSidebar ); // ------------------------------------------------------------------------------- // Force Preview JavaScript code - Start // // To allow any group to bypass being forced to preview, // enter the group name in the permittedGroups array. // E.g. // var permittedGroups = []; // force everyone // var permittedGroups = [ "user"]; // permit logged-in users // var permittedGroups = [ "sysop", "bureaucrat"]; // permit sysop, bureaucrat // ------------------------------------------------------------------------------- var permittedGroups = []; Array.prototype.intersects = function() { // -------------------------------------------------------- // Returns true if any element in the argument array // is the same as an element in this array // -------------------------------------------------------- if ( !arguments.length ) return false; var array2 = arguments[0]; var len1 = this.length; var len2 = array2.length; if ( len2 == 0 ) return false; for ( var i = 0; i < len1; i++ ) { for ( var j = 0; j < len2; j++ ) { if ( this[i] === array2[j] ) return true; } } return false; }; function forcePreview() { if ( mw.config.get( "wgAction" ) != "edit" ) return; if ( mw.config.get( "wgUserGroups" ).intersects( permittedGroups ) ) return; var saveButton = document.getElementById( "wpSave" ); if ( !saveButton ) return; saveButton.disabled = true; saveButton.value = "Save page (use preview first)"; saveButton.style.fontWeight = "normal"; document.getElementById("wpPreview").style.fontWeight = "bold"; } jQuery(document).ready( forcePreview ); // ----------------------------------------------------- // Force Preview JavaScript code - End // -----------------------------------------------------