Toggle menu
876
3.8K
30.2K
279.1K
Catglobe Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
New page: Any JavaScript here will be loaded for all users on every page load.: function AppendCategoryTreeToSidebar() {<br> try {<br> var node = document.getElementById( "p-tb" )<br> .getEle...
 
No edit summary
 
(7 intermediate revisions by 2 users not shown)
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 = 'catglobe-categorytree-open';


function AppendCategoryTreeToSidebar() {<br> try {<br> var node = document.getElementById( "p-tb" )<br> .getElementsByTagName('div')[0]<br> .getElementsByTagName('ul')[0];<br> <br> var aNode = document.createElement( 'a' );<br> var liNode = document.createElement( 'li' );<br> <br> aNode.appendChild( document.createTextNode( 'CategoryTree' ) );<br> aNode.setAttribute( 'href' , 'http://vietnamwiki.catglobe.com/Special:CategoryTree' );<br> liNode.appendChild( aNode );<br> liNode.className = 'plainlinks';<br> node.appendChild( liNode );<br> } catch(e) {<br> // lets just ignore what's happened<br> return;<br> }<br>}<br> <br>addOnloadHook( AppendCategoryTreeToSidebar );<br><br>
  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();
});

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();
});