User:Sreejithk2000/JustReplace.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at User:Sreejithk2000/JustReplace. |
- Report page listing warnings and errors.
mw.loader.using( 'mediawiki.util' ).done( function () {
mw.util.addPortletLink('p-cactions', 'javascript:JustReplace();', 'Global replace', 'ca-justreplace', null);
} );
function JustReplace() {
var currentFileName = mw.config.get("wgPageName").replace(/ /g, '_');
var $ReplaceContainer = $('<div>', {
id: 'ReplaceContainer'
});
$ReplaceContainer.append('<label for="ReplaceBy">Replace by</label>').append('<input type="text" id="ReplaceBy" style="width:97%;" value=' + currentFileName + '>');
$ReplaceContainer.append('<br><br>');
$ReplaceContainer.append('<input type="text" id="ReplaceReason" style="width:97%;" value = "' + (window.GlobalReplaceDefaultReason || '').replace(/\"/, """) + '">');
$ReplaceContainer.append('<br><br>');
$ReplaceContainer.append('<label for="ReplaceDelinkerOptOut">Do not use CommonsDelinker</label>').append('<input type="checkbox" id="ReplaceDelinkerOptOut">');
var dlgButtons = {};
dlgButtons['Submit'] = function() {
var newFileName = $ReplaceContainer.find('#ReplaceBy').val();
var replaceReason = $ReplaceContainer.find('#ReplaceReason').val();
// Checkboxes have a "value" but their value is pointless to us.
// We want to know whether it is checked:
var delinkerOptOut = $ReplaceContainer.find('#ReplaceDelinkerOptOut')[0].checked;
mw.loader.using('ext.gadget.libGlobalReplace', function() {
mw.libs.globalReplace(
currentFileName,
newFileName, "",
replaceReason, delinkerOptOut).fail(function(r) {
AjaxQuickDelete.showProgress(r);
}).done(function(r) {
window.location = window.location;
}).progress(function(r) {
AjaxQuickDelete.showProgress(r);
}).fail(function(err) {
AjaxQuickDelete.disableReport = true;
AjaxQuickDelete.fail(err);
});
});
$(this).dialog('close');
};
dlgButtons['Cancel'] = function() {
$(this).dialog('close');
};
var $submitButton, $cancelButton;
$('<div></div>').append($ReplaceContainer).dialog({
width: 600,
modal: true,
title: 'Just replace',
dialogClass: "wikiEditor-toolbar-dialog",
close: function() {
$(this).dialog("destroy");
$(this).remove();
},
buttons: dlgButtons,
open: function() {
// Look out for http://bugs.jqueryui.com/ticket/6830 / jQuery UI 1.9
var $buttons = $(this).parent().find('.ui-dialog-buttonpane button');
$submitButton = $buttons.eq(0).specialButton('proceed');
$cancelButton = $buttons.eq(1).specialButton('cancel');
}
});
}