MediaWiki:Gadget-registerToDelete.js

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
$(function() {
    var self = $('#p-cactions .menu ul');
    if (!self.find('li')[0] || mw.config.get('wgUserGroups').indexOf('patroller') === -1) return;
    $('<a/>', {
        attr: {
            href: "#",
            title: "挂删本页[alt-shift-d]",
            accesskey: 'd'
        },
        text:'挂删'
    }).on('click', function() {
        var reason = prompt('挂删的理由【将会替换全文内容】\n【空白则使用默认理由(不在收录范围内或潜在价值较低)】\n【取消则不进行挂删】:'),
            self = $(this);
        if (reason === null) return;
        var loadingPic = $('<div/>', {
                css: {
                    position: 'fixed',
                    top: '0',
                    left: '0',
                    height: '100vh',
                    width: '100vw',
                    transition: 'all .73s linear',
                    color: 'black',
                    'padding-top':'49vh',
                    'background-color': 'rgba(255,255,255,0.73)',
                    'text-align': 'center'
                }
            }).append('<img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" />正在挂删中……'),
            reasonText = reason ? '|' + reason : '';
        $.ajax({
            url: 'http://xilinghost.tk/wiki/api.php?action=query&meta=tokens&format=json',
            type: 'GET',
            beforeSend: function() {
                $(document.body).append(loadingPic);
            },
            error: function() {
                loadingPic.css('color', 'red').text('挂删失败……').delay(1000).queue(function() {
                    $(this).fadeOut(370);
                    $(this).dequeue();
                });
            },
            success: function(d) {
                if (d.error) return loadingPic.css('color', 'red').text('挂删失败……').delay(1000).queue(function() {
                    $(this).fadeOut(370);
                    $(this).dequeue();
                });
                var token = d.query.tokens.csrftoken;
                $.ajax({
                    url: 'http://xilinghost.tk/wiki/api.php',
                    type: 'POST',
                    data: {
                        action: 'edit',
                        format: 'json',
                        title: mw.config.get('wgPageName'),
                        text: '{{即将删除' + reasonText + '}}',
                        summary: '挂删' + (reason ? ':' + reason : ''),
                        nocreate: true,
                        watchlist: 'preferences',
                        token: token
                    },
                    error: function() {
                        loadingPic.css('color', 'red').text('挂删失败……').delay(1000).queue(function() {
                            $(this).fadeOut(370);
                            $(this).dequeue();
                        });
                    },
                    success: function(d) {
                        if (d.error) return loadingPic.css('color', 'red').text('挂删失败……').delay(1000).queue(function() {
                            $(this).fadeOut(370);
                            $(this).dequeue();
                        });
                        loadingPic.css('color', 'green').text('挂删成功!即将刷新……');
                        window.setTimeout(function(){
                            window.location.reload();
                        }, 730);
                    }
                });
            }
        });
    }).appendTo($('<li/>', {
        attr: {
            id: 'ca-registerToDelete'
        }
    }).prependTo(self));
});