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
No edit summary
No edit summary
 
(2 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 ModifySidebar(action, section, name, link) {
  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));
  }


    try {
  function restoreOpenNodes() {
        switch (section) {
    const openNodes = JSON.parse(localStorage.getItem(key) || '[]');
          case "languages":
    openNodes.forEach(function (title) {
            var target = "p-lang";
      const toggle = $('.CategoryTreeNode[data-ct-title="' + title + '"] .CategoryTreeToggleClosed');
            break;
      if (toggle.length) {
          case "toolbox":
        toggle.click();
            var target = "p-tb";
      }
            break;
     });
          case "navigation":
  }
            var target = "p-navigation";
            break;
          default:
            var target = "p-" + section;
            break;
        }
        if (action == "add") {
            var node = document.getElementById(target)
                              .getElementsByTagName('div')[0]
                              .getElementsByTagName('ul')[0];
            var aNode = document.createElement('a');
            var liNode = document.createElement('li');
            aNode.appendChild(document.createTextNode(name));
            aNode.setAttribute('href', link);
            liNode.appendChild(aNode);
            liNode.className='plainlinks';
            node.appendChild(liNode);
        }
        if (action == "remove") {
            var list = document.getElementById(target)
                              .getElementsByTagName('div')[0]
                              .getElementsByTagName('ul')[0];
            var listelements = list.getElementsByTagName('li');
            for (var i = 0; i < listelements.length; i++) {
                if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
                    listelements[i].getElementsByTagName('a')[0].href == link) {
                    list.removeChild(listelements[i]);
                }
            }
        }
     } catch(e) {
      // lets just ignore what's happened
      return;
    }


}  
  // Lưu sau khi nhấn vào ▸
  $(document).on('click', '.CategoryTreeToggle', function () {
    setTimeout(saveOpenNodes, 300);
  });


function CustomizeModificationsOfSidebar() {
  // Khôi phục khi trang load
 
  restoreOpenNodes();
    //adds [[Special:CategoryTree]] to toolbox
});
    ModifySidebar("add", "toolbox", "CategoryTree", "http://vietnamwiki.catglobe.com/index.php/Special:CategoryTree");
    //removes [[Special:Upload]] from toolbox
    ModifySidebar("remove", "toolbox", "Upload file", "http://vietnamwiki.catglobe.com/index.php/Special:Upload");
 
}  
 
addOnloadHook(CustomizeModificationsOfSidebar);

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