MediaWiki:Common.js: Difference between revisions
mNo edit summary |
No edit summary |
||
| Line 5: | Line 5: | ||
/*var elementToInvert = document.querySelector(".infobox-image > span");*/ | /*var elementToInvert = document.querySelector(".infobox-image > span");*/ | ||
/*elementToInvert.classList.add("mw-no-invert");*/ | /*elementToInvert.classList.add("mw-no-invert");*/ | ||
/* Create Page */ | |||
const createPageTargetIdDataSetString = "[data-create-page-target-id]"; | |||
if (document.querySelector(createPageTargetIdDataSetString)) { | |||
/** | |||
* @type {HTMLElement[]} | |||
*/ | |||
let itemsCreateInputPageGrid = []; | |||
let itemsCreatePageGrid = []; | |||
const createPageTargetId = "createPageTargetId"; | |||
const createPageInputHiddenClass = "hidden"; | |||
const createPageInputActiveClass = "pageInputActive"; | |||
/** | |||
* @param {HTMLElement} element | |||
*/ | |||
function getGridTarget(element) { | |||
const targetId = element.dataset[createPageTargetId]; | |||
return document.getElementById(targetId); | |||
} | |||
/** | |||
* @this {HTMLDivElement} | |||
*/ | |||
function toggleGridTarget(element, targetElement) { | |||
for (let index = 0; index < itemsCreateInputPageGrid.length; index += 1) { | |||
const target = itemsCreateInputPageGrid[index]; | |||
target.classList.add(createPageInputHiddenClass); | |||
if (target === targetElement) { | |||
target.classList.remove(createPageInputHiddenClass); | |||
} | |||
const clickedElement = itemsCreatePageGrid[index]; | |||
clickedElement.classList.remove(createPageInputActiveClass); | |||
if (clickedElement === element) { | |||
clickedElement.classList.add(createPageInputActiveClass); | |||
} | |||
} | |||
} | |||
/** | |||
* @param {HTMLElement} element | |||
* @param {HTMLElement} targetElement | |||
*/ | |||
function addToggleGridTargetEvent(element, targetElement) { | |||
itemsCreatePageGrid.push(element); | |||
itemsCreateInputPageGrid.push(targetElement); | |||
element.addEventListener("click", () => | |||
toggleGridTarget(element, targetElement) | |||
); | |||
} | |||
const createPageTargetElements = document.querySelectorAll( | |||
createPageTargetIdDataSetString | |||
); | |||
for (let index = 0; index < createPageTargetElements.length; index += 1) { | |||
const element = createPageTargetElements[index]; | |||
const targetElement = getGridTarget(element); | |||
if (targetElement) { | |||
addToggleGridTargetEvent(element, targetElement); | |||
} | |||
} | |||
} | |||
/* Create Page */ | |||
/* testing */ | /* testing */ | ||