Jump to content

User:Zyxw/SafetyEdit.js

From Wikipedia, the free encyclopedia
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.
// local copy of [[User:Equazcion/SafetyEdit.js]], updated to work on all pages

if (typeof sysopSafety == 'undefined') var sysopSafety = false;
 
if (  
    typeof wgAction !== 'undefined' &&  //  [[phab:T72470]]
	// Only activate on edits and only on protected pages
	(( wgAction == "edit" ) || ( wgAction == "submit" )) // &&
	// (( $.inArray("templateeditor", wgRestrictionEdit) > -1 ) || ((sysopSafety == true) && ( $.inArray("sysop", wgRestrictionEdit) > -1 )))
	){
 
	// Insert the checkbox
	$('#mw-editpage-watch').after('&#160;<input title="Enable the Save button" class="ruSure" type="checkbox"></input>&#160;<label style="color:#62090B;" title="Enable the Save button" for="ruSure">Enable save</label>');
 
	// Disable the save button on load
	$('input[name="wpSave"]').prop("disabled", true);
 
	// Set summary line to disable enter key saving when it recieves focus.
	// Unbinding on load doesn't work since MediaWiki JS will bind after this. 
	$('#wpSummary').focus(function(){
		$(this).unbind();
	});
 
	// Set the change function for the checkbox
	$('input.ruSure').change(function(){
		if ($(this).prop("checked")){
 
			// We use the name attribute so all potential save buttons (produced by other scripts etc) are affected
			$('input[name="wpSave"]').prop("disabled", false);
 
			// If checked, undo our summary line focus event from above 
			$('#wpSummary').unbind('focus');
 
			// Make enter key on summary line save again
			$('#wpSummary').keydown(function(event){
				if (event.keyCode == 13) {
					$('form#editform').submit();
					return false;
				}
			});
		} else {
			$('input[name="wpSave"]').prop("disabled", true);
 
			// Here we can just unbind without a focus event, because MediaWiki JS won't supercede us again
			$('#wpSummary').unbind();
		}
	});
}