diff options
author | Devaev Maxim <[email protected]> | 2019-11-30 02:25:02 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2019-11-30 02:25:02 +0300 |
commit | f23d009d0c1228bc901866fe017eb3bec252df1a (patch) | |
tree | 412b2b1db11ce7bddc49df3e62e674d17fead998 /web/share/js/kvm/wol.js | |
parent | f6fab6415e86daa4e4372412968d70ca6bdf8620 (diff) |
wol ui
Diffstat (limited to 'web/share/js/kvm/wol.js')
-rw-r--r-- | web/share/js/kvm/wol.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/web/share/js/kvm/wol.js b/web/share/js/kvm/wol.js new file mode 100644 index 00000000..574fc371 --- /dev/null +++ b/web/share/js/kvm/wol.js @@ -0,0 +1,67 @@ +/***************************************************************************** +# # +# KVMD - The main Pi-KVM daemon. # +# # +# Copyright (C) 2018 Maxim Devaev <[email protected]> # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <https://www.gnu.org/licenses/>. # +# # +*****************************************************************************/ + + +"use strict"; + + +import {tools, $} from "../tools.js"; +import {wm} from "../wm.js"; + + +export function WakeOnLan() { + var self = this; + + /************************************************************************/ + + var __target = {}; + + var __init__ = function() { + tools.setOnClick($("wol-wakeup-button"), __clickWakeupButton); + }; + + /************************************************************************/ + + self.setState = function(state) { + if (state) { + $("wol").classList.toggle("feature-disabled", !state.enabled); + __target = state.target; + } + wm.switchEnabled($("wol-wakeup-button"), (state && state.enabled)); + }; + + var __clickWakeupButton = function() { + let msg = `Are you sure to send Wake-on-LAN packet to the server?<br>Target: <b>${__target.mac}</b> (${__target.ip}:${__target.port})?`; + wm.confirm(msg).then(function(ok) { + if (ok) { + let http = tools.makeRequest("POST", "/api/wol/wakeup", function() { + if (http.readyState === 4) { + if (http.status !== 200) { + wm.error("Wakeup error:<br>", http.responseText); + } + } + }); + } + }); + }; + + __init__(); +} |