User:PB2008/test.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
(Created page with "// References: MediaWiki:Gadget-rollback-summary.js from zhwp (https://zh.wikipedia.org/wiki/MediaWiki:Gadget-rollback-summary.js) // Reference2: MediaWiki:Revertpage from 52pokewiki (https://wiki.52poke.com/wiki/MediaWiki:Revertpage) (function rollbackSummary($, mw) { var batchConv = require('ext.gadget.HanAssist').batchConv; mw.messages.set(batchConv({ 'rollback-summary-custom': { hans: '已还原$1([[...")
 
mNo edit summary
 
Line 1: Line 1:
// References: [[MediaWiki:Gadget-rollback-summary.js]] from zhwp (https://zh.wikipedia.org/wiki/MediaWiki:Gadget-rollback-summary.js)
// References: [[User:KuduIO/Rollback_summary-g.js]] from simplewp (https://simple.wikipedia.org/wiki/User:KuduIO/Rollback_summary-g.js)
// Reference2: [[MediaWiki:Revertpage]] from 52pokewiki (https://wiki.52poke.com/wiki/MediaWiki:Revertpage)
function addSumLink() {
(function rollbackSummary($, mw) {
    var rbnode = [], diffnode, index = {}, gebcn = document.getElementsByClassName
     var batchConv = require('ext.gadget.HanAssist').batchConv;
        ? function(a, b, c) { return a.getElementsByClassName(c) }
 
        : getElementsByClassName;
     mw.messages.set(batchConv({
     if (typeof rollbackLinksDisable == 'object' && rollbackLinksDisable instanceof Array)
        'rollback-summary-custom': {
        for (var i = 0; i < rollbackLinksDisable.length; i++)
            hans: '已还原[[Special:Contributions/$1|$1]]([[User talk:$1|对话]])的编辑:',
            index[rollbackLinksDisable[i]] = true;
            hant: '已還原[[Special:Contributions/$1|$1]]([[User talk:$1|對話]])的編輯:'
     if (!('user' in index) && wgCanonicalSpecialPageName == "Contributions" ||
         },
        !('recent' in index) && wgCanonicalSpecialPageName == "Recentchanges" ||
         'rollback-summary-nouser': { hans: '回退已隐藏用户的编辑:', hant: '回退已隱藏使用者的編輯:' },
         !('watchlist' in index) && wgCanonicalSpecialPageName == "Watchlist")
        'rollback-summary-prompt': {
         rbnode = gebcn(document.getElementById("bodyContent"), "span", "mw-rollback-link");
            hans: '请输入自定义回退摘要(留空则使用系统默认摘要)',
    else if (!('history' in index) && wgAction == "history")
            hant: '請輸入自定義回退摘要(留空則使用系統預設摘要)'
         rbnode = gebcn(document.getElementById("pagehistory"), "span", "mw-rollback-link");
        }
    else if (!('diff' in index) && (diffnode = document.getElementById("mw-diff-ntitle2")))
    }));
         rbnode = gebcn(diffnode, "span", "mw-rollback-link");
 
    for (var i = 0, len = rbnode.length; i < len; i++)
    var updateLinks = function updateLinks() {
        addRollbackSummaryLink(rbnode[i]);
         $('.mw-rollback-link a').off('click');
};
         $('.mw-rollback-link a')
            .on('click', function (e) {
function confirmRollback() {
                e.preventDefault();
    var url = this.href;
                var href = this.href;
    var user = url.match(/[?&]from=([^&]*)/);
                var summary = prompt(mw.message('rollback-summary-prompt'));
    if (!user) return;
                if (summary === null) {
    user = decodeURIComponent(user[1].replace(/\+/g, " "));
                    return;
    var summary = prompt("Enter a summary to use for rollback.\n\nLeave blank to use the default. $user will be replaced with \"" + user + "\".",
                } else if (summary === '') {
                        rollbackSummaryDefault);
                    location.assign(href);
    if (summary == undefined)
                } else {
        return false;
                    var username = mw.util.getParamValue('from', href);
    else if (summary == "")
                    username
        return true;
                        ? (summary = mw.message('rollback-summary-custom', username).plain() + summary)
    this.href += "&summary=" + encodeURIComponent(summary.replace(/\$user/g, user));
                        : (summary = mw.message('rollback-summary-nouser').plain() + summary);
    return true;
                    href += '&summary=' + encodeURIComponent(summary);
};
                    location.assign(href);
                }
function addRollbackSummaryLink(rbnode) {
            })
    var rblink = rbnode.getElementsByTagName("a")[0];
            .css('color', '#099');
    var alink = rblink.cloneNode(true);
     };
    alink.className = ""; //don't confuse other scripts
     mw.hook('wikipage.content').add(function () {
    alink.firstChild.nodeValue = "sum";
        updateLinks();
     alink.onclick = confirmRollback;
     });
     rbnode.insertBefore(alink, rblink.nextSibling);
})(jQuery, mw);
    rbnode.insertBefore(document.createTextNode(" | "), alink);
};
if (typeof rollbackLinksDisable == 'undefined')
    rollbackLinksDisable = [];
