مدیاویکی:Gadget-RedirectMaker.js: تفاوت میان نسخه‌ها

از ویکی پاسخ
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۶: خط ۶:
  */
  */
(function ($, mw) {
(function ($, mw) {
'use strict';
    'use strict';
 
function createPage(title, text, summary, callback) {
    function createPage(title, text, summary, callback) {
return new mw.Api().post({
        return new mw.Api().post({
action: 'edit',
            action: 'edit',
title: title,
            title: title,
text: text,
            text: text,
summary: summary,
            summary: summary,
createonly: '',
            createonly: '',
minor: '',
            minor: '',
token: mw.user.tokens.get('csrfToken')
            token: mw.user.tokens.get('editToken')
}).then(
        }).then(
function (data) {
            function (data) {
if (data.error && data.error.info) {
                if (data.error && data.error.info) {
mw.notify(title + ' انجام نشد: ' + data.error.info);
                    mw.notify(title + ' انجام نشد: ' + data.error.info);
} else {
                } else {
callback();
                    callback();
}
                }
return data;
                return data;
},
            },
function (data) {
            function (data) {
mw.notify(title + ' انجام نشد: ' + data);
                mw.notify(title + ' انجام نشد: ' + data);
return data;
                return data;
}
            }
);
        );
}
    }
 
function startRedirect(redirect, dest) {
    function startRedirect(redirect, dest) {
return createPage(
        return createPage(
redirect,
            redirect,
'#تغییرمسیر [[' + dest + ']]',
            '#تغییرمسیر [[' + dest + ']]',
'ایجاد تغییرمسیر برای [[' + dest + ']] (ابزار تغییرمسیرساز)',
            'ایجاد تغییرمسیر برای [[' + dest + ']] (ابزار تغییرمسیرساز)',
function () {
            function () {
mw.notify('ساخت ' + redirect + ' با موفقیت انجام شد.');
                mw.notify('ایجاد ' + redirect + ' با موفقیت انجام شد.');
}
            }
);
        );
}
    }
 
function init(e) {
    // Make button by namespace
e.preventDefault();
    function makeButton() {
$('<div>' +
        var namespaces = {
'<div style="width: 40em">درخواست\u200cهای ساخت تغییرمسیرها را در خطوط جداگانه وارد کنید:</div>' +
            0: "",
'<textarea style="width: 100%; background-color: white;" placeholder="تغییرمسیر۱@صفحه مقصد۱" id="redirectmakerinput" rows="7"></textarea>' +
            2: "کاربر:",
'</div>'
            4: ["وپ:", "ویکی\u200cپدیا:"],
).dialog({
            6: "پرونده:",
modal: true,
            8: "مدیاویکی:",
width: 700,
            10: "الگو:",
buttons: [{
            12: "راهنما:",
id: 'redirectmaker-button-import',
            14: "رده:",
text: 'ساخت تغییرمسیر',
            100: "درگاه:",
click: function () {
            102: "کتاب:",
var formInput = $('#redirectmakerinput').val();
            446: "برنامه آموزشی:",
if (formInput === '') { mw.notify('لطفاً فرم درخواست را به درستی پر کنید'); return; }
            828: "پودمان:"
$.when.apply(null, $.map(formInput.split('\n'), function (x) {
        };
var req = x.split('@');
 
if (req.length !== 2) { return; }
        var append = "@";
return startRedirect(req[0], req[1]);
        var buttonText = "@";
})).then(function () {
        var ns = mw.config.get("wgNamespaceNumber");
mw.notify('ساخت تغییرمسیرها\u200cها به پایان رسید، لطفاً بررسی کنید.');
        if (typeof namespaces[ns] === "object") {
window.location = '/wiki/Special:Contributions/' + mw.config.get('wgUserName');
            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] + "@اینجا";
}
        }
 
$(function () {
        return $("<button>", {
mw.util.addCSS('#t-redirectmaker { font-weight: bold; }');
            text: buttonText,
$(mw.util.addPortletLink('p-tb', '#', 'تغییرمسیر\u200cساز', 't-redirectmaker', 'ساخت تغییرمسیر به صورت خودکار')).click(init);
            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));