MediaWiki:Gadget-FastWriterPage.js:修订间差异
跳转到导航
跳转到搜索
无编辑摘要 |
无编辑摘要 |
||
第9行: | 第9行: | ||
icon: 'check', | icon: 'check', | ||
flags: ['primary'] | flags: ['primary'] | ||
}), | |||
btn_add = new OO.ui.ButtonWidget({ | |||
label: '增加作品', | |||
icon: 'add' | |||
}), | |||
btn_reduce = new OO.ui.ButtonWidget({ | |||
label: '减少作品', | |||
icon: 'subtract' | |||
}); | }); | ||
var input_writer_name = new OO.ui.TextInputWidget( { | var input_writer_name = new OO.ui.TextInputWidget( { | ||
required: true, | |||
validate: 'non-empty', | |||
placeholder: '请输入文手名称' | placeholder: '请输入文手名称' | ||
} ), | } ), | ||
第25行: | 第35行: | ||
check_isoverwrite = new OO.ui.CheckboxInputWidget( { | check_isoverwrite = new OO.ui.CheckboxInputWidget( { | ||
selected: false | selected: false | ||
} ) | } ); | ||
fieldset = new OO.ui.FieldsetLayout( { | var fieldset = new OO.ui.FieldsetLayout( { | ||
label: '文手页面快速生成器', | label: '文手页面快速生成器', | ||
classes: [ 'container' ] | |||
} ), | |||
fieldset_work = new OO.ui.FieldsetLayout( { | |||
classes: [ 'container' ] | classes: [ 'container' ] | ||
} ); | } ); | ||
fieldset.addItems( [ | |||
new OO.ui.FieldLayout( input_writer_name, { | |||
label: '文手名称:', | |||
align: 'top', | |||
help: '名称请使用符合URL规则的纯文本(可以使用unicode),不要使用任何wikitext、HTML之类的语法。由于MediaWiki限制,空格会被转为下划线', | |||
helpInline: true | |||
} ), | |||
new OO.ui.FieldLayout( input_writer_tag, { | |||
label: '文手标签:', | |||
align: 'top' | |||
} ), | |||
new OO.ui.FieldLayout( input_writer_platform, { | |||
label: '文手活跃平台:', | |||
align: 'top' | |||
} ), | |||
new OO.ui.FieldLayout( check_isoverwrite, { | |||
label: '覆盖已存在的页面【危险!可能会覆盖手工加入的信息】', | |||
align: 'inline' | |||
} ), | |||
new OO.ui.FieldLayout( btn_submit ), | |||
new OO.ui.FieldLayout( | |||
new OO.ui.Widget( { | |||
content: [ new OO.ui.HorizontalLayout( { | |||
items: [ | |||
new OO.ui.FieldLayout( btn_add ), | |||
new OO.ui.FieldLayout( btn_reduce ) | |||
] | |||
} ) ] | |||
} ) | |||
), | |||
new OO.ui.FieldsetLayout( fieldset_work ) | |||
] ); | |||
const getWork = () => { | |||
var input_work_name = new OO.ui.TextInputWidget( { | |||
placeholder: '作品名称' | |||
} ); | |||
var input_work_pub_date = new OO.ui.TextInputWidget( { | |||
placeholder: '发布日期' | |||
} ); | |||
var input_work_update_date = new OO.ui.TextInputWidget( { | |||
placeholder: '更新日期' | |||
} ); | |||
var input_work_platform = new OO.ui.TextInputWidget( { | |||
placeholder: '发布平台' | |||
} ); | |||
var input_work_url = new OO.ui.TextInputWidget( { | |||
placeholder: '作品链接' | |||
} ); | |||
var input_work_status = new OO.ui.TextInputWidget( { | |||
placeholder: '存档情况' | |||
} ); | |||
var input_work_note = new OO.ui.TextInputWidget( { | |||
placeholder: '备注' | |||
} ); | |||
var work_field = new OO.ui.FieldsetLayout( { | |||
label: '作品信息', | |||
classes: [ 'container' ] | |||
} ); | |||
work_field.addItems( [ | |||
new OO.ui.FieldLayout( | |||
new OO.ui.Widget( { | |||
content: [ new OO.ui.HorizontalLayout( { | |||
items: [ | |||
new OO.ui.FieldLayout( input_work_name, { | |||
label: '作品名称:', | |||
align: 'top' | |||
}), | |||
new OO.ui.FieldLayout( input_work_pub_date, { | |||
label: '发布日期:', | |||
align: 'top' | |||
}), | |||
new OO.ui.FieldLayout( input_work_update_date, { | |||
label: '更新日期:', | |||
align: 'top' | |||
}), | |||
new OO.ui.FieldLayout( input_work_platform, { | |||
label: '发布平台:', | |||
align: 'top' | |||
}), | |||
new OO.ui.FieldLayout( input_work_url, { | |||
label: '作品链接:', | |||
align: 'top' | |||
}), | |||
new OO.ui.FieldLayout( input_work_status, { | |||
label: '存档情况:', | |||
align: 'top' | |||
}), | |||
new OO.ui.FieldLayout( input_work_note, { | |||
label: '备注:', | |||
align: 'top' | |||
}) | |||
] | |||
} ) ] | |||
} ) | |||
) | |||
] ); | |||
return { | |||
input_work_name: input_work_name, | |||
input_work_pub_date: input_work_pub_date, | |||
input_work_update_date: input_work_update_date, | |||
input_work_platform: input_work_platform, | |||
input_work_url: input_work_url, | |||
input_work_status: input_work_status, | |||
input_work_note: input_work_note, | |||
work_field: work_field | |||
}; | |||
} | |||
var work_list = []; | |||
btn_add.on('click', function () { | |||
new_work = getWork(); | |||
work_list.push(new_work); | |||
fieldset_work.addItems( [ new_work.work_field ] ); | |||
}) | |||
btn_reduce.on('click', function () { | |||
last_work = work_list.pop(); | |||
fieldset_work.removeItems( [last_work.work_field] ); | |||
}) | |||
] ); | |||
btn_submit.on('click', function () { | btn_submit.on('click', function () { | ||
第64行: | 第181行: | ||
var isoverwrite = check_isoverwrite.isSelected(); | var isoverwrite = check_isoverwrite.isSelected(); | ||
if (isoverwrite){ | if (isoverwrite){ | ||
// 强制覆盖 | |||
return | |||
} | } | ||
var windowManager = new OO.ui.WindowManager(); | if (work_list.length == 0) { | ||
// 没有填写作品 | |||
return | |||
} | |||
for (var i = 0; i < work_list.length; i++) { | |||
var work = work_list[i]; | |||
console.log(work); | |||
var work_name = work.input_work_name.getValue(); | |||
var work_pub_date = work.input_work_pub_date.getValue(); | |||
var work_update_date = work.input_work_update_date.getValue(); | |||
var work_platform = work.input_work_platform.getValue(); | |||
var work_url = work.input_work_url.getValue(); | |||
var work_status = work.input_work_status.getValue(); | |||
var work_note = work.input_work_note.getValue(); | |||
var windowManager = new OO.ui.WindowManager(); | |||
$('body').append(windowManager.$element); | |||
var messageDialog = new OO.ui.MessageDialog(); | |||
windowManager.addWindows([messageDialog]); | |||
windowManager.openWindow(messageDialog, { | |||
message: work_name, | |||
title: '仍在开发中' | |||
}); | |||
} | |||
}); | }); | ||
// 添加到页面顶部 | // 添加到页面顶部 | ||
$('#mw-content-text').prepend(fieldset.$element); | $('#mw-content-text').prepend( | ||
fieldset.$element | |||
); | |||
}); | }); |
2025年3月16日 (日) 15:08的版本
mw.loader.using(['oojs-ui-core', 'oojs-ui-windows']).then(function () {
var pageTitle = mw.config.get('wgTitle');
if (pageTitle !== '文手页面生成器' && pageTitle !== 'Gadget-FastWriterPage.js') {
return;
}
var btn_submit = new OO.ui.ButtonWidget({
label: '提交',
icon: 'check',
flags: ['primary']
}),
btn_add = new OO.ui.ButtonWidget({
label: '增加作品',
icon: 'add'
}),
btn_reduce = new OO.ui.ButtonWidget({
label: '减少作品',
icon: 'subtract'
});
var input_writer_name = new OO.ui.TextInputWidget( {
required: true,
validate: 'non-empty',
placeholder: '请输入文手名称'
} ),
input_writer_tag = new OO.ui.DropdownInputWidget( {
placeholder: '请选择文手标签(默认:同人)',
options: [
{ data: '同人', label: '同人' }
]
} ),
input_writer_platform = new OO.ui.TextInputWidget( {
placeholder: '请输入文手活跃平台'
} ),
check_isoverwrite = new OO.ui.CheckboxInputWidget( {
selected: false
} );
var fieldset = new OO.ui.FieldsetLayout( {
label: '文手页面快速生成器',
classes: [ 'container' ]
} ),
fieldset_work = new OO.ui.FieldsetLayout( {
classes: [ 'container' ]
} );
fieldset.addItems( [
new OO.ui.FieldLayout( input_writer_name, {
label: '文手名称:',
align: 'top',
help: '名称请使用符合URL规则的纯文本(可以使用unicode),不要使用任何wikitext、HTML之类的语法。由于MediaWiki限制,空格会被转为下划线',
helpInline: true
} ),
new OO.ui.FieldLayout( input_writer_tag, {
label: '文手标签:',
align: 'top'
} ),
new OO.ui.FieldLayout( input_writer_platform, {
label: '文手活跃平台:',
align: 'top'
} ),
new OO.ui.FieldLayout( check_isoverwrite, {
label: '覆盖已存在的页面【危险!可能会覆盖手工加入的信息】',
align: 'inline'
} ),
new OO.ui.FieldLayout( btn_submit ),
new OO.ui.FieldLayout(
new OO.ui.Widget( {
content: [ new OO.ui.HorizontalLayout( {
items: [
new OO.ui.FieldLayout( btn_add ),
new OO.ui.FieldLayout( btn_reduce )
]
} ) ]
} )
),
new OO.ui.FieldsetLayout( fieldset_work )
] );
const getWork = () => {
var input_work_name = new OO.ui.TextInputWidget( {
placeholder: '作品名称'
} );
var input_work_pub_date = new OO.ui.TextInputWidget( {
placeholder: '发布日期'
} );
var input_work_update_date = new OO.ui.TextInputWidget( {
placeholder: '更新日期'
} );
var input_work_platform = new OO.ui.TextInputWidget( {
placeholder: '发布平台'
} );
var input_work_url = new OO.ui.TextInputWidget( {
placeholder: '作品链接'
} );
var input_work_status = new OO.ui.TextInputWidget( {
placeholder: '存档情况'
} );
var input_work_note = new OO.ui.TextInputWidget( {
placeholder: '备注'
} );
var work_field = new OO.ui.FieldsetLayout( {
label: '作品信息',
classes: [ 'container' ]
} );
work_field.addItems( [
new OO.ui.FieldLayout(
new OO.ui.Widget( {
content: [ new OO.ui.HorizontalLayout( {
items: [
new OO.ui.FieldLayout( input_work_name, {
label: '作品名称:',
align: 'top'
}),
new OO.ui.FieldLayout( input_work_pub_date, {
label: '发布日期:',
align: 'top'
}),
new OO.ui.FieldLayout( input_work_update_date, {
label: '更新日期:',
align: 'top'
}),
new OO.ui.FieldLayout( input_work_platform, {
label: '发布平台:',
align: 'top'
}),
new OO.ui.FieldLayout( input_work_url, {
label: '作品链接:',
align: 'top'
}),
new OO.ui.FieldLayout( input_work_status, {
label: '存档情况:',
align: 'top'
}),
new OO.ui.FieldLayout( input_work_note, {
label: '备注:',
align: 'top'
})
]
} ) ]
} )
)
] );
return {
input_work_name: input_work_name,
input_work_pub_date: input_work_pub_date,
input_work_update_date: input_work_update_date,
input_work_platform: input_work_platform,
input_work_url: input_work_url,
input_work_status: input_work_status,
input_work_note: input_work_note,
work_field: work_field
};
}
var work_list = [];
btn_add.on('click', function () {
new_work = getWork();
work_list.push(new_work);
fieldset_work.addItems( [ new_work.work_field ] );
})
btn_reduce.on('click', function () {
last_work = work_list.pop();
fieldset_work.removeItems( [last_work.work_field] );
})
btn_submit.on('click', function () {
var writer_name = input_writer_name.getValue();
var writer_tag = input_writer_tag.getValue();
var writer_platform = input_writer_platform.getValue();
var isoverwrite = check_isoverwrite.isSelected();
if (isoverwrite){
// 强制覆盖
return
}
if (work_list.length == 0) {
// 没有填写作品
return
}
for (var i = 0; i < work_list.length; i++) {
var work = work_list[i];
console.log(work);
var work_name = work.input_work_name.getValue();
var work_pub_date = work.input_work_pub_date.getValue();
var work_update_date = work.input_work_update_date.getValue();
var work_platform = work.input_work_platform.getValue();
var work_url = work.input_work_url.getValue();
var work_status = work.input_work_status.getValue();
var work_note = work.input_work_note.getValue();
var windowManager = new OO.ui.WindowManager();
$('body').append(windowManager.$element);
var messageDialog = new OO.ui.MessageDialog();
windowManager.addWindows([messageDialog]);
windowManager.openWindow(messageDialog, {
message: work_name,
title: '仍在开发中'
});
}
});
// 添加到页面顶部
$('#mw-content-text').prepend(
fieldset.$element
);
});