summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Devaev <[email protected]>2025-01-11 22:20:56 +0200
committerMaxim Devaev <[email protected]>2025-01-11 22:20:56 +0200
commit965e649f8cd024dd054ed33dd2ba0f98b508c8ae (patch)
tree7da9bf6e7f84efbc15e0bc7d4252fb4d4138deb0
parentb49107ff6cf8a5ea489600f22a1cf842873ebfaf (diff)
switch update notification
-rw-r--r--kvmd/apps/kvmd/switch/state.py3
-rw-r--r--web/kvm/index.html14
-rw-r--r--web/kvm/navbar-switch.pug4
-rw-r--r--web/share/js/kvm/switch.js4
4 files changed, 25 insertions, 0 deletions
diff --git a/kvmd/apps/kvmd/switch/state.py b/kvmd/apps/kvmd/switch/state.py
index 626cdfe1..e49d0062 100644
--- a/kvmd/apps/kvmd/switch/state.py
+++ b/kvmd/apps/kvmd/switch/state.py
@@ -49,6 +49,8 @@ class _UnitInfo:
# =====
class StateCache: # pylint: disable=too-many-instance-attributes
+ __FW_VERSION = 5
+
__FULL = 0xFFFF
__SUMMARY = 0x01
__EDIDS = 0x02
@@ -139,6 +141,7 @@ class StateCache: # pylint: disable=too-many-instance-attributes
state: dict = {}
if x_model:
state["model"] = {
+ "firmware": {"version": self.__FW_VERSION},
"units": [],
"ports": [],
"limits": {
diff --git a/web/kvm/index.html b/web/kvm/index.html
index c6d3301d..713e1c84 100644
--- a/web/kvm/index.html
+++ b/web/kvm/index.html
@@ -904,6 +904,20 @@
</tr>
</table>
<hr>
+ <div class="hidden" id="switch-message-update">
+ <div class="text">
+ <table>
+ <tr>
+ <td rowspan="2"><img class="sign " src="/share/svg/info.svg"></td>
+ <td style="line-height:1.5"><b>Good news! Your switch is ready to get the firmware update</b></td>
+ </tr>
+ <tr>
+ <td><sup style="line-height:1">Please <a target="_blank" href="https://docs.pikvm.org/switch/#firmware-updating">follow the instructions</a> when you decide to install it.</sup></td>
+ </tr>
+ </table>
+ </div>
+ <hr>
+ </div>
<table class="kv">
<tr>
<td>Ask ATX click confirmation:</td>
diff --git a/web/kvm/navbar-switch.pug b/web/kvm/navbar-switch.pug
index 455daa6f..ef8bfab4 100644
--- a/web/kvm/navbar-switch.pug
+++ b/web/kvm/navbar-switch.pug
@@ -14,6 +14,10 @@ li(id="switch-dropdown" class="right feature-disabled")
div(class="text")
button(data-force-hide-menu data-show-window="switch-window" class="small") &bull; Settings
hr
+ div(id="switch-message-update" class="hidden")
+ +menu_message("info", "Good news! Your switch is ready to get the firmware update")
+ | Please #[a(target="_blank" href="https://docs.pikvm.org/switch/#firmware-updating") follow the instructions] when you decide to install it.
+ hr
+menu_switch("switch-atx-ask-switch", "Ask ATX click confirmation", true, true)
hr
table(id="switch-chain" class="kv")
diff --git a/web/share/js/kvm/switch.js b/web/share/js/kvm/switch.js
index 112d8f15..bd33a781 100644
--- a/web/share/js/kvm/switch.js
+++ b/web/share/js/kvm/switch.js
@@ -406,6 +406,10 @@ export function Switch() {
}
$("switch-chain").innerHTML = content;
+ if (model.units.length > 0) {
+ tools.hidden.setVisible($("switch-message-update"), (model.firmware.version > model.units[0].firmware.version));
+ }
+
for (let unit = 0; unit < model.units.length; ++unit) {
tools.el.setOnClick($(`__switch-beacon-button-u${unit}`), tools.partial(__switchUplinkBeacon, unit));
tools.el.setOnClick($(`__switch-beacon-button-d${unit}`), tools.partial(__switchDownlinkBeacon, unit));