MediaWiki:Common.js: Difference between revisions
MediaWiki interface page
More actions
Replacing page with '→Any JavaScript here will be loaded for all users on every page load.: ' |
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 () { | |||
const key = 'cgkb-open-nodes'; | |||
// Hàm lưu node đang mở vào localStorage | |||
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)); | |||
} | |||
// Hàm khôi phục trạng thái cây | |||
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.trigger('click'); | |||
} | |||
}); | |||
} | |||
// Sau khi click mở nhánh, lưu trạng thái | |||
$(document).on('click', '.CategoryTreeToggle', function () { | |||
setTimeout(saveOpenNodes, 500); // delay để JS của CategoryTree xử lý xong | |||
}); | |||
// Khôi phục khi trang load | |||
restoreOpenNodes(); | |||
}); |
Revision as of 09:12, 29 July 2025
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
const key = 'cgkb-open-nodes';
// Hàm lưu node đang mở vào localStorage
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));
}
// Hàm khôi phục trạng thái cây
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.trigger('click');
}
});
}
// Sau khi click mở nhánh, lưu trạng thái
$(document).on('click', '.CategoryTreeToggle', function () {
setTimeout(saveOpenNodes, 500); // delay để JS của CategoryTree xử lý xong
});
// Khôi phục khi trang load
restoreOpenNodes();
});