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]]愛做的事情。' |
||
}; |
}; |
||
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, "正在標記條目"); |