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

Нет описания правки
Нет описания правки
Строка 6: Строка 6:
         console.log("Сохраняем состояние дерева...");
         console.log("Сохраняем состояние дерева...");
         var treeState = {};
         var treeState = {};
         $('.CategoryTreeToggle').each(function() {
         $('.CategoryTreeSection').each(function() { // Используем CategoryTreeSection вместо CategoryTreeItem
             var $toggle = $(this);
             var $section = $(this);
             var itemId = $toggle.closest('.CategoryTreeItem').attr('id');
             var isVisible = $section.find('.CategoryTreeChildren').is(':visible');
             if (itemId) {
            var title = $section.find('.CategoryTreeToggle').data('ct-title'); // Получаем data-ct-title
                 treeState[itemId] = $toggle.attr('aria-expanded');
             if (title) {
                 treeState[title] = isVisible; // Сохраняем состояние видимости
             }
             }
         });
         });
Строка 24: Строка 25:
             var treeState = JSON.parse(treeStateString);
             var treeState = JSON.parse(treeStateString);
             console.log("Состояние дерева из localStorage:", treeState);
             console.log("Состояние дерева из localStorage:", treeState);
             $('.CategoryTreeToggle').each(function() {
             $('.CategoryTreeSection').each(function() { // Используем CategoryTreeSection вместо CategoryTreeItem
                 var $toggle = $(this);
                 var $section = $(this);
                 var itemId = $toggle.closest('.CategoryTreeItem').attr('id');
                 var title = $section.find('.CategoryTreeToggle').data('ct-title'); // Получаем data-ct-title
                 if (itemId && treeState[itemId] === 'true') {
                 if (title && treeState[title] === true) {
                     console.log("Раскрываем категорию:", itemId);
                     console.log("Раскрываем категорию:", title);
                     $toggle.click(); // Раскрываем категорию
                     $section.find('.CategoryTreeToggle').click(); // Раскрываем категорию
                 }
                 }
             });
             });
Строка 46: Строка 47:
         var $toggleButton = $item.find('.CategoryTreeToggle').first();
         var $toggleButton = $item.find('.CategoryTreeToggle').first();
         var isCategory = !$item.find('.CategoryTreePageBullet').length; // Является ли элементом категорией
         var isCategory = !$item.find('.CategoryTreePageBullet').length; // Является ли элементом категорией
        var isExpanded = $toggleButton.attr('aria-expanded') === 'true';


         // 1. Если клик был на toggle-кнопке, ничего не делаем
         // 1. Если клик был на toggle-кнопке, ничего не делаем
Строка 85: Строка 85:
         saveTreeState();
         saveTreeState();
     });
     });
 
    // Сохраняем состояние дерева при выгрузке страницы (например, при закрытии вкладки)
    // Сохраняем состояние дерева при выгрузке страницы (например, при закрытии вкладки)
     $(window).on('beforeunload', saveTreeState);
     $(window).on('beforeunload', saveTreeState);
});
});