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( btn_submit ),


         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_submit.on('click', function () {
     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();
    var isoverwrite = check_isoverwrite.isSelected();
        result = '{{文手信息\n|文手名 = '+writer_name;
    if (isoverwrite){
        result += '\n|文手标签 = '+writer_tag;
            // 强制覆盖
        result += '\n|文手活跃平台 = '+writer_platform;
    return
        result += '\n}}\n== 发布文章 ==\n';
    }
        if (work_list.length > 0) {
        if (work_list.length == 0) {
        result += '{{文章信息框架|列表=\n';
            // 没有填写作品
        for (var i = 0; i < work_list.length; i++) {
            return
            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';
         }
         }
         for (var i = 0; i < work_list.length; i++) {
         result += '\n==外部链接与注释==\n';
            var work = work_list[i];
 
            console.log(work);
        result_area.setValue(result);
            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();
    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);
            var messageDialog = new OO.ui.MessageDialog();
             windowManager.addWindows([messageDialog]);
             windowManager.addWindows([messageDialog]);
             windowManager.openWindow(messageDialog, {
             windowManager.openWindow(messageDialog, {
                 message: work_name,
                 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 
            });
         });
     });
     });