MediaWiki:Common.js: различия между версиями
Shihov (обсуждение | вклад) Нет описания правки Метки: ручная отмена отменено |
Shihov (обсуждение | вклад) Нет описания правки Метка: отменено |
||
| Строка 3: | Строка 3: | ||
function saveTreeHTML() { | function saveTreeHTML() { | ||
console.log("Сохраняем | 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("Восстанавливаем | 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(); | |||
} | } | ||
| Строка 134: | Строка 141: | ||
$(window).on('beforeunload', saveTreeHTML); | $(window).on('beforeunload', saveTreeHTML); | ||
attachCategoryEvents(); | attachCategoryEvents(); | ||
}); | }); | ||