v3.28.1: the batch panel polish

- A throbber (#ram-batch-spin) next to the phase line shows while a card
  is actually being installed (active && current - the stopping-mid-
  install phase included) and hides again while waiting.
- The waiting prompt is explicit now: "Insert next card. Waiting for a
  card..." (RU "Вставьте следующую карту. Ожидание карты…"); the old
  "Waiting for a card..." key is gone.
- The notice reports only the last *finished* card: starting the next
  card's install clears it (state['notice'] = '' alongside
  current/installing in _ram_batch_handle_card), so the previous card's
  verdict never lingers over the next install.  It stays visible while
  waiting - the "report the status + ask for the next card" behavior.
- The batch operation's RU label is "Пакетная установка (.cap на
  множество карт)"; the help row's title aligned.

Tests: the render test (the new prompt, the throbber visible while
installing / stopping-mid-install and hidden while waiting, an empty
notice hiding the box) and the worker test (the notice is empty
mid-install and set again for the new outcome).  915 frontend + 925
Python; sw cache simple-v439.
This commit is contained in:
2026-10-14 18:04:22 +03:00
parent 262041795c
commit 91996a941b
7 changed files with 57 additions and 13 deletions
+5 -1
View File
@@ -37,7 +37,7 @@ from osmocom.tlv import BER_TLV_IE
from osmocom.utils import rpad
VERSION = '3.28.0'
VERSION = '3.28.1'
MAX_ENVELOPE_SEGMENTS = 5 # max SMS segments for outgoing C-APDU in ENVELOPE
@@ -2637,6 +2637,10 @@ def _ram_batch_handle_card(state, server):
state['seen'][iccid] = 'pending'
state['current'] = {'iccid': iccid, 'preset': name, 'started': time.time()}
state['phase'] = 'installing'
# A new card's install supersedes the previous attempt's headline: the
# notice reports the *last finished* card, so it must not linger while
# the next card is being installed (v3.28.1).
state['notice'] = ''
started = time.time()
result = None
error = None