From beb0b73a9e56fdc717d55bbf1a1c7c5b49d4c6a4 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Sun, 12 Jul 2026 19:23:19 -0400 Subject: feat: remains drop is optional --- internal/admin/static/editor.js | 1 - internal/admin/static/mobeditor.js | 25 ++++++++++++++++++++++++- internal/admin/templates/layout.html | 4 ++-- 3 files changed, 26 insertions(+), 4 deletions(-) (limited to 'internal') diff --git a/internal/admin/static/editor.js b/internal/admin/static/editor.js index fe0ef10..593bf7f 100644 --- a/internal/admin/static/editor.js +++ b/internal/admin/static/editor.js @@ -178,7 +178,6 @@ function saveItem(id) { } function deleteItem(id) { - if (!confirm('Delete ' + editorType + ' "' + id + '"?')) return; API.del('/api/' + editorType + '/' + encodeURIComponent(id)).then(function() { notify(editorType + ' ' + id + ' deleted', 'success'); updateUndoBar(); diff --git a/internal/admin/static/mobeditor.js b/internal/admin/static/mobeditor.js index 29664dc..2c8db21 100644 --- a/internal/admin/static/mobeditor.js +++ b/internal/admin/static/mobeditor.js @@ -248,6 +248,8 @@ function renderMobCard(sec, data) { h += renderMobCoreCard(data); } else if (sec.id === 'combat') { h += renderMobCombatCard(data); + } else if (sec.id === 'drops') { + h += renderMobDropsCard(data); } else if (sec.isArray) { h += renderMobArraySection(sec, data); } else if (sec.subtables) { @@ -579,6 +581,27 @@ function renderMobSubtable(sec, st, data) { return h; } +function renderMobDropsCard(data) { + var h = ''; + var drops = data.drops || {}; + var hasRemains = drops.remains !== undefined && drops.remains !== null; + + if (hasRemains) { + h += '