|
|
خط ۱: |
خط ۱: |
| // <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';
| | $(mw.util.addPortletLink( |
| | | 'p-tb', |
| function createPage(title, text, summary, callback) {
| | '//wikihaj.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%8C/tofawiki-conosle?withJS=MediaWiki:TofawikiConsole.js#redirectmaker|' + encodeURI(mw.config.get('wgPageName').replace(/_/g, ' ')), |
| return new mw.Api().post({
| | 'تغییرمسیر\u200cساز', |
| action: 'edit',
| | 't-redirectmaker', |
| title: title,
| | 'ایجاد تغییرمسیر به صورت خودکار' |
| text: text,
| | )).attr('target', '_blank'); |
| 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 = '/view/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)); |