From 39776d82a3ff587a9c416ac90f706c12fb751f55 Mon Sep 17 00:00:00 2001 From: Terranom674 Date: Tue, 18 Aug 2026 08:28:06 +0200 Subject: [PATCH] Preserve NC wizard input state across validation errors --- template/admin_tabs.tpl | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/template/admin_tabs.tpl b/template/admin_tabs.tpl index 5ee8dda..597793a 100644 --- a/template/admin_tabs.tpl +++ b/template/admin_tabs.tpl @@ -90,6 +90,59 @@ activate(initial,false); } + function initNCWizardDraft() { + var dialog=document.getElementById('bratonien-nc-wizard-dialog'); + if(!dialog) return; + var prefix='bratonienNcWizardDraft:'; + + function fields() { + return [].slice.call(dialog.querySelectorAll('input[name^="nc_wizard_"], select[name^="nc_wizard_"], textarea[name^="nc_wizard_"]')); + } + + function saveField(field) { + if(!field.name || field.type==='submit' || field.type==='button') return; + try { + if(field.type==='checkbox' || field.type==='radio') sessionStorage.setItem(prefix+field.name,field.checked?'1':'0'); + else sessionStorage.setItem(prefix+field.name,field.value); + } catch(e) {} + } + + function restoreField(field) { + if(!field.name || field.type==='submit' || field.type==='button') return; + try { + var value=sessionStorage.getItem(prefix+field.name); + if(value===null) return; + if(field.type==='checkbox' || field.type==='radio') field.checked=value==='1'; + else field.value=value; + } catch(e) {} + } + + function clearDraft() { + try { + var remove=[]; + for(var i=0;i