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.
/* global SS, mw, $ */
/*  MODULE NAVIGATION:
    [Main loader: [[User:Sam_Sailor/common.js]]]
    [Modules: [[User:Sam_Sailor/common.js/tier1.js|Always]] | [[User:Sam_Sailor/common.js/tier2.js|C/C/H/W]] |
    [[User:Sam_Sailor/common.js/tier3.js|Work]] | [[User:Sam_Sailor/common.js/tier4.js|Exists]] |
    [[User:Sam_Sailor/common.js/tier4_0.js|NS 0]] | [[User:Sam_Sailor/common.js/tier4_0_118.js|NS 0/118]] |
    [[User:Sam_Sailor/common.js/tier4_118.js|NS 118]] | [[User:Sam_Sailor/common.js/tier4_118_2.js|NS 118/2]] |
    [[User:Sam_Sailor/common.js/tier4_2_3.js|NS 2/3]] | [[User:Sam_Sailor/common.js/tier4_4.js|NS 4]] |
    [[User:Sam_Sailor/common.js/tier4_4_odd.js|NS 4/ODD]] | [[User:Sam_Sailor/common.js/tier4_6_7.js|NS 6/7]] |
    [[User:Sam_Sailor/common.js/tier4_10_11.js|NS 10/11]] | [[User:Sam_Sailor/common.js/tier4_14_15.js|NS 14/15]] |
    [[User:Sam_Sailor/common.js/tier5.js|Special]]]
*/

    /**
     * ===============================================================
     * TIER 4 NS 0: Article, if page exists, not history
     * ===============================================================
     */

