From 034187d1c434b6bee32aeb539ea543f6ec537376 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 3 Jul 2026 16:55:23 -0400 Subject: feat: card ui added to drops, hazards, techs, and mods in admin gui --- internal/admin/static/techeditor.js | 191 ++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 internal/admin/static/techeditor.js (limited to 'internal/admin/static/techeditor.js') diff --git a/internal/admin/static/techeditor.js b/internal/admin/static/techeditor.js new file mode 100644 index 0000000..3d74254 --- /dev/null +++ b/internal/admin/static/techeditor.js @@ -0,0 +1,191 @@ +var techData = null; +var techID = null; +var expandedCards = {}; +var cardWidths = {}; + +var TECH_SECTIONS = [ + { + id: 'core', label: 'Core', always: true, + fields: [ + ['name', 'Name', 'text'], + ['level', 'Level', 'number', '', 'narrow'], + ['drain_rate', 'Drain Rate', 'number', '', 'narrow'], + ['category', 'Category', 'text'], + ['group', 'Group', 'text'], + ] + }, + { + id: 'effects', label: 'Effects', always: true, path: 'effects', + fields: [ + ['accuracy_percent', 'Accuracy %', 'number', '', 'narrow'], + ['strength_percent', 'Strength %', 'number', '', 'narrow'], + ['defense_percent', 'Defense %', 'number', '', 'narrow'], + ['ranged_percent', 'Ranged %', 'number', '', 'narrow'], + ['science_percent', 'Science %', 'number', '', 'narrow'], + ['damage_reduction', 'Damage Reduction', 'number', '', 'narrow'], + ['hp_regen_multi', 'HP Regen Multi', 'number', '', 'narrow'], + ['preserve_drain', 'Preserve Drain', 'number', '', 'narrow'], + ['retribution_pct', 'Retribution %', 'number', '', 'narrow'], + ['protect_melee', 'Protect Melee', 'checkbox'], + ['protect_ranged', 'Protect Ranged', 'checkbox'], + ['protect_science', 'Protect Science', 'checkbox'], + ] + } +]; + +function initTechEditor() { + editorType = 'techs'; + editorFields = []; + loadList(); + if (window.location.hash) loadTechEditor(window.location.hash.substring(1)); +} + +function cardPath(sec) { return sec.path || ''; } + +function getVal(data, sec, key) { + return ced_getVal(data, sec, key); +} + +function fieldID(sec, key, idx) { + return ced_fieldID(sec, key, idx); +} + +function setupSearchFields() { ced_setupSearchFields(); } + +function collectFieldValue(el, type) { return ced_collectFieldValue(el, type); } + +function loadTechEditor(id) { + techID = id; + currentID = id; + renderList(''); + window.location.hash = id; + API.get('/api/techs/' + encodeURIComponent(id)).then(function(data) { + techData = data; + renderTechEditor(id, data); + }).catch(function(e) { + $('#editorMain').innerHTML = '
Failed to load: ' + esc(e.message) + '
'; + }); +} + +function loadItem(id) { loadTechEditor(id); } + +function renderTechEditor(id, data) { + var html = 'Deleted
'; + loadList(); + }).catch(function(e) { notify('Delete failed: ' + e.message, 'error'); }); +} -- cgit v1.2.3