LLWiki正在建设中,欢迎加入我们

“MediaWiki:Gadget-SettingsDialog.js”的版本间差异

跳转到导航 跳转到搜索
标签移动版网页编辑 移动版编辑
//避免使用API加载消息,直接手动添加
mw.messages.set( wgULS({
'gadget-sd-title': '小工具设置', 'gadget-sd-notify': '您的设置已保存!', 'gadget-sd-save': '保存',
'gadget-sd-savetooltip': '保存为当前浏览器设置小工具偏好', 'gadget-sd-cancelhelp': '取消', 'gadget-sd-tooltip': '为您可以在这里修改小工具偏好,修改仅对当前浏览器设置小工具偏好有效。',
'gadget-sd-helpback': '您可以在这里修改小工具偏好,修改仅对当前浏览器有效。还原', 'gadget-sd-backhelppage': '还原如果想要修改设置对所有浏览器生效,请查阅',
'gadget-sd-helppage': '如果想要修改设置对所有浏览器生效,请查阅'
}, {
'gadget-sd-title': '小工具偏好設定', 'gadget-sd-notify': '您的偏好設定已儲存!', 'gadget-sd-save': '儲存',
'gadget-sd-savetooltip': '儲存為當前瀏覽器設定小工具偏好', 'gadget-sd-cancelhelp': '取消', 'gadget-sd-tooltip': '為您可以在這裡修改小工具偏好,修改僅對當前瀏覽器設定小工具偏好有效。',
'gadget-sd-helpback': '您可以在這裡修改小工具偏好,修改僅對當前瀏覽器有效。復原', 'gadget-sd-backhelppage': '復原如果想要修改設定對所有瀏覽器生效,請查閱',
'gadget-sd-helppage': '如果想要修改設定對所有瀏覽器生效,請查閱'
}) );
// constructor只添加一个CSS类,剩下的交给addTab方法逐一添加小工具
// 需要同时添加数据和HTML
SettingsDialog.prototype.addTab = function(params) {
const panel = new OO.ui.TabPanelLayout( params.name, {label: params.label} );,
$element = panel.$element,
dialog = this;
this.gadgets.push( params );
this.content.addTabPanels( [panel] );
params.items.forEach(function(ele) {
ele.widget = new OO.ui[ele.type + 'InputWidget']( ele.config );
$element.append( new OO.ui.FieldLayout(ele.widget, {label: ele.label, help: ele.help, helpinline: true,
align: ele.type == 'Text' ? 'left' : 'inline'}).$element );
});
params.fields.forEach(function(ele) {
ele.field = new OO.ui.FieldsetLayout({label: ele.label, help: ele.help, helpinline: true});
ele.field.addItems( ele.items.map(function(e) {
e.widget = new OO.ui[e.type + 'InputWidget']( e.config );
return new OO.ui.FieldLayout(e.widget, {label: e.label, help: e.help, helpinline: true,
align: e.type == 'Text' ? 'left' : 'inline'}).$element;
}) );
$element.append( ele.field.$element );
});
$('<div>', {class: 'panel-btns', html: [
new OO.ui.ButtonWidget({label: mw.msg('gadget-sd-back'), flags: 'destructive'}).on('click', function() {
dialog.clearOptions( params.name );
}), new OO.ui.ButtonWidget({label: mw.msg('gadget-sd-save'), flags: 'progressive'}).on('click', function() {
dialog.saveOptions( params.name );
})].map(function(ele) { return ele.$element; })}).appendTo( $element );
};
SettingsDialog.prototype.getIndex = function(arg) {
SettingsDialog.static = {name: 'settingsDialog', tagName: 'div', title: mw.msg('gadget-sd-title'),
actions: [{action: 'save', label: mw.msg('gadget-sd-save'), flags: ['primary', 'progressive']},
{action: 'cancel', label: mw.msg('gadgetooui-sddialog-cancelmessage-reject'), flags: 'safe'}]
};
mw.settingsDialog = new SettingsDialog();