We are actively looking for staff to help us build the wiki. If you are interested please join our Discord server and apply.

MediaWiki:Common.js: Difference between revisions

From Moonbounce Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 17: Line 17:
});
});


document.addEventListener('DOMContentLoaded', () => {
document.addEventListener('DOMContentLoaded', function() {
   const icons = document.querySelectorAll('.masterlist-icon');
   const icons = document.querySelectorAll('.masterlist-icon');
 
  console.log('Icons found:', icons);


  // Load saved state from localStorage
   icons.forEach(function(icon) {
   icons.forEach(icon => {
     const itemId = icon.closest('.masterlist-item').dataset.id;
     const itemId = icon.closest('.masterlist-item').dataset.id;
     const isClicked = localStorage.getItem(`icon-${itemId}`) === 'true';
     const isClicked = localStorage.getItem('icon-' + itemId) === 'true';
     if (isClicked) {
     if (isClicked) {
       icon.classList.add('clicked');
       icon.classList.add('clicked');
Line 29: Line 30:
   });
   });


  // Add click event listeners to toggle clicked state and save to localStorage
   icons.forEach(function(icon) {
   icons.forEach(icon => {
     icon.addEventListener('click', function() {
     icon.addEventListener('click', () => {
       const itemId = icon.closest('.masterlist-item').dataset.id;
       const itemId = icon.closest('.masterlist-item').dataset.id;
       icon.classList.toggle('clicked');
       icon.classList.toggle('clicked');
       localStorage.setItem(`icon-${itemId}`, icon.classList.contains('clicked'));
       localStorage.setItem('icon-' + itemId, icon.classList.contains('clicked'));
     });
     });
   });
   });
});
});

Revision as of 17:23, 25 June 2024

$(document).ready(function() {
    // Function to toggle the collapse
    function toggleSidebarCategory(category) {
        $('#' + category + ' > .body').slideToggle();
        $('#' + category + ' > .head').toggleClass('collapsed');
    }

    // Add toggle link to each category header
    $('#mw-panel .portal > h3').each(function() {
        var category = $(this).parent().attr('id');
        $(this).addClass('head').click(function() { toggleSidebarCategory(category); });
    });

    // Hide all categories by default
    $('#mw-panel .portal > .body').hide();
    $('#mw-panel .portal > h3').addClass('collapsed');
});

document.addEventListener('DOMContentLoaded', function() {
  const icons = document.querySelectorAll('.masterlist-icon');
  
  console.log('Icons found:', icons);

  icons.forEach(function(icon) {
    const itemId = icon.closest('.masterlist-item').dataset.id;
    const isClicked = localStorage.getItem('icon-' + itemId) === 'true';
    if (isClicked) {
      icon.classList.add('clicked');
    }
  });

  icons.forEach(function(icon) {
    icon.addEventListener('click', function() {
      const itemId = icon.closest('.masterlist-item').dataset.id;
      icon.classList.toggle('clicked');
      localStorage.setItem('icon-' + itemId, icon.classList.contains('clicked'));
    });
  });
});