UI mods to display stats

This commit is contained in:
kasmtech
2020-09-28 09:43:59 +00:00
parent d031c2182f
commit 88a9bed022
4 changed files with 63 additions and 1 deletions

View File

@@ -274,6 +274,20 @@ select:active {
overflow: auto;
}
/* ----------------------------------------
* Connection Stats
* ----------------------------------------
*/
#noVNC_connection_stats {
top: 0;
left: auto;
right: 0;
position: fixed;
background: #9fa5a2d4;
color: #00ffa2d4;
visibility: hidden;
}
/* ----------------------------------------
* Control Bar
* ----------------------------------------

View File

@@ -174,6 +174,7 @@ const UI = {
UI.initSetting('prefer_local_cursor', true);
UI.initSetting('enable_webp', true);
UI.initSetting('toggle_control_panel', false);
UI.initSetting('enable_perf_stats', false);
UI.setupSettingLabels();
},
@@ -349,6 +350,8 @@ const UI = {
document.getElementById("noVNC_settings_button")
.addEventListener('click', UI.toggleSettingsPanel);
document.getElementById("noVNC_setting_enable_perf_stats").addEventListener('click', UI.showStats);
UI.addSettingChangeHandler('encrypt');
UI.addSettingChangeHandler('resize');
UI.addSettingChangeHandler('resize', UI.applyResizeMode);
@@ -368,6 +371,10 @@ const UI = {
UI.addSettingChangeHandler('logging', UI.updateLogging);
UI.addSettingChangeHandler('reconnect');
UI.addSettingChangeHandler('reconnect_delay');
UI.addSettingChangeHandler('enable_webp');
UI.addSettingChangeHandler('clipboard_seamless');
UI.addSettingChangeHandler('clipboard_up');
UI.addSettingChangeHandler('clipboard_down');
},
addFullscreenHandlers() {
@@ -450,6 +457,24 @@ const UI = {
.classList.remove('noVNC_open');
},
showStats() {
UI.saveSetting('enable_perf_stats');
let enable_stats = UI.getSetting('enable_perf_stats');
if (enable_stats === true && UI.statsInterval == undefined) {
document.getElementById("noVNC_connection_stats").style.visibility = "visible";
UI.statsInterval = setInterval(function() {
if (UI.rfb !== undefined) {
UI.rfb.requestBottleneckStats();
}
} , 5000);
} else {
document.getElementById("noVNC_connection_stats").style.visibility = "hidden";
UI.statsInterval = null;
}
},
showStatus(text, status_type, time) {
const statusElem = document.getElementById('noVNC_status');
@@ -979,6 +1004,12 @@ const UI = {
}
},
//recieved bottleneck stats
bottleneckStatsRecieve(e) {
document.getElementById("noVNC_connection_stats").innerHTML = e.detail.text;
console.log(e.detail.text);
},
popupMessage: function(msg, secs) {
if (!secs){
secs = 500;
@@ -1208,6 +1239,7 @@ const UI = {
UI.rfb.addEventListener("securityfailure", UI.securityFailed);
UI.rfb.addEventListener("capabilities", UI.updatePowerButton);
UI.rfb.addEventListener("clipboard", UI.clipboardReceive);
UI.rfb.addEventListener("bottleneck_stats", UI.bottleneckStatsRecieve);
document.addEventListener('mouseenter', UI.enterVNC);
document.addEventListener('mouseleave', UI.leaveVNC);
@@ -1346,6 +1378,7 @@ const UI = {
msg = _("Connected (unencrypted) to ") + UI.desktopName;
}
UI.showStatus(msg);
UI.showStats();
UI.updateVisualState('connected');
// Do this last because it can only be used on rendered elements
@@ -1965,4 +1998,4 @@ if (l10n.language !== "en" && l10n.dictionary === undefined) {
UI.prime();
}
export default UI;
export default UI;