跳转到内容

MediaWiki:Common.js:修订间差异

来自电棍ottowiki———电棍笑传之查查编
 
(未显示同一用户的7个中间版本)
第1行: 第1行:
mw.loader.using(['mediawiki.util', 'mediawiki.api', 'oojs-ui'], function () {
mw.loader.using(['mediawiki.util', 'oojs-ui', 'mediawiki.storage'], function () {
     if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') {
     if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') {


         // 创建一个弹窗
        const STORAGE_KEY = 'uploadPreference';
         var dialog = new OO.ui.MessageDialog();
 
        const savedChoice = mw.storage.get(STORAGE_KEY);
 
         // 用户之前选择了上传向导,自动跳转
         if (savedChoice === 'wizard') {
            window.location.href = mw.util.getUrl('Special:UploadWizard');
            return;
        }
 
        // 用户选择了继续使用传统上传,不再提示
        if (savedChoice === 'classic') {
            return;
        }
 
        // 否则弹出选择窗口
         var windowManager = new OO.ui.WindowManager();
         var windowManager = new OO.ui.WindowManager();
         $(document.body).append(windowManager.$element);
         $(document.body).append(windowManager.$element);
        windowManager.addWindows([dialog]);


         // 配置弹窗内容和按钮
         function UploadDialog(config) {
        var dialogConfig = {
            UploadDialog.super.call(this, config);
             title: '选择上传方式',
        }
             message: $('<div>').append(
 
                 $('<p>').text('本站推荐使用新版上传工具,它支持:'),
        OO.inheritClass(UploadDialog, OO.ui.ProcessDialog);
                $('<ul>').append(
 
                    $('<li>').text('上传进度条显示'),
        UploadDialog.static.name = 'UploadDialog';
                    $('<li>').text('多文件上传'),
        UploadDialog.static.title = '请选择上传方式';
                    $('<li>').text('更友好的界面')
        UploadDialog.static.actions = [
            {
                action: 'classic',
                label: '❌ 使用传统上传方式(更快)',
                flags: ['safe']
            }
        ];
 
        UploadDialog.prototype.initialize = function () {
            UploadDialog.super.prototype.initialize.call(this);
 
            var panel = new OO.ui.PanelLayout({ padded: true, expanded: false });
 
            // 创建“记住我的选择”复选框
            var rememberCheckbox = new OO.ui.CheckboxInputWidget({ selected: false });
            this._rememberCheckbox = rememberCheckbox;
 
             var rememberField = new OO.ui.FieldLayout(rememberCheckbox, {
                label: '记住我的选择,下次不再提示',
                align: 'inline'
            });
 
            // 创建“上传向导”按钮(跳转链接形式)
             var wizardButton = new OO.ui.ButtonWidget({
                label: '✅ 使用上传向导(推荐)',
                flags: ['primary', 'progressive'],
                href: mw.util.getUrl('Special:UploadWizard'),
                target: '_self',
                framed: true
            });
 
            // 给按钮添加“记住选择”逻辑
            wizardButton.on('click', () => {
                if (rememberCheckbox.isSelected()) {
                    mw.storage.set(STORAGE_KEY, 'wizard');
                }
            });
 
            // 拼接内容
            panel.$element.append(
                $('<p>').text('请选择你要使用的上传方式:'),
 
                $('<div>').css({
                    'margin': '12px 0',
                    '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(wizardButton.$element)
                ),
 
                 $('<div>').css({
                    'margin-top': '15px',
                    'background': '#ffffff',
                    'padding': '10px',
                    'border': '1px dashed #bbb',
                    'border-radius': '5px'
                }).append(
                    $('<strong>').text('⚡️ 传统上传方式'),
                    $('<ul>').append(
                        $('<li>').text('界面更简单'),
                        $('<li>').text('加载速度快'),
                        $('<li>').text('适合上传单个文件')
                    )
                 ),
                 ),
                 $('<p>').text('你想要使用哪种上传方式?')
 
             ),
                 $('<div>').css('margin-top', '15px').append(rememberField.$element)
             actions: [
             );
                {
 
                    action: 'wizard', label: '✅ 使用新版上传方式(推荐)', flags: ['primary', 'progressive']
             this.$body.append(panel.$element);
                },
        };
                 {
 
                     action: 'classic', label: '❌ 继续使用传统上传', flags: ['safe']
        UploadDialog.prototype.getActionProcess = function (action) {
            if (action === 'classic') {
                 if (this._rememberCheckbox.isSelected()) {
                     mw.storage.set(STORAGE_KEY, 'classic');
                 }
                 }
             ]
                return new OO.ui.Process(() => this.close());
             }
            return UploadDialog.super.prototype.getActionProcess.call(this, action);
         };
         };


         windowManager.openWindow(dialog, dialogConfig)
         var dialog = new UploadDialog();
            .then(function (opened) {
        windowManager.addWindows([dialog]);
                return opened.closed;
        windowManager.openWindow(dialog);
            })
            .then(function (data) {
                if (data && data.action === 'wizard') {
                    // 重定向到 UploadWizard 页面
                    window.location.href = mw.util.getUrl('Special:UploadWizard');
                }
            });
     }
     }
});
});

