PC Gaming Shelter
An archive dedicated to preserving PC Gaming history and more

MediaWiki:Common.js: Difference between revisions

From PC Gaming Shelter
No edit summary
No edit summary
Line 19: Line 19:


function sortPFCheckboxes() {
function sortPFCheckboxes() {
  const containers = document.querySelectorAll(".checkboxesSpan");
  const containers = document.querySelectorAll(".checkboxesSpan");


  containers.forEach(container => {
  containers.forEach(container => {
      const labels = Array.from(container.querySelectorAll("label.checkboxLabel"));
    const labels = Array.from(container.querySelectorAll("label.checkboxLabel"));


      labels.sort((a, b) => {
    const getText = el =>
            const textA = a.querySelector("t").textContent.trim().toLowerCase();
      (el.querySelector("t")?.textContent || el.textContent).trim();
            const textB = b.querySelector("t").textContent.trim().toLowerCase();
 
            return textA.localeCompare(textB);
    labels.sort((a, b) =>
      });
      getText(a).localeCompare(getText(b), undefined, {
      labels.forEach(label => container.appendChild(label));
        numeric: true,
  });
        sensitivity: "base"
      })
    );
  labels.forEach(label => container.appendChild(label));
  });
}
}

Revision as of 10:45, 22 March 2026

/* Any JavaScript here will be loaded for all users on every page load. */

$(function() {
	managePersonalIconVis();
    sortPFCheckboxes();
});

function managePersonalIconVis(){
  if (mw.config.get('wgUserId') !== null) {
	const personal = document.getElementById('p-personal');
	document.querySelector('#pane4').appendChild(personal);
  } else {
	const personalIcon = document.querySelector('.personal-tools-icon');
	if (personalIcon) {
		personalIcon.classList.add('d-none');
	}
  }
}

function sortPFCheckboxes() {
  const containers = document.querySelectorAll(".checkboxesSpan");

  containers.forEach(container => {
    const labels = Array.from(container.querySelectorAll("label.checkboxLabel"));

    const getText = el =>
      (el.querySelector("t")?.textContent || el.textContent).trim();

    labels.sort((a, b) =>
      getText(a).localeCompare(getText(b), undefined, {
        numeric: true,
        sensitivity: "base"
      })
    );
   labels.forEach(label => container.appendChild(label));
  });
}