User:逆襲的天邪鬼/Twinkle-lzh/twinkleconfig.js: Difference between revisions
User:逆襲的天邪鬼/Twinkle-lzh/twinkleconfig.js (view source)
Revision as of 15:24, 5 June 2017
, 7 years agono edit summary
(Created page with "//<nowiki> // vim: set noet sts=0 sw=8: (function($){ /* **************************************** *** twinkleconfig.js: Preferences module *****************************...") |
No edit summary |
||
Line 25:
Twinkle.config.commonEnums = {
watchlist: { yes: "
talkPageMode: { window: "在視窗
};
Twinkle.config.commonSets = {
csdCriteria: {
db: "自定
g1: "
a1: "
c1: "空類"
},
csdCriteriaDisplayOrder: [
"db",
"g1", "
"a1", "a2", "a3", "
"
"c1"
],
csdCriteriaNotification: {
db: "自定
g1: "
a1: "
c1: "空類"
},
csdCriteriaNotificationDisplayOrder: [
"db",
"g1", "
"a1", "a2", "a3", "
"
"c1"
],
csdAndDICriteria: {
db: "自定
g1: "
a1: "
c1: "空類"
},
csdAndDICriteriaDisplayOrder: [
"db",
"g1", "
"a1", "a2", "a3", "
"
"c1"
],
namespacesNoSpecial: {
"0": "(
"1": "Talk",
"2": "User",
Line 95 ⟶ 89:
"14": "Category",
"15": "Category talk",
"100": "
"101": "
"
"
"828": "Module",
"829": "Module talk"
Line 134 ⟶ 128:
Twinkle.config.sections = [
{
title: "常
preferences: [
// TwinkleConfig.summaryAd (string)
Line 140 ⟶ 134:
{
name: "summaryAd",
label: "
helptip: "
type: "string"
},
Line 149 ⟶ 143:
{
name: "deletionSummaryAd",
label: "
helptip: "通常和
adminOnly: true,
type: "string"
Line 157 ⟶ 151:
// TwinkleConfig.protectionSummaryAd (string)
// Text to be appended to the edit summary of page protections made using Twinkle
// {
// name: "protectionSummaryAd",
// label: "保
// helptip: "通常和
// adminOnly: true,
// type: "string"
// },
// TwinkleConfig.userTalkPageMode may take arguments:
Line 171 ⟶ 165:
{
name: "userTalkPageMode",
label: "
type: "enum",
enumValues: Twinkle.config.commonEnums.talkPageMode
Line 179 ⟶ 173:
{
name: "dialogLargeFont",
label: "在Twinkle
type: "boolean"
}
]
Line 223 ⟶ 186:
{
name: "openTalkPage",
label: "在
type: "set",
setValues: { agf: "善意回退", norm: "常
},
Line 232 ⟶ 195:
{
name: "openTalkPageOnAutoRevert",
label: "在从用
helptip: "您经常
type: "boolean"
},
Line 241 ⟶ 204:
{
name: "markRevertedPagesAsMinor",
label: "
type: "set",
setValues: { agf: "善意回退", norm: "常
},
Line 250 ⟶ 213:
{
name: "watchRevertedPages",
label: "把
type: "set",
setValues: { agf: "善意回退", norm: "常
},
Line 259 ⟶ 222:
{
name: "offerReasonOnNormalRevert",
label: "常
helptip: "
type: "boolean"
},
Line 266 ⟶ 229:
{
name: "confirmOnFluff",
label: "回退前要求
helptip: "
type: "boolean"
},
Line 276 ⟶ 239:
{
name: "showRollbackLinks",
label: "在
type: "set",
setValues: { diff: "差
}
]
Line 284 ⟶ 247:
{
title: "共享IP
inFriendlyConfig: true,
preferences: [
{
name: "markSharedIPAsMinor",
label: "
type: "boolean"
}
Line 296 ⟶ 259:
{
title: "快速
preferences: [
{
name: "speedySelectionStyle",
label: "什
type: "enum",
enumValues: { "buttonClick": '
},
Line 309 ⟶ 272:
{
name: "watchSpeedyPages",
label: "
type: "set",
setValues: Twinkle.config.commonSets.csdCriteria,
Line 319 ⟶ 282:
{
name: "markSpeedyPagesAsPatrolled",
label: "
type: "boolean"
},
Line 327 ⟶ 290:
{
name: "notifyUserOnSpeedyDeletionNomination",
label: "
helptip: "
type: "set",
setValues: Twinkle.config.commonSets.csdCriteriaNotification,
setDisplayOrder: Twinkle.config.commonSets.csdCriteriaNotificationDisplayOrder
},
Line 360 ⟶ 301:
{
name: "openUserTalkPageOnSpeedyDelete",
label: "使用以下理由
adminOnly: true,
type: "set",
Line 371 ⟶ 312:
{
name: "deleteTalkPageOnDelete",
label: "
adminOnly: true,
type: "boolean"
Line 378 ⟶ 319:
{
name: "deleteRedirectsOnDelete",
label: "
adminOnly: true,
type: "boolean"
Line 387 ⟶ 328:
{
name: "deleteSysopDefaultToTag",
label: "
adminOnly: true,
type: "boolean"
Line 396 ⟶ 337:
{
name: "speedyWindowWidth",
label: "快速
type: "integer"
},
Line 404 ⟶ 345:
{
name: "speedyWindowHeight",
label: "快速
helptip: "如果您有一只很大的
type: "integer"
},
Line 411 ⟶ 352:
{
name: "logSpeedyNominations",
label: "在用
helptip: "非管理
type: "boolean"
},
{
name: "speedyLogPageName",
label: "在此
helptip: "在此框中
type: "string"
},
{
name: "noLogOnSpeedyNomination",
label: "在使用以下理由
type: "set",
setValues: Twinkle.config.commonSets.csdAndDICriteria,
setDisplayOrder: Twinkle.config.commonSets.csdAndDICriteriaDisplayOrder
}
]
Line 439 ⟶ 373:
{
title: "
inFriendlyConfig: true,
preferences: [
{
name: "watchTaggedPages",
label: "
type: "boolean"
},
{
name: "watchMergeDiscussions",
label: "
type: "boolean"
},
{
name: "markTaggedPagesAsMinor",
label: "
type: "boolean"
},
{
name: "markTaggedPagesAsPatrolled",
label: "
type: "boolean"
},
{
name: "groupByDefault",
label: "
type: "boolean"
},
{
name: "customTagList",
label: "自定
helptip: "
type: "customList",
customListValueTitle: "模板名(不含大括
customListLabelTitle: "
}
]
Line 513 ⟶ 413:
{
title: "反
preferences: [
// TwinkleConfig.unlinkNamespaces (array)
Line 519 ⟶ 419:
{
name: "unlinkNamespaces",
label: "取消以下名字空
helptip: "
type: "set",
setValues: Twinkle.config.commonSets.namespacesNoSpecial
Line 528 ⟶ 428:
{
title: "警告用
preferences: [
// TwinkleConfig.showSharedIPNotice may take arguments:
// true: to show shared ip notice if an IP address
Line 553 ⟶ 435:
{
name: "showSharedIPNotice",
label: "在IP
helptip: "使用的模板是{{SharedIPAdvice}}。",
type: "boolean"
Line 562 ⟶ 444:
{
name: "watchWarnings",
label: "警告
type: "boolean"
},
Line 569 ⟶ 450:
{
name: "customWarningList",
label: "自定
helptip: "您可以加入模板或用
type: "customList",
customListValueTitle: "模板名(不含大括
customListLabelTitle: "
},
{
name: "markXfdPagesAsPatrolled",
label: "在提交存
type: "boolean"
}
Line 585 ⟶ 466:
{
title: "存
preferences: [
// TwinkleConfig.xfdWatchPage (string)
Line 592 ⟶ 473:
{
name: "xfdWatchPage",
label: "
type: "enum",
enumValues: Twinkle.config.commonEnums.watchlist
Line 603 ⟶ 484:
{
name: "xfdWatchDiscussion",
label: "
type: "enum",
enumValues: Twinkle.config.commonEnums.watchlist
Line 614 ⟶ 494:
{
name: "xfdWatchUser",
label: "
type: "enum",
enumValues: Twinkle.config.commonEnums.watchlist
Line 623 ⟶ 503:
{
name: "markXfdPagesAsPatrolled",
label: "
helptip: "基
type: "boolean"
}
Line 632 ⟶ 512:
{
title: "
hidden: true,
preferences: [
Line 750 ⟶ 595:
Twinkle.config.init = function twinkleconfigInit() {
if ((mw.config.get("wgNamespaceNumber") === mw.config.get("wgNamespaceIds").project && mw.config.get("wgTitle") === "Twinkle/
(mw.config.get("wgNamespaceNumber") === mw.config.get("wgNamespaceIds").user && mw.config.get("wgTitle").lastIndexOf("/Twinkle
mw.config.get("wgAction") === "view") {
// create the config page at Wikipedia:Twinkle/
if (!document.getElementById("twinkle-config")) {
Line 769 ⟶ 614:
var contentnotice = document.createElement("p");
// I hate innerHTML, but this is one thing it *is* good for...
contentnotice.innerHTML = "<b>在
contentdiv.appendChild(contentnotice);
Line 785 ⟶ 630:
toctitle.id = "toctitle";
var toch2 = document.createElement("h2");
toch2.textContent = "目
toctitle.appendChild(toch2);
// add TOC show/hide link
Line 794 ⟶ 639:
toctogglelink.className = "internal";
toctogglelink.setAttribute("href", "#tw-tocshowhide");
toctogglelink.textContent = "
toctoggle.appendChild(toctogglelink);
toctoggle.appendChild(document.createTextNode("]"));
Line 805 ⟶ 650:
$tocul.toggle();
if ($tocul.find(":visible").length) {
toctogglelink.textContent = "
} else {
toctogglelink.textContent = "
}
}, false);
Line 1,016 ⟶ 861:
inFriendlyConfig: section.inFriendlyConfig
});
button.appendChild(document.createTextNode("
cell.appendChild(button);
break;
default:
alert("twinkleconfig: 未知
break;
}
Line 1,048 ⟶ 893:
}
resetlink.style.margin = "0 0.6em";
resetlink.appendChild(document.createTextNode("
cell.appendChild(resetlink);
}
Line 1,066 ⟶ 911:
button.setAttribute("id", "twinkle-config-submit");
button.setAttribute("type", "submit");
button.appendChild(document.createTextNode("
footerbox.appendChild(button);
var footerspan = document.createElement("span");
Line 1,076 ⟶ 921:
footera.setAttribute("id", "twinkle-config-resetall");
footera.addEventListener("click", Twinkle.config.resetAllPrefs, false);
footera.appendChild(document.createTextNode("恢
footerspan.appendChild(footera);
footerbox.appendChild(footerspan);
Line 1,109 ⟶ 954:
if (mw.config.get("wgArticleId") > 0) { // page exists
box.appendChild(document.createTextNode("
} else { // page does not exist
box.appendChild(document.createTextNode("您可
}
link = document.createElement("a");
link.setAttribute("href", mw.util.getUrl(mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceIds").project] + ":Twinkle/
link.appendChild(document.createTextNode("Twinkle
box.appendChild(link);
box.appendChild(document.createTextNode(",或直接
$(box).insertAfter($("#contentSub"));
Line 1,124 ⟶ 969:
box.style.width = "60%";
box.appendChild(document.createTextNode("如果您想
link = document.createElement("a");
link.setAttribute("href", mw.util.getUrl(mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceIds").project] + ":Twinkle/
link.appendChild(document.createTextNode("Twinkle
box.appendChild(link);
box.appendChild(document.createTextNode("。"));
Line 1,142 ⟶ 987:
contentnotice.innerHTML = '<table class="plainlinks ombox ombox-content"><tr><td class="mbox-image">' +
'<img alt="" src="http://upload.wikimedia.org/wikipedia/en/3/38/Imbox_content.png" /></td>' +
'<td class="mbox-text"><p><big><b>在
'<p>要
'</td></tr></table>';
} else {
Line 1,199 ⟶ 1,044:
var dialog = new Morebits.simpleWindow(720, 400);
dialog.setTitle(curpref.label);
dialog.setScriptName("Twinkle
var dialogcontent = document.createElement("div");
Line 1,223 ⟶ 1,068:
dlgth = document.createElement("th");
dlgth.style.width = "60%";
dlgth.textContent = (curpref.customListLabelTitle ? curpref.customListLabelTitle : "
dlgtr.appendChild(dlgth);
dlgtbody.appendChild(dlgtr);
Line 1,249 ⟶ 1,094:
Twinkle.config.listDialog.addRow(dlgtbody);
}, false);
addButton.textContent = "
dlgtd.appendChild(addButton);
dlgtr.appendChild(dlgtd);
Line 1,265 ⟶ 1,110:
dialog.close();
}, false);
button.textContent = "
dialogcontent.appendChild(button);
button = document.createElement("button");
Line 1,408 ⟶ 1,253:
Morebits.status.init( document.getElementById("twinkle-config-content") );
Morebits.wiki.actionCompleted.notice = "
var userjs = mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceIds").user] + ":" + mw.config.get("wgUserName") + "/twinkleoptions.js";
var wikipedia_page = new Morebits.wiki.page(userjs, "
wikipedia_page.setCallbackParameters(e.target);
wikipedia_page.load(Twinkle.config.writePrefs);
Line 1,570 ⟶ 1,415:
userValue = parseInt(form[pref.name].value, 10);
if (isNaN(userValue)) {
Morebits.status.warn("
userValue = null;
}
Line 1,599 ⟶ 1,444:
default:
alert("twinkleconfig: 未知数据
break;
}
Line 1,633 ⟶ 1,478:
var text =
"// twinkleoptions.js:用
"//\n" +
"//
"// Twinkle
"//\n" +
"//
"// 以一
"// 在下一次您
"// 修改此
"\n" +
"window.Twinkle.prefs = ";
Line 1,648 ⟶ 1,493:
";\n" +
"\n" +
"// twinkleoptions.js到此
pageobj.setPageText(text);
pageobj.setEditSummary("
pageobj.setCreateOption("recreate");
pageobj.save(Twinkle.config.saveSuccess);
Line 1,663 ⟶ 1,508:
noticebox.style.fontSize = "100%";
noticebox.style.marginTop = "2em";
noticebox.innerHTML = "<p><b>您的Twinkle
Morebits.status.root.appendChild(noticebox);
var noticeclear = document.createElement("br");
|