User:逆襲的天邪鬼/Twinkle-lzh/twinklespeedy.js: Difference between revisions
Content added Content deleted
mNo edit summary |
No edit summary |
||
Line 337: | Line 337: | ||
var radioOrCheckbox = (Twinkle.speedy.mode.isMultiple(mode) ? 'checkbox' : 'radio'); |
var radioOrCheckbox = (Twinkle.speedy.mode.isMultiple(mode) ? 'checkbox' : 'radio'); |
||
if (Twinkle.speedy.mode.isSysop(mode) && !Twinkle.speedy.mode.isMultiple(mode)) { |
// if (Twinkle.speedy.mode.isSysop(mode) && !Twinkle.speedy.mode.isMultiple(mode)) { |
||
work_area.append( { type: 'header', label: '自定義理由' } ); |
work_area.append( { type: 'header', label: '自定義理由' } ); |
||
work_area.append( { type: radioOrCheckbox, name: 'csd', list: Twinkle.speedy.generateCsdList(Twinkle.speedy.customRationale, mode) } ); |
work_area.append( { type: radioOrCheckbox, name: 'csd', list: Twinkle.speedy.generateCsdList(Twinkle.speedy.customRationale, mode) } ); |
||
} |
// } |
||
switch (namespace) { |
switch (namespace) { |
||
Line 367: | Line 367: | ||
// custom rationale lives under general criteria when tagging |
// custom rationale lives under general criteria when tagging |
||
var generalCriteria = Twinkle.speedy.generalList; |
var generalCriteria = Twinkle.speedy.generalList; |
||
if(!Twinkle.speedy.mode.isSysop(mode)) { |
// if (!Twinkle.speedy.mode.isSysop(mode)) { |
||
generalCriteria = Twinkle.speedy.customRationale.concat(generalCriteria); |
generalCriteria = Twinkle.speedy.customRationale.concat(generalCriteria); |
||
} |
// } |
||
work_area.append( { type: 'header', label: '常規' } ); |
work_area.append( { type: 'header', label: '常規' } ); |
||
work_area.append( { type: radioOrCheckbox, name: 'csd', list: Twinkle.speedy.generateCsdList(generalCriteria, mode) }); |
work_area.append( { type: radioOrCheckbox, name: 'csd', list: Twinkle.speedy.generateCsdList(generalCriteria, mode) }); |
||
Line 406: | Line 406: | ||
return $.map(list, function(critElement) { |
return $.map(list, function(critElement) { |
||
var criterion = $.extend({}, critElement); |
var criterion = $.extend({}, critElement); |
||
// hack to get the g11 radio / checkbox right |
|||
if (criterion.value === 'g11') { |
|||
criterion.style = Twinkle.getPref('enlargeG11Input') ? 'height: 2em; width: 2em; height: -moz-initial; width: -moz-initial; -moz-transform: scale(2); -o-transform: scale(2);' : ''; |
|||
⚫ | |||
if (multiple) { |
if (multiple) { |
||
Line 494: | Line 489: | ||
label: '自定義理由' + (Morebits.userIsInGroup('sysop') ? '(自定義刪除理由)' : ''), |
label: '自定義理由' + (Morebits.userIsInGroup('sysop') ? '(自定義刪除理由)' : ''), |
||
value: 'reason', |
value: 'reason', |
||
tooltip: ' |
tooltip: '這不是萬能的刪除理由,只適用於該頁及其歷史版本均明顯不應存在於維基大典的情況。', |
||
subgroup: { |
subgroup: { |
||
name: 'reason_1', |
name: 'reason_1', |
||
Line 501: | Line 496: | ||
size: 60 |
size: 60 |
||
}, |
}, |
||
hideWhenMultiple: true |
|||
} |
} |
||
]; |
]; |
||
Line 509: | Line 503: | ||
label: '非文言', |
label: '非文言', |
||
value: 'a1', |
value: 'a1', |
||
tooltip: '條目根本不是文言文,只有重寫才能 |
tooltip: '條目根本不是文言文,只有完全重寫才能解決問題。文白相雜請改用{{文白相雜|~~~~~}}。如果作者有改善意願,建議移至草稿。' |
||
}, |
}, |
||
{ |
{ |
||
Line 540: | Line 534: | ||
label: '作者請求', |
label: '作者請求', |
||
value: 'g1', |
value: 'g1', |
||
tooltip: '注意:只 |
tooltip: '注意:應該只用於頁面作者唯一或實質貢獻者唯一的情況,因此用戶討論頁通常不適用刪除。' |
||
}, |
}, |
||
{ |
{ |
||
Line 639: | Line 633: | ||
Twinkle.speedy.callbacks = { |
Twinkle.speedy.callbacks = { |
||
getTemplateCodeAndParams: function(params) { |
getTemplateCodeAndParams: function(params) { |
||
⚫ | |||
console.log(params); |
|||
⚫ | |||
var code, parameters, i; |
|||
params.utparams = {}; |
|||
⚫ | |||
code = "{{刪"; |
|||
⚫ | |||
params.utparams = {}; |
|||
⚫ | |||
⚫ | |||
code += reasons.join(';') + "}}"; |
|||
⚫ | |||
⚫ | |||
for (var i in parameters) { |
|||
if (typeof parameters[i] === 'string') { |
|||
code += "。" + parameters[i]; |
|||
} |
|||
} |
|||
⚫ | |||
⚫ | |||
code += "}}"; |
|||
} else { |
|||
parameters = params.templateParams[0] || []; |
|||
⚫ | |||
if (params.values[0] !== 'reason') { |
|||
code += '|' + params.values[0]; |
|||
} |
|||
for (i in parameters) { |
|||
if (typeof parameters[i] === 'string') { |
|||
code += "。" + parameters[i]; |
|||
} |
|||
} |
|||
code += "}}"; |
|||
params.utparams = Twinkle.speedy.getUserTalkParameters(params.normalizeds[0], parameters); |
|||
} |
|||
return [code, params.utparams]; |
return [code, params.utparams]; |
||
}, |
}, |
||
getReasons: function (params) { |
|||
var |
var reasons = []; |
||
⚫ | |||
action: "parse", |
|||
if (Twinkle.speedy.reasonHash[norm]) { |
|||
prop: "text", |
|||
⚫ | |||
pst: "true", |
|||
} else { |
|||
⚫ | |||
contentmodel: "wikitext", |
|||
⚫ | |||
title: mw.config.get("wgPageName") |
|||
}; |
}); |
||
return reasons; |
|||
var statusIndicator = new Morebits.status( '構造刪除理由' ); |
|||
var api = new Morebits.wiki.api( '解析刪除模板', query, function(apiObj) { |
|||
var reason = decodeURIComponent($(apiObj.getXML().querySelector('text').childNodes[0].nodeValue).find('#delete-reason').text()).replace(/\+/g, ' '); |
|||
if (!reason) { |
|||
statusIndicator.warn( '未能從刪除模板生成刪除理由' ); |
|||
} else { |
|||
statusIndicator.info( '完成' ); |
|||
} |
|||
callback(reason); |
|||
}, statusIndicator); |
|||
api.post(); |
|||
}, |
}, |
||
Line 704: | Line 664: | ||
Twinkle.speedy.callbacks.sysop.deletePage( reason, params ); |
Twinkle.speedy.callbacks.sysop.deletePage( reason, params ); |
||
} else { |
} else { |
||
Twinkle.speedy.callbacks.sysop.deletePage(Twinkle.speedy.callbacks.getReasons(params).join(';'), params); |
|||
Twinkle.speedy.callbacks.parseWikitext(code, function(reason) { |
|||
if (params.promptForSummary) { |
|||
reason = prompt("输入刪除理由,或點選確定以接受自動生成的:", presetReason); |
|||
} |
|||
⚫ | |||
}); |
|||
} |
} |
||
}, |
}, |
||
Line 913: | Line 867: | ||
// Generate edit summary for edit |
// Generate edit summary for edit |
||
var editsummary; |
var editsummary = '提速刪:' + Twinkle.speedy.callbacks.getReasons(params); |
||
if (params.normalizeds.length > 1) { |
|||
editsummary = '提速刪('; |
|||
⚫ | |||
editsummary += norm.toUpperCase() + '、'; |
|||
}); |
|||
editsummary = editsummary.substr(0, editsummary.length - 1); // remove trailing comma |
|||
editsummary += ')。'; |
|||
} else if (params.normalizeds[0] === "db") { |
|||
editsummary = '提速刪:' + params.templateParams[0]["1"]; |
|||
} else { |
|||
editsummary = '提速刪(' + params.normalizeds[0].toUpperCase() + ")"; |
|||
} |
|||
pageobj.setPageText(code + "\n" + text); |
pageobj.setPageText(code + "\n" + text); |
||
Line 1,019: | Line 961: | ||
appendText += "\n# [[:" + Morebits.pageNameNorm + "]]: "; |
appendText += "\n# [[:" + Morebits.pageNameNorm + "]]: "; |
||
appendText = Twinkle.speedy.callbacks.getReasons(params); |
|||
if (params.fromDI) { |
|||
appendText += "圖版[[WP:CSD#" + params.normalized.toUpperCase() + "|CSD " + params.normalized.toUpperCase() + "]]({{tl|" + params.templatename + "}})"; |
|||
} else { |
|||
if (params.normalizeds.length > 1) { |
|||
appendText += "多個理由("; |
|||
$.each(params.normalizeds, function(index, norm) { |
|||
appendText += "[[WP:CSD#" + norm.toUpperCase() + "|" + norm.toUpperCase() + ']]、'; |
|||
}); |
|||
appendText = appendText.substr(0, appendText.length - 1); // remove trailing comma |
|||
appendText += ')'; |
|||
} else if (params.normalizeds[0] === "db") { |
|||
appendText += "自定義理由"; |
|||
} else { |
|||
appendText += "[[WP:CSD#" + params.normalizeds[0].toUpperCase() + "|CSD " + params.normalizeds[0].toUpperCase() + "]]"; |
|||
} |
|||
} |
|||
if (params.logInitialContrib) { |
if (params.logInitialContrib) { |