From b5491f140ebf1099171c932b688303e05d01a06c Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 14 Jul 2026 04:26:34 -0400 Subject: feat(admin): hide unused mod fields --- internal/admin/static/moduleeditor.js | 60 ++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 5 deletions(-) (limited to 'internal/admin/static/moduleeditor.js') diff --git a/internal/admin/static/moduleeditor.js b/internal/admin/static/moduleeditor.js index ff9d8a4..cbdc1c0 100644 --- a/internal/admin/static/moduleeditor.js +++ b/internal/admin/static/moduleeditor.js @@ -3,6 +3,7 @@ var moduleID = null; var expandedCards = {}; var addedSections = {}; var cardWidths = {}; +window._modFieldVis = {}; var MODULE_SECTIONS = [ { @@ -17,7 +18,7 @@ var MODULE_SECTIONS = [ ['destination', 'Destination', 'number', '5', 'narrow'], ], inline: [ - {label:'Junk Cost', key:'junk_cost', type:'kv_search', searchEntity:'items', valType:'number'}, + {label:'Junk Cost', key:'junk_cost', type:'kv_select', options: ['biojunk','bloodjunk','chaosjunk','cosmicjunk','deathjunk','ecojunk','hydrojunk','lawjunk','naturejunk','scrap','solarjunk']}, ] }, { @@ -137,17 +138,50 @@ function renderCard(sec, data) { h += renderArraySection(sec, data); } else { h += '
'; - sec.fields.forEach(function(f) { - h += renderField(sec, f, data, -1); - }); + if (sec.id === 'core') { + var catVal = data.category || ''; + var isCombat = catVal === 'combat'; + var isTransport = catVal === 'transport'; + h += renderField(sec, sec.fields[0], data, -1); // name + h += renderField(sec, sec.fields[1], data, -1); // level + if (isCombat) { + h += renderField(sec, sec.fields[2], data, -1); // max_hit + } + h += renderField(sec, sec.fields[3], data, -1); // base_xp + h += renderField(sec, sec.fields[4], data, -1); // category + if (isCombat) { + window._modFieldVis = window._modFieldVis || {}; + var vis = window._modFieldVis; + var elemVal = data.element || ''; + var showElem = vis.element || (elemVal !== ''); + var efid = fieldID(sec, 'element', -1); + h += ''; + h += renderField(sec, sec.fields[5], data, -1); + h += ''; + h += ''; + } + if (isTransport) { + h += renderField(sec, sec.fields[6], data, -1); // destination + } + } else { + sec.fields.forEach(function(f) { + h += renderField(sec, f, data, -1); + }); + } h += '
'; + if (sec.id === 'core' && typeof isCombat !== 'undefined' && isCombat) { + h += ' '; + } + if (sec.inline) { sec.inline.forEach(function(il) { if (il.type === 'kv') { h += ced_renderKV(sec, il, data); } else if (il.type === 'kv_search') { h += ced_renderKVSearch(sec, il, data); + } else if (il.type === 'kv_select') { + h += ced_renderKVSelect(sec, il, data); } }); } @@ -183,6 +217,22 @@ function toggleCardWidth(id) { renderCurrent(); } +function showModField(key) { + window._modFieldVis = window._modFieldVis || {}; + window._modFieldVis[key] = true; + renderCurrent(); +} + +function hideModField(key) { + window._modFieldVis = window._modFieldVis || {}; + window._modFieldVis[key] = false; + ced_syncDOMToData(moduleData); + if (key === 'element') { + moduleData.element = ''; + } + renderModuleEditor(moduleID, moduleData); +} + function removeSection(id) { var sec = MODULE_SECTIONS.find(function(s) { return s.id === id; }); if (!sec) return; @@ -272,7 +322,7 @@ function saveModule() { if (sec.inline) { sec.inline.forEach(function(il) { - if (il.type === 'kv' || il.type === 'kv_search') { + if (il.type === 'kv' || il.type === 'kv_search' || il.type === 'kv_select') { var kvEl = document.querySelector('.obj-kv-list[data-sec="' + sec.id + '"][data-key="' + il.key + '"]'); if (kvEl) { var map = {}; -- cgit v1.2.3