Qeyd: Dəyişiklikləri yayımladıqdan sonra etdiyiniz dəyişikliklərin görünməsi üçün brauzerinizin keşinin təmizlənməsi lazım ola bilər.

  • Firefox / Safari: Reload düyməsinə basılı tutarkən Shift düyməsinə basın, və ya Ctrl+F5 və ya Ctrl+R (Mac üçün ⌘-R )
  • Google Chrome: Ctrl-Shift-R (Mac üçün ⌘-Shift-R)
  • Edge: Ctrl düyməsini basılı tutarkən Refresh düyməsinə basın, və ya sadəcə Ctrl+F5.
/* <nowiki> */
$(function() {
    if (mw.config.get("wgPageName") !== "Vikipediya:Qiymətləndirmə") {
        return;
    }

    mw.loader.using([
        "mediawiki.api",
        "mediawiki.widgets",
        "mediawiki.util",
        "oojs-ui-core",
        "oojs-ui-windows",
    ]).then(function() {
        var api = new mw.Api();
        var requestPageTitle = "Vikipediya:Qiymətləndirmə";
        var articleNameInput,
            contributorNameInput,
            radioSelect,
            radioSelectedValue;

        function ArticleStatusDialog(config) {
            ArticleStatusDialog.super.call(this, config);
        }
        OO.inheritClass(ArticleStatusDialog, OO.ui.ProcessDialog);
        ArticleStatusDialog.static.name = "articleStatusDialog";
        ArticleStatusDialog.static.title = "Qiymətləndirmə";
        ArticleStatusDialog.static.actions = [{
                action: "save",
                label: "Təqdim et",
                flags: ["primary", "progressive"],
            },
            {
                label: "İmtina",
                flags: "safe"
            },
        ];
        ArticleStatusDialog.prototype.initialize = function() {
            ArticleStatusDialog.super.prototype.initialize.apply(this, arguments);
            var headerTitle = new OO.ui.MessageWidget({
                type: "notice",
                inline: true,
                label: new OO.ui.HtmlSnippet(
                    '<small>Aşağıdakı formanı dolduraraq səhifəyə müvafiq statusun verilməsi üçün qiymətləndirməyə təqdim edə bilərsiniz.<br>Daxili keçidlərə, şablonlara ehtiyac yoxdur.<br><span color:red;>Səhifəni təqdim etdikdən sonra müzakirənin qiymətləndirmə səhifəsindəki düzgün başlığa yerləşdirildiyindən əmin olun.</span></small>'
                ),
            });
            articleNameInput = new OO.ui.TextInputWidget({
                showMissing: false,
                required: true,
                placeholder: "Səhifənin adını daxil edin (keçidsiz)",
            });
            contributorNameInput = new OO.ui.TextInputWidget({
                showMissing: false,
                required: true,
                placeholder: "İstifadəçinin adını daxil edin (keçidsiz)",
            });
            var fieldset = new OO.ui.FieldsetLayout();
            fieldset.addItems([
                new OO.ui.FieldLayout(articleNameInput, {
                    label: "Səhifənin adı:",
                    align: "top",
                }),
                new OO.ui.FieldLayout(contributorNameInput, {
                    label: "İstifadəçinin adı:",
                    align: "top",
                }),
            ]);

            // Səhifə statusları
            var options = [
                { data: "sm", label: "Seçilmiş məqalə" },
                { data: "ym", label: "Yaxşı məqalə" },
                { data: "ss", label: "Seçilmiş siyahı" },
            ];
            radioSelect = new OO.ui.RadioSelectWidget({
                items: options.map(function(option) {
                    return new OO.ui.RadioOptionWidget(option);
                }),
            });

            this.content = new OO.ui.PanelLayout({
                padded: true,
                expanded: false,
            });
            this.content.$element.append(
                headerTitle.$element,
                "<br><hr><br>",
                fieldset.$element,
                radioSelect.$element
            );
            this.$body.append(this.content.$element);
        };
        
        function formatContributorNames(names) {
	        var nameList = names.split(",").map(function(name) {
	            return name.trim();
	        });
	
	        return nameList.map(function(name) {
	            return "{{istifadəçi|" + name + "}}";
	        }).join(", ");
	    }
        
        ArticleStatusDialog.prototype.getActionProcess = function(action) {
            var dialog = this;
            if (action) {
                return new OO.ui.Process(function() {
                    if (!articleNameInput.getValue()) {
                        mw.notify("Səhifənin adını qeyd etməlisiniz!", {type: "error",});
                        return;
                    }
                    if (!contributorNameInput.getValue()) {
                        mw.notify("İstifadəçinin adını qeyd etməlisiniz!", {type: "error",});
                        return;
                    }
                    if (!radioSelect.findSelectedItem()) {mw.notify("Statusu seçməlisiniz!", {type: "error"});
                        return;
                    }

                    var articleName = articleNameInput.getValue();
                    var contributorName = formatContributorNames(contributorNameInput.getValue());

                    if (!articleName.includes("[[")) {
                        articleName = "[[" + articleName + "]]";
                    }

                    radioSelectedValue = radioSelect.findSelectedItem().getData();
                    var editPage;

                    if (radioSelectedValue === "sm") {
                        editPage = "Vikipediya:Qiymətləndirmə/sm";
                    } else if (radioSelectedValue === "ym") {
                        editPage = "Vikipediya:Qiymətləndirmə/ym";
                    } else if (radioSelectedValue === "ss") {
                        editPage = "Vikipediya:Qiymətləndirmə/ss";
                    }

                    api.edit(editPage, function() {
                        return {
                            text: radioSelectedValue === "sm" ?
                                "Seçilmiş məqalə" : radioSelectedValue === "ym" ?
                                "Yaxşı məqalə" : "Seçilmiş siyahı",
                        };
                    });

                    api.edit(requestPageTitle, function() {
                            return {
                                appendtext: "\n\n" + addArticleDiscussion(),
                                summary: "Yeni səhifə əlavə edildi: " + articleName,
                            };
                        }).then(function() {
                            addToNominations(articleName);
                            window.location.href = getStatusPage(radioSelectedValue) + articleName;
                        });
                    dialog.close({action: action});
                    mw.notify("Səhifə uğurla əlavə edildi! Zəhmət olmasa, gözləyin.", {
                        type: "success",
                    });
                });
            }
            return ArticleStatusDialog.super.prototype.getActionProcess.call(this, action);
        };

        var windowManager = new OO.ui.WindowManager();
        $(document.body).append(windowManager.$element);
        var dialog = new ArticleStatusDialog();
        windowManager.addWindows([dialog]);
        windowManager.openWindow(dialog);

        function addArticleDiscussion() {
            var articleName = articleNameInput.getValue();
            var contributorName = formatContributorNames(contributorNameInput.getValue());
            if (!articleName.includes("[[") && !articleName.includes("]]")) {
                articleName = "[[" + articleName + "]]";
            }

            var outputText = "== " + articleName + " ==\n";
            outputText += ": {{kiçik|'''Məqalə üzərində işləyən(lər):''' " + contributorName + "}}\n";
            outputText += ": {{kiçik|'''Təqdim olunduğu tarix:''' {{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}" + "}}\n";
            outputText += ": {{kiçik|'''İcraçı:'''}}" + '<span style="font-size:85%">~~~</span>\n';
            outputText += "<!-- Şərhlərinizi bu sətirdən aşağıda qeyd edin -->" + '\n';

            api.postWithToken("csrf", {
                    action: "edit",
                    title: getStatusPage(radioSelectedValue) + "/" + articleNameInput.getValue(),
                    appendtext: outputText,
                    summary: articleName + " əlavə edilir",
                    format: "json",
                }).done(function() {
                    addToNominations(articleName);
                });
        }

        function getStatusPage(status) {
            var pages = {
                ym: "Vikipediya:Yaxşı_məqalələr",
                sm: "Vikipediya:Seçilmiş_məqalələr",
                ss: "Vikipediya:Seçilmiş_siyahılar",
            };
            return pages[status];
        }

        function addToNominations(articleName) {
            if (!articleName.includes("[[") && !articleName.includes("]]")) {
                articleName = "[[" + articleName + "]]";
            }
            api.postWithToken("csrf", {
                    action: "edit",
                    title: getStatusPage(radioSelectedValue),
                    appendtext: "\n{{/" + articleNameInput.getValue() + "}}",
                    summary: articleName + " əlavə edilir",
                    format: "json",
            }).done(function() {
					window.location = '/wiki/' + getStatusPage(radioSelectedValue) + '/' + articleNameInput.getValue();
			});
        }
    });
});
/* </nowiki> */