From a8061ed70bee1600146fcdfb472912b7f1c2f4c0 Mon Sep 17 00:00:00 2001
From: Ylian Saint-Hilaire
Date: Thu, 6 Aug 2020 16:05:48 -0700
Subject: [PATCH] Initial work on desktop sharing.
---
MeshCentralServer.njsproj | 1 +
meshdesktopmultiplex.js | 2 +-
public/scripts/agent-redir-ws-0.1.1-min.js | 2 +-
public/scripts/agent-redir-ws-0.1.1.js | 11 +-
public/scripts/amt-wsman-0.2.0-min.js | 2 +-
translate/translate.js | 1 +
translate/translate.json | 289 +++--
views/desktop.handlebars | 1110 ++++++++++++++++++++
webserver.js | 14 +-
9 files changed, 1333 insertions(+), 99 deletions(-)
create mode 100644 views/desktop.handlebars
diff --git a/MeshCentralServer.njsproj b/MeshCentralServer.njsproj
index ed66a52d..6e0b31e1 100644
--- a/MeshCentralServer.njsproj
+++ b/MeshCentralServer.njsproj
@@ -565,6 +565,7 @@
+
diff --git a/meshdesktopmultiplex.js b/meshdesktopmultiplex.js
index 9688cb94..f92068db 100644
--- a/meshdesktopmultiplex.js
+++ b/meshdesktopmultiplex.js
@@ -787,7 +787,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
// Get node information
parent.db.Get(nodeid, function (err, nodes) {
- if ((err != null) || (nodes.length != 1)) { func(null); }
+ if ((err != null) || (nodes.length != 1)) { func(null); return; }
obj.meshid = nodes[0].meshid;
obj.icon = nodes[0].icon;
obj.name = nodes[0].name;
diff --git a/public/scripts/agent-redir-ws-0.1.1-min.js b/public/scripts/agent-redir-ws-0.1.1-min.js
index 6dc0b998..72b24be1 100644
--- a/public/scripts/agent-redir-ws-0.1.1-min.js
+++ b/public/scripts/agent-redir-ws-0.1.1-min.js
@@ -1 +1 @@
-var CreateAgentRedirect=function(e,t,n,o,a,c){var s={};function l(){1==s.webSwitchOk&&1==s.webRtcActive&&(s.latency.current=-1,s.sendCtrlMsg('{"ctrlChannel":"102938","type":"webrtc0"}'),s.sendCtrlMsg('{"ctrlChannel":"102938","type":"webrtc1"}'),null!=s.onStateChanged&&s.onStateChanged(s,s.State))}((s.m=t).parent=s).meshserver=e,s.authCookie=o,s.rauthCookie=a,s.State=0,s.nodeid=null,s.options=null,s.socket=null,s.connectstate=-1,s.tunnelid=Math.random().toString(36).substring(2),s.protocol=t.protocol,s.onStateChanged=null,s.ctrlMsgAllowed=!0,s.attemptWebRTC=!1,s.webRtcActive=!1,s.webSwitchOk=!1,s.webchannel=null,s.webrtc=null,s.debugmode=0,s.serverIsRecording=!1,s.latency={lastSend:null,current:-1,callback:null},null==c&&(c="/"),s.consoleMessage=null,s.onConsoleMessageChange=null,s.metadata=null,s.onMetadataChange=null,s.Start=function(e){var t=window.location.protocol.replace("http","ws")+"//"+window.location.host+window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))+"/meshrelay.ashx?browser=1&p="+s.protocol+"&nodeid="+e+"&id="+s.tunnelid;null!=o&&""!=o&&(t+="&auth="+o),null!=urlargs&&null!=urlargs.slowrelay&&(t+="&slowrelay="+urlargs.slowrelay),s.nodeid=e,s.connectstate=0,s.socket=new WebSocket(t),s.socket.binaryType="arraybuffer",s.socket.onopen=s.xxOnSocketConnected,s.socket.onmessage=s.xxOnMessage,s.socket.onerror=function(e){},s.socket.onclose=s.xxOnSocketClosed,s.xxStateChange(1);var n="*"+c+"meshrelay.ashx?p="+s.protocol+"&nodeid="+e+"&id="+s.tunnelid;null!=a&&""!=a&&(n+="&rauth="+a),s.meshserver.send({action:"msg",type:"tunnel",nodeid:s.nodeid,value:n,usage:s.protocol})},s.xxOnSocketConnected=function(){1==s.debugmode&&console.log("onSocketConnected"),s.xxStateChange(2)},s.xxOnControlCommand=function(e){var t;try{t=JSON.parse(e)}catch(e){return}"102938"==t.ctrlChannel?("undefined"!=typeof args&&args.redirtrace&&console.log("RedirRecv",t),"console"==t.type?s.setConsoleMessage(t.msg,t.msgid,t.msgargs,t.timeout):"metadata"==t.type?(s.metadata=t,s.onMetadataChange&&s.onMetadataChange(s.metadata)):"rtt"==t.type&&"number"==typeof t.time?(s.latency.current=(new Date).getTime()-t.time,null!=s.latency.callbacks&&s.latency.callback(s.latency.current)):null!=s.webrtc&&("answer"==t.type?s.webrtc.setRemoteDescription(new RTCSessionDescription(t),function(){},s.xxCloseWebRTC):"webrtc0"==t.type?(s.webSwitchOk=!0,l()):"webrtc1"==t.type?s.sendCtrlMsg('{"ctrlChannel":"102938","type":"webrtc2"}'):t.type)):s.m.ProcessData(e)},s.setConsoleMessage=function(e,t,n,o){s.consoleMessage!=e&&(s.consoleMessage=e,s.consoleMessageId=t,s.consoleMessageArgs=n,s.consoleMessageTimeout=o,s.onConsoleMessageChange&&s.onConsoleMessageChange(s,s.consoleMessage,s.consoleMessageId))},s.sendCtrlMsg=function(e){if(1==s.ctrlMsgAllowed){"undefined"!=typeof args&&args.redirtrace&&console.log("RedirSend",typeof e,e);try{s.socket.send(e)}catch(e){}}},s.xxOnMessage=function(e){if(s.State<3&&("c"==e.data||"cr"==e.data)){if("cr"==e.data&&(s.serverIsRecording=!0),null!=s.options){delete s.options.action,s.options.type="options";try{s.sendCtrlMsg(JSON.stringify(s.options))}catch(e){}}try{s.socket.send(s.protocol)}catch(e){}if(s.xxStateChange(3),1==s.attemptWebRTC){"undefined"!=typeof RTCPeerConnection?s.webrtc=new RTCPeerConnection(null):"undefined"!=typeof webkitRTCPeerConnection&&(s.webrtc=new webkitRTCPeerConnection(null)),null!=s.webrtc&&s.webrtc.createDataChannel&&(s.webchannel=s.webrtc.createDataChannel("DataChannel",{}),s.webchannel.binaryType="arraybuffer",s.webchannel.onmessage=s.xxOnMessage,s.webchannel.onopen=function(){s.webRtcActive=!0,l()},s.webchannel.onclose=function(e){s.webRtcActive&&s.Stop()},s.webrtc.onicecandidate=function(e){if(null==e.candidate)try{s.sendCtrlMsg(JSON.stringify(s.webrtcoffer))}catch(e){}else s.webrtcoffer.sdp+="a="+e.candidate.candidate+"\r\n"},s.webrtc.oniceconnectionstatechange=function(){null!=s.webrtc&&("disconnected"==s.webrtc.iceConnectionState?1==s.webRtcActive?s.Stop():s.xxCloseWebRTC():"failed"==s.webrtc.iceConnectionState&&s.xxCloseWebRTC())},s.webrtc.createOffer(function(e){s.webrtcoffer=e,s.webrtc.setLocalDescription(e,function(){},s.xxCloseWebRTC)},s.xxCloseWebRTC,{mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}}))}}else if("string"==typeof e.data)s.xxOnControlCommand(e.data);else if(s.m.ProcessBinaryCommand)if(0!=u){var t=new Uint8Array(e.data);if(g.push(t),u+=t.byteLength,d<=u){var n=new Uint8Array(u),o=0;for(var a in g)n.set(g[a],o),o+=g[a].byteLength;s.m.ProcessBinaryCommand(i,d,n),u=d=i=0,g=[]}}else{var c=((t=new Uint8Array(e.data))[0]<<8)+t[1],r=(t[2]<<8)+t[3];27==c&&8==r&&(c=(t[8]<<8)+t[9],r=(t[5]<<16)+(t[6]<<8)+t[7],t=t.slice(8)),r!=t.byteLength?(i=c,d=r,u=t.byteLength,g=[t]):s.m.ProcessBinaryCommand(c,r,t)}else s.m.ProcessBinaryData?s.m.ProcessBinaryData(new Uint8Array(e.data)):s.m.ProcessData(String.fromCharCode.apply(null,new Uint8Array(e.data)))};var i=0,d=0,u=0,g=[];return s.sendText=function(e){"string"!=typeof e&&(e=JSON.stringify(e)),s.send(encode_utf8(e))},s.send=function(e){"undefined"!=typeof args&&args.redirtrace&&console.log("RedirSend",typeof e,e.length,"{"==e[0]?e:rstr2hex(e).substring(0,64));try{if(null!=s.socket&&s.socket.readyState==WebSocket.OPEN)if("string"==typeof e)if(1==s.debugmode){for(var t=new Uint8Array(e.length),n=[],o=0;o'+e.InstanceID+"";var s="";for(var r in e)if(e.hasOwnProperty(r)){if(s+='',e[r].ReferenceParameters){s+="",s+=""+e[r].Address+""+e[r].ReferenceParameters.ResourceURI+"";var a=e[r].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(a))for(var o=0;o"+a[o].Value+"";else s+=""+a.Value+"";s+=""}else s+=e[r];s+=""}return s+=""}return p.NextMessageId=1,p.Address="/wsman",p.comm=CreateWsmanComm(e,s,r,a,o,t),p.PerformAjax=function(e,o,s,r,a){null==a&&(a=""),p.comm.PerformAjax('"+e,function(e,s,r){if(200==s){var a=p.ParseWsman(e);a&&null!=a?o(p,a.Header.ResourceURI,a,200,r):o(p,null,{Header:{HttpError:s}},601,r)}else o(p,null,{Header:{HttpError:s}},s,r)},s,r)},p.CancelAllQueries=function(e){p.comm.CancelAllQueries(e)},p.GetNameFromUrl=function(e){var s=e.lastIndexOf("/");return-1==s?e:e.substring(s+1)},p.ExecSubscribe=function(e,s,r,a,o,t,n,l,c,d){var m="",i="";null!=c&&null!=d&&(m="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"+c+''+d+"",i=''),l=null!=l&&null!=l?""+l+"":"";var u="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(n)+m+''+r+""+i+"PT0.000000S";p.PerformAjax(u+"",a,o,t,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:se="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:m="http://x.com"')},p.ExecUnSubscribe=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(o)+"";p.PerformAjax(t+"",s,r,a,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')},p.ExecPut=function(e,s,r,a,o,t){var n="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S"+w(t)+""+function(e,s){if(!e||null==s)return"";var r=p.GetNameFromUrl(e),a="';for(var o in s)if(s.hasOwnProperty(o)&&0!==o.indexOf("__")&&0!==o.indexOf("@")&&void 0!==s[o]&&null!==s[o]&&"function"!=typeof s[o])if("object"==typeof s[o]&&s[o].ReferenceParameters){a+=""+s[o].Address+""+s[o].ReferenceParameters.ResourceURI+"";var t=s[o].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(t))for(var n=0;n"+t[n].Value+"";else a+=""+t.Value+"";a+=""}else if(Array.isArray(s[o]))for(n=0;n"+s[o][n].toString()+"";else a+=""+s[o].toString()+"";return a+=""}(e,s);p.PerformAjax(n+"",r,a,o)},p.ExecCreate=function(e,s,r,a,o,t){var n=p.GetNameFromUrl(e),l="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(t)+"';for(var c in s)l+=""+s[c]+"";p.PerformAjax(l+"",r,a,o)},p.ExecCreateXml=function(e,s,r,a,o){var t=p.GetNameFromUrl(e);p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Create"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S'+s+"",r,a,o)},p.ExecDelete=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(s)+"";p.PerformAjax(t,r,a,o)},p.ExecGet=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S",s,r,a)},p.ExecMethod=function(e,s,r,a,o,t,n){var l="";for(var c in r)if(null!=r[c])if(Array.isArray(r[c]))for(var d in r[c])l+=""+r[c][d]+"";else l+=""+r[c]+"";p.ExecMethodXml(e,s,l,a,o,t,n)},p.ExecMethodXml=function(e,s,r,a,o,t,n){p.PerformAjax(e+"/"+s+""+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(n)+"
'+r+"",a,o,t)},p.ExecEnum=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S',s,r,a)},p.ExecPull=function(e,s,r,a,o){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+s+"99999999",r,a,o)},p.ParseWsman=function(s){try{s.childNodes||(s=function(e){{if(window.DOMParser)return(new DOMParser).parseFromString(e,"text/xml");var s=new ActiveXObject("Microsoft.XMLDOM");return s.async=!1,s.loadXML(e),s}}(s));var e,r={Header:{}},a=s.getElementsByTagName("Header")[0];if(!(a=a||s.getElementsByTagName("a:Header")[0]))return null;for(var o=0;o'+e.InstanceID+"";var s="";for(var r in e)if(e.hasOwnProperty(r)){if(s+='',e[r].ReferenceParameters){s+="",s+=""+e[r].Address+""+e[r].ReferenceParameters.ResourceURI+"";var a=e[r].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(a))for(var o=0;o"+a[o].Value+"";else s+=""+a.Value+"";s+=""}else s+=e[r];s+=""}return s+=""}return p.NextMessageId=1,p.Address="/wsman",p.comm=CreateWsmanComm(e,s,r,a,o,t),p.PerformAjax=function(e,o,s,r,a){null==a&&(a=""),p.comm.PerformAjax('"+e,function(e,s,r){if(200==s){var a=p.ParseWsman(e);a&&null!=a?o(p,a.Header.ResourceURI,a,200,r):o(p,null,{Header:{HttpError:s}},601,r)}else o(p,null,{Header:{HttpError:s}},s,r)},s,r)},p.CancelAllQueries=function(e){p.comm.CancelAllQueries(e)},p.GetNameFromUrl=function(e){var s=e.lastIndexOf("/");return-1==s?e:e.substring(s+1)},p.ExecSubscribe=function(e,s,r,a,o,t,n,l,d,c){var m="",i="";null!=d&&null!=c&&(m="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"+d+''+c+"",i=''),l=null!=l&&null!=l?""+l+"":"";var u="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(n)+m+''+r+""+i+"PT0.000000S";p.PerformAjax(u+"",a,o,t,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:se="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:m="http://x.com"')},p.ExecUnSubscribe=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(o)+"";p.PerformAjax(t+"",s,r,a,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')},p.ExecPut=function(e,s,r,a,o,t){var n="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S"+w(t)+""+function(e,s){if(!e||null==s)return"";var r=p.GetNameFromUrl(e),a="';for(var o in s)if(s.hasOwnProperty(o)&&0!==o.indexOf("__")&&0!==o.indexOf("@")&&void 0!==s[o]&&null!==s[o]&&"function"!=typeof s[o])if("object"==typeof s[o]&&s[o].ReferenceParameters){a+=""+s[o].Address+""+s[o].ReferenceParameters.ResourceURI+"";var t=s[o].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(t))for(var n=0;n"+t[n].Value+"";else a+=""+t.Value+"";a+=""}else if(Array.isArray(s[o]))for(n=0;n"+s[o][n].toString()+"";else a+=""+s[o].toString()+"";return a+=""}(e,s);p.PerformAjax(n+"",r,a,o)},p.ExecCreate=function(e,s,r,a,o,t){var n=p.GetNameFromUrl(e),l="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(t)+"';for(var d in s)l+=""+s[d]+"";p.PerformAjax(l+"",r,a,o)},p.ExecCreateXml=function(e,s,r,a,o){var t=p.GetNameFromUrl(e);p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Create"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S'+s+"",r,a,o)},p.ExecDelete=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(s)+"";p.PerformAjax(t,r,a,o)},p.ExecGet=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+r+"",a,o,t)},p.ExecEnum=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S',s,r,a)},p.ExecPull=function(e,s,r,a,o){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+s+"99999999",r,a,o)},p.ParseWsman=function(s){try{s.childNodes||(s=function(e){{if(window.DOMParser)return(new DOMParser).parseFromString(e,"text/xml");var s=new ActiveXObject("Microsoft.XMLDOM");return s.async=!1,s.loadXML(e),s}}(s));var e,r={Header:{}},a=s.getElementsByTagName("Header")[0];if(!(a=a||s.getElementsByTagName("a:Header")[0]))return null;for(var o=0;o27->769"
+ "default.handlebars->27->769",
+ "desktop.handlebars->3->12"
]
},
{
@@ -503,6 +504,7 @@
"default.handlebars->27->776",
"default.handlebars->27->809",
"default.handlebars->27->821",
+ "desktop.handlebars->3->19",
"xterm.handlebars->9->6"
]
},
@@ -583,7 +585,8 @@
"en": ", {0} watching",
"nl": ", {0} kijken",
"xloc": [
- "default.handlebars->27->770"
+ "default.handlebars->27->770",
+ "desktop.handlebars->3->13"
]
},
{
@@ -717,7 +720,8 @@
"en": "1 connection",
"nl": "1 verbinding",
"xloc": [
- "default.handlebars->27->772"
+ "default.handlebars->27->772",
+ "desktop.handlebars->3->15"
]
},
{
@@ -997,7 +1001,8 @@
"zh-chs": "100%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->1",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->1"
]
},
{
@@ -1049,7 +1054,8 @@
"zh-chs": "12.5%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->15",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->15"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->15",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->15"
]
},
{
@@ -1139,7 +1145,8 @@
"zh-chs": "25%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->13",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->13"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->13",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->13"
]
},
{
@@ -1285,7 +1292,8 @@
"zh-chs": "37.5%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->11",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->11"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->11",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->11"
]
},
{
@@ -1409,7 +1417,8 @@
"zh-chs": "50%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->9",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->9"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->9",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->9"
]
},
{
@@ -1463,7 +1472,8 @@
"zh-chs": "62.5%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->7",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->7"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->7",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->7"
]
},
{
@@ -1572,7 +1582,8 @@
"zh-chs": "75%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->5",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->5"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->5",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->5"
]
},
{
@@ -1625,7 +1636,8 @@
"zh-chs": "87.5%",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->d7bitmapscaling->3",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->3"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->3",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->d7bitmapscaling->3"
]
},
{
@@ -3096,7 +3108,8 @@
"zh-chs": "代理遠程桌面",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->1",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->1"
]
},
{
@@ -3371,7 +3384,8 @@
"zh-chs": "Alt-F4",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->19",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->17"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->17",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->17"
]
},
{
@@ -3389,7 +3403,8 @@
"zh-chs": "Alt-Tab",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->23",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->21"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->21",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->21"
]
},
{
@@ -4279,7 +4294,8 @@
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3",
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3",
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3",
- "default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3"
+ "default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3"
]
},
{
@@ -4977,6 +4993,7 @@
"default-mobile.handlebars->dialog->idx_dlgButtonBar",
"default.handlebars->27->1226",
"default.handlebars->container->dialog->idx_dlgButtonBar",
+ "desktop.handlebars->p11->dialog->idx_dlgButtonBar",
"login-mobile.handlebars->dialog->idx_dlgButtonBar",
"login.handlebars->dialog->idx_dlgButtonBar",
"player.handlebars->p11->dialog->idx_dlgButtonBar",
@@ -5902,7 +5919,8 @@
"ru": "Буфер обмена",
"zh-chs": "剪貼板",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3"
]
},
{
@@ -5922,7 +5940,8 @@
"default-mobile.handlebars->9->57",
"default.handlebars->27->137",
"default.handlebars->27->145",
- "default.handlebars->27->798"
+ "default.handlebars->27->798",
+ "desktop.handlebars->3->36"
]
},
{
@@ -6420,6 +6439,7 @@
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->connectbutton1span",
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2span",
"default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3->connectbutton1span",
"mstsc.handlebars->main->1->3->1->8->1->0",
"xterm.handlebars->p11->deskarea0->deskarea1->3"
]
@@ -6492,7 +6512,8 @@
"zh-chs": "使用Intel AMT硬件KVM連接",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->connectbutton1hspan",
- "default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2hspan"
+ "default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2hspan",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3->connectbutton1hspan"
]
},
{
@@ -6511,6 +6532,7 @@
"xloc": [
"default-mobile.handlebars->9->4",
"default.handlebars->27->11",
+ "desktop.handlebars->3->4",
"xterm.handlebars->9->4"
]
},
@@ -6605,6 +6627,7 @@
"default.handlebars->27->251",
"default.handlebars->27->860",
"default.handlebars->27->9",
+ "desktop.handlebars->3->2",
"xterm.handlebars->9->2"
]
},
@@ -7363,7 +7386,8 @@
"zh-chs": "Ctrl + Alt + Del",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->1",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->1",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->1"
]
},
{
@@ -7381,7 +7405,8 @@
"zh-chs": "Ctrl-W",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->21",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->19"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->19",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->19"
]
},
{
@@ -7486,7 +7511,8 @@
"ru": "DataChannel",
"zh-chs": "數據通道",
"xloc": [
- "default.handlebars->27->768"
+ "default.handlebars->27->768",
+ "desktop.handlebars->3->11"
]
},
{
@@ -7594,6 +7620,7 @@
"default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
"default.handlebars->container->dialog->idx_dlgButtonBar->5",
"default.handlebars->filesContextMenu->5",
+ "desktop.handlebars->p11->dialog->idx_dlgButtonBar->5",
"player.handlebars->p11->dialog->idx_dlgButtonBar->5",
"xterm.handlebars->p11->dialog->idx_dlgButtonBar->5"
]
@@ -7920,7 +7947,8 @@
"ko": "거부",
"zh-chs": "被拒绝",
"xloc": [
- "default.handlebars->27->764"
+ "default.handlebars->27->764",
+ "desktop.handlebars->3->7"
]
},
{
@@ -8054,7 +8082,8 @@
"default.handlebars->27->502",
"default.handlebars->27->804",
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop",
- "default.handlebars->contextMenu->cxdesktop"
+ "default.handlebars->contextMenu->cxdesktop",
+ "desktop.handlebars->3->41"
]
},
{
@@ -8142,7 +8171,8 @@
"nl": "Desktop sessie wachttijd",
"zh-chs": "桌面会话延迟",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->1",
+ "desktop.handlebars->p11->deskarea0->deskarea4->1"
]
},
{
@@ -8825,6 +8855,7 @@
"default.handlebars->27->820",
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->disconnectbutton1span",
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->disconnectbutton2span",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3->disconnectbutton1span",
"xterm.handlebars->p11->deskarea0->deskarea1->3"
]
},
@@ -8870,6 +8901,8 @@
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->deskstatus",
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->termstatus",
"default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3->p13Status",
+ "desktop.handlebars->3->1",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3->deskstatus",
"xterm.handlebars->9->1"
]
},
@@ -8937,7 +8970,8 @@
"ru": "Отображаемое имя",
"zh-chs": "顯示名稱",
"xloc": [
- "default.handlebars->27->789"
+ "default.handlebars->27->789",
+ "desktop.handlebars->3->27"
]
},
{
@@ -10028,7 +10062,8 @@
"ru": "Редактировать настройки удаленного рабочего стола",
"zh-chs": "編輯遠程桌面設置",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1"
]
},
{
@@ -10689,7 +10724,8 @@
"ru": "Для удаленного набора введите текст, используя английскую раскладку и нажмите OK. Перед продолжением убедитесь, что курсор на удаленном компьютере установлен в правильное положение.",
"zh-chs": "輸入文本,然後單擊“確定”以使用美式英語鍵盤遠程輸入文本。在繼續操作之前,請確保將遠程光標放置在正確的位置。",
"xloc": [
- "default.handlebars->27->783"
+ "default.handlebars->27->783",
+ "desktop.handlebars->3->21"
]
},
{
@@ -11033,7 +11069,8 @@
"ko": "원격 터미널 세션을 시작하지 못했습니다 : {0} ({1})",
"zh-chs": "无法启动远程终端会话{0}({1})",
"xloc": [
- "default.handlebars->27->765"
+ "default.handlebars->27->765",
+ "desktop.handlebars->3->8"
]
},
{
@@ -11068,7 +11105,8 @@
"zh-chs": "快速",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->7->d7framelimiter->1",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->1"
]
},
{
@@ -11155,7 +11193,8 @@
"ru": "Драйвер файловой системы",
"zh-chs": "FileSystemDriver",
"xloc": [
- "default.handlebars->27->792"
+ "default.handlebars->27->792",
+ "desktop.handlebars->3->30"
]
},
{
@@ -11470,7 +11509,8 @@
"ru": "Частота кадров",
"zh-chs": "影格速率",
"xloc": [
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->7->1"
]
},
{
@@ -12353,7 +12393,8 @@
"xloc": [
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->connectbutton1hspan",
- "default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2hspan"
+ "default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2hspan",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3->connectbutton1hspan"
]
},
{
@@ -13034,7 +13075,8 @@
"ru": "Кодировка изображения",
"zh-chs": "圖像編碼",
"xloc": [
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->3->1"
]
},
{
@@ -13137,7 +13179,8 @@
"zh-chs": "輸入值",
"xloc": [
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea4->1->3->13->DeskControlSpan",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->9->DeskControlSpan"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->9->DeskControlSpan",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->9->DeskControlSpan"
]
},
{
@@ -13525,6 +13568,7 @@
"xloc": [
"default-mobile.handlebars->9->5",
"default.handlebars->27->12",
+ "desktop.handlebars->3->5",
"xterm.handlebars->9->5"
]
},
@@ -13901,7 +13945,8 @@
"zh-chs": "英特爾®AMT硬件KVM",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->1",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->1"
]
},
{
@@ -13953,7 +13998,8 @@
"ru": "Интерактивный",
"zh-chs": "互動",
"xloc": [
- "default.handlebars->27->793"
+ "default.handlebars->27->793",
+ "desktop.handlebars->3->31"
]
},
{
@@ -14531,7 +14577,8 @@
"ru": "Драйвер ядра",
"zh-chs": "內核驅動程序",
"xloc": [
- "default.handlebars->27->794"
+ "default.handlebars->27->794",
+ "desktop.handlebars->3->32"
]
},
{
@@ -15731,7 +15778,8 @@
"ru": "Раскладка локальной клавиатуры",
"zh-chs": "本地鍵盤圖",
"xloc": [
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->5"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->5",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->5"
]
},
{
@@ -16837,7 +16885,8 @@
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->7->d7framelimiter->3",
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSize->sizeselect->3",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->3"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->3",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->3"
]
},
{
@@ -17905,7 +17954,8 @@
"default.handlebars->27->919",
"default.handlebars->container->column_l->p11->deskarea0->deskarea3x->DeskTools->deskToolsArea->DeskToolsProcessTab->deskToolsHeader->3",
"default.handlebars->container->column_l->p11->deskarea0->deskarea3x->DeskTools->deskToolsArea->DeskToolsServiceTab->deskToolsServiceHeader->3",
- "default.handlebars->container->column_l->p42->p42tbl->1->0->2"
+ "default.handlebars->container->column_l->p42->p42tbl->1->0->2",
+ "desktop.handlebars->3->26"
]
},
{
@@ -19388,6 +19438,7 @@
"default.handlebars->27->1227",
"default.handlebars->27->567",
"default.handlebars->container->dialog->idx_dlgButtonBar",
+ "desktop.handlebars->p11->dialog->idx_dlgButtonBar",
"login-mobile.handlebars->dialog->idx_dlgButtonBar",
"login.handlebars->dialog->idx_dlgButtonBar",
"player.handlebars->p11->dialog->idx_dlgButtonBar",
@@ -19784,7 +19835,8 @@
"ru": "Другие настройки",
"zh-chs": "其他設定",
"xloc": [
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->5->1"
]
},
{
@@ -19818,7 +19870,8 @@
"ru": "Собственный процесс",
"zh-chs": "自己的過程",
"xloc": [
- "default.handlebars->27->795"
+ "default.handlebars->27->795",
+ "desktop.handlebars->3->33"
]
},
{
@@ -19837,7 +19890,8 @@
"xloc": [
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea3->deskarea3x->DeskTools->5->1->0",
"default.handlebars->27->791",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea3x->DeskTools->deskToolsArea->DeskToolsProcessTab->deskToolsHeader->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea3x->DeskTools->deskToolsArea->DeskToolsProcessTab->deskToolsHeader->1",
+ "desktop.handlebars->3->29"
]
},
{
@@ -20962,7 +21016,8 @@
"zh-chs": "過程控制",
"xloc": [
"default-mobile.handlebars->9->289",
- "default.handlebars->27->805"
+ "default.handlebars->27->805",
+ "desktop.handlebars->3->42"
]
},
{
@@ -21153,7 +21208,8 @@
"zh-chs": "質量",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->3->3",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->3->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->3->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->3->1"
]
},
{
@@ -21188,7 +21244,8 @@
"zh-chs": "RAW16,非常慢",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->3->d7desktopmode->7",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->7"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->7",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->7"
]
},
{
@@ -21206,7 +21263,8 @@
"zh-chs": "RAW8,慢",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->3->d7desktopmode->5",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->5"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->5",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->5"
]
},
{
@@ -21289,7 +21347,8 @@
"zh-chs": "RLE16,推薦",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->3->d7desktopmode->3",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->3"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->3",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->3"
]
},
{
@@ -21307,7 +21366,8 @@
"zh-chs": "RLE8,最快",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->3->d7desktopmode->1",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->3->d7desktopmode->1"
]
},
{
@@ -21408,7 +21468,8 @@
"en": "Received invalid network data",
"nl": "Ongeldige netwerkgegevens ontvangen",
"xloc": [
- "default.handlebars->27->767"
+ "default.handlebars->27->767",
+ "desktop.handlebars->3->10"
]
},
{
@@ -21698,7 +21759,8 @@
"ru": "Удаленный буфер обмена",
"zh-chs": "遠程剪貼板",
"xloc": [
- "default.handlebars->27->786"
+ "default.handlebars->27->786",
+ "desktop.handlebars->3->24"
]
},
{
@@ -21747,7 +21809,8 @@
"xloc": [
"default-mobile.handlebars->9->285",
"default.handlebars->27->253",
- "default.handlebars->27->778"
+ "default.handlebars->27->778",
+ "desktop.handlebars->3->20"
]
},
{
@@ -21764,7 +21827,8 @@
"ru": "Ввод с удаленной клавиатуры",
"zh-chs": "遠程鍵盤輸入",
"xloc": [
- "default.handlebars->27->784"
+ "default.handlebars->27->784",
+ "desktop.handlebars->3->22"
]
},
{
@@ -21832,7 +21896,8 @@
"ru": "Удаленный буфер обмена действителен в течении 60 секунд.",
"zh-chs": "遠程剪貼板的有效期為60秒。",
"xloc": [
- "default.handlebars->27->785"
+ "default.handlebars->27->785",
+ "desktop.handlebars->3->23"
]
},
{
@@ -22438,6 +22503,7 @@
"zh-chs": "重新開始",
"xloc": [
"default.handlebars->27->801",
+ "desktop.handlebars->3->39",
"player.handlebars->p11->deskarea0->deskarea4->3"
]
},
@@ -22648,7 +22714,8 @@
"ru": "Повернуть влево",
"zh-chs": "向左旋轉",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1"
]
},
{
@@ -22665,7 +22732,8 @@
"ru": "Повернуть вправо",
"zh-chs": "右旋",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1"
]
},
{
@@ -22926,7 +22994,8 @@
"ru": "Сохранить снимок экрана удаленного рабочего стола",
"zh-chs": "保存遠程桌面的屏幕截圖",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->1",
+ "desktop.handlebars->p11->deskarea0->deskarea4->1"
]
},
{
@@ -22982,7 +23051,8 @@
"zh-chs": "縮放比例",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->5->3",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->5->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->5->1"
]
},
{
@@ -23437,6 +23507,7 @@
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->3",
"default.handlebars->container->column_l->p12->termTable->1->1->6->1->1->specialKeyDropDown",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3",
"messenger.handlebars->xbottom"
]
},
@@ -24048,7 +24119,8 @@
"ru": "Детали службы",
"zh-chs": "服務詳情",
"xloc": [
- "default.handlebars->27->802"
+ "default.handlebars->27->802",
+ "desktop.handlebars->3->40"
]
},
{
@@ -24079,7 +24151,8 @@
"en": "Session Information",
"nl": "Sessie informatie",
"xloc": [
- "default.handlebars->27->775"
+ "default.handlebars->27->775",
+ "desktop.handlebars->3->18"
]
},
{
@@ -24097,7 +24170,8 @@
"zh-chs": "上課時間",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea4->1",
- "default.handlebars->container->column_l->p12->termTable->1->1->6->1->1"
+ "default.handlebars->container->column_l->p12->termTable->1->1->6->1->1",
+ "desktop.handlebars->p11->deskarea0->deskarea4->1"
]
},
{
@@ -24181,7 +24255,8 @@
"ru": "Настройки...",
"zh-chs": "設定...",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1"
]
},
{
@@ -24237,6 +24312,7 @@
"default.handlebars->27->223",
"default.handlebars->27->226",
"default.handlebars->27->252",
+ "desktop.handlebars->3->3",
"xterm.handlebars->9->3"
]
},
@@ -24271,7 +24347,8 @@
"ru": "Общий процесс",
"zh-chs": "共享過程",
"xloc": [
- "default.handlebars->27->796"
+ "default.handlebars->27->796",
+ "desktop.handlebars->3->34"
]
},
{
@@ -24289,7 +24366,8 @@
"zh-chs": "Shift + Win + M",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->15",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->13"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->13",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->13"
]
},
{
@@ -24334,7 +24412,8 @@
"zh-chs": "顯示焦點工具",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->5->1->1",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->1"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->1",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->1"
]
},
{
@@ -24370,7 +24449,8 @@
"zh-chs": "顯示本地鼠標光標",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7amtkvm->5->1->4",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->3"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->3",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7amtkvm->5->d7otherset->3"
]
},
{
@@ -24840,7 +24920,8 @@
"zh-chs": "慢",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->7->d7framelimiter->5",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->5"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->5",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->5"
]
},
{
@@ -25462,7 +25543,8 @@
"ru": "Старт",
"zh-chs": "開始",
"xloc": [
- "default.handlebars->27->799"
+ "default.handlebars->27->799",
+ "desktop.handlebars->3->37"
]
},
{
@@ -25475,7 +25557,8 @@
"xloc": [
"default.handlebars->27->1813",
"default.handlebars->27->1832",
- "default.handlebars->27->771"
+ "default.handlebars->27->771",
+ "desktop.handlebars->3->14"
]
},
{
@@ -25493,7 +25576,8 @@
"zh-chs": "州",
"xloc": [
"default.handlebars->27->790",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea3x->DeskTools->deskToolsArea->DeskToolsServiceTab->deskToolsServiceHeader->1"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea3x->DeskTools->deskToolsArea->DeskToolsServiceTab->deskToolsServiceHeader->1",
+ "desktop.handlebars->3->28"
]
},
{
@@ -25546,7 +25630,8 @@
"ru": "Стоп",
"zh-chs": "停止",
"xloc": [
- "default.handlebars->27->800"
+ "default.handlebars->27->800",
+ "desktop.handlebars->3->38"
]
},
{
@@ -25562,7 +25647,8 @@
"ru": "Остановить процесс",
"zh-chs": "停止程序",
"xloc": [
- "default.handlebars->27->787"
+ "default.handlebars->27->787",
+ "desktop.handlebars->3->25"
]
},
{
@@ -25580,7 +25666,8 @@
"zh-chs": "停止進程#{0} \\“ {1} \\”?",
"xloc": [
"default-mobile.handlebars->9->290",
- "default.handlebars->27->806"
+ "default.handlebars->27->806",
+ "desktop.handlebars->3->43"
]
},
{
@@ -26593,7 +26680,8 @@
"en": "Timeout",
"nl": "Time-out",
"xloc": [
- "default.handlebars->27->766"
+ "default.handlebars->27->766",
+ "desktop.handlebars->3->9"
]
},
{
@@ -26871,6 +26959,7 @@
"zh-chs": "切換查看模式",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1",
"player.handlebars->p11->deskarea0->deskarea1->1"
]
},
@@ -26922,7 +27011,8 @@
"ru": "Разрешить мышь и ввод с клавиатуры",
"zh-chs": "切換鼠標和鍵盤輸入",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->9"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->9",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->9"
]
},
{
@@ -27245,7 +27335,9 @@
"default.handlebars->27->1295",
"default.handlebars->27->1298",
"default.handlebars->27->797",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3",
+ "desktop.handlebars->3->35",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3"
]
},
{
@@ -28402,7 +28494,8 @@
"en": "User \\\"{0}\\\"",
"nl": "Gebuiker \\\"{0}\\\"",
"xloc": [
- "default.handlebars->27->774"
+ "default.handlebars->27->774",
+ "desktop.handlebars->3->17"
]
},
{
@@ -28773,7 +28866,8 @@
"zh-chs": "非常慢",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog7->d7meshkvm->7->d7framelimiter->7",
- "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->7"
+ "default.handlebars->container->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->7",
+ "desktop.handlebars->p11->dialog->dialogBody->dialog7->d7meshkvm->7->d7framelimiter->7"
]
},
{
@@ -28939,7 +29033,8 @@
"ko": "사용자가 액세스 권한을 부여하기를 기다리는 중 ...",
"zh-chs": "正在等待用户授予访问权限...",
"xloc": [
- "default.handlebars->27->763"
+ "default.handlebars->27->763",
+ "desktop.handlebars->3->6"
]
},
{
@@ -29247,7 +29342,8 @@
"zh-chs": "贏得",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->5",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->3"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->3",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->3"
]
},
{
@@ -29265,7 +29361,8 @@
"zh-chs": "勝負",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->7",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->5"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->5",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->5"
]
},
{
@@ -29283,7 +29380,8 @@
"zh-chs": "贏+ L",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->11",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->9"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->9",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->9"
]
},
{
@@ -29300,7 +29398,8 @@
"ru": "Win+Влево",
"zh-chs": "贏+左",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->23"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->23",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->23"
]
},
{
@@ -29318,7 +29417,8 @@
"zh-chs": "Win + M",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->13",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->11"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->11",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->11"
]
},
{
@@ -29336,7 +29436,8 @@
"zh-chs": "Win + R",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->17",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->15"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->15",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->15"
]
},
{
@@ -29353,7 +29454,8 @@
"ru": "Win+Вправо",
"zh-chs": "贏+右",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->25"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->25",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->25"
]
},
{
@@ -29371,7 +29473,8 @@
"zh-chs": "勝+勝",
"xloc": [
"default-mobile.handlebars->dialog->3->dialog3->deskkeys->9",
- "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->7"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea4->3->deskkeys->7",
+ "desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->7"
]
},
{
@@ -31356,7 +31459,8 @@
"en": "{0} connections",
"nl": "{0} verbindingen",
"xloc": [
- "default.handlebars->27->773"
+ "default.handlebars->27->773",
+ "desktop.handlebars->3->16"
]
},
{
@@ -31837,7 +31941,8 @@
"ru": "↺",
"ko": "↺",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1->5"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1->5",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1->5"
]
},
{
@@ -31852,7 +31957,8 @@
"ru": "↻",
"ko": "↻",
"xloc": [
- "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1->7"
+ "default.handlebars->container->column_l->p11->deskarea0->deskarea1->1->7",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1->7"
]
},
{
@@ -31868,6 +31974,7 @@
"ko": "⇲",
"xloc": [
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->1->3",
+ "desktop.handlebars->p11->deskarea0->deskarea1->1->3",
"player.handlebars->p11->deskarea0->deskarea1->1->1"
]
},
@@ -31951,6 +32058,8 @@
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->idx_deskFullBtn2",
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->idx_termFullBtn2",
"default.handlebars->container->dialog->dialogHeader->id_dialogclose",
+ "desktop.handlebars->p11->deskarea0->deskarea1->3->idx_deskFullBtn2",
+ "desktop.handlebars->p11->dialog->dialogHeader->id_dialogclose",
"player.handlebars->p11->dialog->dialogHeader->id_dialogclose",
"xterm.handlebars->p11->dialog->dialogHeader->id_dialogclose"
]
diff --git a/views/desktop.handlebars b/views/desktop.handlebars
new file mode 100644
index 00000000..25d7ca57
--- /dev/null
+++ b/views/desktop.handlebars
@@ -0,0 +1,1110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
⇲
+
↺
+
↻
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Agent Remote Desktop
+
+
+
Scaling
+
+
+
+
Frame rate
+
+
+
+
+
Intel® AMT Hardware KVM
+
+
Image Encoding
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/webserver.js b/webserver.js
index 1e38d478..c849802c 100644
--- a/webserver.js
+++ b/webserver.js
@@ -2863,7 +2863,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
try { res.sendFile(obj.path.join(recordingsPath, req.query.file)); } catch (ex) { res.sendStatus(404); }
}
- // Server the player page
+ // Serve the player page
function handlePlayerRequest(req, res) {
const domain = checkUserIpAddress(req, res);
if (domain == null) { return; }
@@ -2873,6 +2873,17 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
render(req, res, getRenderPage('player', req, domain), getRenderArgs({}, req, domain));
}
+ // Serve the guest desktop page
+ function handleDesktopRequest(req, res) {
+ const domain = checkUserIpAddress(req, res);
+ if (domain == null) { return; }
+
+ var httpsPort = ((obj.args.aliasport == null) ? obj.args.port : obj.args.aliasport); // Use HTTPS alias port is specified
+ parent.debug('web', 'handleDesktopRequest: sending guest desktop page');
+ res.set({ 'Cache-Control': 'no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0' });
+ render(req, res, getRenderPage('desktop', req, domain), getRenderArgs({ domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27'), serverDnsName: obj.getWebServerName(domain), serverRedirPort: args.redirport, serverPublicPort: httpsPort }, req, domain));
+ }
+
// Handle domain redirection
obj.handleDomainRedirect = function (req, res) {
const domain = checkUserIpAddress(req, res);
@@ -4574,6 +4585,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
obj.app.get(url + 'recordings.ashx', handleGetRecordings);
obj.app.get(url + 'player.htm', handlePlayerRequest);
obj.app.get(url + 'player', handlePlayerRequest);
+ obj.app.get(url + 'desktop', handleDesktopRequest);
obj.app.ws(url + 'amtactivate', handleAmtActivateWebSocket);
obj.app.ws(url + 'agenttransfer.ashx', handleAgentFileTransfer); // Setup agent to/from server file transfer handler
obj.app.ws(url + 'meshrelay.ashx', function (ws, req) {