github
@@ -4085,12 +4085,12 @@ async function pysimSendOta() {
}
const sp = document.getElementById('sp-result').value.replace(/[^0-9a-fA-F]/g, '').toUpperCase();
if (!sp) { alert('No secured packet to send. Generate a secure packet first.'); return; }
- const statusEl = document.getElementById('pysim-status');
const sendResultEl = document.getElementById('sp-send-result');
const porStatusEl = document.getElementById('sp-por-status');
- sendResultEl.classList.add('hidden');
+ sendResultEl.classList.remove('hidden', 'text-red-600', 'text-green-600');
+ sendResultEl.classList.add('text-gray-500');
+ sendResultEl.textContent = t('Sending OTA...');
porStatusEl.classList.add('hidden');
- statusEl.innerHTML = '
' + t('Sending OTA...') + '';
try {
const data = await pysimFetch('/api/send-ota', { sp, ...spParams() });
if (data.success) {
@@ -4125,23 +4125,20 @@ async function pysimSendOta() {
rawLine.textContent = 'raw PoR: ' + por.raw;
sendResultEl.appendChild(rawLine);
}
- sendResultEl.classList.remove('hidden', 'text-red-600');
+ sendResultEl.classList.remove('hidden', 'text-red-600', 'text-gray-500');
sendResultEl.classList.add('text-green-600');
- statusEl.innerHTML = '
' + esc(msg) + '';
} else {
let msg = 'OTA failed';
if (data.error) msg += ': ' + data.error;
if (data.sw) msg += (data.error ? ' | ' : ': ') + 'SW ' + data.sw;
sendResultEl.textContent = msg;
- sendResultEl.classList.remove('hidden', 'text-green-600');
+ sendResultEl.classList.remove('hidden', 'text-green-600', 'text-gray-500');
sendResultEl.classList.add('text-red-600');
- statusEl.innerHTML = '
' + esc(msg) + '';
}
} catch (e) {
sendResultEl.textContent = 'Error: ' + e.message;
- sendResultEl.classList.remove('hidden', 'text-green-600');
+ sendResultEl.classList.remove('hidden', 'text-green-600', 'text-gray-500');
sendResultEl.classList.add('text-red-600');
- statusEl.innerHTML = '
Error: ' + esc(e.message) + '';
}
}
diff --git a/frontend/sw.js b/frontend/sw.js
index caf0d21..8c69078 100644
--- a/frontend/sw.js
+++ b/frontend/sw.js
@@ -1,4 +1,4 @@
-const CACHE = 'otaman-v17';
+const CACHE = 'otaman-v18';
const URLS = [
'index.html',
'help.html',
diff --git a/pyproject.toml b/pyproject.toml
index d9e89e5..16e428c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "pysim-otaman-server"
-version = "1.9.5"
+version = "1.9.7"
description = "HTTP REST server wrapping pysim for the OTAMan PWA"
requires-python = ">=3.8"
# pysim is a git-only dependency installed explicitly by setup.bat/setup.sh.
diff --git a/pysim_otaman_server/server.py b/pysim_otaman_server/server.py
index 104bc85..d343beb 100644
--- a/pysim_otaman_server/server.py
+++ b/pysim_otaman_server/server.py
@@ -18,7 +18,7 @@ from osmocom.construct import GsmOrUcs2Adapter
from osmocom.tlv import BER_TLV_IE
-VERSION = '1.9.6'
+VERSION = '1.9.7'
# Static file serving (the PWA lives in
/frontend, served by this server