diff options
author | Devaev Maxim <[email protected]> | 2020-12-25 04:40:31 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2020-12-25 04:40:31 +0300 |
commit | dd4c797d26bdd7107bfb748c1aced677ca083af0 (patch) | |
tree | 73d5520704697feecd02973533ddfb09f0c5959b /web | |
parent | edb967c633487c90846a6df69adb3842a91fd95c (diff) |
hid connection iface
Diffstat (limited to 'web')
-rw-r--r-- | web/kvm/index.html | 12 | ||||
-rw-r--r-- | web/kvm/navbar-system.pug | 3 | ||||
-rw-r--r-- | web/share/js/kvm/hid.js | 15 |
3 files changed, 30 insertions, 0 deletions
diff --git a/web/kvm/index.html b/web/kvm/index.html index 1697882b..59962dad 100644 --- a/web/kvm/index.html +++ b/web/kvm/index.html @@ -183,6 +183,18 @@ </td> </table> </div> + <div class="feature-disabled" id="hid-connect"> + <hr> + <table class="kv"> + <td>Connect HID to Server:</td> + <td align="right"> + <div class="switch-box"> + <input checked type="checkbox" id="hid-connect-checkbox"> + <label for="hid-connect-checkbox"><span class="switch-inner"></span><span class="switch"></span></label> + </div> + </td> + </table> + </div> <hr> <div class="buttons buttons-row"> <button class="row50" data-force-hide-menu id="show-keyboard-button">• Show keyboard</button> diff --git a/web/kvm/navbar-system.pug b/web/kvm/navbar-system.pug index cb6fc79f..03111535 100644 --- a/web/kvm/navbar-system.pug +++ b/web/kvm/navbar-system.pug @@ -45,6 +45,9 @@ li(class="right") div(id="hid-mouse-squash" class="feature-disabled") hr +menu_switch("hid-mouse-squash-checkbox", "Squash relative mouse moves", true, true) + div(id="hid-connect" class="feature-disabled") + hr + +menu_switch("hid-connect-checkbox", "Connect HID to Server", true, true) hr div(class="buttons buttons-row") button(data-force-hide-menu id="show-keyboard-button" class="row50") • Show keyboard diff --git a/web/share/js/kvm/hid.js b/web/share/js/kvm/hid.js index 580a5417..f5b85ac9 100644 --- a/web/share/js/kvm/hid.js +++ b/web/share/js/kvm/hid.js @@ -75,6 +75,7 @@ export function Hid() { window.addEventListener("blur", __releaseAll); tools.setOnClick($("hid-pak-button"), __clickPasteAsKeysButton); + tools.setOnClick($("hid-connect-checkbox"), __clickConnectCheckbox); tools.setOnClick($("hid-reset-button"), __clickResetButton); for (let el_shortcut of $$$("[data-shortcut]")) { @@ -146,11 +147,14 @@ export function Hid() { } tools.featureSetEnabled($("hid-outputs"), has_outputs); tools.featureSetEnabled($("hid-mouse-squash"), has_relative); + tools.featureSetEnabled($("hid-connect"), (state.connected !== null)); + $("hid-connect-checkbox").checked = !!state.connected; } wm.switchRadioEnabled("hid-outputs-keyboard-radio", (state && state.online && !state.busy)); wm.switchRadioEnabled("hid-outputs-mouse-radio", (state && state.online && !state.busy)); wm.switchEnabled($("hid-mouse-squash-checkbox"), (has_relative_squash && !state.busy)); + wm.switchEnabled($("hid-connect-checkbox"), (state && state.online && !state.busy)); if (state) { __keyboard.setState(state.keyboard, state.online, state.busy); @@ -236,6 +240,17 @@ export function Hid() { }); }; + var __clickConnectCheckbox = function() { + let connected = $("hid-connect-checkbox").checked; + let http = tools.makeRequest("POST", `/api/hid/set_connected?connected=${connected}`, function() { + if (http.readyState === 4) { + if (http.status !== 200) { + wm.error(`Can't ${connected ? "connect" : "disconnect"} HID:<br>`, http.responseText); + } + } + }); + }; + var __clickResetButton = function() { wm.confirm("Are you sure you want to reset HID (keyboard & mouse)?").then(function(ok) { if (ok) { |