1,975
次編輯
小 (已匯入 1 筆修訂:Twinkle) |
Xiplus-bot(留言 | 貢獻) 小 (繁簡轉換) |
||
}
Twinkle.addPortletLink(Twinkle.protect.callback, Morebits.userIsInGroup('sysop') ? "保
Morebits.userIsInGroup('sysop') ? "保
};
var Window = new Morebits.simpleWindow( 620, 530 );
Window.setTitle( Morebits.userIsInGroup( 'sysop' ) ? "施行或
Window.setScriptName( "Twinkle" );
Window.addFooterLink( "保
Window.addFooterLink( "保
Window.addFooterLink( "Twinkle
var form = new Morebits.quickForm( Twinkle.protect.callback.evaluate );
var actionfield = form.append( {
type: 'field',
label: '操作
} );
if( Morebits.userIsInGroup( 'sysop' ) ) {
list: [
{
label: '保
value: 'protect',
checked: true
list: [
{
label: '
value: 'request',
tooltip: '如果您想在WP:RFPP
checked: !Morebits.userIsInGroup('sysop')
},
{
label: '用保
value: 'tag',
tooltip: '可以用此
disabled: mw.config.get('wgArticleId') === 0
}
} );
form.append({ type: 'field', label: '
form.append({ type: 'field', label: '1', name: 'field1' });
form.append({ type: 'field', label: '2', name: 'field2' });
result.push(boldnode);
if (expiry === 'infinity') {
result.push("(
} else {
result.push("(
}
if (cascade) {
result.push("(
}
}
if (!result.length) {
var boldnode = document.createElement('b');
boldnode.textContent = "
result.push(boldnode);
}
Twinkle.protect.protectionLevel = result;
Morebits.status.init($('div[name="currentprot"] span').last()[0]);
Morebits.status.info("
}
switch (e.target.values) {
case 'protect':
field_preset = new Morebits.quickForm.element({ type: 'field', label: '
field_preset.append({
type: 'select',
name: 'category',
label: '
event: Twinkle.protect.callback.changePreset,
list: (mw.config.get('wgArticleId') ?
});
field2 = new Morebits.quickForm.element({ type: 'field', label: '保
field2.append({ type: 'div', name: 'currentprot', label: ' ' }); // holds the current protection level, as filled out by the async callback
// for existing pages
list: [
{
label: '修改
value: 'editmodify',
tooltip: '如果此
checked: true
}
type: 'select',
name: 'editlevel',
label: '
event: Twinkle.protect.formevents.editlevel
});
editlevel.append({
type: 'option',
label: '(站
value: 'all'
});
editlevel.append({
type: 'option',
label: '禁止未
value: 'autoconfirmed'
});
editlevel.append({
type: 'option',
label: '
value: 'sysop',
selected: true
type: 'select',
name: 'editexpiry',
label: '
event: function(e) {
if (e.target.value === 'custom') {
},
list: [
{ label: '1小
{ label: '2小
{ label: '3小
{ label: '6小
{ label: '1日', value: '1 day' },
{ label: '3日', value: '3 days' },
{ label: '6月', value: '6 months' },
{ label: '1年', value: '1 year' },
{ label: '
{ label: '自定
]
});
list: [
{
label: '修改移
value: 'movemodify',
tooltip: '如果此
checked: true
}
type: 'select',
name: 'movelevel',
label: '移
event: Twinkle.protect.formevents.movelevel
});
movelevel.append({
type: 'option',
label: '(站
value: 'all'
});
movelevel.append({
type: 'option',
label: '禁止未
value: 'autoconfirmed'
});
movelevel.append({
type: 'option',
label: '
value: 'sysop',
selected: true
type: 'select',
name: 'moveexpiry',
label: '
event: function(e) {
if (e.target.value === 'custom') {
},
list: [
{ label: '1小
{ label: '2小
{ label: '3小
{ label: '6小
{ label: '1日', value: '1 day' },
{ label: '3日', value: '3 days' },
{ label: '6月', value: '6 months' },
{ label: '1年', value: '1 year' },
{ label: '
{ label: '自定
]
});
type: 'select',
name: 'createlevel',
label: '
event: Twinkle.protect.formevents.createlevel
});
createlevel.append({
type: 'option',
label: '禁止未
value: 'autoconfirmed'
});
createlevel.append({
type: 'option',
label: '
value: 'sysop',
selected: true
type: 'select',
name: 'createexpiry',
label: '
event: function(e) {
if (e.target.value === 'custom') {
},
list: [
{ label: '1小
{ label: '2小
{ label: '3小
{ label: '6小
{ label: '1日', value: '1 day' },
{ label: '3日', value: '3 days' },
{ label: '6月', value: '6 months' },
{ label: '1年', selected: true, value: '1 year' },
{ label: '
{ label: '自定
]
});
type: 'textarea',
name: 'protectReason',
label: '理由(保
});
if (!mw.config.get('wgArticleId')) { // tagging isn't relevant for non-existing pages
/* falls through */
case 'tag':
field1 = new Morebits.quickForm.element({ type: 'field', label: '
field1.append( {
type: 'select',
name: 'tagtype',
label: '
list: Twinkle.protect.protectionTags,
event: Twinkle.protect.formevents.tagtype
{
name: 'small',
label: '使用
tooltip: '
},
{
name: 'noinclude',
label: '用<noinclude>包裹保
tooltip: '
checked: (mw.config.get('wgNamespaceNumber') === 10)
}
case 'request':
field_preset = new Morebits.quickForm.element({ type: 'field', label: '保
field_preset.append({
type: 'select',
name: 'category',
label: '
event: Twinkle.protect.callback.changePreset,
list: (mw.config.get('wgArticleId') ? Twinkle.protect.protectionTypes : Twinkle.protect.protectionTypesCreate)
});
field1 = new Morebits.quickForm.element({ type: 'field', label: '
field1.append( {
type: 'select',
name: 'expiry',
label: '
list: [
{ label: '
{ label: '永久', value: 'indefinite' },
{ label: '', selected: true, value: '' }
break;
default:
alert("
break;
}
if (Twinkle.protect.protectionLevel) {
Morebits.status.init($('div[name="currentprot"] span').last()[0]);
Morebits.status.info("
}
Twinkle.protect.doCustomExpiry = function twinkleprotectDoCustomExpiry(target) {
var custom = prompt('
if (custom) {
var option = document.createElement('option');
Twinkle.protect.protectionTypes = [
{ label: '解除保
{
label: '全保
list: [
{ label: '常
{ label: '
{ label: '
{ label: '高
{ label: '已封禁用
]
},
{
label: '半保
list: [
{ label: '常
{ label: '
{ label: '
{ label: '傀儡破
{ label: '高
{ label: '已封禁用
]
},
{
label: '移
list: [
{ label: '常
{ label: '
{ label: '移
{ label: '高
]
}
Twinkle.protect.protectionTypesCreate = [
{ label: '解除保
{
label: '白
list: [
{ label: '常
]
}
edit: 'sysop',
move: 'sysop',
reason: '
},
'pp-vandalism': {
edit: 'sysop',
move: 'sysop',
reason: '被自
},
'pp-template': {
edit: 'sysop',
move: 'sysop',
reason: '高
},
'pp-usertalk': {
edit: 'sysop',
move: 'sysop',
reason: '已封禁用
},
'pp-semi-vandalism': {
edit: 'autoconfirmed',
reason: '被IP用
template: 'pp-vandalism'
},
'pp-semi-blp': {
edit: 'autoconfirmed',
reason: 'IP用
},
'pp-semi-usertalk': {
edit: 'autoconfirmed',
move: 'sysop',
reason: '已封禁用
},
'pp-semi-template': { // removed for now
edit: 'autoconfirmed',
move: 'sysop',
reason: '高
template: 'pp-template'
},
'pp-semi-sock': {
edit: 'autoconfirmed',
reason: '持
},
'pp-semi-protected': {
'pp-move-dispute': {
move: 'sysop',
reason: '
},
'pp-move-vandalism': {
move: 'sysop',
reason: '移
},
'pp-move-indef': {
move: 'sysop',
reason: '高
},
'unprotect': {
Twinkle.protect.protectionTags = [
{
label: '
value: 'none'
},
{
label: '
value: 'noop'
},
{
label: '全保
list: [
{ label: '{{pp-dispute}}:
{ label: '{{pp-usertalk}}: 封禁的用
]
},
{
label: '全、半保
list: [
{ label: '{{pp-vandalism}}: 破
{ label: '{{pp-template}}: 高
{ label: '{{pp-protected}}: 常
]
},
{
label: '半保
list: [
{ label: '{{pp-semi-usertalk}}: 封禁的用
{ label: '{{pp-semi-sock}}: 傀儡', value: 'pp-semi-sock' },
{ label: '{{pp-semi-blp}}: 生者
{ label: '{{pp-semi-indef}}:
]
},
{
label: '移
list: [
{ label: '{{pp-move-dispute}}:
{ label: '{{pp-move-vandalism}}: 破
{ label: '{{pp-move-indef}}:
{ label: '{{pp-move}}: 常
]
}
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.notice = "保
var statusInited = false;
var protectIt = function twinkleprotectCallbackProtectIt(next) {
thispage = new Morebits.wiki.page(mw.config.get('wgPageName'), "保
if (mw.config.get('wgArticleId')) {
if (form.editmodify.checked) {
thispage.setEditSummary(form.protectReason.value + Twinkle.getPref('protectionSummaryAd'));
} else {
alert("您必
return;
}
protectIt(allDone);
} else {
alert("
}
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.followRedirect = false;
Morebits.wiki.actionCompleted.notice = "
Twinkle.protect.callbacks.taggingPageInitial(tagparams);
case 'pp-usertalk':
case 'pp-protected':
typename = '全保
break;
case 'pp-semi-vandalism':
case 'pp-semi-blp':
case 'pp-semi-protected':
typename = '半保
break;
case 'pp-move':
case 'pp-move-indef':
case 'pp-move-vandalism':
typename = '移
break;
case 'pp-create':
case 'pp-create-blp':
case 'pp-create-salt':
typename = '白
break;
case 'unprotect':
/* falls through */
default:
typename = '解除保
break;
}
switch (form.category.value) {
case 'pp-dispute':
typereason = '
break;
case 'pp-vandalism':
case 'pp-semi-vandalism':
typereason = '
break;
case 'pp-template':
case 'pp-semi-template': // removed for now
typereason = '高
break;
case 'pp-usertalk':
case 'pp-semi-usertalk':
typereason = '已封禁用
break;
case 'pp-semi-sock':
typereason = '傀儡破
break;
case 'pp-semi-blp':
typereason = '
break;
case 'pp-move-dispute':
typereason = '
break;
case 'pp-move-vandalism':
typereason = '移
break;
case 'pp-move-indef':
typereason = '高
break;
default:
Morebits.status.init( form );
var rppName = 'Wikipedia:
// Updating data for the action completed event
Morebits.wiki.actionCompleted.redirect = rppName;
Morebits.wiki.actionCompleted.notice = "提名完成,重定向到
var rppPage = new Morebits.wiki.page( rppName, '
rppPage.setFollowRedirect( true );
rppPage.setCallbackParameters( rppparams );
break;
default:
alert("twinkleprotect: 未知操作
break;
}
taggingPageInitial: function( tagparams ) {
if (tagparams.tag === 'noop') {
Morebits.status.info("
return;
}
var protectedPage = new Morebits.wiki.page( mw.config.get('wgPageName'), '
protectedPage.setCallbackParameters( tagparams );
protectedPage.load( Twinkle.protect.callbacks.taggingPage );
var re_result = oldtag_re.exec(text);
if (re_result) {
if (confirm("在
text = text.replace( oldtag_re, '' );
}
if( params.tag === 'none' ) {
summary = '移除保
} else {
if( params.noinclude ) {
if ( tag ) {
statusElement.error( [ '已有
return;
}
var newtag = '=== [[:' + mw.config.get('wgPageName') + ']] ===' + "\n";
if( ( new RegExp( '^' + RegExp.escape( newtag ).replace( /\s+/g, '\\s*' ), 'm' ) ).test( text ) ) {
statusElement.error( [ '已有
return;
}
switch( params.expiry ) {
case 'temporary':
words = "
break;
case 'indefinite':
words += params.typename;
newtag += "
Morebits.string.formatReasonText(params.reason) : "。" ) + "--~~~~";
if ( params.category === 'unprotect' ) {
reg = /(==\s*
} else {
reg = /({{\/header}}\n)/;
{
var linknode = document.createElement('a');
linknode.setAttribute("href", mw.util.getUrl("Wikipedia:Twinkle/修
linknode.appendChild(document.createTextNode('如何修
statusElement.error( [ '
return;
}
statusElement.status( '添加新提名…' );
rppPage.setEditSummary( '
rppPage.setPageText( text );
rppPage.setCreateOption( 'recreate' );
|