User:Altt311/Gadget/patrolEdit.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

jQuery(function() {
    // patrol edit
 
    if (wgAction == 'edit' || wgAction == 'submit') { // edit & preview
        var page = new MediaWiki.Page();
        page.patrolled({}, function(patrolled) {
            if (!patrolled) {
                jQuery('#wpMinoredit').before(
                    '<input type="checkbox" id="wpPatroledit" accesskey="a" />&nbsp;' +  
                    '<label for="wpPatroledit" title="Mark this page as patrolled before saving [a]">' + 
                    '同時標記為已巡查</label>\n'
                );
            }
        });
        jQuery('#wpSave').click(function(event) {
            // if patrolled, #wpPatroledit doesn't exist,
            // so jQuery('#wpPatroledit:checked').length always == 0
            if (jQuery('#wpPatroledit:checked').length != 0) {
                jQuery('#wpSave').attr('disabled', true);
                var oldval = jQuery('#wpSave').val();
                jQuery('#wpSave').val('巡查中…');
                new MediaWiki.Page().patrol({}, function() {
                    jQuery('#wpSave').val('儲存中…');
                    jQuery('#editform')[0].submit();
                }, function() {
                    if (confirm('標記巡查不成功。要保存您的修改嗎?')) {
                        jQuery('#wpSave').val('儲存中…');
                        jQuery('#editform')[0].submit();
                    } else {
                        jQuery('#wpSave').val(oldval);
                        jQuery('#wpSave').attr('disabled', false);
                    }
                });
                return false;
            } else {
                return true;
            }
        });
    }

    // patrol any page
 
    if ((wgAction == 'view' || wgAction == 'purge') && wgNamespaceNumber >= 0) {
        var page = new MediaWiki.Page();
        page.patrolled({}, function(patrolled) {
            if (!patrolled) {
                jQuery('.printfooter').before(
                    '<div class="patrollink">[<a href="#" ' +
                    'class="ajaxpatrollink">標記為已巡查(Gadget)</a>]</div>'
                );
                jQuery('.ajaxpatrollink').click(function() {
                    page.patrol({}, function() {
                        jQuery('.ajaxpatrollink').replaceWith('已巡查');
                    }, function() {
                        alert('不能標記為已巡查。');
                    });
                    return false;
                });
            }
        });
    }

    // patrol link on [[Special:NewPages]]
 
    if (wgCanonicalSpecialPageName == 'Newpages') {
        jQuery('li.not-patrolled').each(function() {
            var litag = this;
            var pageaj = jQuery(jQuery('a', litag)[0]);
            pageaj.after(
                ' (<a href="#" class="newpages_patrollink">巡查</a>) '
            );
            var patrolaj = jQuery('a.newpages_patrollink', litag);
            patrolaj.click(function() {
                new MediaWiki.Page(pageaj.text()).patrol({}, function() {
                    patrolaj.replaceWith('已巡查'); // or simply remove the span?
                    jQuery(litag).removeClass('not-patrolled');
                }, function() {
                    alert('不能標記[[' + pageaj.text() +
                        ']]為已巡查。');
                });
                return false;
            });
        });
    }

    return false;

});