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

Нет описания правки
Метка: отменено
Нет описания правки
Метка: отменено
Строка 1: Строка 1:
$(document).ready(function() {
$(document).ready(function() {
     console.log("Скрипт дерева категорий загружен.");
     console.log("Скрипт дерева категорий загружен.");
    function saveTreeHTML() {
        console.log("Сохраняем HTML дерева...");
        var treeHTML = $('#p-categorytree-portlet .CategoryTreeTag').html();
        localStorage.setItem('categoryTreeHTML', treeHTML);
    }
    function restoreTreeHTML() {
        console.log("Восстанавливаем HTML дерева...");
        var treeHTML = localStorage.getItem('categoryTreeHTML');
        if (treeHTML) {
            $('#p-categorytree-portlet .CategoryTreeTag').html(treeHTML);
        }
    }
    restoreTreeHTML();


     $('body').on('click', '#p-categorytree-portlet .CategoryTreeItem', function(event) {
     $('body').on('click', '#p-categorytree-portlet .CategoryTreeItem', function(event) {
Строка 34: Строка 18:
             var link = $item.find('a').attr('href');
             var link = $item.find('a').attr('href');
             if (link) {
             if (link) {
                //Сохраняем дерево только перед переходом
                saveTreeHTML();
                // Переходим по ссылке без сохранения заголовка страницы
                 window.location.href = link;
                 window.location.href = link;
             }
             }
         }
         }
        //Сохраняем дерево после каждого клика уберём, чтоб не дёргало
        //saveTreeHTML();
     });
     });


Строка 54: Строка 33:
                 scrollTop: $categoryItem.position().top - 50
                 scrollTop: $categoryItem.position().top - 50
             }, 500, function() {
             }, 500, function() {
                // Убираем подсветку со всех элементов и добавляем только к текущему
                 $('#p-categorytree-portlet .CategoryTreeItem').removeClass('highlighted');
                 $('#p-categorytree-portlet .CategoryTreeItem').removeClass('highlighted');
                 $categoryItem.addClass('highlighted');
                 $categoryItem.addClass('highlighted');
Строка 66: Строка 44:
     function expandAndFindCategory($parent, callback) {
     function expandAndFindCategory($parent, callback) {
         var $toggleButton = $parent.find('.CategoryTreeToggle').first();
         var $toggleButton = $parent.find('.CategoryTreeToggle').first();
         if ($toggleButton.length && !$parent.hasClass('expanded')) {
        var isExpanded = $toggleButton.attr('aria-expanded') === 'true';
 
         if ($toggleButton.length && !isExpanded) {
             $toggleButton.click();
             $toggleButton.click();


Строка 82: Строка 62:


     function recursiveSearchForCategory() {
     function recursiveSearchForCategory() {
        // Убираем очистку localStorage, т.к. больше не используем lastOpenedPageTitle
         var currentPageTitle = mw.config.get('wgTitle');
         var currentPageTitle = mw.config.get('wgTitle');
         if (!currentPageTitle) {
         if (!currentPageTitle) {
Строка 119: Строка 98:
         recursiveSearchForCategory();
         recursiveSearchForCategory();
     }, 500);
     }, 500);
    $(window).on('beforeunload', saveTreeHTML);
});
});