From 6adb8ddd28f2b3370f001bfe8cd54656b5d097ce Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 10 Jul 2026 15:13:41 -0400 Subject: feat(admin): exit conditions in map gui match style of all other conditions --- internal/admin/static/intereditor.js | 50 +++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 4 deletions(-) (limited to 'internal/admin/static/intereditor.js') diff --git a/internal/admin/static/intereditor.js b/internal/admin/static/intereditor.js index a17225a..c4f16e7 100644 --- a/internal/admin/static/intereditor.js +++ b/internal/admin/static/intereditor.js @@ -326,10 +326,11 @@ function ie_collectLeaf(el) { // ── Render condition ── -function ie_renderCond(condObj, secId, idx, secPath, kind) { +function ie_renderCond(condObj, secId, idx, secPath, kind, opts) { kind = kind || 'entry'; var h = ''; var isGroup = condObj && (condObj.all_of || condObj.any_of); + var rootChildCount = isGroup ? (condObj.all_of || condObj.any_of || []).length : 0; if (condObj && typeof condObj === 'object') { var condTitleText = ''; if (kind && kind.indexOf('step-') === 0) { @@ -343,13 +344,13 @@ function ie_renderCond(condObj, secId, idx, secPath, kind) { h += ie_renderGroup(condObj, secId, secPath, idx, '', kind); h += ''; } - var showAddbar = !isGroup; + var showAddbar = !isGroup || (opts && opts.alwaysOuterAddbar && rootChildCount === 0); if (showAddbar) { h += '
'; } return h; @@ -881,6 +882,47 @@ function ie_addGroup(secId, secPath, idx, kind, groupPath) { window._ieRenderOnly(); } +function ie_addOuterLeaf(secId, secPath, idx, kind, leafType) { + var ed = window._editorData; + if (!ed) return; + _ie_syncCond(ed, secId, secPath, idx, kind); + var cond = _ie_getCond(ed, secPath, idx, kind); + + var leaf = {}; + leaf[leafType] = (leafType === 'min_credits' || leafType === 'room') ? 0 : ''; + + var newCond; + if (!cond) { + newCond = leaf; + } else { + newCond = {all_of: [cond, leaf]}; + } + + _ie_setCond(ed, secPath, idx, kind, newCond); + ced_syncDOMToData(ed); + window._ieRenderOnly(); +} + +function ie_addOuterGroup(secId, secPath, idx, kind) { + var ed = window._editorData; + if (!ed) return; + _ie_syncCond(ed, secId, secPath, idx, kind); + var cond = _ie_getCond(ed, secPath, idx, kind); + + var newSub = {all_of: []}; + + var newCond; + if (!cond) { + newCond = newSub; + } else { + newCond = {all_of: [cond, newSub]}; + } + + _ie_setCond(ed, secPath, idx, kind, newCond); + ced_syncDOMToData(ed); + window._ieRenderOnly(); +} + function ie_toggleCondMode(secId, secPath, idx, kind, groupPath) { var ed = window._editorData; if (!ed) return; -- cgit v1.2.3