MediaWiki:Common:js: различия между версиями

Страница интерфейса MediaWiki
мНет описания правки
мНет описания правки
Строка 1: Строка 1:
// Функция переключения темы
// Объявляем функцию глобально
function toggleTheme() {
window.toggleTheme = function() {
  const body = document.body;
    const body = document.body;
  body.classList.toggle('dark-theme');
    body.classList.toggle('dark-theme');
 
    localStorage.setItem('theme', body.classList.contains('dark-theme') ? 'dark' : 'light');
  // Сохранение выбора в localStorage
};
  const isDark = body.classList.contains('dark-theme');
  localStorage.setItem('theme', isDark ? 'dark' : 'light');
}


// Загрузка сохраненной темы при открытии страницы
// Загрузка сохраненной темы
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('DOMContentLoaded', function() {
  const savedTheme = localStorage.getItem('theme');
    const savedTheme = localStorage.getItem('theme');
  if (savedTheme === 'dark') {
    if (savedTheme === 'dark') document.body.classList.add('dark-theme');
    document.body.classList.add('dark-theme');
  }
});
});


// Добавление кнопки переключения темы
// Добавляем кнопку в верхнюю панель
// Добавление кнопки в раздел "Инструменты" левого меню
$(function() {
    const button = $('<button>')
        .text('🌓 Тема')
        .on('click', toggleTheme)
        .css({
            margin: '0 10px',
            padding: '5px 10px',
            cursor: 'pointer'
        });


mw.hook('ve.activationComplete').add(function() {
     $('#mw-header-navbar').prepend(button);
     mw.util.addPortletLink(
        'p-tb', // ID раздела (p-tb = инструменты)
        '#',
        '🌓 Тема',
        'theme-switcher',
        'Переключить цветовую тему',
        null,
        $('#pt-preferences').next()
    ).find('a').on('click', function(e) {
        e.preventDefault();
        toggleTheme();
    });
});
});

Версия от 13:37, 1 апреля 2025

// Объявляем функцию глобально window.toggleTheme = function() {

   const body = document.body;
   body.classList.toggle('dark-theme');
   localStorage.setItem('theme', body.classList.contains('dark-theme') ? 'dark' : 'light');

};

// Загрузка сохраненной темы document.addEventListener('DOMContentLoaded', function() {

   const savedTheme = localStorage.getItem('theme');
   if (savedTheme === 'dark') document.body.classList.add('dark-theme');

});

// Добавляем кнопку в верхнюю панель $(function() {

   const button = $('<button>')
       .text('🌓 Тема')
       .on('click', toggleTheme)
       .css({
           margin: '0 10px',
           padding: '5px 10px',
           cursor: 'pointer'
       });
   $('#mw-header-navbar').prepend(button);

});