مدیاویکی:Gadget-RedirectMaker.js: تفاوت میان نسخهها
Nazarzadeh (بحث | مشارکتها) (جایگزینی صفحه با '(function ($, mw) { $(mw.util.addPortletLink( 'p-tb', '//fa.wikipasokh.com/view/%D9%88%DB%8C%DA%98%D9%87:%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%AE%D8%A7%D9%84%DB...') برچسب: جایگزین شد |
Nazarzadeh (بحث | مشارکتها) بدون خلاصۀ ویرایش |
||
خط ۱: | خط ۱: | ||
// <nowiki> // DO NOT REMOVE THIS LINE EVER | |||
/*jslint browser: true, white: true*/ | |||
/*global mediaWiki, jQuery*/ | |||
/*! | |||
* @author User:Ebraminio, User:Yamaha5 | |||
*/ | |||
(function ($, mw) { | (function ($, mw) { | ||
'use strict'; | |||
function createPage(title, text, summary, callback) { | |||
return new mw.Api().post({ | |||
action: 'edit', | |||
title: title, | |||
text: text, | |||
summary: summary, | |||
createonly: '', | |||
minor: '', | |||
token: mw.user.tokens.get('editToken') | |||
}).then( | |||
function (data) { | |||
if (data.error && data.error.info) { | |||
mw.notify(title + ' انجام نشد: ' + data.error.info); | |||
} else { | |||
callback(); | |||
} | |||
return data; | |||
}, | |||
function (data) { | |||
mw.notify(title + ' انجام نشد: ' + data); | |||
return data; | |||
} | |||
); | |||
} | |||
function startRedirect(redirect, dest) { | |||
return createPage( | |||
redirect, | |||
'#تغییرمسیر [[' + dest + ']]', | |||
'ایجاد تغییرمسیر برای [[' + dest + ']] (ابزار تغییرمسیرساز)', | |||
function () { | |||
mw.notify('ایجاد ' + redirect + ' با موفقیت انجام شد.'); | |||
} | |||
); | |||
} | |||
// Make button by namespace | |||
function makeButton() { | |||
var namespaces = { | |||
0: "", | |||
2: "کاربر:", | |||
4: ["وپ:", "ویکی\u200cپدیا:"], | |||
6: "پرونده:", | |||
8: "مدیاویکی:", | |||
10: "الگو:", | |||
12: "راهنما:", | |||
14: "رده:", | |||
100: "درگاه:", | |||
102: "کتاب:", | |||
446: "برنامه آموزشی:", | |||
828: "پودمان:" | |||
}; | |||
var append = "@"; | |||
var buttonText = "@"; | |||
var ns = mw.config.get("wgNamespaceNumber"); | |||
if (typeof namespaces[ns] === "object") { | |||
append = namespaces[ns][0] + "@" + namespaces[ns][1] + mw.config.get("wgTitle"); | |||
buttonText = namespaces[ns][0] + "@اینجا"; | |||
} else if (typeof namespaces[ns] === "string") { | |||
append = namespaces[ns] + "@" + namespaces[ns] + mw.config.get("wgTitle"); | |||
buttonText = namespaces[ns] + "@اینجا"; | |||
} | |||
return $("<button>", { | |||
text: buttonText, | |||
style: "position: absolute; left: 1em;", | |||
class: "mw-ui-button mw-ui-constructive" | |||
}).click(function () { | |||
var value = $("#redirectmakerinput").val().trim(); | |||
if (value !== '') | |||
value = value + '\n'; | |||
value = value + append; | |||
$("#redirectmakerinput").val(value).focus(); | |||
}); | |||
} | |||
function init(e) { | |||
e.preventDefault(); | |||
$('<div>' + | |||
'<div style="width: 40em">تغییرمسیرها را در خط\u200cهای جداگانه در جعبهٔ زیر وارد کنید:</div>' + | |||
'<textarea style="width: 100%; background-color: white; resize:vertical; padding-left: 50px;" placeholder="مبدأ@مقصد" id="redirectmakerinput" rows="7"></textarea>' + | |||
'</div>' | |||
).dialog({ | |||
title: "ابزار ایجاد تغییرمسیر", | |||
modal: true, | |||
width: 700, | |||
open: function () { | |||
$("#redirectmakerinput").before(makeButton()); | |||
}, | |||
buttons: [{ | |||
id: 'redirectmaker-button-import', | |||
text: 'ایجاد تغییرمسیر', | |||
click: function () { | |||
var formInput = $('#redirectmakerinput').val(); | |||
if (formInput === '') { | |||
mw.notify('لطفاً فرم درخواست را به درستی پر کنید'); | |||
return; | |||
} | |||
$.when.apply(null, $.map(formInput.split('\n'), function (x) { | |||
var req = x.split('@'); | |||
if (req.length !== 2) { | |||
return; | |||
} | |||
return startRedirect(req[0], req[1]); | |||
})).then(function () { | |||
mw.notify('ایجاد تغییرمسیرها\u200cها به پایان رسید، لطفاً بررسی کنید.'); | |||
window.location = '/wiki/Special:Contributions/' + mw.config.get('wgUserName'); | |||
}); | |||
} | |||
}], | |||
close: function () { | |||
$(this).remove(); | |||
} | |||
}); | |||
} | |||
$(function () { | |||
//mw.util.addCSS('#t-redirectmaker { font-weight: bold; }'); | |||
$(mw.util.addPortletLink('p-tb', '#', 'تغییرمسیر\u200cساز', 't-redirectmaker', 'ایجاد تغییرمسیر به صورت خودکار')).click(init); | |||
}); | |||
}(jQuery, mediaWiki)); | }(jQuery, mediaWiki)); |
نسخهٔ ۵ اکتبر ۲۰۲۰، ساعت ۱۶:۰۰
// <nowiki> // DO NOT REMOVE THIS LINE EVER
/*jslint browser: true, white: true*/
/*global mediaWiki, jQuery*/
/*!
* @author User:Ebraminio, User:Yamaha5
*/
(function ($, mw) {
'use strict';
function createPage(title, text, summary, callback) {
return new mw.Api().post({
action: 'edit',
title: title,
text: text,
summary: summary,
createonly: '',
minor: '',
token: mw.user.tokens.get('editToken')
}).then(
function (data) {
if (data.error && data.error.info) {
mw.notify(title + ' انجام نشد: ' + data.error.info);
} else {
callback();
}
return data;
},
function (data) {
mw.notify(title + ' انجام نشد: ' + data);
return data;
}
);
}
function startRedirect(redirect, dest) {
return createPage(
redirect,
'#تغییرمسیر [[' + dest + ']]',
'ایجاد تغییرمسیر برای [[' + dest + ']] (ابزار تغییرمسیرساز)',
function () {
mw.notify('ایجاد ' + redirect + ' با موفقیت انجام شد.');
}
);
}
// Make button by namespace
function makeButton() {
var namespaces = {
0: "",
2: "کاربر:",
4: ["وپ:", "ویکی\u200cپدیا:"],
6: "پرونده:",
8: "مدیاویکی:",
10: "الگو:",
12: "راهنما:",
14: "رده:",
100: "درگاه:",
102: "کتاب:",
446: "برنامه آموزشی:",
828: "پودمان:"
};
var append = "@";
var buttonText = "@";
var ns = mw.config.get("wgNamespaceNumber");
if (typeof namespaces[ns] === "object") {
append = namespaces[ns][0] + "@" + namespaces[ns][1] + mw.config.get("wgTitle");
buttonText = namespaces[ns][0] + "@اینجا";
} else if (typeof namespaces[ns] === "string") {
append = namespaces[ns] + "@" + namespaces[ns] + mw.config.get("wgTitle");
buttonText = namespaces[ns] + "@اینجا";
}
return $("<button>", {
text: buttonText,
style: "position: absolute; left: 1em;",
class: "mw-ui-button mw-ui-constructive"
}).click(function () {
var value = $("#redirectmakerinput").val().trim();
if (value !== '')
value = value + '\n';
value = value + append;
$("#redirectmakerinput").val(value).focus();
});
}
function init(e) {
e.preventDefault();
$('<div>' +
'<div style="width: 40em">تغییرمسیرها را در خط\u200cهای جداگانه در جعبهٔ زیر وارد کنید:</div>' +
'<textarea style="width: 100%; background-color: white; resize:vertical; padding-left: 50px;" placeholder="مبدأ@مقصد" id="redirectmakerinput" rows="7"></textarea>' +
'</div>'
).dialog({
title: "ابزار ایجاد تغییرمسیر",
modal: true,
width: 700,
open: function () {
$("#redirectmakerinput").before(makeButton());
},
buttons: [{
id: 'redirectmaker-button-import',
text: 'ایجاد تغییرمسیر',
click: function () {
var formInput = $('#redirectmakerinput').val();
if (formInput === '') {
mw.notify('لطفاً فرم درخواست را به درستی پر کنید');
return;
}
$.when.apply(null, $.map(formInput.split('\n'), function (x) {
var req = x.split('@');
if (req.length !== 2) {
return;
}
return startRedirect(req[0], req[1]);
})).then(function () {
mw.notify('ایجاد تغییرمسیرها\u200cها به پایان رسید، لطفاً بررسی کنید.');
window.location = '/wiki/Special:Contributions/' + mw.config.get('wgUserName');
});
}
}],
close: function () {
$(this).remove();
}
});
}
$(function () {
//mw.util.addCSS('#t-redirectmaker { font-weight: bold; }');
$(mw.util.addPortletLink('p-tb', '#', 'تغییرمسیر\u200cساز', 't-redirectmaker', 'ایجاد تغییرمسیر به صورت خودکار')).click(init);
});
}(jQuery, mediaWiki));