5
0
mirror of git://git.proxmox.com/git/novnc-pve.git synced 2025-03-11 16:58:31 +03:00

rebase patches on v1.1.0

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2019-09-09 12:17:05 +02:00 committed by Thomas Lamprecht
parent 9b519cf359
commit 2b8dde16bc
12 changed files with 195 additions and 229 deletions

View File

@ -1,7 +1,7 @@
From 9607c6496f643fde5435fa799702961dd22bf81a Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Tue, 13 Dec 2016 16:11:35 +0100
Subject: [PATCH 01/10] add pve specific js code
Subject: [PATCH 01/12] add pve specific js code
this adds a es6 module 'PVEUI' which we use for defining the pve related
methods (API2Request, etc.)
@ -11,10 +11,10 @@ autoresizing, commandstoggle, etc.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
app/pve.js | 418 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/ui.js | 71 +++++++++--
app/pve.js | 418 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/ui.js | 66 +++++++--
vnc.html | 10 +-
3 files changed, 482 insertions(+), 17 deletions(-)
3 files changed, 480 insertions(+), 14 deletions(-)
create mode 100644 app/pve.js
diff --git a/app/pve.js b/app/pve.js
@ -442,10 +442,10 @@ index 0000000..e2c37fb
+ },
+};
diff --git a/app/ui.js b/app/ui.js
index 4fe2a3f..59f7cca 100644
index 17ec48d..4683c02 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -17,6 +17,7 @@ import keysyms from "../core/input/keysymdef.js";
@@ -16,6 +16,7 @@ import keysyms from "../core/input/keysymdef.js";
import Keyboard from "../core/input/keyboard.js";
import RFB from "../core/rfb.js";
import * as WebUtil from "./webutil.js";
@ -453,15 +453,16 @@ index 4fe2a3f..59f7cca 100644
const UI = {
@@ -58,6 +59,7 @@ const UI = {
@@ -54,6 +55,8 @@ const UI = {
// Render default UI and initialize settings menu
start(callback) {
start() {
+ UI.PVE = new PVEUI(UI);
// Setup global variables first
UI.isSafari = (navigator.userAgent.indexOf('Safari') !== -1 &&
navigator.userAgent.indexOf('Chrome') === -1);
@@ -89,6 +91,9 @@ const UI = {
+
UI.initSettings();
// Translate the DOM
@@ -81,6 +84,9 @@ const UI = {
UI.addConnectionControlHandlers();
UI.addClipboardHandlers();
UI.addSettingsHandlers();
@ -471,7 +472,7 @@ index 4fe2a3f..59f7cca 100644
document.getElementById("noVNC_status")
.addEventListener('click', UI.hideStatus);
@@ -97,23 +102,19 @@ const UI = {
@@ -89,19 +95,15 @@ const UI = {
UI.openControlbar();
@ -491,18 +492,11 @@ index 4fe2a3f..59f7cca 100644
- // Show the connect panel on first load unless autoconnecting
- UI.openConnectPanel();
- }
- if (typeof callback === "function") {
- callback(UI.rfb);
- }
+ if (typeof callback === "function") {
+ callback(UI.rfb);
+ }
+ });
},
initFullscreen() {
@@ -156,9 +157,10 @@ const UI = {
return Promise.resolve(UI.rfb);
},
@@ -145,9 +147,10 @@ const UI = {
/* Populate the controls if defaults are provided in the URL */
UI.initSetting('host', window.location.hostname);
UI.initSetting('port', port);
@ -513,16 +507,16 @@ index 4fe2a3f..59f7cca 100644
+ UI.initSetting('autoresize', true);
UI.initSetting('shared', true);
UI.initSetting('view_only', false);
UI.initSetting('path', 'websockify');
@@ -342,6 +344,7 @@ const UI = {
UI.initSetting('show_dot', false);
@@ -334,6 +337,7 @@ const UI = {
UI.addSettingChangeHandler('resize');
UI.addSettingChangeHandler('resize', UI.enableDisableViewClip);
UI.addSettingChangeHandler('resize', UI.applyResizeMode);
UI.addSettingChangeHandler('resize', UI.updateViewClip);
+ UI.addSettingChangeHandler('autoresize');
UI.addSettingChangeHandler('view_clip');
UI.addSettingChangeHandler('view_clip', UI.updateViewClip);
UI.addSettingChangeHandler('shared');
@@ -390,6 +393,9 @@ const UI = {
@@ -384,6 +388,9 @@ const UI = {
document.documentElement.classList.add("noVNC_connecting");
break;
case 'connected':
@ -532,7 +526,7 @@ index 4fe2a3f..59f7cca 100644
document.documentElement.classList.add("noVNC_connected");
break;
case 'disconnecting':
@@ -397,6 +403,11 @@ const UI = {
@@ -391,6 +398,11 @@ const UI = {
document.documentElement.classList.add("noVNC_disconnecting");
break;
case 'disconnected':
@ -544,7 +538,7 @@ index 4fe2a3f..59f7cca 100644
break;
case 'reconnecting':
transition_elem.textContent = _("Reconnecting...");
@@ -818,6 +829,7 @@ const UI = {
@@ -805,6 +817,7 @@ const UI = {
UI.closePowerPanel();
UI.closeClipboardPanel();
UI.closeExtraKeys();
@ -552,7 +546,7 @@ index 4fe2a3f..59f7cca 100644
},
/* ------^-------
@@ -993,6 +1005,12 @@ const UI = {
@@ -980,6 +993,12 @@ const UI = {
UI.reconnect_password = password;
}
@ -565,7 +559,7 @@ index 4fe2a3f..59f7cca 100644
if (password === null) {
password = undefined;
}
@@ -1567,9 +1585,36 @@ const UI = {
@@ -1549,9 +1568,36 @@ const UI = {
/* ------^-------
* /EXTRA KEYS
* ==============
@ -604,25 +598,26 @@ index 4fe2a3f..59f7cca 100644
const view_only = UI.rfb.viewOnly;
if (UI.rfb && !view_only) {
diff --git a/vnc.html b/vnc.html
index 701714c..6c041b5 100644
index 212321b..072d86b 100644
--- a/vnc.html
+++ b/vnc.html
@@ -200,7 +200,7 @@
@@ -191,7 +191,7 @@
<li class="noVNC_heading">
<img src="app/images/settings.svg"> Settings
<img alt="" src="app/images/settings.svg"> Settings
</li>
- <li>
+ <li style="display:none;">
<label><input id="noVNC_setting_shared" type="checkbox" /> Shared Mode</label>
<label><input id="noVNC_setting_shared" type="checkbox"> Shared Mode</label>
</li>
<li>
@@ -211,15 +211,17 @@
<label><input id="noVNC_setting_view_clip" type="checkbox" /> Clip to Window</label>
</li>
@@ -201,16 +201,18 @@
<li>
<label><input id="noVNC_setting_view_clip" type="checkbox"> Clip to Window</label>
</li>
+ <li>
+ <label><input id="noVNC_setting_autoresize" type="checkbox" /> Autoresize Window</label>
+ </li>
+ <li>
<li>
<label for="noVNC_setting_resize">Scaling Mode:</label>
<select id="noVNC_setting_resize" name="vncResize">
- <option value="off">None</option>
@ -637,6 +632,3 @@ index 701714c..6c041b5 100644
<div class="noVNC_expander">Advanced</div>
<div><ul>
<li>
--
2.11.0

View File

@ -1,7 +1,7 @@
From 4bf525059741e1bb68e355904fb82e8c1639aff9 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Wed, 9 May 2018 10:47:53 +0200
Subject: [PATCH 02/10] add custom fbresize event on rfb
Subject: [PATCH 02/12] add custom fbresize event on rfb
this can be use to react to changes of the resolution, like resizing the
window
@ -13,10 +13,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 files changed, 21 insertions(+)
diff --git a/app/ui.js b/app/ui.js
index 59f7cca..d960a12 100644
index 4683c02..1b0f7aa 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -1050,6 +1050,7 @@ const UI = {
@@ -1039,6 +1039,7 @@ const UI = {
UI.rfb.addEventListener("clipboard", UI.clipboardReceive);
UI.rfb.addEventListener("bell", UI.bell);
UI.rfb.addEventListener("desktopname", UI.updateDesktopName);
@ -24,7 +24,7 @@ index 59f7cca..d960a12 100644
UI.rfb.clipViewport = UI.getSetting('view_clip');
UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
@@ -1610,6 +1611,16 @@ const UI = {
@@ -1593,6 +1594,16 @@ const UI = {
document.getElementById('pve_commands_button').classList.remove("noVNC_selected");
},
@ -42,10 +42,10 @@ index 59f7cca..d960a12 100644
* /PVE
* ==============
diff --git a/core/rfb.js b/core/rfb.js
index 3433030..3e0f176 100644
index 89b8130..c079af1 100644
--- a/core/rfb.js
+++ b/core/rfb.js
@@ -1593,6 +1593,16 @@ export default class RFB extends EventTargetMixin {
@@ -1670,6 +1670,16 @@ export default class RFB extends EventTargetMixin {
this._updateClip();
this._updateScale();
@ -59,9 +59,6 @@ index 3433030..3e0f176 100644
+ );
+ this.dispatchEvent(event);
+
this._timing.fbu_rt_start = (new Date()).getTime();
this._updateContinuousUpdates();
}
--
2.11.0

View File

@ -1,7 +1,7 @@
From ce3216300e07c2723dc934c734dda432355a3100 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Thu, 11 May 2017 10:34:10 +0200
Subject: [PATCH 03/10] change scaling when toggling fullscreen
Subject: [PATCH 03/12] change scaling when toggling fullscreen
when activating fullscreen, we change the scaling to 'scale',
and changing it back when leaving fullscreen
@ -12,10 +12,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 11 insertions(+)
diff --git a/app/ui.js b/app/ui.js
index d960a12..662352f 100644
index 1b0f7aa..8cc6cfd 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -1212,6 +1212,13 @@ const UI = {
@@ -1201,6 +1201,13 @@ const UI = {
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
@ -29,7 +29,7 @@ index d960a12..662352f 100644
} else {
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
@@ -1222,7 +1229,11 @@ const UI = {
@@ -1211,7 +1218,11 @@ const UI = {
} else if (document.body.msRequestFullscreen) {
document.body.msRequestFullscreen();
}
@ -38,9 +38,6 @@ index d960a12..662352f 100644
+ UI.enableSetting('resize');
}
+ UI.applyResizeMode();
UI.enableDisableViewClip();
UI.updateFullscreenButton();
},
--
2.11.0

View File

@ -1,7 +1,7 @@
From ad3490e9908ce0a65ef40576520fb33236b5c102 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Tue, 13 Dec 2016 16:03:41 +0100
Subject: [PATCH 04/10] add pve style
Subject: [PATCH 04/12] add pve style
this adds the custom pve style (based on black.css)
@ -11,8 +11,8 @@ and fix the z-index of the connect overlay
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
app/styles/pve.css | 42 ++++++++++++++++++++++++++++++++++++++++++
vnc.html | 1 +
2 files changed, 43 insertions(+)
vnc.html | 3 ++-
2 files changed, 44 insertions(+), 1 deletion(-)
create mode 100644 app/styles/pve.css
diff --git a/app/styles/pve.css b/app/styles/pve.css
@ -64,17 +64,16 @@ index 0000000..eaeb5cb
+ background: #5BA8DF;
+}
diff --git a/vnc.html b/vnc.html
index 6c041b5..3110e8b 100644
index 072d86b..57b44a1 100644
--- a/vnc.html
+++ b/vnc.html
@@ -55,6 +55,7 @@
@@ -48,7 +48,8 @@
<link rel="apple-touch-icon" sizes="152x152" type="image/png" href="app/images/icons/novnc-152x152.png">
<!-- Stylesheets -->
<link rel="stylesheet" href="app/styles/base.css" />
- <link rel="stylesheet" href="app/styles/base.css">
+ <link rel="stylesheet" href="app/styles/base.css" />
+ <link rel="stylesheet" href="/novnc/app/styles/pve.css" />
<!--
<script type='text/javascript'
--
2.11.0
<!-- this is included as a normal file in order to catch script-loading errors as well -->
<script src="app/error-handler.js"></script>

View File

@ -1,24 +1,24 @@
From b093138dedf1c2b8f5b91fe8819092bf8f1371be Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Fri, 20 Jan 2017 10:35:05 +0100
Subject: [PATCH 05/10] remove vnc logos
Subject: [PATCH 05/12] remove vnc logos
to show the pve icon instead
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
vnc.html | 26 --------------------------
1 file changed, 26 deletions(-)
vnc.html | 32 +++-----------------------------
1 file changed, 3 insertions(+), 29 deletions(-)
diff --git a/vnc.html b/vnc.html
index 3110e8b..bc1a47d 100644
index 57b44a1..1420849 100644
--- a/vnc.html
+++ b/vnc.html
@@ -23,36 +23,10 @@
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
@@ -17,36 +17,10 @@
- <!-- Icons (see Makefile for what the sizes are for) -->
<meta charset="utf-8">
- <!-- Icons (see app/images/icons/Makefile for what the sizes are for) -->
- <link rel="icon" sizes="16x16" type="image/png" href="app/images/icons/novnc-16x16.png">
- <link rel="icon" sizes="24x24" type="image/png" href="app/images/icons/novnc-24x24.png">
- <link rel="icon" sizes="32x32" type="image/png" href="app/images/icons/novnc-32x32.png">
@ -39,18 +39,18 @@ index 3110e8b..bc1a47d 100644
- <link rel="icon" sizes="16x16" type="image/png" href="app/images/icons/novnc-16x16.png">
-
<!-- Apple iOS Safari settings -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
- <!-- Home Screen Icons (favourites and bookmarks use the normal icons) -->
- <link rel="apple-touch-icon" sizes="60x60" type="image/png" href="app/images/icons/novnc-60x60.png">
- <link rel="apple-touch-icon" sizes="76x76" type="image/png" href="app/images/icons/novnc-76x76.png">
- <link rel="apple-touch-icon" sizes="120x120" type="image/png" href="app/images/icons/novnc-120x120.png">
- <link rel="apple-touch-icon" sizes="152x152" type="image/png" href="app/images/icons/novnc-152x152.png">
-
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<!-- Stylesheets -->
<link rel="stylesheet" href="app/styles/base.css" />
<link rel="stylesheet" href="/novnc/app/styles/pve.css" />
--
2.11.0

View File

@ -1,7 +1,7 @@
From 127328ecd3996a572d202d9a33da98cad24ecc75 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Tue, 17 Jan 2017 17:24:03 +0100
Subject: [PATCH 06/10] change src directory for images/js files
Subject: [PATCH 06/12] change src directory for images/js files
since they will be in /novnc/
also change the directory in the build script
@ -9,27 +9,27 @@ also change the directory in the build script
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
app/ui.js | 2 +-
vnc.html | 56 ++++++++++++++++++++++++++++----------------------------
2 files changed, 29 insertions(+), 29 deletions(-)
vnc.html | 58 +++++++++++++++++++++++++++----------------------------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/app/ui.js b/app/ui.js
index 662352f..c523fcd 100644
index 8cc6cfd..7201179 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -1720,7 +1720,7 @@ const UI = {
const LINGUAS = ["de", "el", "es", "nl", "pl", "sv", "tr", "zh_CN", "zh_TW"];
l10n.setup(LINGUAS);
if (l10n.language !== "en" && l10n.dictionary === undefined) {
- WebUtil.fetchJSON('app/locale/' + l10n.language + '.json', (translations) => {
+ WebUtil.fetchJSON('/novnc/app/locale/' + l10n.language + '.json', function (translations) {
l10n.dictionary = translations;
// wait for translations to load before loading the UI
@@ -1713,7 +1713,7 @@ l10n.setup(LINGUAS);
if (l10n.language === "en" || l10n.dictionary !== undefined) {
UI.prime();
} else {
- WebUtil.fetchJSON('app/locale/' + l10n.language + '.json')
+ WebUtil.fetchJSON('/novnc/app/locale/' + l10n.language + '.json')
.then((translations) => { l10n.dictionary = translations; })
.catch(err => Log.Error("Failed to load translations: " + err))
.then(UI.prime);
diff --git a/vnc.html b/vnc.html
index bc1a47d..d17ee81 100644
index 1420849..f93cf89 100644
--- a/vnc.html
+++ b/vnc.html
@@ -28,7 +28,7 @@
@@ -22,15 +22,15 @@
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<!-- Stylesheets -->
@ -37,13 +37,9 @@ index bc1a47d..d17ee81 100644
+ <link rel="stylesheet" href="/novnc/app/styles/base.css" />
<link rel="stylesheet" href="/novnc/app/styles/pve.css" />
<!--
@@ -37,11 +37,11 @@
-->
<!-- this is included as a normal file in order to catch script-loading errors as well -->
- <script type="text/javascript" src="app/error-handler.js"></script>
+ <script type="text/javascript" src="/novnc/app/error-handler.js"></script>
- <script src="app/error-handler.js"></script>
+ <script src="/novnc/app/error-handler.js"></script>
<!-- begin scripts -->
<!-- promise polyfills promises for IE11 -->
@ -52,7 +48,7 @@ index bc1a47d..d17ee81 100644
<!-- ES2015/ES6 modules polyfill -->
<script type="module">
window._noVNC_has_module_support = true;
@@ -50,12 +50,12 @@
@@ -39,12 +39,12 @@
window.addEventListener("load", function() {
if (window._noVNC_has_module_support) return;
var loader = document.createElement("script");
@ -67,37 +63,36 @@ index bc1a47d..d17ee81 100644
<!-- end scripts -->
</head>
@@ -80,49 +80,49 @@
<h1 class="noVNC_logo" translate="no"><span>no</span><br />VNC</h1>
@@ -69,51 +69,51 @@
<h1 class="noVNC_logo" translate="no"><span>no</span><br>VNC</h1>
<!-- Drag/Pan the viewport -->
- <input type="image" alt="viewport drag" src="app/images/drag.svg"
+ <input type="image" alt="viewport drag" src="/novnc/app/images/drag.svg"
id="noVNC_view_drag_button" class="noVNC_button noVNC_hidden"
title="Move/Drag Viewport" />
title="Move/Drag Viewport">
<!--noVNC Touch Device only buttons-->
<div id="noVNC_mobile_buttons">
- <input type="image" alt="No mousebutton" src="app/images/mouse_none.svg"
+ <input type="image" alt="No mousebutton" src="/novnc/app/images/mouse_none.svg"
id="noVNC_mouse_button0" class="noVNC_button"
title="Active Mouse Button"/>
title="Active Mouse Button">
- <input type="image" alt="Left mousebutton" src="app/images/mouse_left.svg"
+ <input type="image" alt="Left mousebutton" src="/novnc/app/images/mouse_left.svg"
id="noVNC_mouse_button1" class="noVNC_button"
title="Active Mouse Button"/>
title="Active Mouse Button">
- <input type="image" alt="Middle mousebutton" src="app/images/mouse_middle.svg"
+ <input type="image" alt="Middle mousebutton" src="/novnc/app/images/mouse_middle.svg"
id="noVNC_mouse_button2" class="noVNC_button"
title="Active Mouse Button"/>
title="Active Mouse Button">
- <input type="image" alt="Right mousebutton" src="app/images/mouse_right.svg"
+ <input type="image" alt="Right mousebutton" src="/novnc/app/images/mouse_right.svg"
id="noVNC_mouse_button4" class="noVNC_button"
title="Active Mouse Button"/>
title="Active Mouse Button">
- <input type="image" alt="Keyboard" src="app/images/keyboard.svg"
+ <input type="image" alt="Keyboard" src="/novnc/app/images/keyboard.svg"
id="noVNC_keyboard_button" class="noVNC_button"
value="Keyboard" title="Show Keyboard" />
id="noVNC_keyboard_button" class="noVNC_button" title="Show Keyboard">
</div>
<!-- Extra manual keys -->
@ -105,104 +100,108 @@ index bc1a47d..d17ee81 100644
- <input type="image" alt="Extra keys" src="app/images/toggleextrakeys.svg"
+ <input type="image" alt="Extra keys" src="/novnc/app/images/toggleextrakeys.svg"
id="noVNC_toggle_extra_keys_button" class="noVNC_button"
title="Show Extra Keys"/>
title="Show Extra Keys">
<div class="noVNC_vcenter">
<div id="noVNC_modifiers" class="noVNC_panel">
- <input type="image" alt="Ctrl" src="app/images/ctrl.svg"
+ <input type="image" alt="Ctrl" src="/novnc/app/images/ctrl.svg"
id="noVNC_toggle_ctrl_button" class="noVNC_button"
title="Toggle Ctrl"/>
title="Toggle Ctrl">
- <input type="image" alt="Alt" src="app/images/alt.svg"
+ <input type="image" alt="Alt" src="/novnc/app/images/alt.svg"
id="noVNC_toggle_alt_button" class="noVNC_button"
title="Toggle Alt"/>
title="Toggle Alt">
- <input type="image" alt="Windows" src="app/images/windows.svg"
+ <input type="image" alt="Alt" src="/novnc/app/images/windows.svg"
id="noVNC_toggle_windows_button" class="noVNC_button"
title="Toggle Windows">
- <input type="image" alt="Tab" src="app/images/tab.svg"
+ <input type="image" alt="Tab" src="/novnc/app/images/tab.svg"
id="noVNC_send_tab_button" class="noVNC_button"
title="Send Tab"/>
title="Send Tab">
- <input type="image" alt="Esc" src="app/images/esc.svg"
+ <input type="image" alt="Esc" src="/novnc/app/images/esc.svg"
id="noVNC_send_esc_button" class="noVNC_button"
title="Send Escape"/>
title="Send Escape">
- <input type="image" alt="Ctrl+Alt+Del" src="app/images/ctrlaltdel.svg"
+ <input type="image" alt="Ctrl+Alt+Del" src="/novnc/app/images/ctrlaltdel.svg"
id="noVNC_send_ctrl_alt_del_button" class="noVNC_button"
title="Send Ctrl-Alt-Del" />
title="Send Ctrl-Alt-Del">
</div>
@@ -130,13 +130,13 @@
@@ -121,13 +121,13 @@
</div>
<!-- Shutdown/Reboot -->
- <input type="image" alt="Shutdown/Reboot" src="app/images/power.svg"
+ <input type="image" alt="Shutdown/Reboot" src="/novnc/app/images/power.svg"
id="noVNC_power_button" class="noVNC_button"
title="Shutdown/Reboot..." />
title="Shutdown/Reboot...">
<div class="noVNC_vcenter">
<div id="noVNC_power" class="noVNC_panel">
<div class="noVNC_heading">
- <img src="app/images/power.svg"> Power
+ <img src="/novnc/app/images/power.svg"> Power
- <img alt="" src="app/images/power.svg"> Power
+ <img alt="" src="/novnc/app/images/power.svg"> Power
</div>
<input type="button" id="noVNC_shutdown_button" value="Shutdown" />
<input type="button" id="noVNC_reboot_button" value="Reboot" />
@@ -145,13 +145,13 @@
<input type="button" id="noVNC_shutdown_button" value="Shutdown">
<input type="button" id="noVNC_reboot_button" value="Reboot">
@@ -136,13 +136,13 @@
</div>
<!-- Clipboard -->
- <input type="image" alt="Clipboard" src="app/images/clipboard.svg"
+ <input type="image" alt="Clipboard" src="/novnc/app/images/clipboard.svg"
id="noVNC_clipboard_button" class="noVNC_button"
title="Clipboard" />
title="Clipboard">
<div class="noVNC_vcenter">
<div id="noVNC_clipboard" class="noVNC_panel">
<div class="noVNC_heading">
- <img src="app/images/clipboard.svg"> Clipboard
+ <img src="/novnc/app/images/clipboard.svg"> Clipboard
- <img alt="" src="app/images/clipboard.svg"> Clipboard
+ <img alt="" src="/novnc/app/images/clipboard.svg"> Clipboard
</div>
<textarea id="noVNC_clipboard_text" rows=5></textarea>
<br />
@@ -161,19 +161,19 @@
<br>
@@ -152,19 +152,19 @@
</div>
<!-- Toggle fullscreen -->
- <input type="image" alt="Fullscreen" src="app/images/fullscreen.svg"
+ <input type="image" alt="Fullscreen" src="/novnc/app/images/fullscreen.svg"
id="noVNC_fullscreen_button" class="noVNC_button noVNC_hidden"
title="Fullscreen" />
title="Fullscreen">
<!-- Settings -->
- <input type="image" alt="Settings" src="app/images/settings.svg"
+ <input type="image" alt="Settings" src="/novnc/app/images/settings.svg"
id="noVNC_settings_button" class="noVNC_button"
title="Settings" />
title="Settings">
<div class="noVNC_vcenter">
<div id="noVNC_settings" class="noVNC_panel">
<ul>
<li class="noVNC_heading">
- <img src="app/images/settings.svg"> Settings
+ <img src="/novnc/app/images/settings.svg"> Settings
- <img alt="" src="app/images/settings.svg"> Settings
+ <img alt="" src="/novnc/app/images/settings.svg"> Settings
</li>
<li style="display:none;">
<label><input id="noVNC_setting_shared" type="checkbox" /> Shared Mode</label>
@@ -246,7 +246,7 @@
<label><input id="noVNC_setting_shared" type="checkbox"> Shared Mode</label>
@@ -241,7 +241,7 @@
</div>
<!-- Connection Controls -->
- <input type="image" alt="Disconnect" src="app/images/disconnect.svg"
+ <input type="image" alt="Disconnect" src="/novnc/app/images/disconnect.svg"
id="noVNC_disconnect_button" class="noVNC_button"
title="Disconnect" />
title="Disconnect">
@@ -265,7 +265,7 @@
@@ -260,7 +260,7 @@
<div id="noVNC_connect_dlg">
<div class="noVNC_logo" translate="no"><span>no</span>VNC</div>
<div id="noVNC_connect_button"><div>
- <img src="app/images/connect.svg"> Connect
+ <img src="/novnc/app/images/connect.svg"> Connect
- <img alt="" src="app/images/connect.svg"> Connect
+ <img alt="" src="/novnc/app/images/connect.svg"> Connect
</div></div>
</div>
</div>
@@ -306,8 +306,8 @@
@@ -300,8 +300,8 @@
</div>
<audio id="noVNC_bell">
@ -213,6 +212,3 @@ index bc1a47d..d17ee81 100644
</audio>
</body>
</html>
--
2.11.0

View File

@ -1,7 +1,7 @@
From 67da56922c2edea81ee98198db125d9fc8abd8b4 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Fri, 20 Jan 2017 10:35:43 +0100
Subject: [PATCH 07/10] add pve vnc commands
Subject: [PATCH 07/12] add pve vnc commands
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
@ -9,10 +9,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 21 insertions(+)
diff --git a/vnc.html b/vnc.html
index d17ee81..eca9a54 100644
index f93cf89..fad5d4a 100644
--- a/vnc.html
+++ b/vnc.html
@@ -245,6 +245,27 @@
@@ -240,6 +240,27 @@
</div>
</div>
@ -40,6 +40,3 @@ index d17ee81..eca9a54 100644
<!-- Connection Controls -->
<input type="image" alt="Disconnect" src="/novnc/app/images/disconnect.svg"
id="noVNC_disconnect_button" class="noVNC_button"
--
2.11.0

View File

@ -1,32 +1,34 @@
From 492c7d299d770dca563f806eadb6458a24d97b2d Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Fri, 20 Jan 2017 10:16:09 +0100
Subject: [PATCH 08/10] add replaceable snippets in vnc.html
Subject: [PATCH 08/12] add replaceable snippets in vnc.html
so that we can insert the username/csrftoken via search/replace
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
vnc.html | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
vnc.html | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/vnc.html b/vnc.html
index eca9a54..f63aaa7 100644
index fad5d4a..bba7d7d 100644
--- a/vnc.html
+++ b/vnc.html
@@ -15,7 +15,7 @@
@@ -13,7 +13,7 @@
or the fragment:
http://example.com/#host=HOST&port=PORT&encrypt=1
-->
- <title>noVNC</title>
+ <title>[% nodename %] - Proxmox Console</title>
<meta charset="utf-8" />
<meta charset="utf-8">
@@ -38,6 +38,12 @@
@@ -26,7 +26,13 @@
<link rel="stylesheet" href="/novnc/app/styles/pve.css" />
<!-- this is included as a normal file in order to catch script-loading errors as well -->
<script type="text/javascript" src="/novnc/app/error-handler.js"></script>
- <script src="/novnc/app/error-handler.js"></script>
+ <script type="text/javascript" src="/novnc/app/error-handler.js"></script>
+ <script type="text/javascript">
+ if (typeof(PVE) === 'undefined') PVE = {};
+ PVE.UserName = '[% username %]';
@ -36,6 +38,3 @@ index eca9a54..f63aaa7 100644
<!-- begin scripts -->
<!-- promise polyfills promises for IE11 -->
--
2.11.0

View File

@ -1,7 +1,7 @@
From 60e19c4a22688d0e13dedbed1808e6b4576946e8 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Fri, 20 Jan 2017 10:55:49 +0100
Subject: [PATCH 09/10] decrease animation time
Subject: [PATCH 09/12] decrease animation time
because 0.5s is too long
@ -11,10 +11,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/app/styles/base.css b/app/styles/base.css
index 344db9b..6e0d8d6 100644
index 3ca9894..137aec8 100644
--- a/app/styles/base.css
+++ b/app/styles/base.css
@@ -285,7 +285,7 @@ select:active {
@@ -283,7 +283,7 @@ select:active {
position: fixed;
z-index: 10;
@ -23,7 +23,7 @@ index 344db9b..6e0d8d6 100644
/* Edge misrenders animations wihthout this */
transform: translateX(0);
@@ -302,7 +302,7 @@ select:active {
@@ -300,7 +300,7 @@ select:active {
position: relative;
left: -100%;
@ -32,7 +32,7 @@ index 344db9b..6e0d8d6 100644
background-color: rgb(110, 132, 163);
border-radius: 0 10px 10px 0;
@@ -320,7 +320,7 @@ select:active {
@@ -318,7 +318,7 @@ select:active {
height: 100%;
width: 30px;
left: -30px;
@ -41,7 +41,7 @@ index 344db9b..6e0d8d6 100644
}
#noVNC_control_bar.noVNC_open::before {
box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5);
@@ -354,7 +354,7 @@ select:active {
@@ -352,7 +352,7 @@ select:active {
}
#noVNC_control_bar_handle:after {
content: "";
@ -50,7 +50,7 @@ index 344db9b..6e0d8d6 100644
background: url("../images/handle.svg");
position: absolute;
top: 22px; /* (50px-6px)/2 */
@@ -476,7 +476,7 @@ select:active {
@@ -474,7 +474,7 @@ select:active {
.noVNC_panel {
transform: translateX(25px);
@ -59,7 +59,7 @@ index 344db9b..6e0d8d6 100644
max-height: 100vh; /* Chrome is buggy with 100% */
overflow-x: hidden;
@@ -653,7 +653,7 @@ select:active {
@@ -651,7 +651,7 @@ select:active {
cursor: pointer;
@ -68,6 +68,3 @@ index 344db9b..6e0d8d6 100644
visibility: hidden;
opacity: 0;
--
2.11.0

View File

@ -1,7 +1,7 @@
From e78d6d49ae2c4986ce283ddb2b36601f498d5015 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Tue, 16 May 2017 10:36:15 +0200
Subject: [PATCH 10/10] use only app.js
Subject: [PATCH 10/12] use only app.js
because we will use the commonjs version,
we only need to use the generated app.js
@ -12,10 +12,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/vnc.html b/vnc.html
index f63aaa7..83825eb 100644
index bba7d7d..6fb195e 100644
--- a/vnc.html
+++ b/vnc.html
@@ -46,22 +46,7 @@
@@ -35,22 +35,7 @@
</script>
<!-- begin scripts -->
@ -39,6 +39,3 @@ index f63aaa7..83825eb 100644
<!-- end scripts -->
</head>
--
2.11.0

View File

@ -1,7 +1,7 @@
From c00b6dd12a3daa100673561cdedc5909ed4c3738 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Csapak <d.csapak@proxmox.com>
Date: Thu, 19 Jul 2018 11:31:51 +0200
Subject: [PATCH 11/11] add localCursor setting to rfb
Subject: [PATCH 11/12] add localCursor setting to rfb
and use it in app.js (default true)
@ -14,27 +14,27 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/app/ui.js b/app/ui.js
index c523fcd..ac310ba 100644
index 7201179..35d5d7a 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -161,6 +161,7 @@ const UI = {
@@ -151,6 +151,7 @@ const UI = {
UI.initSetting('view_clip', false);
UI.initSetting('resize', 'off');
UI.initSetting('autoresize', true);
+ UI.initSetting('local_cursor', true);
UI.initSetting('shared', true);
UI.initSetting('view_only', false);
UI.initSetting('path', 'websockify');
@@ -350,6 +351,8 @@ const UI = {
UI.addSettingChangeHandler('shared');
UI.addSettingChangeHandler('view_only');
UI.initSetting('show_dot', false);
@@ -345,6 +346,8 @@ const UI = {
UI.addSettingChangeHandler('view_only', UI.updateViewOnly);
UI.addSettingChangeHandler('show_dot');
UI.addSettingChangeHandler('show_dot', UI.updateShowDotCursor);
+ UI.addSettingChangeHandler('local_cursor');
+ UI.addSettingChangeHandler('local_cursor', UI.updateLocalCursor);
UI.addSettingChangeHandler('host');
UI.addSettingChangeHandler('port');
UI.addSettingChangeHandler('path');
@@ -1052,6 +1055,7 @@ const UI = {
@@ -1041,6 +1044,7 @@ const UI = {
UI.rfb.addEventListener("desktopname", UI.updateDesktopName);
UI.rfb.addEventListener("fbresize", UI.updateSessionSize);
UI.rfb.clipViewport = UI.getSetting('view_clip');
@ -42,7 +42,7 @@ index c523fcd..ac310ba 100644
UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
@@ -1655,6 +1659,11 @@ const UI = {
@@ -1638,6 +1642,11 @@ const UI = {
}
},
@ -55,10 +55,10 @@ index c523fcd..ac310ba 100644
if (!UI.rfb) return;
UI.rfb.viewOnly = UI.getSetting('view_only');
diff --git a/core/rfb.js b/core/rfb.js
index 3e0f176..8216c53 100644
index c079af1..2beb00c 100644
--- a/core/rfb.js
+++ b/core/rfb.js
@@ -262,6 +262,7 @@ export default class RFB extends EventTargetMixin {
@@ -246,6 +246,7 @@ export default class RFB extends EventTargetMixin {
this._clipViewport = false;
this._scaleViewport = false;
this._resizeSession = false;
@ -66,9 +66,9 @@ index 3e0f176..8216c53 100644
}
// ===== PROPERTIES =====
@@ -315,6 +316,15 @@ export default class RFB extends EventTargetMixin {
}
}
@@ -308,6 +309,15 @@ export default class RFB extends EventTargetMixin {
get background() { return this._screen.style.background; }
set background(cssValue) { this._screen.style.background = cssValue; }
+ get localCursor() { return this._localCursor; }
+ set localCursor(localCursor) {
@ -83,11 +83,11 @@ index 3e0f176..8216c53 100644
disconnect() {
diff --git a/core/util/cursor.js b/core/util/cursor.js
index 18aa7be..2a99bd4 100644
index 0d0b754..73d7880 100644
--- a/core/util/cursor.js
+++ b/core/util/cursor.js
@@ -12,6 +12,8 @@ export default class Cursor {
constructor(container) {
constructor() {
this._target = null;
+ this._showLocalCursor = false;
@ -95,7 +95,7 @@ index 18aa7be..2a99bd4 100644
this._canvas = document.createElement('canvas');
if (useFallback) {
@@ -128,7 +130,7 @@ export default class Cursor {
@@ -115,7 +117,7 @@ export default class Cursor {
}
clear() {
@ -104,7 +104,7 @@ index 18aa7be..2a99bd4 100644
this._canvas.width = 0;
this._canvas.height = 0;
this._position.x = this._position.x + this._hotSpot.x;
@@ -137,6 +139,11 @@ export default class Cursor {
@@ -124,6 +126,11 @@ export default class Cursor {
this._hotSpot.y = 0;
}
@ -116,7 +116,7 @@ index 18aa7be..2a99bd4 100644
_handleMouseOver(event) {
// This event could be because we're entering the target, or
// moving around amongst its sub elements. Let the move handler
@@ -225,4 +232,10 @@ export default class Cursor {
@@ -218,4 +225,10 @@ export default class Cursor {
this._canvas.style.left = this._position.x + "px";
this._canvas.style.top = this._position.y + "px";
}
@ -128,19 +128,16 @@ index 18aa7be..2a99bd4 100644
+
}
diff --git a/vnc.html b/vnc.html
index 83825eb..438d531 100644
index 6fb195e..d48091d 100644
--- a/vnc.html
+++ b/vnc.html
@@ -177,6 +177,9 @@
<label><input id="noVNC_setting_view_clip" type="checkbox" /> Clip to Window</label>
</li>
@@ -167,6 +167,9 @@
<li>
<label><input id="noVNC_setting_view_clip" type="checkbox"> Clip to Window</label>
</li>
+ <li>
+ <label><input id="noVNC_setting_local_cursor" type="checkbox" /> Local Cursor</label>
+ </li>
+ <li>
<li>
<label><input id="noVNC_setting_autoresize" type="checkbox" /> Autoresize Window</label>
</li>
<li>
--
2.11.0

View File

@ -1,9 +1,10 @@
From bc515ecef9162774bff846e362b4c8315032ea2a Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tim Marx <t.marx@proxmox.com>
Date: Fri, 21 Dec 2018 11:46:13 +0100
Subject: [PATCH 12/12] pass custom command to vnc
Signed-off-by: Tim Marx <t.marx@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
app/pve.js | 7 +++++++
1 file changed, 7 insertions(+)
@ -20,19 +21,16 @@ index e2c37fb..9cf4b09 100644
this.lastFBWidth = undefined;
this.lastFBHeight = undefined;
this.sizeUpdateTimer = undefined;
@@ -47,6 +48,12 @@ export default function PVEUI(UI){
@@ -46,6 +47,12 @@ export default function PVEUI(UI){
url = baseUrl + '/vncshell';
params.upgrade = 1;
title = 'System upgrade on node ' + this.nodename;
break;
+ break;
+ case 'cmd':
+ url = baseUrl + '/vncshell';
+ params.cmd = decodeURI(this.cmd);
+ title = 'Install Ceph on node ' + this.nodename;
+
+ break;
break;
default:
throw 'implement me';
break;
--
2.11.0