User:Awesome Aasim/editrequest.js/stable.js

Source: Wikipedia, the free encyclopedia.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* FUNCTION DEFINITIONS */
//<nowiki>
AER.pages = [];
AER.requestPages = ["Category:Wikipedia_semi-protected_edit_requests", "Category:Wikipedia_extended-confirmed-protected_edit_requests", "Category:Wikipedia_template-protected_edit_requests", "Category:Wikipedia_fully-protected_edit_requests", "Category:Wikipedia_interface-protected_edit_requests"];
AER.pageCounter = 0;
AER.currentPage = "";
AER.currentTalkPage = "";
AER.wikitext = "";
AER.disableEditor = function() {
    $("#edit-editarea").prop("disabled", true);
    $("#edit-editsummary").prop("disabled", true);
    $("#edit-cancel").prop("disabled", true);
    $("#edit-previewbutton").prop("disabled", true);
    $("#edit-submit").prop("disabled", true);
};
AER.enableEditor = function() {
    $("#edit-editarea").prop("disabled", false);
    $("#edit-editsummary").prop("disabled", false);
    $("#edit-cancel").prop("disabled", false);
    $("#edit-previewbutton").prop("disabled", false);
    $("#edit-submit").prop("disabled", false);
};
AER.editForm = function(d, p, _then) {
    $(".editpage").prop("disabled", true);
    $(d).removeAttr('style');
    var revert = $(d).html();
    $(d).html("<p><b>Loading editor...</b></p>");
    $.get(mw.config.get('wgScriptPath') + '/api.php', {
        "action": "query",
        "format": "json",
        "meta": "tokens",
        "type": "csrf"
    }).done(function (r) {
    	$.get(mw.config.get('wgScriptPath') + '/api.php', {
	        "action": "parse",
	        "format": "json",
	        "prop": "wikitext",
	        "page": AER.currentPage,
	        "type": "csrf"
    	}).done(function(wt) {
    		if (wt.error) {
    			if (wt.error.code == "missingtitle") {
    				AER.wikitext = "";
    			} else {
    				alert("Error while loading editor:  " + wt.error);
    				location.reload();
    			}
    		} else {
    			AER.wikitext = wt.parse.wikitext["*"];
    			$(d).text("");
		        $('<form id="AEReditform"></form>').appendTo(d);
		        $('<p><a title="Full editor" target="_blank" href="/w/index.php?title=' + p + '&action=edit">Full editor</a></p>').appendTo("#AEReditform");
		        $('<textarea id="edit-editarea"/>').val(AER.wikitext).appendTo("#AEReditform").css({ "height": "500px", "overflow": "auto" });
		        $('<br>').appendTo("#AEReditform");
		        $('<p></p>').html('Edit summary:  Processing edit requests with [[User:Awesome Aasim/editrequest|AER tool]]: ').append($('<input id="edit-editsummary" placeholder="Additional description of edit">').val("")).appendTo("#AEReditform");
		        $('<span id="edit-summary"></span>').appendTo("#AEReditform");
		        $('<br>').appendTo("#AEReditform");
		        $('<button id="edit-cancel">Cancel</button>').click(function (_e) {
		            $(".editpage").prop("disabled", false);
		            $(d).css({ "width": "100%", "height": "500px", "overflow": "auto" });
		            $(d).html(revert);
		        }).css({ "margin-right": "5px", "margin-left": "1px" }).addClass("mw-ui-button").addClass("mw-ui-destructive").appendTo("#AEReditform");
		        $('<button id="edit-previewbutton">Preview</button>').click(function (_e) {
		            AER.disableEditor();
		            $.get(mw.config.get('wgScriptPath') + '/api.php', {
		                "action": 'parse',
		                "prop": 'text',
		                "pst": 'true',  // PST = pre-save transform; this makes substitution work properly
		                "text": $("#edit-editarea").val(),
		                "summary": "Processing edit requests with [[User:Awesome Aasim/editrequest|AER tool]]" + (($("#edit-editsummary").val().length > 0) ? ": " + $("#edit-editsummary").val() : ""),
		                "format": "json",
		                "title": p
		            }).done(function (r) {
		                console.log(r);
		                if (r.error) {
		                    console.error(r.error);
		                } else {
		                    $("#edit-preview").html(r.parse.text["*"]);
		                    $("#edit-summary").html(r.parse.parsesummary["*"]);
		                }
		                AER.enableEditor();
		            }).fail(function (_r) {
		                $("#edit-preview").html("<span class=\"error\">Could not parse preview.  Please check your edit carefully.  If in doubt, use the full editor.</span>");
		                AER.enableEditor();
		            });
		        }).css({ "margin-right": "5px", "margin-left": "1px" }).addClass("mw-ui-button").appendTo("#AEReditform");
		        $('<button id="edit-submit">Save</button>').click(function (_e) {
		            AER.disableEditor();
		            $.post(mw.config.get("wgScriptPath") + '/api.php', {
		                "action": "edit",
		                "format": "json",
		                "title": p,
		                "text": $("#edit-editarea").val(),
		                "summary": "Processing edit requests with [[User:Awesome Aasim/editrequest|AER tool]]" + (($("#edit-editsummary").val().length > 0) ? ": " + $("#edit-editsummary").val() : ""),
		                "token": r.query.tokens.csrftoken
		            }).done(function (h) {
		                if (h.error) {
		                    $("<p><b><span style=\"color:red;\"></span></b></p>").text(h.error.info).appendTo(d);
		                } else if (h.edit.nochange == "") {
		                    $(".editpage").prop("disabled", false);
		                    $(d).css({ "width": "100%", "height": "500px", "overflow": "auto" });
		                    $(d).html(revert);
		                } else {
		                    $(d).html("<p><b><span style=\"color:green;\">Edit saved!</span></p>");
		                    _then();
		                }
		            }).fail(function (_h) {
		
		            });
		        }).css({ "margin-right": "5px", "margin-left": "1px" }).addClass("mw-ui-button").addClass("mw-ui-progressive").appendTo("#AEReditform");
		        $('<div id="edit-preview"></div>').appendTo("#AEReditform");
    		}
    	}).fail(function(wt) {
    		
    	});

    }).fail(function (r) {
        throw "Unknown error";
    });
};
AER.shuffle = function(arra1) {
    var ctr = arra1.length, temp, index;

    // While there are elements in the array
    while (ctr > 0) {
        // Pick a random index
        index = Math.floor(Math.random() * ctr);
        // Decrease ctr by 1
        ctr--;
        // And swap the last element with it
        temp = arra1[ctr];
        arra1[ctr] = arra1[index];
        arra1[index] = temp;
    }
    return arra1;
} // from w3
AER.run = function(f) {
    AER.disableButtons();
    AER.disableEditor();
    $("#editrequest-page").css({ "width": "100%", "height": "500px", "overflow": "auto" });
    if (f) {
        $("#editrequest-info").html("<p><b>Loading next request...</b></p>");
        $("#editrequest-info-2").html("<p><b>Loading next request...</b></p>");
    }
    try {
        if (AER.pages[AER.pageCounter][0]) {
            AER.currentTalkPage = AER.pages[AER.pageCounter][0];
            AER.currentSection = AER.pages[AER.pageCounter][1];
            AER.currentPage = AER.pages[AER.pageCounter][0].replace(/(T|(\b|_)t)alk:/g, ':');
            if (AER.currentPage[0] == ":") {
                AER.currentPage = AER.currentPage.substring(1, AER.currentPage.length);
            } else {
                AER.currentPage = AER.currentPage.replace(" :", ":");
            }
            console.log(AER.currentPage);
            $.get(mw.config.get("wgScriptPath") + "/api.php", {
                "action": "query",
                "format": "json",
                "prop": "revisions",
                "titles": AER.currentTalkPage,
                "formatversion": "2"
            }).done(function (a) {
                if (a.error) {

                } else {
                    currentRevID = a.query.pages[0].revisions[0].revid;
                    parse(AER.currentTalkPage, "#editrequest-talk", function (d) {
                        parse(AER.currentPage, "#editrequest-page", function (r) {
                            $("#editrequest-talk").html(d);
                            if (AER.AERSettings.eph) {
                            	// need rewrite to allow for quick acceptance and decline
                            }
                            if (document.getElementById(AER.pages[AER.pageCounter][1])) {
                                $("#editrequest-page").html(r);
                                AER.enableButtons();
                                $("#editrequest-info").html('<p>Can you answer the <a href="#' + AER.currentSection + '">edit request below</a>?</p>');
                                $("#editrequest-info-2").html("");
                                $(".editrequest-title").text(AER.currentPage).append(" (" + (AER.pageCounter + 1) + "/" + AER.pages.length + ")");
                                AER.pageCounter++;
                                $("#editrequest-page a").each(function() {
                                	if (!($(this).attr("href") ? $(this).attr("href") : "").includes("#")) {
                                		$(this).attr("target", "_blank");
                                	}
                                });
                                $("#editrequest-talk a").each(function() {
                                	if (!($(this).attr("href") ? $(this).attr("href") : "").includes("#")) {
                                		$(this).attr("target", "_blank");
                                	}
                                });
                                if (AER.AERSettings.autojump) {
                                    location.href = "#" + AER.currentSection;
                                } else {
                                    location.href = "#";
                                }
                            } else {
                                AER.pageCounter++;
                                AER.run();
                            }
                        });
                    });
                }
            }).fail(function (a) {

            });
        } else {
            throw "The end";
        }
    } catch (Error) {
        $("#editrequest-info").html('<p>You\'ve reached the end!</p><p><a href="javascript:location.reload()">Reload</a> &bull; <a href="/wiki/WP:RFED">Other edit requests</a> &bull; <a href="/wiki/Wikipedia:Backlog">More backlog</a></p>');
        $("#editrequest-info-2").html('');
        AER.disableButtons();
        $("#editrequest-talk").html("");
        $("#editrequest-page").html("");
    }
}
function parse(page, where, fn) {
    var result = "";
    $.get(mw.config.get('wgScriptPath') + '/api.php', {
        'action': 'parse',
        'page': page,
        'prop': 'text',
        'format': 'json'
    }).done(function (r) {
        if (r.error) {
            if (r.error.code == "missingtitle") {
                fn('<span class="error">This page does not exist.</span>');
            } else {
                throw r.error;
            }
        } else {
            result = r.parse.text["*"];
            //console.log(result);
            fn(result);
        }
    }).fail(function (r) {
        $("#editrequest-info").html('<p><span class="error">Failed to load:  there is no Internet connection.</span></p>');
        $("#editrequest-talk").html("<p>Error has occurred.  Please reload.</p>");
        $("#editrequest-page").html("<p>Error has occurred.  Please reload.</p>");
        throw "Connection failed";
    });
}
AER.disableButtons = function() {
    $(".advance").prop("disabled", true);
    $(".editpage").prop("disabled", true);
    $(".history").prop("disabled", true);
    $(".edittalk").prop("disabled", true);
}
AER.enableButtons = function() {
    $(".advance").prop("disabled", false);
    $(".editpage").prop("disabled", false);
    $(".history").prop("disabled", false);
    $(".edittalk").prop("disabled", false);
}
AER.preferencesInit = function() {
    $(".firstHeading").html("AER Preferences");
    $("#section_0").html("AER Preferences");
    $("title").text("AER Preferences - Wikipedia");
    $("#mw-content-text").text("");
    $("<form id=\"editprefs-settings\"></form>")
        .append('<input type="checkbox" id="editprefs-autojump"><label for="editprefs-autojump">Automatically jump to edit request upon loading talk page.</label><br>')
        .append('<input type="checkbox" id="editprefs-quickeditor"><label for="editprefs-quickeditor">Enable the quick editor to answer edit requests quickly.</label><br>')
        .append('<input type="checkbox" id="editprefs-sidebarlink"><label for="editprefs-sidebarlink">Show a link to "answer edit requests" on the sidebar.</label><br>')
        .append('<input disabled type="checkbox" id="editprefs-eph"><label for="editprefs-eph">Enable the <a target="_blank" href="/wiki/WP:EPH">Edit Protected Helper</a> script.<br><span class="error">This option is currently disabled because the script does not work as intended.</span></label><br>')
        .append('<input type="checkbox" id="editprefs-sticky"><label for="editprefs-sticky">Always show the AER buttons at the top of the page.</label><br>')
        .append('<input type="checkbox" id="editprefs-beta"><label for="editprefs-beta">Enable the beta version of AER.  <b><i>Note:</i> This can get really unstable.</b></label><br>')
        .append($('<button type="submit" id="editprefs-submit">Save preferences</button>').addClass("mw-ui-button").addClass("mw-ui-progressive").css({ "margin-right": "5px", "margin-left": "1px" }))
        .append($('<button id="editprefs-reset">Reset preferences</button>').addClass("mw-ui-button").addClass("mw-ui-destructive").css({ "margin-right": "5px", "margin-left": "1px" }))
        .appendTo("#mw-content-text");
    for (var setting in AER.AERSettings) {
        $("#editprefs-" + setting).attr("checked", AER.AERSettings[setting] ? true : false);
    }
    $("#editprefs-reset").click(function (e) {
        e.preventDefault();
        if (confirm("Are you sure you want to reset all of your preferences?  All of your settings will be lost.")) {
            $("#editprefs-submit").prop("disabled", true);
            $("#editprefs-reset").prop("disabled", true);
            $.get(mw.config.get('wgScriptPath') + '/api.php', {
                "action": "query",
                "format": "json",
                "meta": "tokens",
                "type": "csrf"
            }).done(function (x) {
                if (x.error) {
                    throw x.error;
                } else {
                    $.get(mw.config.get('wgScriptPath') + '/api.php', {
                        'action': 'parse',
                        'page': "User:Awesome Aasim/editrequest.js/defaultpreferences.json",
                        'prop': 'wikitext',
                        'format': 'json'
                    }).done(function (z) {
                        AER.AERSettings = JSON.parse(z.parse.wikitext["*"]);
                        $.post(mw.config.get("wgScriptPath") + '/api.php', {
                            "action": "edit",
                            "format": "json",
                            "title": "User:" + mw.config.get("wgUserName") + "/AERpreferences.json",
                            "text": z.parse.wikitext["*"],
                            "summary": "Resetting preferences for [[User:Awesome Aasim/editrequest|AER]] tool",
                            "token": x.query.tokens.csrftoken
                        }).done(function (y) {
                            if (y.error) {
                                mw.notify($("<span>Could not save your preferences because: " + y.error.info + "</span>"));
                            } else {
								mw.notify($("<span>Your preferences have been reset. Reload the AER tool to apply them.</span>"));
                            }
                        }).fail(function (y) {
                            alert("Network settings may have changed.  Please reload the page.");
                        });
                    }).fail(function (z) {
                        alert("Network settings may have changed.  Please reload the page.");
                    })
                }
            }).fail(function (x) {
                alert("Network settings may have changed.  Please reload the page.");
            })
        }
    })
    $("#editprefs-submit").click(function (e) {
        $("#editprefs-submit").prop("disabled", true);
        $("#editprefs-reset").prop("disabled", true);
        e.preventDefault();
        AER.set("autojump");
        AER.set("quickeditor");
        AER.set("sidebarlink");
        AER.set("eph");
        AER.set("beta");
        AER.set("sticky");
        $.get(mw.config.get('wgScriptPath') + '/api.php', {
            "action": "query",
            "format": "json",
            "meta": "tokens",
            "type": "csrf"
        }).done(function (x) {
            if (x.error) {
                throw x.error;
            } else {
                $.post(mw.config.get("wgScriptPath") + '/api.php', {
                    "action": "edit",
                    "format": "json",
                    "title": "User:" + mw.config.get("wgUserName") + "/AERpreferences.json",
                    "text": JSON.stringify(AER.AERSettings),
                    "summary": "Setting preferences for [[User:Awesome Aasim/editrequest|AER]] tool",
                    "token": x.query.tokens.csrftoken
                }).done(function (y) {
                    if (y.error) {
						mw.notify($("<span>Could not save your preferences because: " + y.error.info + "</span>"));
                    } else {
						mw.notify($("<span>Your preferences have been set. Reload the AER tool to apply them.</span>"));
				        $("#editprefs-submit").prop("disabled", false);
				        $("#editprefs-reset").prop("disabled", false);
                    }
                }).fail(function (y) {
					mw.notify($("<span>Lost Internet connection.  Please try again.</span>"));
			        $("#editprefs-submit").prop("disabled", false);
			        $("#editprefs-reset").prop("disabled", false);
                });
            }
        }).fail(function (x) {
			mw.notify($("<span>Lost Internet connection.  Please try again.</span>"));
	        $("#editprefs-submit").prop("disabled", false);
	        $("#editprefs-reset").prop("disabled", false);
        })
    })
}
AER.set = function(setting) {
    AER.AERSettings[setting] = $("#editprefs-" + setting).is(":checked") ? true : false;
}
AER.init = function() {
    $("#mw-content-text").text("");
    $('<div class="editrequest-tools">').append($('<div id="editrequest-info"></div>')).append($('<div class="editrequest-buttons"></div>')).appendTo("#mw-content-text")
    $('<div id="editrequest-talk"></div>').appendTo("#mw-content-text");
    $('<div id="editrequest-page"></div>').appendTo("#mw-content-text");
    $('<div class="editrequest-tools">').append($('<div id="editrequest-info-2"></div>')).append($('<div class="editrequest-buttons"></div>')).appendTo("#mw-content-text");
    $('<p id="editrequest-preferences"><a href="/wiki/Special:BlankPage/EditProtectedPrefs">Edit settings</a></p>').appendTo("#mw-content-text");
    if (mw.config.get("wgUserGroups").includes("autoconfirmed") || mw.config.get("wgUserGroups").includes("confirmed") || mw.config.get("wgUserGroups").includes("extendedconfirmed") || mw.config.get("wgUserGroups").includes("templateeditor") || mw.config.get("wgUserGroups").includes("sysop") || mw.config.get("wgUserGroups").includes("interface-admin")) {
        if (AER.AERSettings.sticky) {
            $(".editrequest-tools").css({ "position": "sticky", "top": "47.5px", "background-color": "white", "z-index": 99 });
        }
        //$(".editrequest-tools").css({ "position": "sticky", "top": "47.5px", "background-color": "white", "z-index": 99 });

        $("#editrequest-talk").css({ "width": "100%", "height": "500px", "overflow": "auto" });
        $("#editrequest-page").css({ "width": "100%", "height": "900px", "overflow": "auto" });
        $("<p></p>").append($('<button class="editpage"/>').text("Edit").click(function (e) {
            if (AER.AERSettings.quickeditor) {
                location.href = "#editrequest-page";
                AER.editForm("#editrequest-page", AER.currentPage, function () {
                    $("#editrequest-page").css({ "width": "100%", "height": "500px", "overflow": "auto" });
                });
            } else {
                window.open("https://en.wikipedia.org/wiki/" + AER.currentPage + "?action=edit");
            }
        }).addClass("mw-ui-button").addClass("mw-ui-progressive").css({ "margin-right": "5px", "margin-left": "1px" })).append($('<button class="edittalk"/>').text("Open talk").click(function (e) {
            window.open("https://en.wikipedia.org/wiki/" + AER.currentTalkPage + "#" + AER.currentSection);
        }).addClass("mw-ui-button").css({ "margin-right": "5px", "margin-left": "1px" })).append($('<button class="history"/>').text("View history").click(function (e) {
            e.preventDefault();
            window.open("https://en.wikipedia.org/wiki/" + AER.currentPage + "?action=history");
        }).addClass("mw-ui-button").css({ "margin-right": "5px", "margin-left": "1px" })).append($('<button class="advance"/>').text("\u2192").click(function (e) {
            e.preventDefault();
            AER.run("f");
        }).addClass("mw-ui-button").css({ "margin-right": "5px", "margin-left": "1px" })).appendTo(".editrequest-buttons");

        $('<div id="mw-indicator-mw-helplink" class="mw-indicator"><a href="https://en.wikipedia.org/wiki/User:Awesome_Aasim/editrequest" target="_blank" class="mw-helplink">Help</a></div>').appendTo(".mw-indicators");
        $("#mw-indicator-mw-helplink a").attr('style', 'background-image: url(/w/resources/src/mediawiki.helplink/images/helpNotice.png?15b31);background-image: linear-gradient(transparent,transparent),url(/w/resources/src/mediawiki.helplink/images/helpNotice.svg?46d34);background-position: left center;background-repeat: no-repeat;display: inline-block;height: 20px;padding-left: 25px;line-height: 20px;');
        AER.disableButtons();
        $("#editrequest-page").before("<h1>Page content</h1>");
        $(".firstHeading").html("Answer edit requests: <span class=\"editrequest-title\">Loading...</span>");
        $("#section_0").html("Answer edit requests: <span class=\"editrequest-title\">Loading...</span>");
        $("title").text("Answer edit requests - Wikipedia");
        $('#editrequest-info').html("<p><b>Loading...</b></p>");
        try {
            $.get(mw.config.get("wgScriptPath") + "/api.php", {
                "action": "query",
                "format": "json",
                "list": "categorymembers",
                "cmtitle": AER.requestPages[0],
                "cmprop": "title",
                "cmlimit": "max"
            }).done(function (r) {
                if (r.error) {
                    throw r.error;
                } else {
                    var result = r.query.categorymembers;
                    for (var j in result) {
                        AER.pages.push([result[j].title, "editsemiprotected"]);
                    }
                    if (mw.config.get("wgUserGroups").includes("extendedconfirmed") || mw.config.get("wgUserGroups").includes("templateeditor") || mw.config.get("wgUserGroups").includes("sysop") || mw.config.get("wgUserGroups").includes("interface-admin")) {
                        $.get(mw.config.get("wgScriptPath") + "/api.php", {
                            "action": "query",
                            "format": "json",
                            "list": "categorymembers",
                            "cmtitle": AER.requestPages[1],
                            "cmprop": "title",
                            "cmlimit": "max"
                        }).done(function (r) {
                            if (r.error) {
                                throw r.error;
                            } else {
                                var result = r.query.categorymembers;
                                for (var j in result) {
                                    AER.pages.push([result[j].title, "editextendedprotected"]);
                                }
                                if (mw.config.get("wgUserGroups").includes("templateeditor") || mw.config.get("wgUserGroups").includes("sysop") || mw.config.get("wgUserGroups").includes("interface-admin")) {
                                    $.get(mw.config.get("wgScriptPath") + "/api.php", {
                                        "action": "query",
                                        "format": "json",
                                        "list": "categorymembers",
                                        "cmtitle": AER.requestPages[2],
                                        "cmprop": "title",
                                        "cmlimit": "max"
                                    }).done(function (r) {
                                        if (r.error) {
                                            throw r.error;
                                        } else {
                                            var result = r.query.categorymembers;
                                            for (var j in result) {
                                                AER.pages.push([result[j].title, "edittemplateprotected"]);
                                            }
                                            if (mw.config.get("wgUserGroups").includes("sysop") || mw.config.get("wgUserGroups").includes("interface-admin")) {
                                                $.get(mw.config.get("wgScriptPath") + "/api.php", {
                                                    "action": "query",
                                                    "format": "json",
                                                    "list": "categorymembers",
                                                    "cmtitle": AER.requestPages[3],
                                                    "cmprop": "title",
                                                    "cmlimit": "max"
                                                }).done(function (r) {
                                                    if (r.error) {
                                                        throw r.error;
                                                    } else {
                                                        var result = r.query.categorymembers;
                                                        for (var j in result) {
                                                            AER.pages.push([result[j].title, "editprotected"]);
                                                        }
                                                        if (mw.config.get("wgUserGroups").includes("interface-admin")) {
                                                            $.get(mw.config.get("wgScriptPath") + "/api.php", {
                                                                "action": "query",
                                                                "format": "json",
                                                                "list": "categorymembers",
                                                                "cmtitle": AER.requestPages[4],
                                                                "cmprop": "title",
                                                                "cmlimit": "max"
                                                            }).done(function (r) {
                                                                if (r.error) {
                                                                    throw r.error;
                                                                } else {
                                                                    var result = r.query.categorymembers;
                                                                    for (var j in result) {
                                                                        AER.pages.push([result[j].title, "editinterfaceprotected"]);
                                                                    }
                                                                }
                                                                AER.pages = AER.shuffle(AER.pages);
                                                                AER.run();
                                                            }).fail(function (r) {
                                                                throw "Unknown error";
                                                            });
                                                        } else {
                                                            AER.pages = AER.shuffle(AER.pages);
                                                            AER.run();
                                                        }
                                                    }
                                                }).fail(function (r) {
                                                    throw "Unknown error";
                                                });
                                            } else {
                                                AER.pages = AER.shuffle(AER.pages);
                                                AER.run();
                                            }
                                        }
                                    }).fail(function (r) {
                                        throw "Unknown error";
                                    });
                                } else {
                                    AER.pages = AER.shuffle(AER.pages);
                                    AER.run();
                                }
                            }
                        }).fail(function (r) {
                            throw "Unknown error";
                        });
                    } else {
                        AER.pages = AER.shuffle(AER.pages);
                        AER.run();
                    }
                }
            }).fail(function (r) {
                throw "Unknown error";
            });
        } catch (Error) {
            $("#editrequest-info").html('<p><span class="error">Reload.  We have hit an error.  If you are still having trouble, leave a message <a href="/wiki/User_talk:Awesome_Aasim/editrequest">here</a>.</span></p>');
            console.error(Error);
        }
    } else {
        $(".firstHeading").text("Permission error");
        $("#section_0").text("Permission error");
        $("title").text("Permission error - Wikipedia");
        $('#mw-content-text').html('<p>Access to this tool is restricted to <a href="/wiki/Wikipedia:Autoconfirmed">autoconfirmed</a> and <a href="/wiki/Wikipedia:Confirmed">confirmed</a> users.</p><p id="mw-returnto">Return to <a href="/wiki/Main_Page">Main Page</a>.</p>');
    }
}
if (mw.config.get("wgPageName").toLowerCase() == "Special:BlankPage/EditProtected".toLowerCase()) {
    $(document).ready(function() {
        AER.init();
    });
} else if (mw.config.get("wgPageName") == "Category:Wikipedia_edit_requests" || AER.requestPages.includes(mw.config.get("wgPageName"))) {
    $(document).ready(function () {
        $("#siteNotice").append('<p>Consider using <a href="/wiki/Special:BlankPage/EditProtected">the edit protected tool</a> to review edit requests!</p>');
    })
} else if (mw.config.get("wgPageName").toLowerCase() == "Special:BlankPage/EditProtectedPrefs".toLowerCase()) {
    $(document).ready(function() {
        AER.preferencesInit();
    });
}
//</nowiki>