跳转到内容

MediaWiki:Common.js:修订间差异

来自电棍ottowiki———电棍笑传之查查编
第2行: 第2行:
     if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') {
     if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') {


        // 创建窗口管理器
         var windowManager = new OO.ui.WindowManager();
         var windowManager = new OO.ui.WindowManager();
         $(document.body).append(windowManager.$element);
         $(document.body).append(windowManager.$element);


        // 定义一个弹窗
         function UploadDialog(config) {
         function UploadDialog(config) {
             UploadDialog.super.call(this, config);
             UploadDialog.super.call(this, config);
第13行: 第11行:


         UploadDialog.static.name = 'UploadDialog';
         UploadDialog.static.name = 'UploadDialog';
         UploadDialog.static.title = '选择上传方式';
         UploadDialog.static.title = '请选择上传方式';
         UploadDialog.static.actions = [
         UploadDialog.static.actions = [
             {
             {
                 label: '❌ 继续使用传统上传方式',
                 label: '❌ 使用传统上传方式(更快)',
                 flags: ['safe'],
                 flags: ['safe'],
                 action: 'stayHere'
                 action: 'stayHere'
第27行: 第25行:
             this.content = new OO.ui.PanelLayout({ padded: true, expanded: false });
             this.content = new OO.ui.PanelLayout({ padded: true, expanded: false });


             // ✅ 正确设置为 <a> 链接形式的 button
             // 新版上传按钮(链接按钮)
             var linkButton = new OO.ui.ButtonWidget({
             var linkButton = new OO.ui.ButtonWidget({
                 label: '✅ 使用新版上传工具(推荐)',
                 label: '✅ 使用上传向导(推荐)',
                 flags: ['primary', 'progressive'],
                 flags: ['progressive', 'primary'],
                 href: mw.util.getUrl('Special:UploadWizard'),
                 href: mw.util.getUrl('Special:UploadWizard'),
                 target: '_self',
                 target: '_self',
                 framed: true   // 👈 关键:用带框的链接样式,确保行为可靠
                 framed: true
             });
             });


            // 创建内容结构
             this.content.$element.append(
             this.content.$element.append(
                 $('<p>').text('本站推荐使用新版上传工具,它支持:'),
                 $('<div>').append(
                $('<ul>').append(
                     $('<p>').text('请选择你要使用的上传方式:')
                     $('<li>').text('上传进度条显示'),
                    $('<li>').text('多文件上传'),
                    $('<li>').text('更好的界面')
                 ),
                 ),
                 $('<p>').text('你想使用哪种上传方式?'),
                 $('<div>').css({
                $('<div>').css('margin-top', '15px').append(linkButton.$element)
                    'margin-top': '8px',
                    'margin-bottom': '8px',
                    'background': '#f8f9fa',
                    'padding': '10px',
                    'border': '1px solid #ccc',
                    'border-radius': '5px'
                }).append(
                    $('<strong>').text('✅ 上传向导(推荐)'),
                    $('<ul>').append(
                        $('<li>').text('支持多文件批量上传'),
                        $('<li>').text('显示上传进度条'),
                        $('<li>').text('可填写更详细的描述信息')
                    ),
                    $('<div>').css('margin-top', '8px').append(linkButton.$element)
                ),
                $('<div>').css({
                    'margin-top': '12px',
                    'margin-bottom': '0',
                    'padding': '10px',
                    'background': '#fff',
                    'border': '1px dashed #ccc',
                    'border-radius': '5px'
                }).append(
                    $('<strong>').text('⚡️ 传统上传'),
                    $('<ul>').append(
                        $('<li>').text('上传页面简单,打开更快'),
                        $('<li>').text('适合上传单个小文件'),
                        $('<li>').text('不显示上传进度')
                    )
                )
             );
             );


第57行: 第82行:
         };
         };


         // 打开 dialog 窗口
         // 打开对话框
         var dialog = new UploadDialog();
         var dialog = new UploadDialog();
         windowManager.addWindows([dialog]);
         windowManager.addWindows([dialog]);

2025年5月10日 (六) 11:38的版本

mw.loader.using(['mediawiki.util', 'oojs-ui'], function () {
    if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') {

        var windowManager = new OO.ui.WindowManager();
        $(document.body).append(windowManager.$element);

        function UploadDialog(config) {
            UploadDialog.super.call(this, config);
        }
        OO.inheritClass(UploadDialog, OO.ui.ProcessDialog);

        UploadDialog.static.name = 'UploadDialog';
        UploadDialog.static.title = '请选择上传方式';
        UploadDialog.static.actions = [
            {
                label: '❌ 使用传统上传方式(更快)',
                flags: ['safe'],
                action: 'stayHere'
            }
        ];

        UploadDialog.prototype.initialize = function () {
            UploadDialog.super.prototype.initialize.call(this);

            this.content = new OO.ui.PanelLayout({ padded: true, expanded: false });

            // 新版上传按钮(链接按钮)
            var linkButton = new OO.ui.ButtonWidget({
                label: '✅ 使用上传向导(推荐)',
                flags: ['progressive', 'primary'],
                href: mw.util.getUrl('Special:UploadWizard'),
                target: '_self',
                framed: true
            });

            // 创建内容结构
            this.content.$element.append(
                $('<div>').append(
                    $('<p>').text('请选择你要使用的上传方式:')
                ),
                $('<div>').css({
                    'margin-top': '8px',
                    'margin-bottom': '8px',
                    'background': '#f8f9fa',
                    'padding': '10px',
                    'border': '1px solid #ccc',
                    'border-radius': '5px'
                }).append(
                    $('<strong>').text('✅ 上传向导(推荐)'),
                    $('<ul>').append(
                        $('<li>').text('支持多文件批量上传'),
                        $('<li>').text('显示上传进度条'),
                        $('<li>').text('可填写更详细的描述信息')
                    ),
                    $('<div>').css('margin-top', '8px').append(linkButton.$element)
                ),
                $('<div>').css({
                    'margin-top': '12px',
                    'margin-bottom': '0',
                    'padding': '10px',
                    'background': '#fff',
                    'border': '1px dashed #ccc',
                    'border-radius': '5px'
                }).append(
                    $('<strong>').text('⚡️ 传统上传'),
                    $('<ul>').append(
                        $('<li>').text('上传页面简单,打开更快'),
                        $('<li>').text('适合上传单个小文件'),
                        $('<li>').text('不显示上传进度')
                    )
                )
            );

            this.$body.append(this.content.$element);
        };

        UploadDialog.prototype.getActionProcess = function (action) {
            if (action === 'stayHere') {
                return new OO.ui.Process(() => this.close({ action: 'stayHere' }));
            }
            return UploadDialog.super.prototype.getActionProcess.call(this, action);
        };

        // 打开对话框
        var dialog = new UploadDialog();
        windowManager.addWindows([dialog]);
        windowManager.openWindow(dialog);
    }
});