Update elementsManager.js

This commit is contained in:
GGodPL 2023-08-02 16:03:19 +02:00 committed by GitHub
parent c058e483f8
commit b23587b7d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 10 deletions

View File

@ -296,7 +296,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
const applyChange = (property, value) => { const applyChange = (property, value) => {
const element = Storage.get("currentElement"); const element = Storage.get("currentElement");
if (elements[element]) if (element && elements[element])
elements[element][property] = value; elements[element][property] = value;
let changes = Storage.get("changes", []); let changes = Storage.get("changes", []);
let a; let a;
@ -320,6 +320,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
let customElements = Storage.get("elements", []); let customElements = Storage.get("elements", []);
let deletedElements = Storage.get("deletedElements", []); let deletedElements = Storage.get("deletedElements", []);
let lastFreeRemoval = Storage.get("settings", {allowFreeRemoval: false, clearElements: false}, true).allowFreeRemoval; let lastFreeRemoval = Storage.get("settings", {allowFreeRemoval: false, clearElements: false}, true).allowFreeRemoval;
Storage.set("lastFreeRemoval", lastFreeRemoval);
for (const key of Object.keys(elements).concat(customElements.map(e => e.name)).sort((a, b) => a.localeCompare(b, undefined, {caseFirst: "false"}))) { for (const key of Object.keys(elements).concat(customElements.map(e => e.name)).sort((a, b) => a.localeCompare(b, undefined, {caseFirst: "false"}))) {
const element = document.createElement("li"); const element = document.createElement("li");
const text = span(key); // only the text should be clickable const text = span(key); // only the text should be clickable
@ -376,7 +377,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
filterInput.placeholder = "Search elements..."; filterInput.placeholder = "Search elements...";
filterInput.onkeyup = (ev) => { filterInput.onkeyup = (ev) => {
const val = ev.target.value; const val = ev.target.value;
const deleted = Storage.get("deletedElements"); const deleted = Storage.get("deletedElements", []);
for (const c of document.getElementById("elementsList").children) { for (const c of document.getElementById("elementsList").children) {
const span_ = c.querySelector("span"); const span_ = c.querySelector("span");
if (!span_.innerText.toLowerCase().includes(val.toLowerCase()) || deleted.includes(span_.innerText)) { if (!span_.innerText.toLowerCase().includes(val.toLowerCase()) || deleted.includes(span_.innerText)) {
@ -646,7 +647,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
const createButton = span("Create Element"); const createButton = span("Create Element");
createButton.className = "createButton"; createButton.className = "createButton";
createButton.onclick = () => { createButton.onclick = () => {
const elementData = Storage.get("newElement"); const elementData = Storage.get("newElement", {});
if (!elementData["name"]) { if (!elementData["name"]) {
document.getElementById("elementsManager/creator/meta/name/required").style.display = ""; document.getElementById("elementsManager/creator/meta/name/required").style.display = "";
} }
@ -759,10 +760,10 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
clearElementsButton.type = "button"; clearElementsButton.type = "button";
if (settings && settings.clearElements) { if (settings && settings.clearElements) {
clearElementsButton.value = "ON"; clearElementsButton.value = "ON";
clearElementsButton.state = "1"; clearElementsButton.setAttribute("state", "1");
} else { } else {
clearElementsButton.value = "OFF"; clearElementsButton.value = "OFF";
clearElementsButton.state = "0"; clearElementsButton.setAttribute("state", "0");
} }
clearElementsButton.onclick = (ev) => { clearElementsButton.onclick = (ev) => {
toggleSetting("clearElements", ev.target) toggleSetting("clearElements", ev.target)
@ -776,13 +777,13 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
allowRemovalButton.type = "button"; allowRemovalButton.type = "button";
if (settings && settings.allowFreeRemoval) { if (settings && settings.allowFreeRemoval) {
allowRemovalButton.value = "ON"; allowRemovalButton.value = "ON";
allowRemovalButton.state = "1"; allowRemovalButton.setAttribute("state", "1");
} else { } else {
allowRemovalButton.value = "OFF"; allowRemovalButton.value = "OFF";
allowRemovalButton.state = "0"; allowRemovalButton.setAttribute("state", "0");
} }
allowRemovalButton.onclick = (ev) => { allowRemovalButton.onclick = (ev) => {
toggleSetting("allowFreeRemoval", ev.target) toggleSetting("allowFreeRemoval", ev.target);
} }
allowRemovalDiv.appendChild(allowRemovalButton); allowRemovalDiv.appendChild(allowRemovalButton);
general.appendChild(allowRemovalDiv); general.appendChild(allowRemovalDiv);
@ -885,8 +886,9 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
loader: elementManagerLoader, loader: elementManagerLoader,
preOpen: () => { preOpen: () => {
const currentElement = Storage.get("currentElement"); const currentElement = Storage.get("currentElement");
if (!currentElement) return closeMenu();
const element = elements[currentElement]; const element = elements[currentElement];
if (!element) closeMenu(); if (!element) return closeMenu();
for (const key of Object.keys(properties)) { for (const key of Object.keys(properties)) {
for (const prop of properties[key]) { for (const prop of properties[key]) {
const id = "elementsManager/" + key + "/" + prop.name; const id = "elementsManager/" + key + "/" + prop.name;
@ -1080,6 +1082,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
onClose: () => { onClose: () => {
const settings = Storage.get("settings", {allowFreeRemoval: false, clearElements: false}, true); const settings = Storage.get("settings", {allowFreeRemoval: false, clearElements: false}, true);
const elements_ = Storage.get("elements", []).map(e => e.name); const elements_ = Storage.get("elements", []).map(e => e.name);
const lastFreeRemoval = Storage.get("lastFreeRemoval", false);
if (settings.allowFreeRemoval && !lastFreeRemoval) { if (settings.allowFreeRemoval && !lastFreeRemoval) {
for (const li of document.getElementById("elementsList").children) { for (const li of document.getElementById("elementsList").children) {
const name = li.querySelector("span").innerText const name = li.querySelector("span").innerText
@ -1115,7 +1118,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
li.querySelectorAll(".elementRemoveButton").forEach(e => e.remove()); li.querySelectorAll(".elementRemoveButton").forEach(e => e.remove());
} }
} }
lastFreeRemoval = settings.allowFreeRemoval; Storage.set("lastFreeRemoval", settings.allowFreeRemoval);
openMenu("elementsManager", true); openMenu("elementsManager", true);
} }
} }