aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/static/map.js
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-30 19:27:37 -0400
committerhistoria <[not public]>2026-06-30 19:27:37 -0400
commitfee376102192dc6f24297a7b11324636ace3a07d (patch)
tree6c777cc71208b429eebdbdc5864b353d4af34a09 /internal/admin/static/map.js
parent98bdef072c843fdd8ccdf85a9b54ab9d32d34187 (diff)
downloadthehouseoficarus-fee376102192dc6f24297a7b11324636ace3a07d.tar.gz
feat: admin gui object CRUD is much nicer
Diffstat (limited to 'internal/admin/static/map.js')
-rw-r--r--internal/admin/static/map.js15
1 files changed, 13 insertions, 2 deletions
diff --git a/internal/admin/static/map.js b/internal/admin/static/map.js
index 85364d5..5bff9d7 100644
--- a/internal/admin/static/map.js
+++ b/internal/admin/static/map.js
@@ -543,7 +543,12 @@ function renderLocalTab(localObjs) {
h += '<div class="entry-fields">';
h += '<input class="local-name" value="' + escAttr(obj.name || '') + '" placeholder="name" onchange="updateLocalObject(' + i + ')" style="font-weight:bold">';
h += '<textarea class="local-desc" rows="4" placeholder="description (one per line)" onchange="updateLocalObject(' + i + ')">' + esc(descText) + '</textarea>';
- h += '<input class="local-aliases" value="' + escAttr((obj.aliases || []).join(', ')) + '" placeholder="aliases (comma separated)" onchange="updateLocalObject(' + i + ')">';
+ h += '<div style="display:flex;align-items:center;gap:6px">';
+ h += '<input class="local-aliases" value="' + escAttr((obj.aliases || []).join(', ')) + '" placeholder="aliases (comma separated)" onchange="updateLocalObject(' + i + ')" style="flex:1">';
+ h += '<label style="font-size:10px;color:#ccc;cursor:pointer;display:flex;align-items:center;gap:3px;white-space:nowrap">';
+ h += '<input type="checkbox" class="local-hidden" onchange="updateLocalObject(' + i + ')"' + (obj.hidden ? ' checked' : '') + '>';
+ h += 'Hide</label>';
+ h += '</div>';
h += '</div>';
h += '<button class="btn btn-sm btn-danger" onclick="removeLocalObject(' + i + ')">X</button>';
h += '</div>';
@@ -958,6 +963,7 @@ function updateLocalObject(i) {
var nameEl = row.querySelector('.local-name');
var descEl = row.querySelector('.local-desc');
var aliasesEl = row.querySelector('.local-aliases');
+ var hiddenEl = row.querySelector('.local-hidden');
localObjs[i].name = nameEl ? nameEl.value : '';
var descVal = descEl ? descEl.value : '';
if (descVal) {
@@ -970,6 +976,7 @@ function updateLocalObject(i) {
} else {
localObjs[i].aliases = [];
}
+ localObjs[i].hidden = hiddenEl ? hiddenEl.checked : false;
var refObjs = objs.filter(function(o) { return !!o.id; });
setRoomObjects(localObjs.concat(refObjs));
}
@@ -1159,7 +1166,10 @@ async function doSavePanel() {
}
function deleteRoom(id) {
- if (!confirm('Delete room #' + id + '?')) return;
+ var cb = document.getElementById('confirmDelete');
+ if (!cb || cb.checked) {
+ if (!confirm('Delete room #' + id + '?')) return;
+ }
if (mapData && mapData.rooms) {
var neighbors = [];
if (mapData.links) {
@@ -1567,6 +1577,7 @@ function initPanelResize() {
var panel = $('#sidePanel');
if (!panel) return;
panel.appendChild(handle);
+ panel.style.width = Math.min(800, window.innerWidth / 3) + 'px';
var startX, startW;
handle.addEventListener('mousedown', function(e) {
e.preventDefault();