MediaWiki:Gadget-LoginToEdit.js:修订间差异

MediaWiki系统消息页面
(Git更新:([https://github.com/TopRealm/InterfaceCodes/commit/d673b688da358d0b91d8558f426abcbe038be722 d673b68]) Fix: Registration available (#101))
(Git更新:([https://github.com/TopRealm/InterfaceCodes/commit/b406e1cfa7effb273a2468d63cfe7990ea21ecbc b406e1c]) refactor(LoginToEdit):pull codes (#158))
第4行: 第4行:
*
*
* @source <https://git.qiuwen.wiki/InterfaceAdmin/Gadgets/src/branch/master/src/Gadgets/LoginToEdit>
* @source <https://git.qiuwen.wiki/InterfaceAdmin/Gadgets/src/branch/master/src/Gadgets/LoginToEdit>
* @dependency ext.gadget.i18n, mediawiki.util, oojs-ui-core, oojs-ui-windows
* @dependency ext.gadget.i18n, mediawiki.util, oojs-ui-windows
*/
*/
/**
/**
第18行: 第18行:
*/
*/
/* <nowiki> */
/* <nowiki> */
'use strict';

$(function loginToEdit() {
$(function loginToEdit() {
if (mw.config.get('wgUserName')) {
if (mw.config.get('wgUserName')) {
第29行: 第27行:
return {
return {
Cancel: localize({
Cancel: localize({
en: 'Cancel',
ja: 'キャンセル',
ja: 'キャンセル',
'zh-hans': '暂不登录账号',
'zh-hans': '暂不登录账号',
'zh-hant': '暫不登入賬戶'
'zh-hant': '暫不登入賬戶'
}),
Edit: localize({
en: 'Edit',
ja: '編',
'zh-hans': '编辑',
'zh-hant': '編輯'
}),
}),
Login: localize({
Login: localize({
en: 'Login',
ja: 'ログイン',
ja: 'ログイン',
'zh-hans': '登录已有账号',
'zh-hans': '登录已有账号',
第39行: 第45行:
}),
}),
Register: localize({
Register: localize({
en: 'Register',
ja: 'アカウントを作成',
ja: 'アカウントを作成',
'zh-hans': '注册新的账号',
'zh-hans': '注册新的账号',
'zh-hant': '註冊新的賬戶'
'zh-hant': '註冊新的賬戶'
}),
}),
Edit: localize({
DialogTitle: localize({
ja: '編集',
'zh-hans': '编辑',
'zh-hant': '編'
}),
dialogTitle: localize({
en: 'Welcome to Youshou Archives!',
en: 'Welcome to Youshou Archives!',
ja: '有獣アーカイブスへようこそ!',
ja: '有獣アーカイブスへようこそ!',
第54行: 第56行:
'zh-hant': '歡迎來到有獸檔案館!'
'zh-hant': '歡迎來到有獸檔案館!'
}),
}),
dialogMessage: localize({
DialogMessage: localize({
en: 'You have not yet logged in. Register and log in to your account to contribute.',
en: 'You have not yet logged in. Register and log in to your account to contribute.',
ja: 'あなたはまだ有獣アーカイブスにログインしていません。アカウントを作成し、ログインして有獣アーカイブスを改善することができます。',
ja: 'あなたはまだ有獣アーカイブスにログインしていません。アカウントを作成し、ログインして有獣アーカイブスを改善することができます。',
'zh-hans': '您尚未登录到有兽档案馆。您可以注册并登录账号,帮助完善有兽档案馆。',
'zh-hans': '您尚未登录到有兽档案馆。您可以注册并登录账号,帮助完善有兽档案馆。',
第67行: 第69行:
};
};
var isCitizen = mw.config.get('skin') === 'citizen';
var isCitizen = mw.config.get('skin') === 'citizen';
var loginURL = "/wiki/Special:Userlogin?returnto=".concat(mw.util.rawurlencode(mw.config.get('wgPageName')));
var registerURL = "/wiki/Special:CreateAccount?returnto=".concat(mw.util.rawurlencode(mw.config.get('wgPageName')));
var registerURL = "/wiki/Special:CreateAccount?returnto=".concat(mw.util.rawurlencode(mw.config.get('wgPageName')));
var messageDialog;
var windowManager;
var windowOpeningData = {
title: $('<b>').addClass('oo-ui-window-head').text(message('DialogTitle')),
message: $('<span>').addClass('oo-ui-window-foot').text(message('DialogMessage')),
actions: [{
action: 'login',
flags: ['primary', 'progressive'],
label: $('<b>').text(message('Login'))
}, {
action: 'register',
flags: 'progressive',
label: $('<b>').text(message('Register'))
}, {
action: 'cancel',
flags: ['safe', 'close'],
label: $('<b>').text(message('Cancel'))
}]
};
var openDialog = function openDialog() {
var openDialog = function openDialog() {
if (!windowManager) {
var messageDialog = new OO.ui.MessageDialog();
var windowManager = new OO.ui.WindowManager();
messageDialog = new OO.ui.MessageDialog();
messageDialog.getActionProcess = function (action) {
var windowOpeningData = {
title: message('dialogTitle'),
if (action === 'login') {
$('#pt-login').trigger('click');
message: message('dialogMessage'),
} else if (action === 'register') {
actions: [{
location.href = registerURL;
action: 'login',
flags: ['primary', 'progressive'],
label: $('<b>').text(message('Login'))
}, {
action: 'register',
flags: 'progressive',
label: $('<b>').text(message('Register'))
}, {
action: 'cancel',
flags: ['safe', 'close'],
label: $('<b>').text(message('Cancel'))
}]
};
messageDialog.getActionProcess = function (action) {
if (action === 'login') {
if ('ontouchstart' in document) {
location.href = loginURL;
}
}
$('#pt-login').trigger('click');
return new OO.ui.Process(function () {
windowManager.closeWindow(messageDialog);
} else if (action === 'register') {
location.href = registerURL;
});
}
};
return new OO.ui.Process(function () {
windowManager = new OO.ui.WindowManager();
windowManager.clearWindows();
windowManager.$element.appendTo(document.body);
windowManager.addWindows([messageDialog]);
});
};
}
windowManager.$element.appendTo(document.body);
windowManager.addWindows([messageDialog]);
windowManager.openWindow(messageDialog, windowOpeningData);
windowManager.openWindow(messageDialog, windowOpeningData);
};
};

2023年10月10日 (二) 23:12的版本

/**
 * SPDX-License-Identifier: CC-BY-SA-4.0
 * _addText: '{{Gadget Header|license=CC-BY-SA-4.0}}'
 *
 * @source <https://git.qiuwen.wiki/InterfaceAdmin/Gadgets/src/branch/master/src/Gadgets/LoginToEdit>
 * @dependency ext.gadget.i18n, mediawiki.util, oojs-ui-windows
 */
/**
 * +--------------------------------------------------------+
 * |         === WARNING: GLOBAL GADGET FILE ===            |
 * +--------------------------------------------------------+
 * |      All changes should be made in the repository,     |
 * |              otherwise they will be lost.              |
 * +--------------------------------------------------------+
 * |      Changes to this page may affect many users.       |
 * |  Please discuss changes at talk page before editing.   |
 * +--------------------------------------------------------+
 */
/* <nowiki> */
$(function loginToEdit() {
  if (mw.config.get('wgUserName')) {
    return;
  }
  var i18nMessages = function i18nMessages() {
    var _i18n = i18n,
      localize = _i18n.localize;
    return {
      Cancel: localize({
        en: 'Cancel',
        ja: 'キャンセル',
        'zh-hans': '暂不登录账号',
        'zh-hant': '暫不登入賬戶'
      }),
      Edit: localize({
        en: 'Edit',
        ja: '編集',
        'zh-hans': '编辑',
        'zh-hant': '編輯'
      }),
      Login: localize({
        en: 'Login',
        ja: 'ログイン',
        'zh-hans': '登录已有账号',
        'zh-hant': '登入已有賬戶'
      }),
      Register: localize({
        en: 'Register',
        ja: 'アカウントを作成',
        'zh-hans': '注册新的账号',
        'zh-hant': '註冊新的賬戶'
      }),
      DialogTitle: localize({
        en: 'Welcome to Youshou Archives!',
        ja: '有獣アーカイブスへようこそ!',
        'zh-hans': '欢迎来到有兽档案馆!',
        'zh-hant': '歡迎來到有獸檔案館!'
      }),
      DialogMessage: localize({
         en: 'You have not yet logged in. Register and log in to your account to contribute.',
        ja: 'あなたはまだ有獣アーカイブスにログインしていません。アカウントを作成し、ログインして有獣アーカイブスを改善することができます。',
        'zh-hans': '您尚未登录到有兽档案馆。您可以注册并登录账号,帮助完善有兽档案馆。',
        'zh-hant': '您尚未登錄到有獸檔案館。您可以注冊並登錄賬戶,幫助完善有獸檔案館。'
      })
    };
  };
  var messages = i18nMessages();
  var message = function message(key) {
    return messages[key] || key;
  };
  var isCitizen = mw.config.get('skin') === 'citizen';
  var registerURL = "/wiki/Special:CreateAccount?returnto=".concat(mw.util.rawurlencode(mw.config.get('wgPageName')));
  var messageDialog;
  var windowManager;
  var windowOpeningData = {
    title: $('<b>').addClass('oo-ui-window-head').text(message('DialogTitle')),
    message: $('<span>').addClass('oo-ui-window-foot').text(message('DialogMessage')),
    actions: [{
      action: 'login',
      flags: ['primary', 'progressive'],
      label: $('<b>').text(message('Login'))
    }, {
      action: 'register',
      flags: 'progressive',
      label: $('<b>').text(message('Register'))
    }, {
      action: 'cancel',
      flags: ['safe', 'close'],
      label: $('<b>').text(message('Cancel'))
    }]
  };
  var openDialog = function openDialog() {
    if (!windowManager) {
      messageDialog = new OO.ui.MessageDialog();
      messageDialog.getActionProcess = function (action) {
        if (action === 'login') {
          $('#pt-login').trigger('click');
        } else if (action === 'register') {
          location.href = registerURL;
        }
        return new OO.ui.Process(function () {
          windowManager.closeWindow(messageDialog);
        });
      };
      windowManager = new OO.ui.WindowManager();
      windowManager.$element.appendTo(document.body);
      windowManager.addWindows([messageDialog]);
    }
    windowManager.openWindow(messageDialog, windowOpeningData);
  };
  var $caViewsource = $('#ca-viewsource');
  if ($caViewsource.length) {
    var editIcon = isCitizen ? '<span class="citizen-ui-icon mw-ui-icon-wikimedia-edit"></span>' : '';
    $caViewsource.attr('id', 'ca-edit').find('a').attr('title', message('Edit')).html("".concat(editIcon).concat(message('Edit')));
    $('#ca-edit a').on('click', function (event) {
      event.preventDefault();
      openDialog();
    });
  }
  if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) !== -1) {
    openDialog();
  }
});
/* </nowiki> */