diff options
| author | historia <[not public]> | 2026-07-05 03:45:48 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-07-05 03:45:48 -0400 |
| commit | 21c1997a3fd0f5ec5dcff1add45e4dfaf7a338ca (patch) | |
| tree | 3a63fb257837c0f7545eab0cada4c24b8ce67e84 /internal/admin/static/itemeditor.js | |
| parent | 81f3e3bae7d82f0e0ad72d89ea5a5fdae8804712 (diff) | |
| download | thehouseoficarus-21c1997a3fd0f5ec5dcff1add45e4dfaf7a338ca.tar.gz | |
fix: use interaction cards in admin gui work, fix card css on object tab
Diffstat (limited to 'internal/admin/static/itemeditor.js')
| -rw-r--r-- | internal/admin/static/itemeditor.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/internal/admin/static/itemeditor.js b/internal/admin/static/itemeditor.js index f1450ab..5a2b371 100644 --- a/internal/admin/static/itemeditor.js +++ b/internal/admin/static/itemeditor.js @@ -166,6 +166,7 @@ function loadItemEditor(id) { window.location.hash = id; API.get('/api/items/' + encodeURIComponent(id)).then(function(data) { itemData = data; + window._editorData = itemData; renderItemEditor(id, data); }).catch(function(e) { $('#editorMain').innerHTML = '<p style="color:var(--danger)">Failed to load: ' + esc(e.message) + '</p>'; @@ -524,7 +525,16 @@ function renderField(sec, f, data, idx, subPath, optStyle) { if (type === 'search') { var entity = searchEntity || 'items'; var ph = hint ? ' placeholder="' + esc(hint) + '"' : ' placeholder="Search ' + entity + '..."'; - return wrap('obj-field obj-search', '<span>' + esc(label) + '</span><div style="position:relative;width:100%"><input id="' + fid + '" value="' + escAttr(String(val)) + '" class="search-input" data-search-type="' + entity + '"' + ph + '><div class="search-results" style="display:none"></div></div>'); + var pfx = cardPath(sec); + var dp; + if (idx >= 0) { + dp = pfx + '[' + idx + '].' + key; + } else if (subPath) { + dp = (pfx ? pfx + '.' : '') + subPath + '.' + key; + } else { + dp = (pfx ? pfx + '.' : '') + key; + } + return wrap('obj-field obj-search', '<span>' + esc(label) + '</span><div style="position:relative;width:100%"><input id="' + fid + '" value="' + escAttr(String(val)) + '" class="search-input" data-search-type="' + entity + '" data-data-path="' + escAttr(dp) + '"' + ph + '><div class="search-results" style="display:none"></div></div>'); } var ph = hint ? ' placeholder="' + esc(hint) + '"' : ''; return wrap('obj-field', '<span>' + esc(label) + '</span><input id="' + fid + '" value="' + escAttr(String(val)) + '"' + ph + '>'); @@ -568,7 +578,8 @@ function renderSubFieldHTML(sec, stKey, idx, f, val) { if (f[2] === 'search') { var entity = f[6] || 'items'; var ph = f[3] ? ' placeholder="' + escAttr(f[3]) + '"' : ' placeholder="Search ' + entity + '..."'; - return '<label class="obj-field obj-search' + extraCls + '"' + extraStyle + '><span>' + esc(f[1]) + '</span><div style="position:relative;width:100%"><input id="' + fid + '" value="' + escAttr(String(val)) + '" class="search-input" data-search-type="' + entity + '"' + ph + '><div class="search-results" style="display:none"></div></div></label>'; + var dp = cardPath(sec) + '.' + stKey + '[' + idx + '].' + f[0]; + return '<label class="obj-field obj-search' + extraCls + '"' + extraStyle + '><span>' + esc(f[1]) + '</span><div style="position:relative;width:100%"><input id="' + fid + '" value="' + escAttr(String(val)) + '" class="search-input" data-search-type="' + entity + '" data-data-path="' + escAttr(dp) + '"' + ph + '><div class="search-results" style="display:none"></div></div></label>'; } if (f[2] === 'checkbox') { return '<label class="obj-field obj-check' + extraCls + '"' + extraStyle + '><input type="checkbox" id="' + fid + '"' + (val ? ' checked' : '') + '> <span>' + esc(f[1]) + '</span></label>'; |
