From 6e7c0b3ec4253bb58a815979b1f4574d08cb1f53 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 10 Jul 2026 00:43:29 -0400 Subject: feat(admin): add triggers to rooms, add global triggers --- internal/admin/static/mobeditor.js | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'internal/admin/static/mobeditor.js') diff --git a/internal/admin/static/mobeditor.js b/internal/admin/static/mobeditor.js index 463af0a..183aef9 100644 --- a/internal/admin/static/mobeditor.js +++ b/internal/admin/static/mobeditor.js @@ -129,10 +129,10 @@ var MOB_SECTIONS = [ }, ]; -function mobCardPath(sec) { return ced_cardPath(sec); } -function mobGetVal(data, sec, key) { return ced_getVal(data, sec, key); } -function mobFieldID(sec, key, idx) { return ced_fieldID(sec, key, idx); } -function mobFieldIDSub(sec, subKey, idx, fieldKey) { return ced_fieldIDSub(sec, subKey, idx, fieldKey); } +function cardPath(sec) { return ced_cardPath(sec); } +function getVal(data, sec, key) { return ced_getVal(data, sec, key); } +function fieldID(sec, key, idx) { return ced_fieldID(sec, key, idx); } +function fieldIDSub(sec, subKey, idx, fieldKey) { return ced_fieldIDSub(sec, subKey, idx, fieldKey); } function initMobEditor() { window._ieRenderCurrent = renderCurrent; @@ -418,7 +418,7 @@ function renderMobCombatCard(data) { function setupMobProtectedToggle() { var sec = MOB_SECTIONS.find(function(s) { return s.id === 'core'; }); if (!sec) return; - var protEl = document.getElementById(mobFieldID(sec, 'protected', -1)); + var protEl = document.getElementById(fieldID(sec, 'protected', -1)); if (!protEl) return; function apply() { var combatCard = document.querySelector('.obj-card[data-card="combat"]'); @@ -434,7 +434,7 @@ function setupMobProtectedToggle() { } function renderMobField(sec, f, data, idx, subPath, optStyle) { - return ced_renderField(sec, f, data, idx, subPath, optStyle, mobCardPath, mobFieldID, mobGetVal); + return ced_renderField(sec, f, data, idx, subPath, optStyle, cardPath, fieldID, getVal); } // ---- Interaction-style array rendering (On Kill) ---- @@ -519,14 +519,14 @@ function mobHideInterField(secId, idx, key) { // ---- Subtable rendering ---- function renderMobSubField(sec, stKey, idx, f, val) { - var fid = mobFieldIDSub(sec, stKey, idx, f[0]); + var fid = fieldIDSub(sec, stKey, idx, f[0]); val = val === undefined || val === null ? '' : val; var extraCls = ''; if (f[4] === 'narrow') extraCls = ' obj-narrow'; else if (f[4] === 'grow') extraCls = ' obj-grow'; var defaultPh = ''; if (f[3]) defaultPh = ' placeholder="' + escAttr(f[3]) + '"'; - var dp = mobCardPath(sec) + '.' + stKey + '[' + idx + '].' + f[0]; + var dp = cardPath(sec) + '.' + stKey + '[' + idx + '].' + f[0]; var dpAttr = ' data-field-path="' + escAttr(dp) + '"'; if (f[2] === 'search') { var entity = f[6] || 'items'; @@ -540,7 +540,7 @@ function renderMobSubField(sec, stKey, idx, f, val) { } function renderMobSubtable(sec, st, data) { - var p = mobCardPath(sec); + var p = cardPath(sec); var sectionRoot = p ? (mobData[p] || {}) : mobData; var raw = sectionRoot[st.key]; var arr; @@ -630,9 +630,9 @@ function renderMobTableSubtable(sec, st, arr) { arr.forEach(function(item, idx) { h += '
'; st.fields.forEach(function(f) { - var fid = mobFieldIDSub(sec, st.key, idx, f[0]); + var fid = fieldIDSub(sec, st.key, idx, f[0]); var val = item[f[0]]; - var dp = mobCardPath(sec) + '.' + st.key + '[' + idx + '].' + f[0]; + var dp = cardPath(sec) + '.' + st.key + '[' + idx + '].' + f[0]; if (f[2] === 'search') { var entity = f[6] || 'items'; var sval = (val === undefined || val === null) ? '' : String(val); @@ -734,7 +734,7 @@ function mobAddSection() { function addMobSubRow(cardID, subKey) { var sec = MOB_SECTIONS.find(function(s) { return s.id === cardID; }); if (!sec) return; - ced_addSubRow(sec, subKey, mobData, mobCardPath); + ced_addSubRow(sec, subKey, mobData, cardPath); renderCurrent(); } @@ -742,14 +742,14 @@ function removeMobSubRow(cardID, subKey, idx) { var sec = MOB_SECTIONS.find(function(s) { return s.id === cardID; }); if (!sec) return; ced_syncDOMToData(mobData); - ced_removeSubRow(sec, subKey, idx, mobData, mobCardPath); + ced_removeSubRow(sec, subKey, idx, mobData, cardPath); renderMobEditor(mobID, mobData); } function addMobLootRow(cardID, subKey, kind) { var sec = MOB_SECTIONS.find(function(s) { return s.id === cardID; }); if (!sec) return; - var p = mobCardPath(sec); + var p = cardPath(sec); var root = p ? (mobData[p] || (mobData[p] = {})) : mobData; if (!Array.isArray(root[subKey])) root[subKey] = []; if (kind === 'table') { @@ -779,7 +779,7 @@ function unflattenObj(obj) { // ---- Save ---- function saveMob() { - if (!ced_validateFields(MOB_SECTIONS, mobFieldID, mobFieldIDSub)) return; + if (!ced_validateFields(MOB_SECTIONS, fieldID, fieldIDSub)) return; ie_syncAllInteractions(mobData, MOB_SECTIONS); @@ -800,7 +800,7 @@ function saveMob() { var item = {}; sec.fields.forEach(function(f) { if (f[2] === 'inter_cond' || f[2] === 'inter_act') return; - var fid = mobFieldID(sec, f[0], idx); + var fid = fieldID(sec, f[0], idx); var el = document.getElementById(fid); if (el) item[f[0]] = ced_collectFieldValue(el, f[2]); }); @@ -826,7 +826,7 @@ function saveMob() { var hasValues = sec.always; if (sec.fields) { - hasValues = ced_saveSectionFields(sec, sectionObj, mobCardPath, mobFieldID) || hasValues; + hasValues = ced_saveSectionFields(sec, sectionObj, cardPath, fieldID) || hasValues; } if (sec.id === 'combat' && document.querySelector('input[name="mob_atktype_melee"]')) { @@ -836,14 +836,14 @@ function saveMob() { if (sec.subtables) { sec.subtables.forEach(function(st) { - if (ced_saveSubtable(sec, st, sectionObj, mobCardPath, mobFieldIDSub)) hasValues = true; + if (ced_saveSubtable(sec, st, sectionObj, cardPath, fieldIDSub)) hasValues = true; }); } if (sec.inline) { sec.inline.forEach(function(il) { if (il.type === 'tags') { - var fid = mobFieldID(sec, il.key); + var fid = fieldID(sec, il.key); var el = document.getElementById(fid); if (el && el.value.trim()) { sectionObj[il.key] = el.value.split(',').map(function(s) { return s.trim(); }).filter(function(s) { return s; }); -- cgit v1.2.3