User:逆襲的天邪鬼/Twinkle-lzh/friendlytag.js: Difference between revisions
User:逆襲的天邪鬼/Twinkle-lzh/friendlytag.js (view source)
Revision as of 14:12, 5 June 2017
, 6 years agono edit summary
No edit summary |
No edit summary |
||
Line 175:
main: function( pageobj ) {
var params = pageobj.getCallbackParameters(),
tagRe, tagText = '', summaryText = '
tags = [], groupableTags = [], i, totalTags;
Line 183:
var addTag = function friendlytagAddTag( tagIndex, tagName ) {
var currentTag = "";
if( tagName === '文白相雜' ) {▼
pageText += '{{' + tagName + '|~~~~}}\n';▼
currentTag += '{{' + tagName;▼
▲ switch( tagName ) {
case 'merge':▼
case 'merge from':▼
if (params.mergeTarget) {▼
// normalize the merge target for now and later▼
params.mergeTarget = Morebits.string.toUpperCaseFirstChar(params.mergeTarget.replace(/_/g, ' '));▼
currentTag += '|' + params.mergeTarget;▼
currentTag += params.tagParameters.disputeReason.join(';');
if (params.tagParameters.disputeCustomReason) {
if (params.tagParameters.disputeReason.length > 0) {
currentTag += ';';
if (!params.discussArticle) {▼
}▼
}▼
}
currentTag += params.tagParameters.disputeCustomReason;
break;▼
}▼
params.moveTarget = Morebits.string.toUpperCaseFirstChar(params.moveTarget.replace(/_/g, ' '));
currentTag += '|' + params.moveTarget + '}}';
case '併':
currentTag += '{{併|';
// normalize the merge target for now and later
break;
default:
▲ currentTag += '}}\n';
break;
}
tagText += currentTag;
if ( tagIndex > 0 ) {
Line 262 ⟶ 267:
// complicated than it'd need to be, to allow templates as parameters,
// and to handle whitespace properly.
pageText = pageText.replace(/^\s*(?:((?:\s*\{\{\s*(?:
"$1" + tagText);
Line 279 ⟶ 284:
pageobj.setCreateOption('nocreate');
pageobj.save(function() {
var talkpageText;
var talkpage;
// special functions for merge tags
if (params.mergeReason) {
// post the rationale on the talk page (only operates in main namespace)
talkpageText += params.mergeReason.trim() + "--~~~~";
talkpage.setAppendText(talkpageText);
talkpage.setEditSummary('議將[[' +
'併至' + '[[' + params.
Twinkle.getPref('summaryAd'));
talkpage.setWatchlist(Twinkle.getFriendlyPref('watchMergeDiscussions'));
talkpage.setCreateOption('recreate');
talkpage.append();
if (params.moveReason) {
// post the rationale on the talk page (only operates in main namespace)
talkpageText = "\n\n== 議遷至[[" + params.moveTarget + "]] ==\n\n";
talkpageText += params.moveReason.trim() + "--~~~~";
talkpage = new Morebits.wiki.page("Talk:" + mw.config.get('wgTitle'), "將理由貼进討論頁");
talkpage.setAppendText(talkpageText);
talkpage.setEditSummary('議將[[' + mw.config.get('wgTitle') + ']]' +
'遷至' + '[[' + params.moveTarget + ']]' +
Twinkle.getPref('summaryAd'));
talkpage.setWatchlist(Twinkle.getFriendlyPref('watchMergeDiscussions'));
Line 304 ⟶ 325:
Twinkle.tag.callback.evaluate = function friendlytagCallbackEvaluate(e) {
var form = e.target;
var params = {};
Line 314 ⟶ 332:
params.tags = form.getChecked( 'articleTags' );
params.tagParameters = {
mergeReason: form['articleTags.mergeReason'] ? form['articleTags.mergeReason'].value : null,
disputeReason: form.getChecked('articleTags.disputeReason'),
disputeCustomReason: form['articleTags.disputeCustomReason'] ? form['articleTags.disputeCustomReason'].value : null,
};
▲ params.mergeTarget = form["articleTags.mergeTarget"] ? form["articleTags.mergeTarget"].value : null;
▲ params.mergeReason = form["articleTags.mergeReason"] ? form["articleTags.mergeReason"].value : null;
// form validation
if( !params.tags.length ) {
alert( '必須選擇至少一個標記!' );
return;
}
|