diff --git a/frontend/help-ru.html b/frontend/help-ru.html index 8687c5b..b1825ad 100644 --- a/frontend/help-ru.html +++ b/frontend/help-ru.html @@ -102,7 +102,7 @@ C-APDU22APDU Immediate Action81Проактивная команда или action indicator - Error Action82Условное восстановление при ошибках с проактивной командой + Error Action82Условное восстановление при ошибках с action indicator или проактивной командой Script Chaining83Многопакетное выполнение скрипта с флагами First/Intermediary/Last Response Type-Индикатор типа ответа: expanded/compact/none @@ -114,7 +114,7 @@ diff --git a/frontend/help.html b/frontend/help.html index 7f42c5b..ce3040c 100644 --- a/frontend/help.html +++ b/frontend/help.html @@ -102,7 +102,7 @@ C-APDU22Raw APDU hex Immediate Action81Proactive command or action indicator - Error Action82Conditional error recovery with proactive command fallback + Error Action82Conditional error recovery with action indicator or proactive command Script Chaining83Multi-packet script execution with First/Intermediary/Last flags Response Type-Expanded/Compact/None response parsing indicator @@ -114,7 +114,7 @@ diff --git a/frontend/index.html b/frontend/index.html index 04c6bba..7a3aefe 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2109,7 +2109,12 @@ function buildErrorActionRow(rowIdx) {
Recovery Action:
-
+ +
@@ -2144,6 +2149,25 @@ function buildBerPcHtml() {
`; } +function onRecoveryTypeChange(sel) { + const body = sel.nextElementSibling; + if (sel.value === 'action') { + body.innerHTML = ``; + } else if (sel.value === 'proactive') { + body.innerHTML = buildBerPcHtml(); + const pc = body.querySelector('.ber-pc'); + berPopulateDevices(pc); + onBerPcTypeChange(pc.querySelector('.ber-pc-type')); + } else { + body.innerHTML = ''; + } + const row = sel.closest('.ber-row'); + if (row) updateBerRow(sel); +} + function onBerSubTypeChange(sel) { const body = sel.closest('.ber-sub-body') || sel.parentElement.querySelector('.ber-sub-body'); const st = sel.value; @@ -2154,11 +2178,8 @@ function onBerSubTypeChange(sel) { if (type === 'error') { body.innerHTML = buildErrorActionRow(row.dataset.berIdx); - const recoveryBuilder = body.querySelector('.error-recovery-builder'); - recoveryBuilder.innerHTML = buildBerPcHtml(); - const pc = recoveryBuilder.querySelector('.ber-pc'); - berPopulateDevices(pc); - onBerPcTypeChange(pc.querySelector('.ber-pc-type')); + const recoveryType = body.querySelector('.error-recovery-type'); + onRecoveryTypeChange(recoveryType); } else { body.innerHTML = `