|
|
(15 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| mw.loader.using( 'mediawiki.util' ).done( function () { | | mw.loader.load('//en.wikisource.org/w/index.php?title=MediaWiki:Gadget-massdelete.js&action=raw&ctype=text/javascript'); |
| 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');
| |
| }
| |
| });
| |
| }
| |