User:逆襲的天邪鬼/Twinkle-lzh/friendlytag.js: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 43: Line 43:
}
}


Window.setTitle( "條目维护標記" );
Window.setTitle( "條目維護標記" );


form.append({ type: 'header', label: '常因' });
form.append({ type: 'header', label: '常因' });
Line 67: Line 67:
type: 'textarea',
type: 'textarea',
label: '合併理由(會附在條目的討論頁):',
label: '合併理由(會附在條目的討論頁):',
tooltip: '請填寫理由。'
});
}
break;
case "遷":
checkbox.subgroup = [
{
name: 'moveTarget',
type: 'input',
label: '目標:',
}
];
if (mw.config.get('wgNamespaceNumber') === 0) {
checkbox.subgroup.push({
name: 'moveReason',
type: 'textarea',
label: '移動理由(會附在條目的討論頁):',
tooltip: '請填寫理由。'
tooltip: '請填寫理由。'
});
});
Line 127: Line 144:


Twinkle.tag.checkedTags = [];
Twinkle.tag.checkedTags = [];

Twinkle.tag.updateSortOrder = function(e) {
var sortorder = e.target.value;

Twinkle.tag.checkedTags = e.target.form.getChecked("articleTags");
if (!Twinkle.tag.checkedTags) {
Twinkle.tag.checkedTags = [];
}

var container = new Morebits.quickForm.element({ type: "fragment" });

// function to generate a checkbox, with appropriate subgroup if needed
var makeCheckbox = function(tag, description) {
var checkbox = { value: tag, label: "{{" + tag + "}}: " + description };
if (Twinkle.tag.checkedTags.indexOf(tag) !== -1) {
checkbox.checked = true;
}
switch (tag) {
case "併":
var otherTagName = "併";
checkbox.subgroup = [
{
name: 'mergeTarget',
type: 'input',
label: '目標:',
},
{
name: 'mergeTagOther',
type: 'checkbox',
list: [
{
label: '用{{' + otherTagName + '}}標記其他條目',
checked: true,
}
]
}
];
if (mw.config.get('wgNamespaceNumber') === 0) {
checkbox.subgroup.push({
name: 'mergeReason',
type: 'textarea',
label: '合併理由(會附在條目的討論頁):',
tooltip: '請填寫理由。'
});
}
break;
case "文未準":
checkbox.subgroup = {};
break;
default:
break;
}
return checkbox;
};

var checkboxes = [];
$.each(Twinkle.tag.article.tags, function(tag, description) {
checkboxes.push(makeCheckbox(tag, description));
});
container.append({
type: "checkbox",
name: "articleTags",
list: checkboxes
});

// append any custom tags
if (Twinkle.getFriendlyPref('customTagList').length) {
container.append({ type: 'header', label: '自定義模板' });
container.append({ type: 'checkbox', name: 'articleTags', list: Twinkle.getFriendlyPref('customTagList') });
}

var $workarea = $(e.target.form).find("div#tagWorkArea");
var rendered = container.render();
$workarea.empty().append(rendered);

// style adjustments
$workarea.find("h5").css({ 'font-size': '110%' });
$workarea.find("h5:not(:first-child)").css({ 'margin-top': '1em' });
$workarea.find("div").filter(":has(span.quickformDescription)").css({ 'margin-top': '0.4em' });

// add a link to each template's description page
$.each(Morebits.quickForm.getElements(e.target.form, "articleTags"), function(index, checkbox) {
var $checkbox = $(checkbox);
var link = Morebits.htmlNode("a", ">");
link.setAttribute("class", "tag-template-link");
link.setAttribute("href", mw.util.getUrl("Template:" +
Morebits.string.toUpperCaseFirstChar(checkbox.values)));
link.setAttribute("target", "_blank");
$checkbox.parent().append(["\u00A0", link]);
});
};



// Tags for ARTICLES start here
// Tags for ARTICLES start here
Line 230: Line 155:
'文白相雜': '文白相雜',
'文白相雜': '文白相雜',
'繁簡相雜': '繁簡相雜',
'繁簡相雜': '繁簡相雜',
'無據': '文章沒有任何參考來源',
'遷': '議遷',
'文未準': '文章存在一些問題,需要修正。必須指出具體原因。選中此條後會顯示一些常用原因,另外也可以填寫自己的理由。',
'併': '議併',
'無據': '是文無引據',
'': '請求移動條目',
'併': '請求與其他條目合併'
'文未準': '是文未準,須辨真偽、正文辭。可自定未準緣由。'
};
};


Line 244: Line 169:
'非大典文辭': '非百科全書語氣',
'非大典文辭': '非百科全書語氣',
'非中立': '中立性有問題。注意:請仔細解釋原因否則標記可能無效。',
'非中立': '中立性有問題。注意:請仔細解釋原因否則標記可能無效。',
'分段、分節過於碎': '[[:zh:Wikipedia:Jessechi]]愛做的事情。'
'分段、分節過於碎': '[[:zh:Wikipedia:Jessechi]]愛做的事情。'
};
};


Line 327: Line 252:
}
}
}
}

var miTest = /\{\{(multiple ?issues|article ?issues|mi)[^}]+\{/im.exec(pageText);
var miOldStyleRegex = /\{\{(multiple ?issues|article ?issues|mi)\s*\|([^{]+)\}\}/im;
var miOldStyleTest = miOldStyleRegex.exec(pageText);


tags = tags.concat( groupableTags );
tags = tags.concat( groupableTags );
Line 372: Line 293:
talkpage.setCreateOption('recreate');
talkpage.setCreateOption('recreate');
talkpage.append();
talkpage.append();
}
if (params.mergeTagOther) {
// tag the target page if requested
var otherTagName = "merge";
if (tags.indexOf("merge from") !== -1) {
otherTagName = "merge to";
} else if (tags.indexOf("merge to") !== -1) {
otherTagName = "merge from";
}
var newParams = {
tags: [otherTagName],
mergeTarget: Morebits.pageNameNorm,
discussArticle: params.discussArticle,
talkDiscussionTitle: params.talkDiscussionTitle
};
var otherpage = new Morebits.wiki.page(params.mergeTarget, "標記其他頁面(" +
params.mergeTarget + ")");
otherpage.setCallbackParameters(newParams);
otherpage.load(Twinkle.tag.callbacks.main);
}
}
});
});
Line 402: Line 304:
Twinkle.tag.callback.evaluate = function friendlytagCallbackEvaluate(e) {
Twinkle.tag.callback.evaluate = function friendlytagCallbackEvaluate(e) {
var form = e.target;
var form = e.target;

console.log(form);
return;

var params = {};
var params = {};
if (form.patrolPage) {
if (form.patrolPage) {
Line 419: Line 325:
// form validation
// form validation
if( !params.tags.length ) {
if( !params.tags.length ) {
alert( '必须选择至少一標記!' );
alert( '必須選擇至少一標記!' );
return;
return;
}
}
Line 436: Line 342:


Morebits.wiki.actionCompleted.redirect = Morebits.pageNameNorm;
Morebits.wiki.actionCompleted.redirect = Morebits.pageNameNorm;
Morebits.wiki.actionCompleted.notice = "標記完成,在几秒内刷新頁面";
Morebits.wiki.actionCompleted.notice = "標記完成,在几秒內重載入頁面";


var wikipedia_page = new Morebits.wiki.page(Morebits.pageNameNorm, "正在標記條目");
var wikipedia_page = new Morebits.wiki.page(Morebits.pageNameNorm, "正在標記條目");