MediaWiki:Modules/toolbar.js

Материал из Мракопедии
Перейти к: навигация, поиск

Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
  • Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
  • Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
/********************************************************************************
* Этот модуль добавляет дополнительные кнопки на панель редактирования.
* 
********************************************************************************/

~function() {

function extend() {
  mw.toolbar.addButton({
    imageFile: 'asterix.png',
    speedTip: 'Три звёздочки по центру',
    tagOpen: "<center>'''∗ ∗ ∗'''</center>",
    tagClose: '',
    sampleText: '',
    imageId: 'button-asterix',
  });

  mw.toolbar.addButton({
    imageFile: 'poem.png',
    speedTip: 'Оформить как стихотворение',
    tagOpen: '<poem>',
    tagClose: '</poem>',
    sampleText: '',
    imageId: 'button-poem',
  });

  mw.toolbar.addButton({
    imageFile: 'imsp.png',
    speedTip: 'Имиджбордовский спойлер',
    tagOpen: '{{sp|',
    tagClose: '}}',
    sampleText: 'текст',
    imageId: 'button-imsp',
  });

  mw.toolbar.addButton({
    imageFile: 'ratingbar.png',
    speedTip: 'Категория "Крипи" и рейтингбар',
    tagOpen: '{{main}}',
    tagClose: '',
    sampleText: '',
    imageId: 'button-ratingbar',
  });

  mw.toolbar.addButton({
    imageFile: 'del.png',
    speedTip: 'Плашка "К удалению"',
    tagOpen: '{{удаление}}',
    tagClose: '',
    sampleText: '',
    imageId: 'button-del',
  });

  mw.toolbar.addButton({
    imageFile: 'wtf.png',
    speedTip: 'Плашка "Фантасмагория"',
    tagOpen: '{{WTF}}',
    tagClose: '',
    sampleText: '',
    imageId: 'button-wtf',
  });

  mw.toolbar.addButton({
    imageFile: 'moye.png',
    speedTip: 'Плашка КГАМ',
    tagOpen: '{{КГАМ|автор=' + mw.user.getName() + '}}',
    tagClose: '',
    sampleText: '',
    imageId: 'button-moye',
  });

  mw.toolbar.addButton({
    imageFile: 'ya.png',
    speedTip: 'Вставить свой ник или IP',
    onClick: function() {
                let textarea = document.getElementById('wpTextbox1');
                let prevSymbol = textarea.value[textarea.selectionStart - 1];
                let addition = (prevSymbol == '=' || prevSymbol == '|' ? "" : ", ") + mw.user.getFullName();
                mw.toolbar.insertTags(addition);
            },
    imageId: 'button-ya',
  });

  /* Если нужны дополнительные кнопки, то скопировать участок кода и действовать по аналогии с предыдущими. Файлы изображений желательно залить на сервер.
    imageFile – файл изображения иконки
    speedTip – всплывающая подсказка
    tagOpen – открывающий тег
    tagClose – закрывающий тег
    sampleText – текст, который будет вставляться по умолчанию, если ничего не выделено и пользователь нажал кнопку
    onClick – функция-обработчик нажатия, может быть указана вместо предыдущих трёх параметров
  */
}

function addExtraButtons() {
  if (mw.toolbar == null) {
    return;
  }
  
  mw.loader.using('user.options', function() {
    if (mw.user.options.get('showtoolbar') == 1) {
      extend();
      finishLoading('toolbar');
    }
  });
}

async function addBotCheckboxForAdmins() {
  if ((await mw.user.getGroups()).includes('sysop')) {
    $('.editCheckboxes').append(' <input name="bot" type="checkbox" value="0" id="botCheckbox" tabindex="5">&nbsp;<label for="botCheckbox" id="botLabel" title="Правка будет отмечена как сделанная ботом и не появится в Служебная:Свежие_правки (доступно только администраторам)">Скрыть в свежих правках</label>');
  }
}

$(function() {
  addExtraButtons();
  addBotCheckboxForAdmins();
});

}();