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

Нет описания правки
Метки: ручная отмена отменено
Нет описания правки
Метка: отменено
Строка 3: Строка 3:


     function saveTreeHTML() {
     function saveTreeHTML() {
         console.log("Сохраняем HTML дерева...");
         console.log("Сохраняем текущее состояние дерева...");
         var treeHTML = $('#p-categorytree-portlet .CategoryTreeTag').prop('outerHTML');
         var treeHTML = $('#p-categorytree-portlet .CategoryTreeTag').prop('outerHTML');
         localStorage.setItem('categoryTreeHTML', treeHTML);
         localStorage.setItem('categoryTreeHTML', treeHTML);
    }
    function saveInitialTreeState() {
        if (!localStorage.getItem('initialCategoryTree')) {
            console.log("Сохраняем начальное состояние дерева...");
            var initialTreeHTML = $('#p-categorytree-portlet .CategoryTreeTag').prop('outerHTML');
            localStorage.setItem('initialCategoryTree', initialTreeHTML);
        }
     }
     }


     function restoreTreeHTML() {
     function restoreTreeHTML() {
         console.log("Восстанавливаем HTML дерева...");
         console.log("Восстанавливаем последнее сохраненное состояние дерева...");
 
         var treeHTML = localStorage.getItem('categoryTreeHTML');
         var treeHTML = localStorage.getItem('categoryTreeHTML');
         if (treeHTML) {
         if (treeHTML) {
Строка 16: Строка 23:
         }
         }


        // Повторно навешиваем обработчики событий после восстановления
         attachCategoryEvents();
         attachCategoryEvents();
    }
    function restoreInitialTreeState() {
        console.log("Восстанавливаем ИЗНАЧАЛЬНОЕ состояние дерева...");
        var initialTreeHTML = localStorage.getItem('initialCategoryTree');
        if (initialTreeHTML) {
            $('#p-categorytree-portlet .CategoryTreeTag').replaceWith(initialTreeHTML);
            attachCategoryEvents();
        } else {
            console.log("Изначальное состояние дерева отсутствует в `localStorage`.");
        }
     }
     }


Строка 48: Строка 65:
     }
     }


    saveInitialTreeState();
     restoreTreeHTML();
     restoreTreeHTML();


Строка 113: Строка 131:
         }
         }


         console.log("Категория не найдена, привязываемся к `Начало`...");
         console.log("Категория не найдена, восстанавливаем начальное состояние...");
 
         restoreInitialTreeState();
         var $startCategory = $('#p-categorytree-portlet .CategoryTreeItem').filter(function() {
            return $(this).text().trim().toLowerCase() === 'начало';
        });
 
        if ($startCategory.length) {
            expandParentCategories($startCategory, function() {
                scrollToCategory('Начало');
            });
        } else {
            console.log("Категория `Начало` тоже не найдена, ничего не делаем.");
        }
     }
     }


Строка 134: Строка 141:
     $(window).on('beforeunload', saveTreeHTML);
     $(window).on('beforeunload', saveTreeHTML);


    // Первичная инициализация обработчиков событий
     attachCategoryEvents();
     attachCategoryEvents();
});
});