X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=vnc_lite.html;h=4a96d448fc4a58f042f94b2b2f43ef6da49c9aea;hb=8ad8f15cf6ea3a5417ee471d168a585f11f225bc;hp=d59828e3f1c347e3b1c17ae84144f60bc665e491;hpb=56f21bf72c4331a2db5fde4428d82e295355db80;p=mirror_novnc.git diff --git a/vnc_lite.html b/vnc_lite.html index d59828e..4a96d44 100644 --- a/vnc_lite.html +++ b/vnc_lite.html @@ -36,7 +36,9 @@ + @@ -80,24 +82,8 @@ import RFB from './core/rfb.js'; var rfb; - var doneInitialResize; - var resizeTimeout; var desktopName; - function UIresize() { - if (WebUtil.getConfigVar('resize', false)) { - var innerW = window.innerWidth; - var innerH = window.innerHeight; - var controlbarH = document.getElementById('noVNC_status_bar').offsetHeight; - if (innerW !== undefined && innerH !== undefined) - rfb.requestDesktopSize(innerW, innerH - controlbarH); - } - } - function initialResize() { - if (doneInitialResize) return; - UIresize(); - doneInitialResize = true; - } function updateDesktopName(e) { desktopName = e.detail.name; } @@ -147,60 +133,26 @@ document.getElementById('noVNC_status_bar').className = "noVNC_status_" + level; document.getElementById('noVNC_status').textContent = text; } - function updateState(e) { - var cad = document.getElementById('sendCtrlAltDelButton'); - switch (e.detail.state) { - case 'connecting': - status("Connecting", "normal"); - break; - case 'connected': - doneInitialResize = false; - if (WebUtil.getConfigVar('encrypt', - (window.location.protocol === "https:"))) { - status("Connected (encrypted) to " + - desktopName, "normal"); - } else { - status("Connected (unencrypted) to " + - desktopName, "normal"); - } - break; - case 'disconnecting': - status("Disconnecting", "normal"); - break; - case 'disconnected': - status("Disconnected", "normal"); - break; - default: - status(e.detail.state, "warn"); - break; - } - if (e.detail.state === 'connected') { - cad.disabled = false; + function connected(e) { + document.getElementById('sendCtrlAltDelButton').disabled = false; + if (WebUtil.getConfigVar('encrypt', + (window.location.protocol === "https:"))) { + status("Connected (encrypted) to " + desktopName, "normal"); } else { - cad.disabled = true; - updatePowerButtons(); + status("Connected (unencrypted) to " + desktopName, "normal"); } - } - function disconnect(e) { - if (typeof(e.detail.reason) !== 'undefined') { - status(e.detail.reason, "error"); + + function disconnected(e) { + document.getElementById('sendCtrlAltDelButton').disabled = true; + updatePowerButtons(); + if (e.detail.clean) { + status("Disconnected", "normal"); + } else { + status("Something went wrong, connection is closed", "error"); } } - function notification(e) { - status(e.detail.message, e.detail.level); - } - - window.onresize = function () { - // When the window has been resized, wait until the size remains - // the same for 0.5 seconds before sending the request for changing - // the resolution of the session - clearTimeout(resizeTimeout); - resizeTimeout = setTimeout(function(){ - UIresize(); - }, 500); - }; function updatePowerButtons() { var powerbuttons; @@ -249,6 +201,8 @@ (function() { + status("Connecting", "normal"); + if ((!host) || (!port)) { status('Must specify host and port in URL', 'error'); } @@ -268,17 +222,18 @@ } url += '/' + path; - rfb = new RFB(document.getElementById('noVNC_canvas'), url, + rfb = new RFB(document.body, url, { repeaterID: WebUtil.getConfigVar('repeaterID', ''), shared: WebUtil.getConfigVar('shared', true), credentials: { password: password } }); - rfb.viewOnly = WebUtil.getConfigVar('view_only', false); - rfb.addEventListener("notification", notification); - rfb.addEventListener("updatestate", updateState); - rfb.addEventListener("disconnect", disconnect); - rfb.addEventListener("capabilities", function () { updatePowerButtons(); initialResize(); }); + rfb.viewOnly = WebUtil.getConfigVar('view_only', false); + rfb.addEventListener("connect", connected); + rfb.addEventListener("disconnect", disconnected); + rfb.addEventListener("capabilities", function () { updatePowerButtons(); }); rfb.addEventListener("credentialsrequired", credentials); rfb.addEventListener("desktopname", updateDesktopName); + rfb.scaleViewport = WebUtil.getConfigVar('scale', false); + rfb.resizeSession = WebUtil.getConfigVar('resize', false); })(); @@ -300,9 +255,5 @@ - - Canvas not supported. - -