From 8d144188f795e8e86f059a521a02a47ac6168f0e Mon Sep 17 00:00:00 2001 From: nyaoouo <64143453+nyaoouo@users.noreply.github.com> Date: Sun, 13 Jul 2025 01:01:50 +0800 Subject: [PATCH] move InvigorationUpgrade from modal to detailed view --- static/webui/index.html | 103 ++++++++++++++++++---------------------- static/webui/script.js | 73 +++++++++------------------- 2 files changed, 69 insertions(+), 107 deletions(-) diff --git a/static/webui/index.html b/static/webui/index.html index da8087f9..f9e1e227 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -455,62 +455,6 @@ -

@@ -532,6 +476,53 @@
+
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
diff --git a/static/webui/script.js b/static/webui/script.js index dc2e0edf..cc4d6df6 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -667,21 +667,6 @@ function updateInventory() { const td = document.createElement("td"); td.classList = "text-end text-nowrap"; - if (category == "Suits") { - const a = document.createElement("a"); - a.href = "#"; - a.onclick = () => showSuitInvigorationForm(item); - a.innerHTML = ``; - a.style.textDecoration = "none"; - a.title = ""; - td.appendChild(a); - } - let maxXP = Math.pow(uniqueLevelCaps[item.ItemType] ?? 30, 2) * 1000; if ( category != "Suits" && @@ -1245,6 +1230,12 @@ function updateInventory() { } document.getElementById("crystals-list").appendChild(tr); }); + const { OffensiveUpgrade, DefensiveUpgrade, UpgradesExpiry } = + suitInvigorationUpgradeData(item); + document.getElementById("dv-invigoration-oid").value = oid; + document.getElementById("dv-invigoration-offensive").value = OffensiveUpgrade; + document.getElementById("dv-invigoration-defensive").value = DefensiveUpgrade; + document.getElementById("dv-invigoration-expiry").value = UpgradesExpiry; } else if (["LongGuns", "Pistols", "Melee", "SpaceGuns", "SpaceMelee"].includes(category)) { document.getElementById("valenceBonus-card").classList.remove("d-none"); document.getElementById("valenceBonus-innateDamage").value = ""; @@ -2877,58 +2868,41 @@ function handleModularPartsChange(event) { }); } } - -function showSuitInvigorationForm(suitData) { - document.getElementById("invigoration-oid").value = suitData.ItemId.$oid; - - // Auto-fill form with existing data - document.getElementById("invigoration-offensive").value = suitData?.OffensiveUpgrade || ""; - document.getElementById("invigoration-defensive").value = suitData?.DefensiveUpgrade || ""; - - // Handle expiry date - if (suitData?.UpgradesExpiry) { - let expiryDate; +function suitInvigorationUpgradeData(suitData) { + let expiryDate = ""; + if (suitData.UpgradesExpiry) { if (suitData.UpgradesExpiry.$date) { - // MongoDB format: { "$date": { "$numberLong": "1752933467151" } } expiryDate = new Date(parseInt(suitData.UpgradesExpiry.$date.$numberLong)); } else if (typeof suitData.UpgradesExpiry === "number") { - // Timestamp format expiryDate = new Date(suitData.UpgradesExpiry); } else if (suitData.UpgradesExpiry instanceof Date) { - // Date object expiryDate = suitData.UpgradesExpiry; } - if (expiryDate && !isNaN(expiryDate.getTime())) { - // Format for datetime-local input (YYYY-MM-DDTHH:mm) const year = expiryDate.getFullYear(); const month = String(expiryDate.getMonth() + 1).padStart(2, "0"); const day = String(expiryDate.getDate()).padStart(2, "0"); const hours = String(expiryDate.getHours()).padStart(2, "0"); const minutes = String(expiryDate.getMinutes()).padStart(2, "0"); - - document.getElementById("invigoration-expiry").value = `${year}-${month}-${day}T${hours}:${minutes}`; + expiryDate = `${year}-${month}-${day}T${hours}:${minutes}`; } else { - document.getElementById("invigoration-expiry").value = ""; + expiryDate = ""; } - } else { - document.getElementById("invigoration-expiry").value = ""; } - - document.getElementById("editSuitInvigoration").style.display = "block"; -} - -function hideSuitInvigorationForm() { - document.getElementById("editSuitInvigoration").style.display = "none"; + return { + oid: suitData.ItemId.$oid, + OffensiveUpgrade: suitData.OffensiveUpgrade || "", + DefensiveUpgrade: suitData.DefensiveUpgrade || "", + UpgradesExpiry: expiryDate + }; } function submitSuitInvigorationUpgrade(event) { event.preventDefault(); - - const oid = document.getElementById("invigoration-oid").value; - const offensiveUpgrade = document.getElementById("invigoration-offensive").value; - const defensiveUpgrade = document.getElementById("invigoration-defensive").value; - const expiry = document.getElementById("invigoration-expiry").value; + const oid = new URLSearchParams(window.location.search).get("itemId"); + const offensiveUpgrade = document.getElementById("dv-invigoration-offensive").value; + const defensiveUpgrade = document.getElementById("dv-invigoration-defensive").value; + const expiry = document.getElementById("dv-invigoration-expiry").value; if (!offensiveUpgrade && !defensiveUpgrade) { alert("Please select at least one upgrade type."); @@ -2945,13 +2919,10 @@ function submitSuitInvigorationUpgrade(event) { } editSuitInvigorationUpgrade(oid, data); - hideSuitInvigorationForm(); } function clearSuitInvigorationUpgrades() { - const oid = document.getElementById("invigoration-oid").value; - editSuitInvigorationUpgrade(oid, null); - hideSuitInvigorationForm(); + editSuitInvigorationUpgrade(new URLSearchParams(window.location.search).get("itemId"), null); } async function editSuitInvigorationUpgrade(oid, data) {