From fbe5090ac3325ff8ea6989cdf4515c7f077c975b Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Wed, 1 Jul 2026 03:21:52 -0400 Subject: feat: item messaging standardized, custom messages for production paths implemented --- internal/admin/static/itemeditor.js | 48 +++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 10 deletions(-) (limited to 'internal/admin/static/itemeditor.js') diff --git a/internal/admin/static/itemeditor.js b/internal/admin/static/itemeditor.js index d02e7ab..d02945a 100644 --- a/internal/admin/static/itemeditor.js +++ b/internal/admin/static/itemeditor.js @@ -59,24 +59,24 @@ var SECTIONS = [ ['success_base', 'Base', 'number', '', 'narrow'], ['success_per_level', 'Per Lvl', 'number', '', 'narrow'], ['success_cap', 'Cap', 'number', '', 'narrow'], - ['start_message', 'Start Message', 'text', '', 'wide'], - ['message', 'Message', 'text', '', 'wide'], - ['fail_message', 'Fail Message', 'text', '', 'wide', function(item) { return item.type === 'cooking' || item.subtype === 'smelt'; }], - ['end_message', 'End Message', 'text', '', 'wide'], + ['start_message', 'Start Message', 'text', 'e.g. You begin smithing %i1.', 'wide'], + ['success_message', 'Success Message', 'text', 'e.g. You smith a %n.', 'wide'], + ['fail_message', 'Fail Message', 'text', 'e.g. You accidentally burn the %i1.', 'wide', function(item) { return item.type === 'cooking' || item.subtype === 'smelt'; }], + ['end_message', 'End Message', 'text', 'e.g. You\'ve finished smithing.', 'wide'], ], fieldGroups: [ ['type', 'subtype', 'level', 'xp', 'wait', 'output_qty'], {fields: ['station', 'tool'], right: true}, {label: 'Success', fields: ['success_base', 'success_per_level', 'success_cap', 'fail']}, - ['start_message', 'message', 'fail_message', 'end_message'], + ['start_message', 'success_message', 'fail_message', 'end_message'], ], subSubtables: [ {label:'Ingredients', key:'ingredients', fields:[ ['quantity', 'Qty', 'number', '1', 'narrow'], ]}, {label:'Steps', key:'steps', fields:[ - ['tick', 'Ticks', 'number', '', 'narrow'], - ['message', 'Message', 'text', '', 'wide'], + ['delay', 'Delay (ticks)', 'number', '', 'narrow'], + ['message', 'Message', 'text', '', 'wide'], ]}, ], } @@ -556,6 +556,8 @@ function renderSubFieldHTML(sec, stKey, idx, f, val) { if (f[4] === 'narrow') extraCls = ' obj-narrow'; else if (f[4] === 'grow') extraCls = ' obj-grow'; if (f[4] === 'wide') extraStyle = ' style="flex:1 1 100%"'; + var defaultPh = ''; + if (f[3]) defaultPh = ' placeholder="' + escAttr(f[3]) + '"'; if (f[2] === 'search') { var entity = f[6] || 'items'; var ph = f[3] ? ' placeholder="' + escAttr(f[3]) + '"' : ' placeholder="Search ' + entity + '..."'; @@ -573,7 +575,7 @@ function renderSubFieldHTML(sec, stKey, idx, f, val) { sel += ''; return sel; } - return ''; + return ''; } function renderSubtable(sec, st, data) { @@ -653,7 +655,7 @@ function renderSubtable(sec, st, data) { if (sst.key === 'steps') { var stepsArr = item[sst.key]; if (!stepsArr || !Array.isArray(stepsArr) || stepsArr.length === 0) { - h += ''; + h += ''; return; } } @@ -721,7 +723,9 @@ function removeConsumePair(secID, subKey, rowIdx, subSubKey, subIdx, pairIdx) { function renderSubSubtable(sec, st, rowIdx, sst, parentItem) { var arr = parentItem[sst.key] || []; var isIngredients = sst.key === 'ingredients'; - var h = '