MediaWiki:Gadget-FastWriterPage.js:修订间差异
无编辑摘要 |
无编辑摘要 |
||
(未显示同一用户的6个中间版本) | |||
第6行: | 第6行: | ||
var btn_submit = new OO.ui.ButtonWidget({ | var btn_submit = new OO.ui.ButtonWidget({ | ||
label: ' | label: '提交页面', | ||
icon: 'check', | icon: 'check', | ||
flags: ['primary'] | flags: [ | ||
'primary', | |||
'progressive' | |||
] | |||
}), | |||
btn_code = new OO.ui.ButtonWidget({ | |||
label: '生成源代码', | |||
icon: 'code', | |||
flags: [ | |||
'progressive' | |||
] | |||
}), | }), | ||
btn_add = new OO.ui.ButtonWidget({ | btn_add = new OO.ui.ButtonWidget({ | ||
第22行: | 第32行: | ||
required: true, | required: true, | ||
validate: 'non-empty', | validate: 'non-empty', | ||
placeholder: ' | placeholder: '请输入文手名' | ||
} ), | } ), | ||
input_writer_tag = new OO.ui.DropdownInputWidget( { | input_writer_tag = new OO.ui.DropdownInputWidget( { | ||
第36行: | 第46行: | ||
selected: false | selected: false | ||
} ); | } ); | ||
var result_area = new OO.ui.MultilineTextInputWidget({ | |||
autosize: true, | |||
rows: 10, | |||
value: '' | |||
}); | |||
var fieldset = new OO.ui.FieldsetLayout( { | var fieldset = new OO.ui.FieldsetLayout( { | ||
第47行: | 第63行: | ||
fieldset.addItems( [ | fieldset.addItems( [ | ||
new OO.ui.FieldLayout( input_writer_name, { | new OO.ui.FieldLayout( input_writer_name, { | ||
label: ' | label: '文手名:', | ||
align: 'top', | align: 'top', | ||
help: '名称请使用符合URL规则的纯文本(可以使用unicode),不要使用任何wikitext、HTML之类的语法。由于MediaWiki限制,空格会被转为下划线', | help: '名称请使用符合URL规则的纯文本(可以使用unicode),不要使用任何wikitext、HTML之类的语法。由于MediaWiki限制,空格会被转为下划线', | ||
第67行: | 第83行: | ||
align: 'inline' | align: 'inline' | ||
} ), | } ), | ||
new OO.ui.FieldLayout( | new OO.ui.FieldLayout( | ||
第75行: | 第89行: | ||
items: [ | items: [ | ||
new OO.ui.FieldLayout( btn_add ), | new OO.ui.FieldLayout( btn_add ), | ||
new OO.ui.FieldLayout( btn_reduce ) | new OO.ui.FieldLayout( btn_reduce ), | ||
new OO.ui.FieldLayout( btn_code ), | |||
new OO.ui.FieldLayout( btn_submit ) | |||
] | ] | ||
} ) ] | } ) ] | ||
第81行: | 第97行: | ||
), | ), | ||
new OO.ui.FieldsetLayout( fieldset_work ) | new OO.ui.FieldsetLayout( fieldset_work ), | ||
new OO.ui.FieldLayout( result_area, { | |||
label: '生成结果:', | |||
align: 'top' | |||
} ), | |||
] ); | ] ); | ||
const getWork = () => { | const getWork = (no) => { | ||
var input_work_name = new OO.ui.TextInputWidget( { | var input_work_name = new OO.ui.TextInputWidget( { | ||
placeholder: '作品名称' | placeholder: '作品名称' | ||
} ); | } ); | ||
var input_work_pub_date = new OO.ui.TextInputWidget( { | var input_work_pub_date = new OO.ui.TextInputWidget( { | ||
placeholder: ' | placeholder: '发布日期(yyyy-MM-dd)' | ||
} ); | } ); | ||
var input_work_update_date = new OO.ui.TextInputWidget( { | var input_work_update_date = new OO.ui.TextInputWidget( { | ||
placeholder: ' | placeholder: '更新日期(可选)' | ||
} ); | } ); | ||
var input_work_platform = new OO.ui.TextInputWidget( { | var input_work_platform = new OO.ui.TextInputWidget( { | ||
第104行: | 第125行: | ||
} ); | } ); | ||
var input_work_note = new OO.ui.TextInputWidget( { | var input_work_note = new OO.ui.TextInputWidget( { | ||
placeholder: ' | placeholder: '备注(支持wikitext)' | ||
} ); | } ); | ||
var work_field = new OO.ui.FieldsetLayout( { | var work_field = new OO.ui.FieldsetLayout( { | ||
label: '作品信息', | label: '作品信息'+no, | ||
classes: [ 'container' ] | classes: [ 'container' ] | ||
} ); | } ); | ||
第121行: | 第142行: | ||
}), | }), | ||
new OO.ui.FieldLayout( input_work_pub_date, { | new OO.ui.FieldLayout( input_work_pub_date, { | ||
label: ' | label: '发布日期(yyyy-MM-dd):', | ||
align: 'top' | align: 'top' | ||
}), | }), | ||
new OO.ui.FieldLayout( input_work_update_date, { | new OO.ui.FieldLayout( input_work_update_date, { | ||
label: ' | label: '更新日期(可选):', | ||
align: 'top' | align: 'top' | ||
}), | }), | ||
第141行: | 第162行: | ||
}), | }), | ||
new OO.ui.FieldLayout( input_work_note, { | new OO.ui.FieldLayout( input_work_note, { | ||
label: ' | label: '备注(支持wikitext):', | ||
align: 'top' | align: 'top' | ||
}) | }) | ||
第165行: | 第186行: | ||
btn_add.on('click', function () { | btn_add.on('click', function () { | ||
new_work = getWork(); | new_work = getWork(work_list.length+1); | ||
work_list.push(new_work); | work_list.push(new_work); | ||
fieldset_work.addItems( [ new_work.work_field ] ); | fieldset_work.addItems( [ new_work.work_field ] ); | ||
第175行: | 第196行: | ||
}) | }) | ||
btn_code.on('click', function () { | |||
var writer_name = input_writer_name.getValue(); | var writer_name = input_writer_name.getValue(); | ||
var windowManager = new OO.ui.WindowManager(); | |||
var messageDialog = new OO.ui.MessageDialog(); | |||
if (writer_name === null || writer_name === '') { | |||
$('body').append(windowManager.$element); | |||
windowManager.addWindows([messageDialog]); | |||
windowManager.openWindow(messageDialog, { | |||
message: '请输入文手名!', | |||
title: '错误:' | |||
}); | |||
return; | |||
} | |||
var writer_tag = input_writer_tag.getValue(); | var writer_tag = input_writer_tag.getValue(); | ||
var writer_platform = input_writer_platform.getValue(); | var writer_platform = input_writer_platform.getValue(); | ||
result = '{{文手信息\n|文手名 = '+writer_name; | |||
result += '\n|文手标签 = '+writer_tag; | |||
result += '\n|文手活跃平台 = '+writer_platform; | |||
result += '\n}}\n== 发布文章 ==\n'; | |||
if (work_list.length > 0) { | |||
result += '{{文章信息框架|列表=\n'; | |||
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(); | |||
work_str = '{{文章信息\n|作品名称 = '+work_name; | |||
work_str += '\n|发布日期 = '+work_pub_date; | |||
work_str += '\n|更新日期 = '+work_update_date; | |||
work_str += '\n|发布平台 = '+work_platform; | |||
work_str += '\n|作品链接 = '+work_url; | |||
work_str += '\n|存档情况 = '+work_status; | |||
work_str += '\n|备注 = '+work_note; | |||
work_str += '\n}}'; | |||
result += work_str + '\n'; | |||
} | |||
result += '}}\n'; | |||
} | } | ||
result += '\n==外部链接与注释==\n'; | |||
result_area.setValue(result); | |||
}); | |||
btn_submit.on('click', function () { | |||
var result = result_area.getValue() | |||
var windowManager = new OO.ui.WindowManager(); | |||
var messageDialog = new OO.ui.MessageDialog(); | |||
var writer_name = input_writer_name.getValue(); | |||
if (writer_name === null || writer_name === '') { | |||
$('body').append(windowManager.$element); | |||
windowManager.addWindows([messageDialog]); | |||
windowManager.openWindow(messageDialog, { | |||
message: '请输入文手名!', | |||
title: '错误:' | |||
}); | |||
return; | |||
} | |||
if (result === null || result === '') { | |||
$('body').append(windowManager.$element); | $('body').append(windowManager.$element); | ||
windowManager.addWindows([messageDialog]); | windowManager.addWindows([messageDialog]); | ||
windowManager.openWindow(messageDialog, { | windowManager.openWindow(messageDialog, { | ||
message: | message: '请先点击生成代码,再创建页面!', | ||
title: ' | title: '创建页面:' + writer_name | ||
}); | }); | ||
return; | |||
} | } | ||
var api = new mw.Api(); | |||
var isoverwrite = check_isoverwrite.isSelected(); | |||
api.postWithToken('csrf', { | |||
action: 'edit', | |||
title: writer_name, | |||
text: result, | |||
createonly: !isoverwrite, | |||
summary: '文手页面生成器 by 玲子' | |||
}).done(function (data) { | |||
$('body').append(windowManager.$element); | |||
windowManager.addWindows([messageDialog]); | |||
windowManager.openWindow(messageDialog, { | |||
message: '页面创建成功!', | |||
title: '创建页面:' + writer_name | |||
}); | |||
}).fail(function (data) { | |||
$('body').append(windowManager.$element); | |||
windowManager.addWindows([messageDialog]); | |||
windowManager.openWindow(messageDialog, { | |||
message: '页面创建失败:' + JSON.stringify(data), | |||
title: '创建页面:' + writer_name | |||
}); | |||
}); | |||
}); | }); | ||