Jump to content

User:MC10/stubtagtab.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by MC10 (talk | contribs) at 03:02, 10 October 2011 (try jQuery replacement for strings). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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.
// Stub tag tab. Original version by [[User:ais523]], on a request by [[User:thesublime514]].
// Enhancements made on requests by [[User:Alai]] and [[User:jj137]].
// ([[User:ais523/stubtagtab2.js]])
// <source lang="javascript">
$(function () {
    if (mw.config.get("wgNamespaceNumber") === 0 && mw.config.get("wgAction") === "view") {
        if (document.getElementById("ca-edit")) mw.util.addPortletLink('p-cactions', 'javascript:stubtagtab()', 'Stub', 'ca-stubtag', 'Add a stub tag to this page', '');
    }
    if (location.href.indexOf("&autoaddstubtag=") !== -1 && document.getElementById('wpTextbox1') != null) {
        var x = decodeURIComponent(location.href.split("&autoaddstubtag=")[1]);
        if (x.indexOf("-stub") === -1) x += "-stub";
        document.getElementById('wpTextbox1').value += "\n{" + "{" + x + "}}"; // add to the end of the article
        document.getElementById('wpSummary').value = "Tagging with {" + "{" + x + "}} using [[WP:US/S|user scripts]]";
        document.getElementById('wpPreview').click();
    }
});

function stubtagtab() {
    var h;
    // A list of subpages of WikiProject Stub sorting/Stub types/ that are relevant to this
    var a = ['Commerce', 'Culture', 'Education', 'Geography', 'Government, law, and politics', 'History', 'Leisure', 'Military and weaponry', 'Miscellaneous', 'Organizations', 'People', 'Religion, mythology, faiths, and beliefs', 'Science', 'Sports', 'Technology', 'Transport'];
    var i = 0;
    h = "<div style='color:#000000; background-color:#fff8f8;'>&bull; ";
    while (i < a.length) {
        h += "<a href='javascript:stubtagmenu(\"" + a[i] + "\");'>" + a[i] + "</a> &bull; ";
        i++;
    }
    h += "</div><div id='stubtagmenudiv' style='color: #000000; background-color: #fffff8;'></div>";
    document.getElementById("contentSub").innerHTML = h;
}

function stubtagmenurender(data) {
    /*
    var s = data.split('<text xml:space="preserve">')[1].split("</text>")[0];
    s = s.split("&lt;").join("<").split("&gt;").join(">");
    s = s.split("&quot;").join('"').split("&amp;").join('&');
    s = s.split('<a href="/wiki/Template:');
    var i = s.length;
    while (--i) s[i] = s[i].split('" title').join('\');" title');
    s = s.join('<a temphref="javascript:stubtagwith(\'');
    s = s.split('<a href=').join('<a style="color:#000000;" notanhref=');
    s = s.split('<a temphref=').join('<a href=');
    document.getElementById('stubtagmenudiv').innerHTML = s;
    */

    var parseData = $(data.parse.text["*"]);
    parseData.find("a").each(function () {
        var link = $(this).attr("href");
        if ((var index = link.indexOf("Template:")) === -1) {
            $(this).attr("href", "");
        } else {
            $(this).attr("href", link.slice(index + 9));
        }
    });
    $('#stubtagmenudiv').html(parseData);
}

function stubtagmenu(x) {
    // 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/' + x + '}}') + '&format=json',
        dataType: "json", // "text"
        success: stubtagmenurender
    });
}

function stubtagwith(x) {
    if (x == null || x === "") return;
    location.href = mw.config.get("wgServer") + mw.config.get("wgScript") + "?title=" + encodeURIComponent(mw.config.get("wgPageName")) + "&action=edit&autoaddstubtag=" + encodeURIComponent(x);
}

// </source> <!--[[Category:Wikipedia scripts]]-->