Pivoted to in memory only storage

This commit is contained in:
2025-11-30 02:58:11 -05:00
parent 4da1739da4
commit 60d209c138
9 changed files with 519 additions and 190 deletions

View File

@@ -425,39 +425,97 @@ function setupDropZones() {
}
// ---------------------------
// Populate & Status functions (unchanged behavior)
// Populate & Status functions
// ---------------------------
async function populateFriendly() {
const id = toInt(document.getElementById("friendly-id").value);
if (!id) return alert("Enter Friendly Faction ID");
await fetch("/api/populate_friendly", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ faction_id: id, interval: 0 })
});
try {
const res = await fetch("/api/populate_friendly", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ faction_id: id, interval: 0 })
});
const data = await res.json();
// reload members and assignments
await loadMembers("friendly");
await loadMembers("enemy"); // in case population changed cross lists
await pollAssignments();
await refreshStatus("friendly");
// Update in-memory map & DOM
if (data.members) {
for (const m of data.members) {
let existing = friendlyMembers.get(m.id);
if (existing) {
existing.name = m.name;
existing.level = m.level;
existing.estimate = m.estimate;
existing.status = m.status || "Unknown";
updateMemberCard(existing);
} else {
const newMember = {
id: m.id,
name: m.name,
level: m.level,
estimate: m.estimate,
status: m.status || "Unknown",
domElement: null
};
friendlyMembers.set(m.id, newMember);
const card = createMemberCard(newMember, "friendly");
friendlyContainer.appendChild(card);
}
}
}
// Refresh assignments & status UI
await loadMembers("enemy"); // in case population changed cross lists
await pollAssignments();
} catch (err) {
console.error("populateFriendly error:", err);
}
}
async function populateEnemy() {
const id = toInt(document.getElementById("enemy-id").value);
if (!id) return alert("Enter Enemy Faction ID");
await fetch("/api/populate_enemy", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ faction_id: id, interval: 0 })
});
try {
const res = await fetch("/api/populate_enemy", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ faction_id: id, interval: 0 })
});
const data = await res.json();
await loadMembers("enemy");
await loadMembers("friendly");
await pollAssignments();
await refreshStatus("enemy");
if (data.members) {
for (const m of data.members) {
let existing = enemyMembers.get(m.id);
if (existing) {
existing.name = m.name;
existing.level = m.level;
existing.estimate = m.estimate;
existing.status = m.status || "Unknown";
updateMemberCard(existing);
} else {
const newMember = {
id: m.id,
name: m.name,
level: m.level,
estimate: m.estimate,
status: m.status || "Unknown",
domElement: null
};
enemyMembers.set(m.id, newMember);
const card = createMemberCard(newMember, "enemy");
enemyContainer.appendChild(card);
}
}
}
// Refresh assignments & status UI
await loadMembers("friendly");
await pollAssignments();
} catch (err) {
console.error("populateEnemy error:", err);
}
}
// status refresh (pulls from server status json)