if (typeof rollbackSummaryDefault == 'undefined')
     rollbackSummaryDefault = "";
$(addSumLink);

Latest revision as of 12:44, 25 March 2024

// References: [[User:KuduIO/Rollback_summary-g.js]] from simplewp (https://simple.wikipedia.org/wiki/User:KuduIO/Rollback_summary-g.js)
function addSumLink() {
    var rbnode = [], diffnode, index = {}, gebcn = document.getElementsByClassName
        ? function(a, b, c) { return a.getElementsByClassName(c) }
        : getElementsByClassName;
    if (typeof rollbackLinksDisable == 'object' && rollbackLinksDisable instanceof Array)
        for (var i = 0; i < rollbackLinksDisable.length; i++)
            index[rollbackLinksDisable[i]] = true;
    if (!('user' in index) && wgCanonicalSpecialPageName == "Contributions" ||
        !('recent' in index) && wgCanonicalSpecialPageName == "Recentchanges" ||
        !('watchlist' in index) && wgCanonicalSpecialPageName == "Watchlist")
        rbnode = gebcn(document.getElementById("bodyContent"), "span", "mw-rollback-link");
    else if (!('history' in index) && wgAction == "history")
        rbnode = gebcn(document.getElementById("pagehistory"), "span", "mw-rollback-link");
    else if (!('diff' in index) && (diffnode = document.getElementById("mw-diff-ntitle2")))
        rbnode = gebcn(diffnode, "span", "mw-rollback-link");
    for (var i = 0, len = rbnode.length; i < len; i++)
        addRollbackSummaryLink(rbnode[i]);
};
 
function confirmRollback() {
    var url = this.href;
    var user = url.match(/[?&]from=([^&]*)/);
    if (!user) return;
    user = decodeURIComponent(user[1].replace(/\+/g, " "));
    var summary = prompt("Enter a summary to use for rollback.\n\nLeave blank to use the default. $user will be replaced with \"" + user + "\".",
                         rollbackSummaryDefault);
    if (summary == undefined)
        return false;
    else if (summary == "")
        return true;
    this.href += "&summary=" + encodeURIComponent(summary.replace(/\$user/g, user));
    return true;
};
 
function addRollbackSummaryLink(rbnode) {
    var rblink = rbnode.getElementsByTagName("a")[0];
    var alink = rblink.cloneNode(true);
    alink.className = ""; //don't confuse other scripts
    alink.firstChild.nodeValue = "sum";
    alink.onclick = confirmRollback;
    rbnode.insertBefore(alink, rblink.nextSibling);
    rbnode.insertBefore(document.createTextNode(" | "), alink);
};
if (typeof rollbackLinksDisable == 'undefined')
    rollbackLinksDisable = [];
if (typeof rollbackSummaryDefault == 'undefined')
    rollbackSummaryDefault = "";
 
$(addSumLink);