Difference between revisions of "MediaWiki:Common.js"
From OdleWiki
| Line 11: | Line 11: | ||
// var permittedGroups = [ "sysop", "bureaucrat"]; // permit sysop, bureaucrat | // var permittedGroups = [ "sysop", "bureaucrat"]; // permit sysop, bureaucrat | ||
// ------------------------------------------------------------------------------- | // ------------------------------------------------------------------------------- | ||
| − | var permittedGroups = []; | + | var permittedGroups = [ "sysop", "bureaucrat"]; |
Array.prototype.intersects = function() { | Array.prototype.intersects = function() { | ||
| Line 35: | Line 35: | ||
function forcePreview() { | function forcePreview() { | ||
| − | |||
if ( mw.config.get( "wgAction" ) != "edit" ) return; | if ( mw.config.get( "wgAction" ) != "edit" ) return; | ||
if ( mw.config.get( "wgUserGroups" ).intersects( permittedGroups ) ) return; | if ( mw.config.get( "wgUserGroups" ).intersects( permittedGroups ) ) return; | ||
Latest revision as of 00:12, 30 July 2012
/* Any JavaScript here will be loaded for all users on every page load. */
// -------------------------------------------------------------------------------
// 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 = [ "sysop", "bureaucrat"];
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
// -----------------------------------------------------
