「MediaWiki:Common.js」:修訂間差異
跳至導覽
跳至搜尋
無編輯摘要
imported>=海豚= 無編輯摘要 |
imported>=海豚= 無編輯摘要 |
||
(未顯示由 2 位使用者於中間所作的 19 次修訂) | |||
第1行: | 第1行: | ||
//跨站重定向页顶链接 | //跨站重定向页顶链接 | ||
function crossDomain_link() { | function crossDomain_link() { | ||
第94行: | 第11行: | ||
$("#contentSub").prepend(crossDomain); | $("#contentSub").prepend(crossDomain); | ||
} | } | ||
/* Any JavaScript here will be loaded for all users on edit page load. */ | |||
$(function() { | |||
var wpSummary = $('[name="wpSummary"]'); | |||
// $(".mw-summary-preset-item a").closest('.oo-ui-fieldLayout-header').width($('#wpSummary').width()); | |||
$(".mw-summary-preset-item a").on("click", function() { | |||
wpSummary.val(wpSummary.val() + " " + $(this).text()); | |||
wpSummary.focus(); | |||
$( | return false; | ||
}); | |||
$(" | // .wikiEditor-ui-controls 颜色修正 | ||
$('.wikiEditor-ui-controls').css('background-color', $('#content').css('background-color')); | |||
//编辑提示检查 | |||
if ($(".mw-summary-preset")[0]) { | |||
$(".CheckNewSectionOn").hide(); | |||
} else { | |||
$(".CheckNewSectionOff").hide(); | |||
$('.headerInputbox a[href*="preload=Template%3A权限申请%2F"]').attr("target", "_self"); | |||
} | } | ||
if ($(".AbusefilterWarningNoHttp")[0]) { | |||
$("#wpTextbox1").val($("#wpTextbox1").val().replace(/http:\/\/([a-z\d]+\.bilibili\.[a-z\d]+)/ig, "https://$1")); | |||
} | } | ||
// Customized File Insertion dialog | |||
// Copyright 2017 The Little Moe New LLC. All rights reserved. | |||
mw.loader.using(["oojs", "oojs-ui"]).then(function() { | |||
$("#wpTextbox1").on("wikiEditor-toolbar-doneInitialSections", function() { | |||
function FileInsertionDialog(config) { | |||
FileInsertionDialog.super.call(this, config); | |||
} | } | ||
OO.inheritClass(FileInsertionDialog, OO.ui.ProcessDialog); | |||
// Name | |||
FileInsertionDialog.static.name = "fileInsertionDialog"; | |||
}, | FileInsertionDialog.static.title = mw.msg("wikieditor-toolbar-tool-file-title"); | ||
FileInsertionDialog.static.actions = [{ | |||
} : | flags: "primary", | ||
label: mw.msg("wikieditor-toolbar-tool-file-insert"), | |||
action: "insert" | |||
}, { | |||
flags: "safe", | |||
label: mw.msg("wikieditor-toolbar-tool-file-cancel") | |||
}]; | |||
// Initialization | |||
FileInsertionDialog.prototype.initialize = function() { | |||
FileInsertionDialog.super.prototype.initialize.call(this); | |||
$(this). | this.panel = new OO.ui.PanelLayout({ | ||
padded: true, | |||
expanded: false | |||
}); | |||
this.fileMetaContent = new OO.ui.FieldsetLayout(); | |||
this.alignmentContent = new OO.ui.FieldsetLayout(); | |||
this.formatContent = new OO.ui.FieldsetLayout(); | |||
this.fileNameInput = new OO.ui.TextInputWidget({ | |||
indicator: "required" | |||
}); | |||
this.fileNameField = new OO.ui.FieldLayout(this.fileNameInput, { | |||
label: mw.msg("wikieditor-toolbar-file-target"), | |||
align: "top" | |||
}); | |||
this.fileTitleInput = new OO.ui.TextInputWidget(); | |||
this.fileTitleField = new OO.ui.FieldLayout(this.fileTitleInput, { | |||
label: mw.msg("wikieditor-toolbar-file-caption"), | |||
align: "top" | |||
}); | |||
this.sizeInput = new OO.ui.TextInputWidget(); | |||
this.sizeField = new OO.ui.FieldLayout(this.sizeInput, { | |||
label: mw.msg("wikieditor-toolbar-file-size"), | |||
align: "top" | |||
}); | |||
this.fileMetaContent.addItems([this.fileNameField, this.fileTitleField, this.sizeField]); | |||
var alignOptionDefault = new OO.ui.ButtonOptionWidget({ | |||
data: "default", | |||
label: mw.msg("wikieditor-toolbar-file-default"), | |||
title: mw.msg("wikieditor-toolbar-file-default") | |||
}); | |||
var alignOptionNone = new OO.ui.ButtonOptionWidget({ | |||
data: "none", | |||
label: mw.msg("wikieditor-toolbar-file-format-none"), | |||
title: mw.msg("wikieditor-toolbar-file-format-none") | |||
}); | |||
var magicWords = mw.config.get("wgWikiEditorMagicWords"); | |||
var alignOptionMid = new OO.ui.ButtonOptionWidget({ | |||
data: "center", | |||
label: magicWords.img_center, | |||
title: magicWords.img_center | |||
}); | |||
var alignOptionLeft = new OO.ui.ButtonOptionWidget({ | |||
data: "left", | |||
label: magicWords.img_left, | |||
title: magicWords.img_left | |||
}); | |||
var alignOptionRight = new OO.ui.ButtonOptionWidget({ | |||
data: "right", | |||
label: magicWords.img_right, | |||
title: magicWords.img_right | |||
}); | |||
this.alignmentSelect = new OO.ui.ButtonSelectWidget({ | |||
items: [alignOptionNone, alignOptionDefault, alignOptionMid, alignOptionLeft, alignOptionRight] | |||
}); | |||
this.alignmentField = new OO.ui.FieldLayout(this.alignmentSelect, { | |||
label: mw.msg("wikieditor-toolbar-file-float"), | |||
align: "top" | |||
}); | |||
this.alignmentContent.addItems([this.alignmentField]); | |||
var formatOptionThumbnail = new OO.ui.ButtonOptionWidget({ | |||
data: "thumbnail", | |||
label: magicWords.img_thumbnail, | |||
title: magicWords.img_thumbnail | |||
}); | |||
var formatOptionFramed = new OO.ui.ButtonOptionWidget({ | |||
data: "framed", | |||
label: magicWords.img_framed, | |||
title: magicWords.img_framed | |||
}); | |||
var formatOptionFrameless = new OO.ui.ButtonOptionWidget({ | |||
data: "frameless", | |||
label: magicWords.img_frameless, | |||
title: magicWords.img_frameless | |||
}); | |||
var formatOptionNone = new OO.ui.ButtonOptionWidget({ | |||
data: "default", | |||
label: magicWords.img_none, | |||
title: magicWords.img_none | |||
}); | |||
this.formatSelect = new OO.ui.ButtonSelectWidget({ | |||
items: [formatOptionThumbnail, formatOptionFramed, formatOptionFrameless, formatOptionNone] | |||
}); | |||
this.formatField = new OO.ui.FieldLayout(this.formatSelect, { | |||
label: mw.msg("wikieditor-toolbar-file-format"), | |||
align: "top" | |||
}); | |||
this.formatContent.addItems([this.formatField]); | |||
this.panel.$element.append(this.fileMetaContent.$element); | |||
this.panel.$element.append(this.alignmentContent.$element); | |||
this.panel.$element.append(this.formatContent.$element); | |||
this.$body.append(this.panel.$element); | |||
this.fileNameInput.connect(this, { | |||
change: "onFileNameChange" | |||
}); | |||
}; | |||
// Specify the dialog height (or don"t to use the automatically generated height). | |||
FileInsertionDialog.prototype.getBodyHeight = function() { | |||
return this.panel.$element.outerHeight(true); | |||
}; | |||
// Name validation | |||
FileInsertionDialog.prototype.onFileNameChange = function(value) { | |||
this.actions.setAbilities({ | |||
insert: !!value.length | |||
}); | }); | ||
} | }; | ||
// Default state initialization | |||
FileInsertionDialog.prototype.getSetupProcess = function(data) { | |||
data = data || {}; | |||
return FileInsertionDialog.super.prototype.getSetupProcess.call(this, data).next(function() { | |||
this.actions.setAbilities({ | |||
insert: false | |||
}); | |||
this.fileNameInput.setValue(""); | |||
this.fileTitleInput.setValue(""); | |||
this.sizeInput.setValue(""); | |||
this.alignmentSelect.selectItemByData("default"); | |||
this.formatSelect.selectItemByData("thumbnail"); | |||
}, this); | |||
}; | |||
// Context setup | |||
FileInsertionDialog.prototype.setContext = function(context) { | |||
this.editorContext = context; | |||
}; | |||
// Specify processes to handle the actions. | |||
FileInsertionDialog.prototype.getActionProcess = function(action) { | |||
if (action === "insert") { | |||
return new OO.ui.Process(function() { | |||
this.insertImage(); | |||
}, this); | |||
} | |||
// Fallback to parent handler | |||
return FileInsertionDialog.super.prototype.getActionProcess.call(this, action); | |||
}; | |||
// Handles image insertion. | |||
FileInsertionDialog.prototype.insertImage = function() { | |||
if (!this.editorContext) return; | |||
if ( | var fileName, caption, fileFloat, fileFormat, fileSize, fileTitle, options, fileUse, hasPxRgx = /.+px$/, | ||
magicWordsI18N = mw.config.get("wgWikiEditorMagicWords"); | |||
fileName = this.fileNameInput.getValue(); | |||
caption = this.fileTitleInput.getValue(); | |||
fileSize = this.sizeInput.getValue(); | |||
fileFloat = this.alignmentSelect.getSelectedItem().data; | |||
fileFormat = this.formatSelect.getSelectedItem().data; | |||
// Append px to end to size if not already contains it | |||
if (fileSize !== "" && !hasPxRgx.test(fileSize)) { | |||
fileSize += "px"; | |||
} | |||
if (fileName !== "") { | |||
fileTitle = new mw.Title(fileName); | |||
// Append file namespace prefix to filename if not already contains it | |||
if (fileTitle.getNamespaceId() !== 6) { | |||
fileTitle = new mw.Title(fileName, 6); | |||
} | } | ||
fileName = fileTitle.toText(); | |||
} | } | ||
options = [fileSize, fileFormat, fileFloat]; | |||
// Filter empty values | |||
options = $.grep(options, function(val) { | |||
return val.length && val !== "default"; | |||
}); | |||
if (caption.length) { | |||
options.push(caption); | |||
} | |||
fileUse = options.length === 0 ? fileName : fileName + "|" + options.join("|"); | |||
$.wikiEditor.modules.toolbar.fn.doAction(this.editorContext, { | |||
type: "replace", | |||
options: { | |||
pre: "[[", | |||
peri: fileUse, | |||
post: "]]", | |||
ownline: true | |||
} | } | ||
}); | }); | ||
this.close(); | |||
}; | |||
}); | |||
} | |||
} | |||
}); | }); | ||
} | }); | ||