window.SCRIPT_CONFIG.push(
    // NS0-PortletLinks: Adds OAbot and outbound link tools to the toolbox.
    {
        condition: SS.inNS(0),
        inlineCode: [
            "$(function() {",
            "    mw.util.addPortletLink('p-tb', 'https://oabot.toolforge.org/process?name=' + encodeURIComponent(SS.pageName), 'OAbot', 'oabot', 'Launch OAbot on this page');",
            "    mw.util.addPortletLink('p-tb', mw.util.wikiScript('api') + '?action=query&prop=links&pllimit=500&titles=' + encodeURIComponent(SS.pageName), 'Where links this', 'pt-outlinks', 'What does this page link to');",
            "});"
        ],
        dependencies: ['mediawiki.util']
    },
    // [[User:Jeeputer/coordInserter.js]]
    {
        page: 'User:Jeeputer/coordInserter.js',
        // Loads in articles for the insertion logic and categories for the maintenance-link injection logic.
        condition: SS.inNS(0, 14),
        dependencies: ['mediawiki.util', 'mediawiki.api', 'jquery.ui', 'jquery.textSelection']
    },
    // [[User:DannyS712/De-Stub.js]]
    {
        page: 'User:DannyS712/De-Stub.js',
        // Restricted to the main namespace where stub templates are used.
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        inlineCode: [
            "window.DeStub_verbose = true;"
        ],
        dependencies: ['mediawiki.util', 'mediawiki.user', 'mediawiki.api']
    },
    // [[User:DannyS712/deOrphan.js]]
    {
        page: 'User:DannyS712/deOrphan.js',
        condition: SS.OFF, // () => SS.inNS(0)() && SS.onAction('view')(),
        inlineCode: [
            "window.user_orphan_cutoff = 1;"
        ],
        dependencies: ['mediawiki.util', 'mediawiki.api', 'jquery']
    },
    // [[User:DannyS712/Draft_re_cat.js]]
    {
        page: 'User:DannyS712/Draft_re_cat.js',
        condition: SS.inNS(0),
        dependencies: ['mediawiki.util', 'mediawiki.api', 'jquery']
    },
    // [[User:Polygnotus/DuplicateReferences.js]]
    {
        page: 'User:Polygnotus/DuplicateReferences.js',
        // Restricted to namespace 0 and 'view' action to match internal script logic.
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['mediawiki.util', 'mediawiki.api', 'jquery', 'ext.gadget.morebits']
    },
    // [[User:SD0001/DYK-helper.js]]
    {
        page: 'User:SD0001/DYK-helper.js',
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['ext.gadget.morebits', 'mediawiki.api', 'mediawiki.util', 'ext.gadget.libLua']
    },
    // [[User:Evad37/EditWarChecker.js]]
    {
        page: 'User:Evad37/EditWarChecker.js',
        // Performs an API 'query' with 'rvlimit: max' on every load. Significant overhead for little value outside of articles.
        condition: SS.OFF, // () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['mediawiki.api']
    },
    // [[User:Sohom_Datta/fastreview.js]]
    {
        page: 'User:Sohom_Datta/fastreview.js',
        condition: SS.OFF,
        // condition: SS.inNS(0),
        dependencies: ['mediawiki.api', 'mediawiki.storage', 'jquery']
    },
    // Inspired by [[User:1AmNobody24/Find Link.js]] at [[Special:PermanentLink/1239072738]]
    // Adds a toolbox link to discover articles that could link here.
    {
        condition: SS.inNS(0),
        dependencies: ['mediawiki.util'],
        inlineCode: [
            "$(function() {",
            "    mw.util.addPortletLink(",
            "        'p-tb',",
            "        'https://edwardbetts.com/find_link/' + encodeURIComponent(SS.pageTitle),",
            "        'Find Link',",
            "        't-find-link',",
            "        'Find possible Links for this page'",
            "    );",
            "});"
        ]
    },
    // [[User:Ahecht/Scripts/infoboxgap.js]]
    {
        page: 'User:Ahecht/Scripts/infoboxgap.js',
        condition: SS.OFF,
        dependencies: ['mediawiki.util', 'jquery.textSelection']
    },
    // [[User:Rublov/leadcaps.js]]
    {
        page: 'User:Rublov/leadcaps.js',
        // Runs its own "if (!isMainspace()) { return;"-check
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['jquery']
    },
    // [[User:Sam_Sailor/Scripts/logger.js]]
    {
        page: 'User:Sam_Sailor/Scripts/logger.js',
        condition: SS.OFF, // () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['mediawiki.util', 'jquery'],
        inlineCode: [
            "window.pagesToCollect = [",
            "    {page: 'User:Sam Sailor/AATP log', caption: '+AATP log'},",
            "    {page: 'User:Sam Sailor/ALS log', caption: '+ALS log'},",
            "    {page: 'User:Sam Sailor/MISSFILE log', caption: '+MISSFILE log'},",
            "    {page: 'User:Sam Sailor/Sourced log', caption: '+Sourced log'}",
            "];"
        ]
    },
    // [[User:MPGuy2824/MoveToDraft.js]]
    {
        page: 'User:MPGuy2824/MoveToDraft.js',
        condition: SS.inNS(0),
        dependencies: ['mediawiki.util', 'mediawiki.api', 'mediawiki.Title']
    },
    // [[User:Sohom_Datta/PageTriageUserspaceLogger.js]]
    {
        page: 'User:Sohom_Datta/PageTriageUserspaceLogger.js',
        condition: SS.OFF,
        dependencies: ['ext.gadget.Twinkle', 'ext.pageTriage.toolbar.ready']
    },
    // [[User:SD0001/PR-helper.js]]
    {
        page: 'User:SD0001/PR-helper.js',
        condition: SS.OFF, // () => SS.inNS(0, 1)() && SS.onAction('view')(),
        dependencies: ['ext.gadget.morebits', 'mediawiki.util', 'mediawiki.api', 'mediawiki.Title']
    },
    // [[User:DannyS712/Red_files.js]]
    {
        page: 'User:DannyS712/Red_files.js',
        condition: SS.inNS(0),
        dependencies: ['jquery']
    },
    // [[User:Sam_Sailor/Scripts/ReviewStatus.js]] (fork of [[User:Novem_Linguae/Scripts/ReviewStatus.js]])
    {
        page: 'User:Sam_Sailor/Scripts/ReviewStatus.js',
        // condition: SS.OFF,
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['mediawiki.api', 'jquery']
    },
    // [[User:Enterprisey/section-redir-note.js]]
    {
        page: 'User:Enterprisey/section-redir-note.js',
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['mediawiki.util', 'jquery']
    },
    // [[User:SD0001/StubSorter.js]]
    {
        page: 'User:SD0001/StubSorter.js',
        condition: () => SS.inNS(0)() && SS.onAction('view')(),
        dependencies: ['mediawiki.util', 'mediawiki.api', 'mediawiki.Title', 'jquery.chosen']
    },
);