aboutsummaryrefslogtreecommitdiff
path: root/internal/admin
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-08-03 18:35:03 -0400
committerhistoria <[not public]>2026-08-03 18:35:03 -0400
commit0f008790f192a491ac3901d54b506b756f57fef8 (patch)
tree55fba8569ecc3437968ca476b67eaa2370cefb68 /internal/admin
parenta2cbc04f86508708daa09affa5e9d73cc689b2ba (diff)
downloadthehouseoficarus-0f008790f192a491ac3901d54b506b756f57fef8.tar.gz
fix(admin): null step action values render as empty, not null
Diffstat (limited to 'internal/admin')
-rw-r--r--internal/admin/static/intereditor.js6
1 files changed, 3 insertions, 3 deletions
diff --git a/internal/admin/static/intereditor.js b/internal/admin/static/intereditor.js
index 2023874..3928299 100644
--- a/internal/admin/static/intereditor.js
+++ b/internal/admin/static/intereditor.js
@@ -679,7 +679,7 @@ function ie_renderAct(stepObj, secId, idx, si, secPath) {
} else {
kvKeys.forEach(function(k) {
rows += '<div class="ie-kv-row"><input value="' + escAttr(k) + '" placeholder="key" class="ie-kv-key">';
- rows += '<input value="' + escAttr(String(kvMap[k])) + '" placeholder="val" class="ie-kv-val">';
+ rows += '<input value="' + escAttr(kvMap[k] == null ? '' : String(kvMap[k])) + '" placeholder="val" class="ie-kv-val">';
rows += '<button class="btn btn-sm btn-danger" onclick="' + kvRmAttr + '">X</button></div>';
});
}
@@ -693,7 +693,7 @@ function ie_renderAct(stepObj, secId, idx, si, secPath) {
rows += '</div>';
} else if (at.kind === 'search') {
rows += '<div class="ie-act-row"><span class="ie-act-label">' + esc(at.label) + '</span>';
- rows += '<div class="obj-search" style="position:relative;min-width:0;flex:1"><input class="ie-act-input search-input" data-ie-act-key="' + escAttr(at.key) + '" data-search-type="' + escAttr(at.entity) + '" placeholder="' + escAttr(at.hint || 'Search ' + at.entity + '...') + '" value="' + escAttr(String(val)) + '"><div class="search-results" style="display:none"></div></div>';
+ rows += '<div class="obj-search" style="position:relative;min-width:0;flex:1"><input class="ie-act-input search-input" data-ie-act-key="' + escAttr(at.key) + '" data-search-type="' + escAttr(at.entity) + '" placeholder="' + escAttr(at.hint || 'Search ' + at.entity + '...') + '" value="' + escAttr(val == null ? '' : String(val)) + '"><div class="search-results" style="display:none"></div></div>';
rows += '<button class="btn btn-sm btn-danger ie-act-rm" onclick="ie_removeActEffect(this,\'' + escAttr(secId) + '\',\'' + escAttr(secPath) + '\',' + idx + ',' + si + ',\'' + escAttr(at.key) + '\')">X</button>';
rows += '</div>';
} else if (at.kind === 'droptable') {
@@ -704,7 +704,7 @@ function ie_renderAct(stepObj, secId, idx, si, secPath) {
rows += '</div>';
} else {
rows += '<div class="ie-act-row"><span class="ie-act-label">' + esc(at.label) + '</span>';
- rows += '<input class="ie-act-input" data-ie-act-key="' + escAttr(at.key) + '"' + (at.kind === 'number' ? ' type="number"' : '') + ' data-ie-act-kind="' + escAttr(at.kind) + '" value="' + escAttr(String(val)) + '" placeholder="' + escAttr(at.hint || '') + '" style="flex:1">';
+ rows += '<input class="ie-act-input" data-ie-act-key="' + escAttr(at.key) + '"' + (at.kind === 'number' ? ' type="number"' : '') + ' data-ie-act-kind="' + escAttr(at.kind) + '" value="' + escAttr(val == null ? '' : String(val)) + '" placeholder="' + escAttr(at.hint || '') + '" style="flex:1">';
rows += '<button class="btn btn-sm btn-danger ie-act-rm" onclick="ie_removeActEffect(this,\'' + escAttr(secId) + '\',\'' + escAttr(secPath) + '\',' + idx + ',' + si + ',\'' + escAttr(at.key) + '\')">X</button>';
rows += '</div>';
if (at.kind === 'text') {