User:BZPN/Email.js

From Test Wiki
Revision as of 22:18, 24 February 2025 by BZPN (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.loader.using('mediawiki.api', function () {
  $(function () {
    if (mw.config.get('wgCanonicalSpecialPageName') !== 'EmailUser') return;
    var $copyCheckbox = $('#ooui-php-6');
    if ($copyCheckbox.length) {
      var $notifyCheckbox = $('<div class="mw-htmlform-field-HTMLCheckField"><div class="oo-ui-fieldLayout-field"><input type="checkbox" id="notifyOnTalk" name="notifyOnTalk" value="1"> <label for="notifyOnTalk">Notify user on talk page</label></div></div>');
      $copyCheckbox.closest('.mw-htmlform-field-HTMLCheckField').after($notifyCheckbox);
    }
    $('form.mw-htmlform').submit(function (e) {
      if ($('#notifyOnTalk').is(':checked')) {
        e.preventDefault();
        var targetUser = $('#mw-input-wpTarget').val();
        if (!targetUser) return this.submit();
        var talkPageTitle = 'User talk:' + targetUser;
        var text = '\n\n== You\'ve got got mail! ==\n{{You\'ve got mail}}'+'~~'+'~~\n';
        new mw.Api().postWithToken('csrf', { action: 'edit', title: talkPageTitle, appendtext: text, summary: 'Notification: You\'ve got mail!', format: 'json' })
          .always(() => $('form.mw-htmlform').off('submit').submit());
      }
    });
  });
});