“MediaWiki:Gadget-rollback-summary.js”的版本间的差异

来自希灵百科
跳转至: 导航搜索
(创建页面,内容为“$(function() { mw.config.set({ 'wgRollbacking': false, 'wgRollbackTool': 'inited' }); $('.mw-rollback-link a').each(function() {...”)
 
(没有差异)

2017年1月18日 (三) 14:10的最新版本

$(function() {
    mw.config.set({
        'wgRollbacking': false,
        'wgRollbackTool': 'inited'
    });
    $('.mw-rollback-link a').each(function() {
        var obj = {};
        $(this).attr('href').replace(/^[^?]*\?/, '').split('&').forEach(function(v) {
            var arr = v.split('=');
            obj[arr[0]] = decodeURIComponent(arr[1]);
        });
        $(this).attr({
            'title': this.title + '(启用自定义摘要)',
            'href': 'javascript:void(0)'
        }).data(obj); //取消拖动链接回退
        if ($('.ns-special')[0] && $(this).text().indexOf('10') != -1) $(this).parent().text('[超过10次的编辑]').attr('title', '超过10次的编辑请使用撤销功能,以便检查差异(自定义摘要小工具)');
    }).on('click', function() {
        if (mw.config.get('wgRollbacking')) return false;
        var rollbackSummary = prompt('回退操作的编辑摘要【xxx//Rollback】\n【空白则使用默认回退摘要】\n【取消则不进行回退】:'),
            self = $(this);
        if (rollbackSummary !== null) $.ajax({
            type: 'POST',
            url: 'https://zh.moegirl.org/api.php',
            beforeSend: function() {
                self.replaceWith('<span id="rbing"><img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" />正在回退中……</span>');
                self = $('#rbing');
                $('.mw-rollback-link a').not(self).css({
                    color: '#aaa',
                    "text-decoration": 'none'
                });
                mw.config.set('wgRollbacking', true);
            },
            data: {
                title: self.data('title'),
                user: self.data('from'),
                summary: rollbackSummary + ' //Rollback',
                token: self.data('token'),
                action: 'rollback',
                format: 'json'
            },
            error: function(eO, eM, eC) {
                eC = eM ? eC + '(' + eM + ')' : eC;
                self.css('color', 'red').html('错误:' + eC + '。将在<span id="rbcount">3</span>秒内刷新');
                exit();
            },
            success: function(d) {
                if (d.error) self.css('color', 'red').html('错误:已被回退。将在<span id="rbcount">3</span>秒内刷新');
                else self.css('color', 'green').html('成功!将在<span id="rbcount">3</span>秒内刷新');
                exit();
            }
        });
        return false;
    });
    function exit() {
        window.setInterval(function() {
            var count = +$('#rbcount').text();
            if (count-- == 1) window.location.reload();
            $('#rbcount').text(count > 0 ? count : '0');
        }, 1000);
    }
});