summaryrefslogtreecommitdiff
path: root/web/share/js/kvm
diff options
context:
space:
mode:
Diffstat (limited to 'web/share/js/kvm')
-rw-r--r--web/share/js/kvm/atx.js38
-rw-r--r--web/share/js/kvm/ocr.js12
2 files changed, 38 insertions, 12 deletions
diff --git a/web/share/js/kvm/atx.js b/web/share/js/kvm/atx.js
index bb8b5543..4d9764ea 100644
--- a/web/share/js/kvm/atx.js
+++ b/web/share/js/kvm/atx.js
@@ -32,6 +32,8 @@ export function Atx(__recorder) {
/************************************************************************/
+ var __state = null;
+
var __init__ = function() {
$("atx-power-led").title = "Power Led";
$("atx-hdd-led").title = "Disk Activity Led";
@@ -46,18 +48,38 @@ export function Atx(__recorder) {
/************************************************************************/
self.setState = function(state) {
- let buttons_enabled = false;
if (state) {
- tools.feature.setEnabled($("atx-dropdown"), state.enabled);
- $("atx-power-led").className = (state.busy ? "led-yellow" : (state.leds.power ? "led-green" : "led-gray"));
- $("atx-hdd-led").className = (state.leds.hdd ? "led-red" : "led-gray");
- buttons_enabled = !state.busy;
+ if (!__state) {
+ __state = {"leds": {}};
+ }
+ if (state.enabled !== undefined) {
+ tools.feature.setEnabled($("atx-dropdown"), state.enabled);
+ __state.enabled = state.enabled;
+ }
+ if (__state.enabled !== undefined) {
+ if (state.busy !== undefined) {
+ __updateButtons(!state.busy);
+ __state.busy = state.busy;
+ }
+ if (state.leds !== undefined) {
+ __state.leds = state.leds;
+ }
+ if (state.busy !== undefined || state.leds !== undefined) {
+ let busy = __state.busy;
+ let leds = __state.leds;
+ $("atx-power-led").className = (busy ? "led-yellow" : (leds.power ? "led-green" : "led-gray"));
+ $("atx-hdd-led").className = (leds.hdd ? "led-red" : "led-gray");
+ }
+ }
} else {
- $("atx-power-led").className = "led-gray";
- $("atx-hdd-led").className = "led-gray";
+ __state = null;
+ __updateButtons(false);
}
+ };
+
+ var __updateButtons = function(enabled) {
for (let id of ["atx-power-button", "atx-power-button-long", "atx-reset-button"]) {
- tools.el.setEnabled($(id), buttons_enabled);
+ tools.el.setEnabled($(id), enabled);
}
};
diff --git a/web/share/js/kvm/ocr.js b/web/share/js/kvm/ocr.js
index 849b19b1..5f44791a 100644
--- a/web/share/js/kvm/ocr.js
+++ b/web/share/js/kvm/ocr.js
@@ -32,6 +32,8 @@ export function Ocr(__getGeometry) {
/************************************************************************/
+ var __enabled = null;
+
var __start_pos = null;
var __end_pos = null;
var __sel = null;
@@ -71,8 +73,10 @@ export function Ocr(__getGeometry) {
/************************************************************************/
self.setState = function(state) {
- let enabled = (state && state.enabled && !tools.browser.is_mobile);
- if (enabled) {
+ if (state.enabled !== undefined) {
+ __enabled = (state.enabled && !tools.browser.is_mobile);
+ }
+ if (__enabled) {
let el = $("stream-ocr-lang-selector");
el.options.length = 0;
for (let lang of state.langs.available) {
@@ -80,8 +84,8 @@ export function Ocr(__getGeometry) {
}
el.value = tools.storage.get("stream.ocr.lang", state.langs["default"]);
}
- tools.feature.setEnabled($("stream-ocr"), enabled);
- $("stream-ocr-led").className = (enabled ? "led-gray" : "hidden");
+ tools.feature.setEnabled($("stream-ocr"), __enabled);
+ $("stream-ocr-led").className = (__enabled ? "led-gray" : "hidden");
};
var __startSelection = function(event) {