2025年5月10日 (六) 12:08的最新版本

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

        const STORAGE_KEY = 'uploadPreference';

        const savedChoice = mw.storage.get(STORAGE_KEY);

        // 用户之前选择了上传向导,自动跳转
        if (savedChoice === 'wizard') {
            window.location.href = mw.util.getUrl('Special:UploadWizard');
            return;
        }

        // 用户选择了继续使用传统上传,不再提示
        if (savedChoice === 'classic') {
            return;
        }

        // 否则弹出选择窗口
        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 = [
            {
                action: 'classic',
                label: '❌ 使用传统上传方式(更快)',
                flags: ['safe']
            }
        ];

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

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

            // 创建“记住我的选择”复选框
            var rememberCheckbox = new OO.ui.CheckboxInputWidget({ selected: false });
            this._rememberCheckbox = rememberCheckbox;

            var rememberField = new OO.ui.FieldLayout(rememberCheckbox, {
                label: '记住我的选择,下次不再提示',
                align: 'inline'
            });

            // 创建“上传向导”按钮(跳转链接形式)
            var wizardButton = new OO.ui.ButtonWidget({
                label: '✅ 使用上传向导(推荐)',
                flags: ['primary', 'progressive'],
                href: mw.util.getUrl('Special:UploadWizard'),
                target: '_self',
                framed: true
            });

            // 给按钮添加“记住选择”逻辑
            wizardButton.on('click', () => {
                if (rememberCheckbox.isSelected()) {
                    mw.storage.set(STORAGE_KEY, 'wizard');
                }
            });

            // 拼接内容
            panel.$element.append(
                $('<p>').text('请选择你要使用的上传方式:'),

                $('<div>').css({
                    'margin': '12px 0',
                    '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(wizardButton.$element)
                ),

                $('<div>').css({
                    'margin-top': '15px',
                    'background': '#ffffff',
                    'padding': '10px',
                    'border': '1px dashed #bbb',
                    'border-radius': '5px'
                }).append(
                    $('<strong>').text('⚡️ 传统上传方式'),
                    $('<ul>').append(
                        $('<li>').text('界面更简单'),
                        $('<li>').text('加载速度快'),
                        $('<li>').text('适合上传单个文件')
                    )
                ),

                $('<div>').css('margin-top', '15px').append(rememberField.$element)
            );

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

        UploadDialog.prototype.getActionProcess = function (action) {
            if (action === 'classic') {
                if (this._rememberCheckbox.isSelected()) {
                    mw.storage.set(STORAGE_KEY, 'classic');
                }
                return new OO.ui.Process(() => this.close());
            }
            return UploadDialog.super.prototype.getActionProcess.call(this, action);
        };

        var dialog = new UploadDialog();
        windowManager.addWindows([dialog]);
        windowManager.openWindow(dialog);
    }
});