مدیاویکی:Gadget-close.js

از اسلامیکال
نسخهٔ تاریخ ‏۱۳ ژانویهٔ ۲۰۲۳، ساعت ۰۴:۰۰ توسط Aboammar (بحث | مشارکت‌ها) (صفحه‌ای تازه حاوی «// <nowiki> ←‏global jQuery, mediaWiki: (function($, mw) { 'use strict'; var windowManager; var archiveSection; var commentInSection; var onlyTopSection; var archiveSectionOptions = { install: function() { var namespace = mw.config.get("wgNamespaceNumber"); if (namespace === 4 || namespace % 2 === 1) { if ($('.mw-editsection').length == 0) { return fa...» ایجاد کرد)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
// <nowiki>
/*global jQuery, mediaWiki */
(function($, mw) {
    'use strict';
    var windowManager;
    var archiveSection;
    var commentInSection;
    var onlyTopSection;
    var archiveSectionOptions = {
        install: function() {
            var namespace = mw.config.get("wgNamespaceNumber");
            if (namespace === 4 || namespace  % 2 === 1) {
            	if ($('.mw-editsection').length == 0) {
            		return false;
            	}
            	if (mw.config.get("wgPageName") === "ویکی‌پدیا:نظرخواهی_برای_حذف" |
            		mw.config.get("wgPageName") === "ویکی‌پدیا:آیا_می‌دانستید_که...؟/پیش‌نویس" |
            	    mw.config.get("wgPageName") === "ویکی‌پدیا:گزیدن_موضوعات_برگزیده") {
            		return false; // ابزار را باید در زیرصفحه‌های نبح استفاده کرد نه در خود نبح
            	}
                // افزودن دکمه به بخش آغازین
                if (
                	!$('.mw-editsection')[0]['innerHTML'].toString().match("ویرایش بخش آغازین") && // mediawiki:gadget-edittop.js is not active
                	mw.config.get("wgPageName").substr(0, 28) !== 'ویکی‌پدیا:نظرخواهی_برای_حذف/'
                ) { // نشان ندادن دکمه‌ها در بخش آغازین نبح‌ها برای جلوگیری از ثبت نظر در جای اشتباه
                    var our_content = $("#content, #mw_content").first();
                    var span1 = our_content.find("span.mw-editsection:not(.plainlinks)").first();
                    if (!span1.length) {
                        return;
                    }
                    var span0 = span1.clone();
                    $("#mw_header h1, #content h1").first().append(span0);
                    span0.find("a").each(function(idx) {
                        var a = $(this);
                        a.attr("title", 'ویرایش بخش آغازین');
                        if (!/&(ve|)section=T/.test(a.attr("href"))) { // not transcluded
                            a.attr("href", a.attr("href").replace(/&(ve|)section=\d+/, "&$1section=0&summary=/*%20بخش%20آغازین%20*/%20"));
                        } else if (/&vesection=/.test(a.attr("href"))) { // transcluded, VE
                            a.attr("href", mw.util.getUrl(mw.config.get('wgPageName')) + "?veaction=edit&vesection=0&summary=/*%20بخش%20آغازین%20*/%20");
                        } else { // transcluded, not VE
                            a.attr("href", mw.util.getUrl(mw.config.get('wgPageName')) + "?action=edit&section=0&summary=/*%20بخش%20آغازین%20*/%20");
                        }
                    });
                }
                // افزودن دکمه به زیربخش‌ها
                $('.mw-editsection').each(function() {
                    var section = '';
                    $(this).find('a').each(function() {
                        var m = $(this).attr('href').match(/section=(\d+)/);
                        if (m && m.length == 2 && section == '') {
                            section = $(this).attr('href');
                        }
                    });
                    var span = $('<span>', {
                        class: 'mw-archivesection'
                    }).insertAfter(this);
                    span.append($('<span>', {
                        class: 'mw-editsection-bracket',
                        text: '['
                    }));
                    span.append($('<a>', {
                        href: '#',
                        title: 'ثبت نظر (موافق/مخالف/شد/...)',
                        style: 'font-size: smaller;',
                        text: 'ثبت نظر',
                    }).click(function(e) {
                        e.preventDefault();
                        mw.loader.using(['oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']).done(function() {
                            archiveSectionOptions.createCommentWindow(section);
                        });
                    }));
                    span.append($('<span>', {
                        class: '',
                        text: ' / '
                    }));
                    span.append($('<a>', {
                        href: '#',
                        title: 'جمع‌بندی این بخش',
                        style: 'font-size: smaller;',
                        text: 'جمع‌بندی',
                    }).click(function(e) {
                        e.preventDefault();
                        mw.loader.using(['oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']).done(function() {
                            archiveSectionOptions.createArchiveWindow(section);
                        });
                    }));
                    span.append($('<span>', {
                        class: 'mw-editsection-bracket',
                        text: ']'
                    }));
                    // Late pre-loading
                    mw.loader.load(['oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows']);
                });
            }
        },
        createArchiveWindow: function(section) {
            var query = archiveSectionOptions.getQuery(section);
            archiveSectionOptions.currentSectionId = query.section;

            function ArchiveSection(config) {
                ArchiveSection.super.call(this, config);
            }
            OO.inheritClass(ArchiveSection, OO.ui.ProcessDialog);
            ArchiveSection.static.name = 'archive';
            ArchiveSection.static.title = 'جمع‌بندی بخش';
            ArchiveSection.static.actions = [{
                action: 'archive',
                label: 'جمع‌بندی',
                flags: 'primary'
            }, {
                label: 'لغو',
                flags: 'safe'
            }];
            ArchiveSection.prototype.initialize = function() {
                var fieldset = [];
                ArchiveSection.super.prototype.initialize.apply(this, arguments);
                this.panel = new OO.ui.PanelLayout({
                    padded: true,
                    expanded: false
                });
                this.content = new OO.ui.FieldsetLayout();
                archiveSectionOptions.switchTop = new OO.ui.ToggleSwitchWidget({
                    label: 'جمع‌بندی بالای متن باشد',
                    value: false,
                });
                archiveSectionOptions.switchSuccess = new OO.ui.ToggleSwitchWidget({
                    label: 'بحث در رسیدن به اجماع موفق بود',
                    value: true,
                });
                archiveSectionOptions.ActionDone = new OO.ui.ToggleSwitchWidget({
                    label: 'افزودن {{شد}} یا {{نشد}} به پایین بحث، بر پایهٔ موفق بودن یا نبودن',
                    value: false,
                });
                archiveSectionOptions.switchBold = new OO.ui.ToggleSwitchWidget({
                    label: 'متن جمع‌بندی ضخیم نمایش داده شود',
                    value: false,
                });
                archiveSectionOptions.textSummary = new OO.ui.MultilineTextInputWidget({
                    placeholder: 'متن جمع‌بندی را وارد کنید',
                    rows: 6,
                });
                //archiveSectionOptions.textSummary.setRTL(true);
                fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.switchTop, {
                    label: 'جمع‌بندی بالای متن باشد',
                    align: 'inline',
                }));
                fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.switchSuccess, {
                    label: 'بحث در رسیدن به اجماع موفق بود',
                    align: 'inline',
                }));
                fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.ActionDone, {
                    label: 'افزودن {{شد}} یا {{نشد}} به پایین بحث، بر پایهٔ موفق بودن یا نبودن',
                    align: 'inline',
                }));
                fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.switchBold, {
                    label: 'متن جمع‌بندی ضخیم نمایش داده شود',
                    align: 'inline',
                }));
                fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.textSummary, {
                    label: 'جمع‌بندی:',
                    align: 'top'
                }));
                this.content.addItems(fieldset);
                this.panel.$element.append(this.content.$element);
                this.$body.append(this.panel.$element);
            };
            ArchiveSection.prototype.getActionProcess = function(action) {
                var dialog = this;
                if (action === 'archive') {
                    archiveSectionOptions.doEdit(archiveSectionOptions.currentSectionId, action);
                }
                return ArchiveSection.super.prototype.getActionProcess.call(this, action);
            };
            if (!windowManager) {
                windowManager = new OO.ui.WindowManager();
                $('body').append(windowManager.$element);
            }
            if (!archiveSection) {
                archiveSection = new ArchiveSection({
                    size: 'medium'
                });
                windowManager.addWindows([archiveSection]);
            }
            windowManager.openWindow(archiveSection);
        },
        createCommentWindow: function(section) {
            var query = archiveSectionOptions.getQuery(section);
            archiveSectionOptions.currentSectionId = query.section;
            (new mw.Api()).get({
                format: 'json',
                action: 'query',
                titles: mw.config.get("wgPageName"),
                rvsection: query.section,
                prop: 'revisions',
                rvprop: 'content',
            }).then(function(data) {
                var page = data.query.pages[Object.keys(data.query.pages)[0]];
                var current = page.revisions[0]['*'];
                current=current.replace(/\= \=/gi,'==');
                current=current.replace(/\=([^\= \n\r]+) *\=/gi,'= $1 =');
                current=current.replace(/\={4,}/gi,'==');
                if (('\n' + current).split('\n==').length>3){
                    onlyTopSection=confirm('این بخش، زیربخش‌هایی هم دارد! برای ارسال متن آیا قسمت بالایی منظورتان است؟\nدکمهٔ Ok = پیام در بخش بالایی قرار گیرد.\nدکمهٔ Cancel = متن در انتها قرار گیرد.')
                    if (onlyTopSection){
                        if (!current.match('^\= ')){
                            current=current.split('\n===')[0]
                        }else{
                            current=current.split('\n==')[0]
                        }
                    }
                }
                function CommentInSection(config) {
                    CommentInSection.super.call(this, config);
                }
                OO.inheritClass(CommentInSection, OO.ui.ProcessDialog);
                CommentInSection.static.name = 'comment';
                CommentInSection.static.title = 'ثبت نظر';
                CommentInSection.static.actions = [{
                    action: 'comment',
                    label: 'ثبت نظر',
                    flags: 'primary'
                }, {
                    label: 'لغو',
                    flags: 'safe'
                }];
                CommentInSection.prototype.initialize = function() {
                    var fieldset = [];
                    CommentInSection.super.prototype.initialize.apply(this, arguments);
                    this.panel = new OO.ui.PanelLayout({
                        padded: true,
                        expanded: false
                    });
                    this.content = new OO.ui.FieldsetLayout();
                    var PingUsers = current.match(/\[\[(?:بحث[_ ]کاربر|[Uu]ser[_ ][tT]alk|کاربر|[Uu]ser)\:([^\]\\\/]+)\|(?:[^\]]+)\]\]/gi)
                    var uniqueNames = [];
                    $.each(PingUsers, function(i, el) {
                        var username = el.split('|')[0].split('/')[0].split('#')[0].split(':')[1];
                        if ($.inArray(username, uniqueNames) === -1 && username != mw.config.get('wgUserName')) {
                            uniqueNames.push(username);
                        }
                    });
                    var finallList = []
                    var i;
                    for (i = 0; i < uniqueNames.length; i++) {
                        finallList.push({
                            data: uniqueNames[i],
                            lable: 'کاربر:' + uniqueNames[i]
                        })
                    }
                    archiveSectionOptions.MultiselectPingUser = new OO.ui.MenuTagMultiselectWidget({
                        inputPosition: 'outline',
                        options: finallList,
                        placeholder: 'از اینجا نام کاربری که قصد پاسخ دارید، انتخاب کنید یا ابتدای نامش را بنویسید',
                        selected: []
                    });
                    archiveSectionOptions.sameIndent = new OO.ui.ToggleSwitchWidget({
                        label: 'پاسخ هم‌دندانه',
                        value: true,
                    });
                    archiveSectionOptions.radioComment = new OO.ui.RadioOptionWidget({
                        label: 'پیام',
                    });
                    archiveSectionOptions.radioDone = new OO.ui.RadioOptionWidget({
                        label: 'شد',
                    });
                    archiveSectionOptions.radioReject = new OO.ui.RadioOptionWidget({
                        label: 'نشد',
                    });
                    archiveSectionOptions.radioSupport = new OO.ui.RadioOptionWidget({
                        label: 'موافق',
                    });
                    archiveSectionOptions.radioOppose = new OO.ui.RadioOptionWidget({
                        label: 'مخالف',
                    });
                    archiveSectionOptions.radioDelete = new OO.ui.RadioOptionWidget({
                        label: 'حذف شود',
                    });
                    archiveSectionOptions.radioKeep = new OO.ui.RadioOptionWidget({
                        label: 'بماند',
                    });
                    fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.MultiselectPingUser, {
                        label: 'انتخاب کاربران شرکت‌کننده در بحث برای پاسخ (پینگ)',
                        align: 'inline',
                    }));


                    archiveSectionOptions.radioCommentType = new OO.ui.RadioSelectWidget({
                        items: [
                            archiveSectionOptions.radioComment,
                            archiveSectionOptions.radioDone,
                            archiveSectionOptions.radioReject,
                            archiveSectionOptions.radioSupport,
                            archiveSectionOptions.radioOppose,
                            archiveSectionOptions.radioDelete,
                            archiveSectionOptions.radioKeep
                        ]
                    });
                    archiveSectionOptions.editButton = new OO.ui.ButtonWidget({
                        label: 'ابرابزار',
                        flags: [
                            'primary',
                            'progressive'
                        ]
                    });
                    if (persianWikiTools) {
                        archiveSectionOptions.editButton.on('click', function() {

                            archiveSectionOptions.textComment.setValue(persianWikiTools.superTool(archiveSectionOptions.textComment.getValue()).trim())

                        });
                    } else {
                        archiveSectionOptions.editButton.setDisabled(true)
                    }


                    archiveSectionOptions.radioCommentType.selectItem(archiveSectionOptions.radioComment);
                    archiveSectionOptions.textComment = new OO.ui.MultilineTextInputWidget({
                        placeholder: 'متن نظر را وارد کنید',
                        rows: 6,
                    });
                    //archiveSectionOptions.textComment.setRTL(true);
                    fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.sameIndent, {
                        label: 'پاسخ به نفر قبلی (یک دندانه متن جلوتر برود)',
                        align: 'inline',
                    }));
                    fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.radioCommentType, {
                        label: 'برچسب قبل از نظر',
                        align: 'top'
                    }));
                    fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.editButton));
                    fieldset.push(new OO.ui.FieldLayout(archiveSectionOptions.textComment, {
                        label: 'متن نظر:',
                        align: 'top'
                    }));
                    this.content.addItems(fieldset);
                    this.panel.$element.append(this.content.$element);
                    this.$body.append(this.panel.$element);
                };
                CommentInSection.prototype.getActionProcess = function(action) {
                    var dialog = this;
                    if (action === 'comment') {
                        archiveSectionOptions.doEdit(archiveSectionOptions.currentSectionId, action);
                    }
                    return CommentInSection.super.prototype.getActionProcess.call(this, action);
                };
                if (!windowManager) {
                    windowManager = new OO.ui.WindowManager();
                    $('body').append(windowManager.$element);
                }
                if (!commentInSection) {
                    commentInSection = new CommentInSection({
                        size: 'medium'
                    });
                    windowManager.addWindows([commentInSection]);
                }
                windowManager.openWindow(commentInSection);
            });
        },
        getQuery: function(section) {
            var query = new mw.Uri(section).query;
            return query;
        },
        setIndentation: function(text, newText) {
            text = text.replace(/\r/g, '')
            var lines = text.split('\n');
            var lastline = lines[lines.length - 1];
            var colons = lastline.match('^([\#\*]?)(\:*)')
            var colonNum = colons[2].length;
            var colonType = colons[1];
            try {
                if (!archiveSectionOptions.sameIndent.getValue()) {
                    colonNum = colonNum - 1
                }
            }catch(err) {}
            var indentation = '';
            for (var i = 0; i < colonNum + 1; i++) {
                indentation += ':';
            }
            text = text + '\n' + colonType + indentation + newText.trim().replace(/\n/ig, '\n' + colonType + indentation).trim();
            return text
        },
        doEdit: function(sectionId, action) {
            (new mw.Api()).get({
                format: 'json',
                action: 'query',
                titles: mw.config.get("wgPageName"),
                rvsection: sectionId,
                prop: 'revisions',
                rvprop: 'content',
            }).then(function(data) {
                var page = data.query.pages[Object.keys(data.query.pages)[0]];
                var current = page.revisions[0]['*'];
                var header = current.substr(0, current.indexOf('\n'));
                var content = current.substr(current.indexOf('\n') + 1);
                var newText = '';
                var pingtxt = '';
                var section_title = (current.match(/^(=+)[^=]*?(\1)$/m) || [''])[0];
                section_title = section_title.replace(/\=/g, '');
                if (!section_title){
                    section_title='بخش آغازین'
                }
                var editSummary = '/' + '*' + section_title + '*' + '/ ';
                if (action == 'archive') {
                    editSummary += 'جمع‌بندی: ';
                    editSummary += archiveSectionOptions.textSummary.getValue();
                    newText = header + '\n';
                    // Per Special:Diff/18468612
                    if (mw.config.get("wgPageName") == "ویکی‌پدیا:درخواست_انتقال" || mw.config.get("wgPageName") == "ویکی‌پدیا:درخواست_ادغام_تاریخچه") {
                        if (archiveSectionOptions.switchSuccess.getValue()) {
                            content = content.replace(/\{\{وضعیت\|?\}\}/, '{{وضعیت|شد}}');
                        } else {
                            content = content.replace(/\{\{وضعیت\|?\}\}/, '{{وضعیت|نشد}}');
                        }
                    }
                    newText += '{{بسته|برچسب زمان={{subst:' + 'CURRENTTIMESTAMP}}';
                    if (archiveSectionOptions.switchSuccess.getValue()) {
                        newText += '}}\n';
                    } else {
                        newText += '|ناموفق=بله}}\n';
                    }
                    var summaryText = '';
                    var inputText=archiveSectionOptions.textSummary.getValue()
                    if (inputText|| archiveSectionOptions.ActionDone.getValue()) {
                        if (!inputText){
                            var inputText='';
                        }
                        if (archiveSectionOptions.ActionDone.getValue()){
                            if (archiveSectionOptions.switchSuccess.getValue()){
                                inputText='{{شد}}'+inputText
                            }else{
                                inputText='{{نشد}}'+inputText
                            }
                        }
                        if (archiveSectionOptions.switchBold.getValue()) {
                            summaryText = "'''"+inputText+"'''";
                        }else{
                            summaryText = inputText;
                        }
                        summaryText += ' ~~' + '~~\n';
                    }
                    if (!archiveSectionOptions.switchTop.getValue()) {
                        if (inputText) {
                            newText = archiveSectionOptions.setIndentation(newText + content, summaryText);
                        } else {
                            newText = newText + content;
                        }
                        if (newText.indexOf('{{بسته') > -1) newText += '\n{{پایان بسته}}';
                    } else {
                        if (inputText) {
                            newText += ':' + summaryText;
                        }
                        newText += content;
                        if (newText.indexOf('{{بسته') > -1) newText += '\n{{پایان بسته}}';
                    }

                    return (new mw.Api()).post({
                        format: 'json',
                        action: 'edit',
                        title: mw.config.get("wgPageName"),
                        section: sectionId,
                        summary: editSummary,
                        text: newText,
                        token: mw.user.tokens.get('csrfToken')
                    });
                } else {
                    var currentTxt = current.replace('\r', '')
                    var prefix = '';
                    if (currentTxt.search('\n*') > 0) {
                        prefix = '* ';
                    } else if (currentTxt.search('\n#') > 0) {
                        prefix = '# ';
                    } else {
                        prefix = '* ';
                    }
                    if (archiveSectionOptions.MultiselectPingUser.getValue()) {
                        var userlist = archiveSectionOptions.MultiselectPingUser.getValue()
                        var Pingtxt = '{{پینگ|' + userlist.join('|') + '}}'
                        var userTalkPage = mw.config.get("wgTitle")
                        Pingtxt = Pingtxt.replace('|' + userTalkPage + '}}', '|}}').replace('|' + userTalkPage + '|', '|')
                        var PingtxteditSummary = ' + پاسخ به کاربر:' + Pingtxt.replace('{{پینگ|', '').replace('}}', '').trim().replace(/\|/g, '، ')
                    } else {
                        var Pingtxt = ''
                    }
                    if (Pingtxt == '{{پینگ|}}') {
                        Pingtxt = ''
                        PingtxteditSummary = ''
                    }
                    if (archiveSectionOptions.radioDone.isSelected()) {
                        newText = Pingtxt + '{{شد}} ';
                        editSummary += 'انجام شد' + PingtxteditSummary;
                    } else if (archiveSectionOptions.radioComment.isSelected()) {
                        newText = Pingtxt + '';
                        editSummary += 'پیام' + PingtxteditSummary;
                    } else if (archiveSectionOptions.radioReject.isSelected()) {
                        newText = Pingtxt + '{{نشد}} ';
                        editSummary += 'انجام نشد' + PingtxteditSummary;
                    } else if (archiveSectionOptions.radioKeep.isSelected()) {
                        newText = prefix + Pingtxt + ' {{جا:بماند}} ';
                        editSummary += 'ثبت نظر بماند' + PingtxteditSummary;
                    } else if (archiveSectionOptions.radioDelete.isSelected()) {
                        newText = prefix + Pingtxt + ' {{جا:حذف}} ';
                        editSummary += 'ثبت نظر حذف شود' + PingtxteditSummary;
                    } else if (archiveSectionOptions.radioSupport.isSelected()) {
                        newText = prefix + Pingtxt + ' {{موافق}} ';
                        editSummary += 'ثبت نظر موافق' + PingtxteditSummary;
                    } else {
                        newText = prefix + Pingtxt + ' {{مخالف}} ';
                        editSummary += 'ثبت نظر مخالف' + PingtxteditSummary;
                    }
                    newText += archiveSectionOptions.textComment.getValue();
                    newText += ' ~~' + '~~';
                    if (onlyTopSection){
                            if (!current.match('^\= ')){
                                var topCurrent=current.split('\n===')[0]
                            }else{
                                var topCurrent=current.split('\n==')[0]
                            }
                    }
                    if (archiveSectionOptions.radioSupport.isSelected() ||
                        archiveSectionOptions.radioOppose.isSelected() ||
                        archiveSectionOptions.radioDelete.isSelected() ||
                        archiveSectionOptions.radioKeep.isSelected()) {
                        if (onlyTopSection){
                            newText=current.replace(topCurrent,topCurrent+'\n'+newText)
                        }else{
                            newText = current + '\n' + newText;
                        }
                    } else {
                        if (onlyTopSection){
                            var topCurrentWithIndent = archiveSectionOptions.setIndentation(topCurrent, newText);
                            newText=current.replace(topCurrent,topCurrentWithIndent)
                        }else{
                            newText = archiveSectionOptions.setIndentation(current, newText);
                        }
                    }

                    return (new mw.Api()).post({
                        format: 'json',
                        action: 'edit',
                        title: mw.config.get("wgPageName"),
                        section: sectionId,
                        summary: editSummary,
                        text: newText,
                        token: mw.user.tokens.get('csrfToken')
                    });
                }
            }).then(function() {
                if (action == 'archive') {
                    mw.notify('در حال ثبت جمع‌بندی شما ...');
                } else {
                    mw.notify('در حال ثبت نظر شما ...');
                }
                if (sectionId == 0) {
                    sectionId = 1
                }
                location.hash = $('.mw-headline')[sectionId - 1].id;
                location.reload(true);
            }, function(error) {
                mw.notify('ثبت نظر یا جمع‌بندی ناموفق بود: ' + error, {
                    type: 'error'
                });
            })
        },
        currentSectionId: -1,
    };
    if (mw.config.get('wgNamespaceNumber') >= 0) {
        $(archiveSectionOptions.install);
    }
})(jQuery, mediaWiki);
// </nowiki>