MediaWiki:Common.js: различия между версиями
Shihov (обсуждение | вклад) Нет описания правки Метка: отменено |
Shihov (обсуждение | вклад) Нет описания правки Метка: отменено |
||
| Строка 6: | Строка 6: | ||
var treeHTML = $('#p-categorytree-portlet .CategoryTreeTag').html(); | var treeHTML = $('#p-categorytree-portlet .CategoryTreeTag').html(); | ||
localStorage.setItem('categoryTreeHTML', treeHTML); | localStorage.setItem('categoryTreeHTML', treeHTML); | ||
// Сохраняем состояние открытых категорий | |||
var expandedCategories = []; | |||
$('.CategoryTreeItem.expanded').each(function() { | |||
expandedCategories.push($(this).text().trim()); | |||
}); | |||
localStorage.setItem('expandedCategories', JSON.stringify(expandedCategories)); | |||
} | } | ||
| Строка 14: | Строка 21: | ||
$('#p-categorytree-portlet .CategoryTreeTag').html(treeHTML); | $('#p-categorytree-portlet .CategoryTreeTag').html(treeHTML); | ||
} | } | ||
// Восстанавливаем открытые категории | |||
var expandedCategories = JSON.parse(localStorage.getItem('expandedCategories')) || []; | |||
$('.CategoryTreeItem').each(function() { | |||
if (expandedCategories.includes($(this).text().trim())) { | |||
$(this).find('.CategoryTreeToggle').first().click(); | |||
} | |||
}); | |||
} | } | ||
| Строка 83: | Строка 98: | ||
} | } | ||
function | function recursiveSearchForCategory() { | ||
console.log("Очищаем `localStorage` только при прямом входе..."); | |||
if ( | if (!document.referrer) { | ||
localStorage.removeItem('lastOpenedPageTitle'); | |||
localStorage.removeItem('highlightedCategory'); | |||
localStorage.removeItem('expandedCategories'); | |||
} | } | ||
var currentPageTitle = mw.config.get('wgTitle'); | var currentPageTitle = mw.config.get('wgTitle'); | ||
| Строка 124: | Строка 125: | ||
} | } | ||
console.log("Категория не найдена сразу, начинаем раскрытие..."); | |||
var $categoryItems = $('#p-categorytree-portlet .CategoryTreeItem'); | var $categoryItems = $('#p-categorytree-portlet .CategoryTreeItem'); | ||
var index = 0; | var index = 0; | ||
| Строка 134: | Строка 136: | ||
var $item = $($categoryItems[index]); | var $item = $($categoryItems[index]); | ||
expandParentCategories($item, function() { | |||
if (! | if (!scrollToCategory(currentPageTitle)) { | ||
index++; | index++; | ||
processNext(); | processNext(); | ||