MediaWiki:Common.js: Difference between revisions
MediaWiki interface page
More actions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
$(function () { | $(function () { | ||
const key = ' | const key = 'catglobe-categorytree-open'; | ||
function saveOpenNodes() { | function saveOpenNodes() { | ||
const openNodes = []; | const openNodes = []; | ||
Line 13: | Line 12: | ||
} | } | ||
function restoreOpenNodes() { | function restoreOpenNodes() { | ||
const openNodes = JSON.parse(localStorage.getItem(key) || '[]'); | const openNodes = JSON.parse(localStorage.getItem(key) || '[]'); | ||
openNodes.forEach(function (title) { | openNodes.forEach(function (title) { | ||
const | const toggle = $('.CategoryTreeNode[data-ct-title="' + title + '"] .CategoryTreeToggleClosed'); | ||
if ( | if (toggle.length) { | ||
toggle.click(); | |||
} | } | ||
}); | }); | ||
} | } | ||
// | // Lưu sau khi nhấn vào ▸ | ||
$(document).on('click', '.CategoryTreeToggle', function () { | $(document).on('click', '.CategoryTreeToggle', function () { | ||
setTimeout(saveOpenNodes, | setTimeout(saveOpenNodes, 300); | ||
}); | }); | ||
Latest revision as of 09:22, 29 July 2025
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
const key = 'catglobe-categorytree-open';
function saveOpenNodes() {
const openNodes = [];
$('.CategoryTreeNode:has(.CategoryTreeToggleOpen)').each(function () {
const title = $(this).data('ct-title');
if (title) openNodes.push(title);
});
localStorage.setItem(key, JSON.stringify(openNodes));
}
function restoreOpenNodes() {
const openNodes = JSON.parse(localStorage.getItem(key) || '[]');
openNodes.forEach(function (title) {
const toggle = $('.CategoryTreeNode[data-ct-title="' + title + '"] .CategoryTreeToggleClosed');
if (toggle.length) {
toggle.click();
}
});
}
// Lưu sau khi nhấn vào ▸
$(document).on('click', '.CategoryTreeToggle', function () {
setTimeout(saveOpenNodes, 300);
});
// Khôi phục khi trang load
restoreOpenNodes();
});