User:Ais523/stubtagtab2.js

// Stub tag tab. Original version by [[User:ais523]], on a request by [[User:thesublime514]].// This version of the script is based on work by [[User:MC10]].// Enhancements made on requests by [[User:Alai]], [[User:jj137]], and [[User:Sam Sailor]].// This file is [[User:ais523/stubtagtab2.js]], based on [[User:MC10/stubtagtab.js]](function ($) { // Wrap with anonymous function    function stubTagTab() {        var $h, $hb, $newa,            // A list of subpages of WikiProject Stub sorting/Stub types/ that are relevant to this            a = ['General', 'Architecture', 'Commerce', 'Culture', 'Education', 'Geography', 'Government, law, and politics',                 'History', 'Leisure', 'Military and weaponry', 'Organizations', 'People',                 'Religion, mythology, faiths, and beliefs', 'Science', 'Sports', 'Technology', 'Transport',                 'Miscellaneous'];        $h = $("<div></div>", {                 "color": "#000000",                 "background-color": "#fff8f8"             });        for (var i = 0; i < a.length; i++) {            $newa = $("<a href=\"#\"></a>");            $newa.click(function (e) {                e.preventDefault();                stubTagMenu($(this).text());            });            $newa.text(a[i]);            $h.append($newa);            if ((i + 1) < a.length) {                $h.append(" &bull; ");            }        }        $("#contentSub").append($h);        $hb = $("<div></div>", {                  "color": "#000000",                  "background-color": "#fffff8"              });        $hb.attr("id", "stubtagmenu");        $("#contentSub").append($hb);    }    function stubTagMenuRender(data) {        var $parseData = $(data.parse.text["*"]);        $parseData.find("a").each(function () {            var link = $(this).attr("href"),                index = link.indexOf("Template:");            if (index === -1) {                $(this).attr({                    "href": null,                    "title": null                });                $(this).css({                    "color": "#000000",                    "text-decoration": "none"                });            } else {                $(this).attr("href", mw.config.get("wgServer") + mw.config.get("wgScript")                    + "?title=" + encodeURIComponent(mw.config.get("wgPageName"))                    + "&action=edit&autoaddstubtag=" + encodeURIComponent(link.slice(index + 9)));            }        });        $("#stubtagmenu").html($parseData);    }    function stubTagMenuFail() {        $("#stubtagmenu").html("Failed to load stub tags.");    }    function stubTagMenu(stubType) {        // Add loading message        $("#stubtagmenu").html("Loading stub tags, please wait...");        // Fetch the relevant subpage of the WikiProject        $.ajax({            url: mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/api.php?action=parse&prop=text&text=' + encodeURIComponent('__NOTOC____NOEDITSECTION__\{\{Wikipedia:WikiProject Stub sorting/Stub types/' + stubType + '}}') + '&format=json',            dataType: "json",            success: stubTagMenuRender,            error: stubTagMenuFail        });    }    $(function () {        if ((mw.config.get("wgNamespaceNumber") === 0 ||             mw.config.get("wgPageName") === "Wikipedia:Sandbox")             && mw.config.get("wgAction") === "view" && $("#ca-edit").length !== 0) {             mw.loader.using( ['mediawiki.util'], function () {            var portletLink = mw.util.addPortletLink('p-cactions', '#', 'Stub', 'ca-stubtag', 'Add a stub tag to this page', '');            $(portletLink).click(function (e) {                e.preventDefault();                stubTagTab();                    });             });        }        if (location.href.indexOf("&autoaddstubtag=") !== -1 && $("#wpTextbox1").length !== 0) {            var x = decodeURIComponent(location.href.split("&autoaddstubtag=")[1]);            if (x.indexOf("-stub") === -1 && x !== "Stub") {                x += "-stub";            }            $("#wpTextbox1").val($("#wpTextbox1").val() + "\n{" + "{" + x + "}}"); // add to the end of the article            $("#wpSummary").val("Tagging with {" + "{" + x + "}}  ([[User:ais523/stubtagtab2.js|StubTagTab]])");            $("#wpPreview").trigger("click");        }    });} (jQuery)); // End wrap with anonymous function// [[Category:Wikipedia scripts]]