aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/static/map.js
diff options
context:
space:
mode:
Diffstat (limited to 'internal/admin/static/map.js')
-rw-r--r--internal/admin/static/map.js13
1 files changed, 8 insertions, 5 deletions
diff --git a/internal/admin/static/map.js b/internal/admin/static/map.js
index 5bff9d7..e5d9a19 100644
--- a/internal/admin/static/map.js
+++ b/internal/admin/static/map.js
@@ -595,8 +595,10 @@ function renderItemsTab(spawns) {
h += '<div class="entry-row" data-idx="' + i + '">';
h += '<div class="entry-fields">';
h += '<span class="entry-id">' + esc(spawn.id || '') + '</span>';
- h += '<label class="mini-label">Qty</label><input class="mini-input spawn-qty" type="number" value="' + (spawn.quantity || 0) + '" onchange="updateSpawn(' + i + ')">';
- h += '<label class="mini-label">Respawn</label><input class="mini-input spawn-respawn" type="number" value="' + (spawn.respawn_ticks || 0) + '" onchange="updateSpawn(' + i + ')">';
+ h += '<div style="display:flex;gap:8px;align-items:center;">';
+ h += '<div><label class="mini-label">Quantity</label><input class="mini-input spawn-qty" type="text" inputmode="numeric" pattern="[0-9]*" value="' + (spawn.quantity || 0) + '" onchange="updateSpawn(' + i + ')"></div>';
+ h += '<div><label class="mini-label">Respawn</label><input class="mini-input spawn-respawn" type="text" inputmode="numeric" pattern="[0-9]*" value="' + (spawn.respawn_ticks || 0) + '" onchange="updateSpawn(' + i + ')"></div>';
+ h += '</div>';
h += '</div>';
h += '<button class="btn btn-sm" onclick="openEditor(\'items\', \'' + escAttr(spawn.id || '') + '\')">Edit</button>';
h += '<button class="btn btn-sm btn-danger" onclick="removeSpawn(' + i + ')">X</button>';
@@ -666,7 +668,7 @@ function editExitCondition(dir) {
overlay.className = 'cm-overlay exit-overlay';
var menu = document.createElement('div');
menu.className = 'cm-menu exit-modal';
- menu.style.cssText = 'position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-width:420px;max-width:90vw;max-height:85vh;overflow-y:auto;overflow-x:hidden;padding:14px;z-index:201';
+ menu.style.cssText = 'position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-width:520px;max-width:90vw;max-height:85vh;overflow-y:auto;overflow-x:hidden;padding:14px;z-index:201';
var h = '<h3 style="margin-bottom:8px;font-size:13px">Exit: ' + esc(dir) + ' &rarr; #' + exit.room + '</h3>';
h += '<div class="form-group"><label>Set Flags (key=value, comma separated)</label><input id="exitFlags" value="' + escAttr(flagsStr) + '"></div>';
@@ -742,7 +744,7 @@ function renderConditionClauses(menu) {
} else {
h += '<input class="cond-val" value="' + escAttr(clause.value || '') + '" onchange="updateClauseData(this)" style="flex:1">';
}
- h += '<label style="font-size:10px;color:#aaa;white-space:nowrap"><input type="checkbox" class="cond-not"' + (clause.not ? ' checked' : '') + ' onchange="updateClauseData(this)"> not</label>';
+ h += '<label style="font-size:10px;color:#aaa;white-space:nowrap"><input type="checkbox" class="cond-not"' + (clause.not ? ' checked' : '') + ' onchange="updateClauseData(this)"> =Not True</label>';
h += '<button class="btn btn-sm btn-danger" onclick="removeConditionClause(this)" style="flex-shrink:0">X</button>';
h += '</div>';
});
@@ -833,7 +835,8 @@ function saveExitCondition() {
}
function buildSingleCondition(clause) {
- var obj = {not: !!clause.not};
+ var obj = {};
+ if (clause.not) obj.not = true;
if (clause.type === 'value') {
var parts = (clause.value || '').split('=', 2);
obj.value = {key: (parts[0] || '').trim(), value: (parts[1] || '').trim()};