User:Bosco-bot/common.js

From Test Wiki
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// JWB
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js&action=raw&ctype=text/javascript');

// MarkRights-zh
importScript('User:Bosco/MediaWiki:Gadget-MarkRights.js'); // Backlink: [[User:Bosco/MediaWiki:Gadget-MarkRights.js]]

// Mass block
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Timotheus_Canens/massblock.js&action=raw&ctype=text/javascript');

// AdvancedRollback
mw.loader.load('//dev.miraheze.org/w/index.php?title=User:PB2008/AdvancedRollback/auto.js&action=raw&ctype=text/javascript');

// Diffedit
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=User:Jon_Harald_Søby/diffedit.js&action=raw&ctype=text/javascript' );

// Edit count
(function(editCount) {
	if (editCount !== null) mw.loader.addStyleTag('#pt-mycontris>a::after, .menu__item--userContributions>span>span::after, #mw-mf-page-left .menu__item--userContributions>span::after {content: " (' + editCount + ')"}')
})(mw.config.get('wgUserEditCount'));

//
/**
 * MediaWiki JS helper: 请求删除 / 請求刪除
 * Adds a "请求删除 / 請求刪除" tab to the page toolbar.
 * When clicked, prompts for a reason and prepends {{delete|reason}}.
 */
mw.loader.using(['mediawiki.util', 'mediawiki.api'], function () {
    // Detect user language (default to zh-hans if not set)
    var lang = mw.config.get('wgUserLanguage') || 'zh-hans';

    // Simplified vs Traditional labels
    var isTraditional = (
        lang === 'zh-hant' ||
        lang === 'zh-hk' ||
        lang === 'zh-mo' ||
        lang === 'zh-tw'
    );

    var linkText   = isTraditional ? '請求刪除' : '请求删除';
    var tooltip    = linkText;
    var summary    = linkText;
    var reasonPrompt = isTraditional ? '請輸入刪除理由:' : '请输入删除理由:';
    var errorMessage = isTraditional ? '儲存頁面時出錯' : '保存页面时出错';

    // Add the portlet link
    var link = mw.util.addPortletLink(
        'p-cactions',       // portlet: actions menu
        '#',                // href
        linkText,           // link text
        'ca-requestdeletion', // id
        tooltip             // tooltip
    );

    // Click handler
    $(link).on('click', function (e) {
        e.preventDefault();

        // Prompt user for reason
        var reason = prompt(reasonPrompt);
        if (!reason) return;

        var pageName = mw.config.get('wgPageName');

        // Fetch current content
        new mw.Api().get({
            action: 'query',
            prop: 'revisions',
            rvprop: 'content',
            rvslots: 'main',
            titles: pageName
        }).done(function (data) {
            var pages = data.query.pages;
            var pageId = Object.keys(pages)[0];
            var content = pages[pageId].revisions[0].slots.main['*'];

            // Prepend delete template
            var newContent = '{{delete|' + reason + '}}\n' + content;

            // Save with fixed summary
            new mw.Api().postWithToken('csrf', {
                action: 'edit',
                title: pageName,
                text: newContent,
                summary: summary
            }).done(function () {
                location.reload();
            }).fail(function (err) {
                alert(errorMessage + ': ' + JSON.stringify(err));
            });
        });
    });
});