Merge pull request #189 from elastalink/master

Styles moved to CSS, added grid for fullscreen, toggle for screen scaling and menu position
This commit is contained in:
Ylian Saint-Hilaire 2019-04-16 13:59:33 -07:00 committed by GitHub
commit 37a859719b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 723 additions and 338 deletions

View File

@ -1,4 +1,9 @@
body {

html, body {
width: 100%;
height: 100%;
}
body {
margin: 0;
padding: 0;
border: 0;
@ -6,7 +11,7 @@
font-size: 13px;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
background-color: #d3d9d6;
overflow-y: hidden;
/* overflow-y: hidden; */
}
#container {
@ -21,22 +26,49 @@
border-left: 1px solid #b7b7b7;
padding: 0;
}
.fullscreen.menu_stack #container {
grid-template-rows: 66px 48px auto 45px;
grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
grid-template-areas:
"header header"
"nav nav"
"content content"
"footer footer";
}
.fullscreen #container {
width: 100%;
min-width: 700px;
min-width: 100%;
min-height: 0px;
border-right: 0px none #b7b7b7;
border-left: 0px none #b7b7b7;
height: 100%;
position: relative;
display: grid;
grid-gap: 0px;
grid-template-areas:
"header header"
"sidebar nav"
"sidebar content"
"sidebar footer";
grid-template-columns: 90px auto;
grid-template-rows: 66px 24px auto 45px;
}
.fulldesk #container {
width: 100%;
height: 100%;
min-width: 700px;
min-height: 0px;
border-right: 0px none #b7b7b7;
border-left: 0px none #b7b7b7;
position: unset;
position: relative;
display: grid !important;
grid-gap: 0px;
grid-template-areas: "content"!important;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important;
grid-template-rows: repeat(auto-fit, minmax(100px, 1fr))!important;
}
#masthead {
@ -57,6 +89,7 @@
.fullscreen #masthead {
width: 100%;
grid-area: header;
}
.fulldesk #masthead {
@ -115,15 +148,20 @@
#page_leftbar {
height: calc(100vh - 66px);
width: 90px;
position: absolute;
z-index: 1000;
background: #113962;
background: linear-gradient(to bottom, #104893 0%,#113962 100%);
color: white;
overflow-y: hidden;
display: none;
}
.fullscreen #page_leftbar {
grid-area: sidebar;
display: block;
}
.menu_stack #page_leftbar {
display: none;
}
.arg_hide #page_leftbar {
display: none;
}
@ -131,6 +169,10 @@
display: none;
}
#topbarmaster {
grid-area: nav;
}
#topbar {
/* height: 24px; */
position: relative;
@ -157,21 +199,41 @@
top: 3px;
right: 6px
}
#toggle2 {
cursor: pointer;
color: white;
position: absolute;
top: 3px;
right: 26px;
display: none;
}
.fullscreen #toggle2 {
display: block;
}
#MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
width: 100%;
height: 22px
height: 24px;
color: white;
background-color: #808080;
}
.menu_stack #UserDummyMenu {
display: none;
}
#MainMenuSpan {
display: table;
}
.fullscreen #MainMenuSpan {
display: none;
}
.fulldesk #MainMenuSpan {
display: none;
}
.menu_stack #MainMenuSpan {
display: block;
}
#column_l {
position: relative;
@ -180,20 +242,20 @@
margin: 0;
padding: 0 15px;
background-color: #fff;
/*max-height: calc(100vh - 111px);*/
/* max-height: calc(100vh - 151px); */
min-width: unset;
}
.room4submenu {
max-height: calc(100vh - 159px) !important;
}
.fullscreen #column_l {
height: calc(100vh - 135px);
width: calc(100% - 30px);
grid-area: content;
width: unset;
/* height: calc(100vh - 111px);
width: calc(100% - 30px); */
overflow-y: auto;
}
.fulldesk #column_l {
height: 100%;
width: 100%;
height: unset;
margin-left: unset;
@ -205,6 +267,10 @@
display: none;
}
.room4submenu {
min-height: calc(100vh - 159px);
}
#centralTable {
width: 100%;
}
@ -254,6 +320,7 @@
}
#footer {
grid-area: footer;
clear: both;
overflow: auto;
width: 100%;
@ -315,6 +382,12 @@
text-decoration: none;
}
#verifyEmailId2 {
color:yellow;
margin-left:3px;
cursor:pointer;
}
#dialog {
z-index: 1000;
background-color: #EEE;
@ -332,6 +405,18 @@
background-color: #003366;
color: #FFF;
border-radius: 5px 5px 0 0;
margin-bottom: 6px;
}
#id_dialogclose {
float: right;
padding: 3px;
margin-right: 3px;
cursor: pointer;
}
#id_dialogtitle {
padding: 5px;
}
#dialogBody {
@ -360,14 +445,62 @@
padding:10px;
}
#dialog2, #dialog3 {
margin: auto;
#dialog2, #dialog3, #dialog7 {
margin: 3px;
}
#d3uploadMode, #d3localFile {
float:right;
width:260px;
}
#d3serveraction {
width: 100%;
background-color: #d3d9d6;
text-align: left;
padding: 3px;
}
#d3serverfiles {
width: 100%;
height: 150px;
background-color: white;
padding: 2px;
border: 1px solid gray;
overflow-y: scroll;
}
#d7bitmapquality, #d7bitmapquality, #d7bitmapscaling, #d7framelimiter, #d7desktopmode {
float: right;
width: 200px;
height: 20px;
}
#dialog7 h4 {
width:100%;
border-bottom: 1px solid gray;
}
#d7meshkvm div, #d7amtkvm div, #d3upload, #d3localmode {
margin:3px 0 3px 0;
display: flex;
justify-content: space-between;
}
#d7otherset {
display: block;
border: 1px solid #666;
width: 200px;
height: 60px;
overflow-y: scroll;
background-color: white;
}
#idx_dlgButtonBar {
padding: 10px;
margin-bottom: 20px;
margin-bottom: 5px;
overflow: auto;
}
#idx_dlgCancelButton {
@ -398,7 +531,7 @@
#idx_deskFullBtn2 {
float: left;
font-size: large;
font-size: 16px;
cursor: pointer;
display: none;
}
@ -543,6 +676,14 @@
font-size: 10px;
}
#p2AccountActions .mL {
margin-left: 40px;
}
#p2ServerActions .mL {
margin-left: 40px;
}
.newMeshBtn {
background: url(../images/icon-addnew.png) no-repeat 0px 0px;
height: 12px;
@ -552,10 +693,14 @@
padding-left: 15px;
}
#p2noMeshFound, #p2ServerActionsBackup, #p2ServerActionsRestore, #p2ServerActionsVersion, #p2ServerActionsErrors, #serverStats {
#p2noMeshFound, #serverStats {
margin-left:40px;
}
#p2ServerActionsBackup, #p2ServerActionsRestore, #p2ServerActionsVersion, #p2ServerActionsErrors {
margin-left:0px;
}
.pTable {
width: 100%;
height: 24px;
@ -580,7 +725,7 @@
}
#p3events {
height: calc(100vh - 243px);
height: calc(100vh - 270px);
overflow-y: scroll
}
@ -599,6 +744,10 @@
width: 230px;
}
#p5toolbar {
width: 100%;
}
#p5filehead {
width: 100%;
background-color: #d3d9d6;
@ -618,7 +767,7 @@
#p5filetable {
width: 100%;
height: calc(100vh - 294px);
height: calc(100vh - 219px);
overflow: auto;
-webkit-user-select: none;
position: relative;
@ -631,6 +780,9 @@
-webkit-user-select: none;
background-color: lightsteelblue;
}
#p5PublicShare div {
padding: 4px;
}
#bigok {
width: 256px;
@ -723,6 +875,14 @@
font-size: x-small;
}
#dp10devicevalue {
width: 230px;
}
.fulldesk #p11 {
height: 100%;
}
#MainComputerImage {
border-width: 0px;
height: 200px;
@ -763,7 +923,6 @@
top: 0;
right: 0;
border-left: 2px solid lightgray;
display: none;
}
#DeskToolsRefreshButton {
float: right;
@ -774,6 +933,7 @@
a {
color: #036;
text-decoration: underline;
cursor: pointer;
}
.i1 {
@ -1046,7 +1206,7 @@ a {
}
.style7 {
font-size: large;
font-size: 22px;
background-color: #FFFFFF;
width: 180px;
}
@ -1071,11 +1231,20 @@ a {
background-color: #D3D9D6;
}
.pTable .style14 {
float: left;
}
.auto-style1 {
text-align: right;
background-color: #D3D9D6;
}
#pTable .auto-style1 {
height: 100%;
float: right;
}
.icon2 {
float: left;
margin: 7px;
@ -1215,7 +1384,7 @@ a {
.h1 {
background-position: 0% 0%;
width: 14px;
height: 100%;
height: 24px;
/* fallback (Opera) */
/* Mozilla: */
/* Chrome, Safari:*/
@ -1229,13 +1398,13 @@ a {
height: 100%;
width: 20px;
float: right;
background-color: #ffffff
background-color: #ffffff;
}
.h2 {
background-position: 0% 0%;
width: 14px;
height: 100%;
height: 24px;
/* fallback (Opera) */
/* Mozilla: */
/* Chrome, Safari:*/
@ -1433,13 +1602,107 @@ a {
padding: 4px
}
.deskareaicon {
cursor: pointer;
border: none;
float: right;
font-size: 130%;
margin-right: 4px;
}
.areaHead {
padding-top: 2px;
padding-bottom: 2px;
background: #C0C0C0;
}
.areaProgress {
background-color: gray;
}
.areaProgress div {
height: 2px;
width: 0%;
background-color:red;
}
.areaFoot {
padding-top: 2px;
padding-bottom: 2px;
background: #C0C0C0;
}
.toright2 {
float: right;
text-align: right;
padding-right: 4px;
}
#deskarea0 {
width: 100%;
padding: 0px;
padding: 0px;
margin-top: 0px;
}
.fulldesk #deskarea0 {
min-width: 100%;
min-height: 0px;
height: 100%;
position: relative;
display: grid;
grid-gap: 0px;
grid-template-areas:
"deskarea1"
"deskarea2"
"deskarea3"
"deskarea4";
/* grid-template-columns: 90px auto; */
grid-template-rows: 24px max-content auto max-content;
}
#deskarea0 .mR {
margin-right: 3px;
}
#deskarea1 {
grid-area: deskarea1;
}
#deskarea2 {
grid-area: deskarea2;
background-color: gray;
}
#progressbar {
height:2px;
width:0%;
background-color:red;
}
#deskarea3x {
background: black;
text-align: center;
position: relative;
overflow: hidden;
width: 100%;
max-height: calc(100vh - 292px); /* + 24px hight of submenu */
height: calc(100vh - 292px);
}
.room4submenu #deskarea3x {
max-height: calc(100vh - 292px);
height: calc(100vh - 292px);
}
.fulldesk #deskarea3x {
grid-area: deskarea3;
max-height: none;
height: unset;
}
#DeskFocus {
overflow: hidden;
color: transparent;
@ -1449,7 +1712,13 @@ a {
}
#DeskParent {
overflow:hidden
margin: 0;
overflow:hidden;
height: 100%;
width: 100%;
position: absolute;
right: 0;
top: 0;
}
#Desk {
@ -1459,7 +1728,6 @@ a {
margin-left: 0px;
}
#deskToolsBar {
position: absolute;
padding: 3px;
@ -1471,6 +1739,27 @@ a {
cursor: pointer;
}
#deskToolsArea {
position: absolute;
top: 26px;
left: 4px;
right: 4px;
bottom: 4px;
background-color: lightgray;
text-align: left;
}
#deskToolsHeader {
border-bottom: 1px solid darkgray;
padding: 3px;
}
#deskToolsHeader .colmn1 {
width: 50px;
padding-right: 5px;
float: left;
}
#DeskToolsProcesses {
overflow-y: scroll;
position: absolute;
@ -1486,6 +1775,20 @@ a {
background-color: #EFE8B6;
}
#deskarea4 {
grid-area: deskarea4;
}
#DeskChatButton, #DeskNotifyButton, #DeskOpenWebButton {
float: right;
margin-top: 1px;
margin-right: 4px;
cursor: pointer;
}
#DeskClip, #DeskControlSpan, #specialkeylist {
margin-left:6px;
}
.userTableHeader {
border-bottom: 1pt solid lightgray;
@ -1493,6 +1796,137 @@ a {
padding-bottom: 4px;
}
#deskkeys {
margin-left: 6px;
}
#p12BackButton {
float: left;
}
#termTable {
width: 100%;
padding: 0px;
padding: 0px;
margin-top: 0px;
}
#termarea3x {
background: black;
text-align: center;
height: 500px;
position: relative;
}
#Term {
background: black;
margin: 0;
padding: 0;
}
#p13toolbar {
width: 100%
}
#p13toolbar .areaHead {
border-bottom: 2px solid black;
}
#p13toolbar .areaHead2 {
width: 100%;
background-color: #d3d9d6;
text-align: left;
padding: 4px;
}
#p13toolbar .areaHead3 {
background-color:#E4E9E7;
height:28px;
}
#p13filetable {
width: 100%;
height: calc(100vh - 346px);
overflow: auto;
-webkit-user-select: none;
}
#p13bigok {
width: 256px;
overflow: hidden;
position: absolute;
left: 337px;
top: 200px;
text-align: center;
font-size: 1600%;
color: #AAAAAA;
}
#p13bigfail {
width: 256px;
overflow: hidden;
position: absolute;
left: 337px;
top: 200px;
text-align: center;
font-size: 1600%;
color: #AAAAAA;
}
#p14iframe {
width: 100%;
height: calc(100vh - 242px);
border: 0;
overflow: hidden;
}
#p13toolbarBottom, #p13toolbar {
width: 100%;
}
#consoleTable {
width: 100%;
padding: 0px;
padding: 0px;
margin-top: 0px;
}
#p15agentConsole {
background: black;
margin: 0;
padding: 0;
color: lightgray;
width: 100%;
height: calc(100vh - 296px);
max-height: 500px;
position: relative;
}
#p15coreName {
padding: 4px;
display: inline-block;
}
#p15agentConsoleText {
position: absolute;
margin: 0;
padding: 0;
top: 0;
bottom: 0;
left: 0;
right: 0;
overflow-y: scroll;
overflow-x: auto;
}
#p16events, #p31events {
max-height: calc(100vh - 269px);
overflow-y: auto;
}
#p40 {
height:calc(100vh - 191px)
}
.viewSelector {
width:32px;
height:32px;

View File

@ -53,7 +53,6 @@
<!-- main page -->
<div id=container>
<div id="notifiyBox" class="notifiyBox" style="display:none"></div>
<div id=mastheadx></div>
<div id=masthead class=noselect>
<div class="title">{{{title}}}</div>
<div class="title2">{{{title2}}}</div>
@ -83,12 +82,13 @@
<div class="lb6"></div>
</div>
</div>
<div id="page_content">
{{!-- <div id="page_content"> --}}
<div id=topbarmaster>
<div id=topbar class=noselect>
<div>
<div style="position:relative">
<div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div>
<div id=toggle2 title="Toggle Main Menu position" onclick="toggleStackMenu(1)">&varr;</div>
<table id=MainMenuSpan cellpadding=0 cellspacing=0 class=style1>
<tr>
<td id=MainMenuMyDevices class="topbar_td style3x" onclick=go(1)>My Devices</td>
@ -253,7 +253,7 @@
</div>
<div id="p2AccountActions">
<p><strong>Account actions</strong></p>
<p style="margin-left:40px">
<p class="mL">
<span id="verifyEmailId" style="display:none"><a onclick="account_showVerifyEmail()">Verify email</a><br /></span>
<a onclick="account_showChangeEmail()">Change email address</a><br />
<a onclick="account_showChangePassword()">Change password</a><span id="p2nextPasswordUpdateTime"></span><br />
@ -272,9 +272,9 @@
<h1>My Events</h1>
<table class="pTable">
<tr>
<td class=h1></td>
<td>&nbsp;<input id=p2deleteall type=button onclick=showDeleteAllEventsDialog() style="display:none" value="Delete All..." /></td>
<td class=auto-style1>
<td class="h1"></td>
<td>&nbsp;<input id="p2deleteall" type=button onclick=showDeleteAllEventsDialog() style="display:none" value="Delete All..." /></td>
<td class="auto-style1">
Show
<select id=p3limitdropdown onchange=refreshEvents()>
<option value=60>Last 60</option>
@ -284,7 +284,7 @@
<option value=1000>Last 1000</option>
</select>
</td>
<td class=h2></td>
<td class="h2"></td>
</tr>
</table>
<div id=p3events style=""></div>
@ -293,8 +293,8 @@
<h1>My Users</h1>
<table class="pTable">
<tr>
<td class=h1></td>
<td class=style14>
<td class="h1"></td>
<td class="style14">
<div style="float:right">
<input type=button onclick=showUserBroadcastDialog() style=margin-right:6px value="Broadcast" />
</div>
@ -303,14 +303,14 @@
<input id=UserSearchInput type=text style=width:120px;margin-left:6px placeholder=Filter onchange=onUserSearchInputChanged() onkeyup=onUserSearchInputChanged() autocomplete=off onfocus=onUserSearchFocus(1) onblur=onUserSearchFocus(0) />
</div>
</td>
<td class=h2></td>
<td class="h2"></td>
</tr>
</table>
<div id="p3users"></div>
</div>
<div id=p5 style="display:none">
<h1>My Files</h1>
<table id="p5toolbar" style="width:100%" cellpadding="0" cellspacing="0">
<table id="p5toolbar" cellpadding="0" cellspacing="0">
<tr>
<td id="p5filehead" valign=bottom>
<div id="p5rightOfButtons"></div>
@ -351,7 +351,7 @@
<input type=submit id=p5fileCatchAllSubmit style="display:none" />
</form>
-->
<div id="p5PublicShare" style=""><div style="padding:4px">These files are shared publicly, click "link" to get public url.</div></div>
<div id="p5PublicShare" style=""><div>These files are shared publicly, click "link" to get public url.</div></div>
<div id="bigok" style="display:none"><b>&checkmark;</b></div>
<div id="bigfail" style="display:none"><b>&#10007;</b></div>
<span id="p5files"></span>
@ -363,13 +363,15 @@
<div id=p6 style="display:none">
<img id=MainMeshImage src="serverpic.ashx">
<h1>My Server</h1>
<p id="p2ServerActions"><strong>Server actions</strong></p>
<p style="margin-left:40px">
<div id="p2ServerActionsBackup"><a href="/backup.zip" rel="noreferrer noopener" target="_blank">Download server backup</a></div>
<div id="p2ServerActionsRestore"><a onclick="server_showRestoreDlg()">Restore server with backup</a></div>
<div id="p2ServerActionsVersion"><a onclick="server_showVersionDlg()">Check server version</a></div>
<div id="p2ServerActionsErrors"><a onclick="server_showErrorsDlg()">Show server error log</a></div>
</p>
<div id="p2ServerActions">
<p><strong>Server actions</strong></p>
<div class="mL">
<div id="p2ServerActionsBackup"><a href="/backup.zip" rel="noreferrer noopener" target="_blank">Download server backup</a></div>
<div id="p2ServerActionsRestore"><a onclick="server_showRestoreDlg()">Restore server with backup</a></div>
<div id="p2ServerActionsVersion"><a onclick="server_showVersionDlg()">Check server version</a></div>
<div id="p2ServerActionsErrors"><a onclick="server_showErrorsDlg()">Show server error log</a></div>
</div>
</div>
<br /><strong>Server Statistics</strong><br /><br />
<div id="serverStats">
<div id="serverCpuChartView" style="display:none">
@ -419,81 +421,77 @@
<div class="icon2"></div>
<div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
</div>
<table id=deskarea0 cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
<tr id=deskarea1>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
<div style="float:right;text-align:right">
<span id="p14power"></span>&nbsp;
<div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Left" onclick="drotate(-1)">&olarr;</div>
<div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Right" onclick="drotate(1)">&orarr;</div>
<input id="deskFocusBtn" type="button" title="Toggle focus mode, when active only the region around the mouse is updated" onkeypress="return false" onkeydown="return false" value="Focus All" onclick="deskToggleFocus()" style="margin-right:3px;display:none">
<input id="deskSaveBtn" type="button" title="Save a screenshot of the remote desktop" onkeypress="return false" onkeydown="return false" value="Save..." onclick=deskSaveImage() style=margin-right:3px>
<input id="deskActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() style=margin-right:3px />
<input id="deskActionsSettings" type="button" value="Settings..." title="Edit remote desktop settings" onkeypress="return false" onkeydown="return false" onclick="showDesktopSettings()" style="margin-right:3px">
<input type="button" title="Change the power state of the remote machine" onkeypress="return false" onkeydown="return false" value="Power Actions..." onclick="showPowerActionDlg()" style="margin-right:3px;display:none">
<div id=deskarea0 cellpadding=0 cellspacing=0>
<div id=deskarea1 class="areaHead">
<div class="toright2">
<span id="p14power"></span>&nbsp;
<div class='deskareaicon' title="Toggle Aspect Ratio" onclick="toggleAspectRatio(1)">&#8690;</div>
<div class='deskareaicon' title="Rotate Left" onclick="drotate(-1)">&olarr;</div>
<div class='deskareaicon' title="Rotate Right" onclick="drotate(1)">&orarr;</div>
<input id="deskFocusBtn" type="button" title="Toggle focus mode, when active only the region around the mouse is updated" onkeypress="return false" onkeydown="return false" value="Focus All" onclick="deskToggleFocus()" style="margin-right:3px;display:none">
<input id="deskSaveBtn" type="button" title="Save a screenshot of the remote desktop" onkeypress="return false" onkeydown="return false" value="Save..." onclick=deskSaveImage() class="mR">
<input id="deskActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() class="mR" />
<input id="deskActionsSettings" type="button" value="Settings..." title="Edit remote desktop settings" onkeypress="return false" onkeydown="return false" onclick="showDesktopSettings()" class="mR">
<input type="button" title="Change the power state of the remote machine" onkeypress="return false" onkeydown="return false" value="Power Actions..." onclick="showPowerActionDlg()" style="display:none">
</div>
<div>
<div id="idx_deskFullBtn2" onclick=deskToggleFull(event)>&nbsp;&#x2716;</div>
<input type="button" id="autoconnectbutton1" value="AutoConnect" onclick=autoConnectDesktop(event) onkeypress="return false" onkeydown="return false" style="display:none">
<span id=connectbutton1span>&nbsp;<input type=button id=connectbutton1 value="Connect" onclick=connectDesktop(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id=connectbutton1hspan>&nbsp;<input type=button id=connectbutton1h value="HW Connect" onclick=connectDesktop(event,2) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id=disconnectbutton1span>&nbsp;<input type=button id=disconnectbutton1 value="Disconnect" onclick=connectDesktop(event,0) onkeypress="return false" onkeydown="return false"></span>
&nbsp;<span id="deskstatus">Disconnected</span>
</div>
</div>
<div id=deskarea2 style="">
<div class="areaProgress"><div id="progressbar" style=""></div></div>
</div>
<div id=deskarea3x>
<div id=DeskFocus oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></div>
<div id=DeskParent>
<canvas id=Desk width=640 height=480 oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event) onmousewheel=dmousewheel(event)></canvas>
</div>
<div id=DeskTools>
<a id=DeskToolsRefreshButton style="" onclick="refreshDeskTools()">Refresh</a>
<div id=DeskToolsBar>Processes</div>
<div id=deskToolsArea>
<div id=deskToolsHeader>
<a class="colmn1" title="Sort by process id" onclick=sortProcess(0)>PID</a>
<a class="colmn2" title="Sort by name" onclick=sortProcess(1)>Name</a></div>
<div id="DeskToolsProcesses" style=""></div>
</div>
<div>
<div id="idx_deskFullBtn2" onclick=deskToggleFull(event)>&nbsp;&#x2716;</div>
<input type="button" id="autoconnectbutton1" value="AutoConnect" onclick=autoConnectDesktop(event) onkeypress="return false" onkeydown="return false" style="display:none">
<span id=connectbutton1span>&nbsp;<input type=button id=connectbutton1 value="Connect" onclick=connectDesktop(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id=connectbutton1hspan>&nbsp;<input type=button id=connectbutton1h value="HW Connect" onclick=connectDesktop(event,2) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id=disconnectbutton1span>&nbsp;<input type=button id=disconnectbutton1 value="Disconnect" onclick=connectDesktop(event,0) onkeypress="return false" onkeydown="return false"></span>
&nbsp;<span id="deskstatus">Disconnected</span>
</div>
</td>
</tr>
<tr id=deskarea2>
<td>
<div style=background-color:gray><div id=progressbar style=height:2px;width:0%;background-color:red></div></div>
</td>
</tr>
<tr id=deskarea3>
<td id=deskarea3x style="">
<div id=DeskFocus oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></div>
<div id=DeskParent>
<canvas id=Desk width=640 height=480 oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event) onmousewheel=dmousewheel(event)></canvas>
</div>
<div id=DeskTools>
<a id=DeskToolsRefreshButton style="" onclick="refreshDeskTools()">Refresh</a>
<div id=DeskToolsBar>Processes</div>
<div style="position:absolute;top:26px;left:4px;right:4px;bottom:4px;background-color:lightgray;text-align:left">
<div style="border-bottom:1px solid darkgray;padding:3px"><a style=width:50px;padding-right:5px;float:left;cursor:pointer title="Sort by process id" onclick=sortProcess(0)>PID</a><a style=cursor:pointer title="Sort by name" onclick=sortProcess(1)>Name</a></div>
<div id="DeskToolsProcesses" style=""></div>
</div>
</div>
</td>
</tr>
<tr id=deskarea4>
<td style=padding-top:2px;padding-bottom:2px;background:#C0C0C0>
<div style=float:right;text-align:right>
<select id=termdisplays style="display:none" onchange=deskSetDisplay(event) onclick=deskGetDisplayNumbers(event)></select>&nbsp;
<input id=DeskToolsButton type=button value=Tools title="Toggle tools view" onkeypress="return false" onkeydown="return false" onclick="toggleDeskTools()">&nbsp;
<span id=DeskChatButton style="float:right;margin-top:1px;margin-right:4px;cursor:pointer" title="Open chat window to this computer"><img src='images/icon-chat.png' onclick=deviceChat() height=16 width=16 style=padding-top:2px /></span>
<span id=DeskNotifyButton style="float:right;margin-top:1px;margin-right:4px;cursor:pointer" title="Display a notification on the remote computer"><img src='images/icon-notify.png' onclick=deviceToastFunction() height=16 width=16 style=padding-top:2px /></span>
<span id=DeskOpenWebButton style="float:right;margin-top:1px;margin-right:4px;cursor:pointer" title="Open a web address on remote computer"><img src='images/icon-url2.png' onclick=deviceUrlFunction() height=16 width=16 style=padding-top:2px /></span>
</div>
<div>
<select style="margin-left:6px" id="deskkeys">
<option value=5>Win</option>
<option value=0>Win+Down</option>
<option value=1>Win+Up</option>
<option value=2>Win+L</option>
<option value=3>Win+M</option>
<option value=4>Shift+Win+M</option>
<option value=6>Win+R</option>
</select>
<input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()">
<input id="DeskClip" style="margin-left:6px;display:none" type="button" value="Clipboard" onkeypress="return false" onkeydown="return false" onclick="showDeskClip()">
<input id="DeskCAD" type="button" value="Ctrl-Alt-Del" onkeypress="return false" onkeydown="return false" onclick="sendCAD()">
<label><span id="DeskControlSpan" style="margin-left:6px" title="Toggle mouse and keyboard input"><input id="DeskControl" type="checkbox" onkeypress="return false" onkeydown="return false" onclick="toggleKvmControl()">Input</span></label>&nbsp;
</div>
</td>
</tr>
</table>
</div>
</div>
<div id=deskarea4 class="areaFoot">
<div class="toright2">
<select id=termdisplays style="display:none" onchange=deskSetDisplay(event) onclick=deskGetDisplayNumbers(event)></select>&nbsp;
<input id=DeskToolsButton type=button value=Tools title="Toggle tools view" onkeypress="return false" onkeydown="return false" onclick="toggleDeskTools()">&nbsp;
<span id=DeskChatButton class="deskarea" title="Open chat window to this computer"><img src='images/icon-chat.png' onclick=deviceChat() height=16 width=16 style=padding-top:2px /></span>
<span id=DeskNotifyButton title="Display a notification on the remote computer"><img src='images/icon-notify.png' onclick=deviceToastFunction() height=16 width=16 style=padding-top:2px /></span>
<span id=DeskOpenWebButton title="Open a web address on remote computer"><img src='images/icon-url2.png' onclick=deviceUrlFunction() height=16 width=16 style=padding-top:2px /></span>
</div>
<div>
<select id="deskkeys">
<option value=5>Win</option>
<option value=0>Win+Down</option>
<option value=1>Win+Up</option>
<option value=2>Win+L</option>
<option value=3>Win+M</option>
<option value=4>Shift+Win+M</option>
<option value=6>Win+R</option>
</select>
<input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()">
<input id="DeskClip" style="" type="button" value="Clipboard" onkeypress="return false" onkeydown="return false" onclick="showDeskClip()">
<input id="DeskCAD" type="button" value="Ctrl-Alt-Del" onkeypress="return false" onkeydown="return false" onclick="sendCAD()">
<label><span id="DeskControlSpan" title="Toggle mouse and keyboard input"><input id="DeskControl" type="checkbox" onkeypress="return false" onkeydown="return false" onclick="toggleKvmControl()">Input</span></label>&nbsp;
</div>
</div>
</div>
</div>
<div id=p12 style="display:none">
<div id="p12title">
<div id="p12BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<div id="p12BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1>Terminal - <span id=p12deviceName></span></h1>
</div>
<div id="p12warning" onclick=showFeaturesDlg()>
@ -504,11 +502,11 @@
<div class="icon2"></div>
<div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
</div>
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
<table id=termTable cellpadding=0 cellspacing=0>
<tr>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
<div style="float:right;text-align:right">
<input id="termActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() style=margin-right:3px />
<td class="areaHead">
<div class="toright2">
<input id="termActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction()/>
</div>
<div>
<input type="button" id="autoconnectbutton2" value="AutoConnect" onclick=autoConnectTerminal(event) onkeypress="return false" onkeydown="return false" style="display:none">
@ -521,23 +519,23 @@
</tr>
<tr>
<td>
<div style="background-color:gray"><div id="termprogressbar" style="height:2px;width:0%;background-color:red"></div></div>
<div class="areaProgress"><div id="termprogressbar" style=""></div></div>
</td>
</tr>
<tr>
<td style="background:black;text-align:center;height:500px;position:relative">
<pre id="Term" style="background:black;margin:0;padding:0"></pre>
<td id="termarea3x">
<pre id="Term"></pre>
</td>
</tr>
<tr>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
<div style="float:right;text-align:right">
<td class="areaFoot">
<div class="toright2">
<span id="terminalSettingsButtons" style="display:none">
<input id="id_tcrbutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="CR+LF" title="Toggle what the return key will send" onclick="termToggleCr()">
<input id="id_tfxkeysbutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Intel (F10 = ESC+[OM)" title="Toggle F1 to F10 keys emulation type" onclick="termToggleFx()">
<input id="id_ttypebutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Extended Ascii" title="Toggle terminal emulation type" onclick="termToggleType()">
</span>
<select id="specialkeylist" onkeypress="return false" style="margin-left:5px"></select>
<select id="specialkeylist" onkeypress="return false"></select>
<input id="specialkeylistinput" type="button" onkeypress="return false" class="bottombutton" value="Send" title="Send the selected special key" onclick="sendSpecialKey()" />
</div>
<div>
@ -557,11 +555,11 @@
<div id="p13BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1>Files - <span id=p13deviceName></span></h1>
</div>
<table id="p13toolbar" style="width: 100%" cellpadding="0" cellspacing="0">
<table id="p13toolbar" cellpadding="0" cellspacing="0">
<tr>
<td style="background-color:#C0C0C0;border-bottom:2px solid black;padding:2px">
<div style="float:right;text-align:right">
<input id="filesActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() style=margin-right:3px />
<td class="areaHead">
<div class="toright2">
<input id="filesActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() />
</div>
<div>
<input id=p13AutoConnect value="AutoConnect" onclick=autoConnectFiles(event) onkeypress="return false" onkeydown="return false" type="button" style="display:none">
@ -571,8 +569,8 @@
</td>
</tr>
<tr>
<td style="width:100%;background-color:#d3d9d6;text-align:left;padding:4px" valign=bottom>
<div id="p13rightOfButtons" style="float:right;margin-top:3px"></div>
<td class="areaHead2" valign=bottom>
<div id="p13rightOfButtons" class="toright2"></div>
<div>
<input type=button id=p13FolderUp disabled="disabled" onclick="p13folderup()" value="Up" />&nbsp;
<input type=button id=p13SelectAllButton disabled="disabled" onclick="p13selectallfile()" value="Select All" onkeypress="return false" onkeydown="return false" />&nbsp;
@ -588,8 +586,8 @@
</td>
</tr>
<tr>
<td style="background-color:#E4E9E7;height:28px">
<div style=float:right>
<td class="areaHead3">
<div class="toright2">
<select id=p13sortdropdown onchange=p13updateFiles()>
<option value=1 selected="selected">Sort by name</option>
<option value=2>Sort by size</option>
@ -603,12 +601,12 @@
</td>
</tr>
</table>
<div id="p13filetable" style="width:100%;height:calc(100vh - 346px);overflow:auto;-webkit-user-select:none">
<div id="p13bigok" style="width:256px;overflow:hidden;position:absolute;left:337px;top:200px;text-align:center;font-size:1600%;color:#AAAAAA;display:none"><b>&checkmark;</b></div>
<div id="p13bigfail" style="width:256px;overflow:hidden;position:absolute;left:337px;top:200px;text-align:center;font-size:1600%;color:#AAAAAA;display:none"><b>&#10007;</b></div>
<div id="p13filetable" style="">
<div id="p13bigok" style="display:none"><b>&checkmark;</b></div>
<div id="p13bigfail" style="display:none"><b>&#10007;</b></div>
<span id="p13files"></span>
</div>
<table id="p13toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
<table id="p13toolbarBottom" cellpadding=0 cellspacing=0>
<tr><td class=style6>&nbsp;<span id="p13bottomstatus"></span></td></tr>
</table>
</div>
@ -617,18 +615,18 @@
<div id="p14BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1>Intel&reg; AMT - <span id=p14deviceName></span></h1>
</div>
<iframe id=p14iframe style="width:100%;height:calc(100vh - 242px);border:0;overflow:hidden" src="/commander.htm"></iframe>
<iframe id=p14iframe src="/commander.htm"></iframe>
</div>
<div id=p15 style="display:none">
<div id="p15title">
<div id="p15BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1><span id=p15deviceName></span></h1>
</div>
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
<table id="consoleTable" cellpadding=0 cellspacing=0>
<tr>
<td style=background:#C0C0C0>
<div style=float:right;padding-right:4px>
<div style=padding:4px;display:inline-block id=p15coreName title="Information about current core running on this agent"></div>
<td class="areaHead">
<div class="toright2">
<div id=p15coreName title="Information about current core running on this agent"></div>
<input type=button id=p15uploadCore value="Agent Action" onclick=p15uploadCore(event) title="Change the agent Java Script code module" />
</div>
<div id="p15statetext" style=padding:4px></div>
@ -636,16 +634,16 @@
</tr>
<tr>
<td>
<div style="background-color:gray"><div id="consoleprogressbar" style="height:2px;width:0%;background-color:red"></div></div>
<div class="areaProgress"><div id="consoleprogressbar" style=""></div></div>
</td>
</tr>
<tr>
<td id=p15agentConsole style="background:black;margin:0;padding:0;color:lightgray;width:100%;height:calc(100vh - 296px);max-height:500px;position:relative">
<pre id=p15agentConsoleText style="position:absolute;margin:0;padding:0;top:0;bottom:0;left:0;right:0;overflow-y:scroll;overflow-x:auto"></pre>
<td id=p15agentConsole>
<pre id=p15agentConsoleText></pre>
</td>
</tr>
<tr>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
<td class="areaFoot">
<table style="width:100%">
<tr>
<td style="width:99%">
@ -664,25 +662,24 @@
<div id="p16BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1>Events - <span id=p16deviceName></span></h1>
</div>
<div style="width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px">
<div class="h1pre">&nbsp;</div>
<div class="h1" style="float:left">&nbsp;</div>
<!--<div class=style14 style=height:100%;float:left>&nbsp;&nbsp;<input id=p31deleteall type=button style="display:none" value="Delete All..." />&nbsp;</div>-->
<div class="style14" style="float:left">&nbsp;&nbsp;<input type=button value=Refresh onclick=refreshDeviceEvents() />&nbsp;</div>
<div class="auto-style1" style="height:100%;float:right">
Show
<select id=p16limitdropdown onchange=refreshDeviceEvents()>
<option value=60>Last 60</option>
<option value=120>Last 120</option>
<option value=250>Last 250</option>
<option value=500>Last 500</option>
<option value=1000>Last 1000</option>
</select>
<div class="h2end"></div>
<div class="h2" style="height:100%;float:right">&nbsp;</div>
</div>
</div>
<div id=p16events style="max-height:calc(100vh - 267px);overflow-y:auto"></div>
<table class="pTable">
<tr>
<td class="h1"></td>
<td>&nbsp;<input type=button onclick=refreshDeviceEvents() value="Refresh" /></td>
<td class="auto-style1">
Show
<select id=p16limitdropdown onchange=refreshDeviceEvents()>
<option value=60>Last 60</option>
<option value=120>Last 120</option>
<option value=250>Last 250</option>
<option value=500>Last 500</option>
<option value=1000>Last 1000</option>
</select>
</td>
<td class="h2"></td>
</tr>
</table>
<div id=p16events></div>
</div>
<div id=p20 style="display:none">
<picture id=MainMeshImage style=border-width:0px;height:200px;width:200px;float:right>
@ -719,30 +716,29 @@
<div id=p31 style="display:none">
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1>Events - <span id=p31userName></span></h1>
<div style="width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px">
<div class="h1pre">&nbsp;</div>
<div class="h1" style="height:100%;float:left">&nbsp;</div>
<!--<div class=style14 style=float:left>&nbsp;&nbsp;<input id=p31deleteall type=button style="display:none" value="Delete All..." />&nbsp;</div>-->
<div class="style14" style="float:left">&nbsp;&nbsp;<input type=button value=Refresh onclick=refreshUsersEvents() />&nbsp;</div>
<div class="auto-style1" style="height:100%;float:right">
Show
<select id=p31limitdropdown onchange=refreshUsersEvents()>
<option value=60>Last 60</option>
<option value=120>Last 120</option>
<option value=250>Last 250</option>
<option value=500>Last 500</option>
<option value=1000>Last 1000</option>
</select>
<div class="h2end"></div>
<div class="h2" style="height:100%;float:right;">&nbsp;</div>
</div>
</div>
<div id=p31events style="max-height:calc(100vh - 267px);overflow-y:scroll"></div>
<table class="pTable">
<tr>
<td class="h1"></td>
<td>&nbsp;<input type=button onclick=refreshUsersEvents() value="Refresh" /></td>
<td class="auto-style1">
Show
<select id=p31limitdropdown onchange=refreshUsersEvents()>
<option value=60>Last 60</option>
<option value=120>Last 120</option>
<option value=250>Last 250</option>
<option value=500>Last 500</option>
<option value=1000>Last 1000</option>
</select>
</td>
<td class="h2"></td>
</tr>
</table>
<div id=p31events></div>
</div>
<div id=p40 style="display:none;height:calc(100vh - 170px)">
<div id=p40 style="display:none;">
<h1>My Server Stats</h1>
<div style=width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px>
<div style="float:right">
<div class="areaHead">
<div class="toright2">
<select id=p40type onchange=updateServerTimelineStats()>
<option value=0>Connections</option>
<option value=1>Memory</option>
@ -765,24 +761,17 @@
</div>
<br id="column_l_bottomgap" />
</div>
<div id=footer class=noselect>
<table cellpadding=0 cellspacing=10 style="width:100%">
<tr>
<td style="text-align:left;color:white">
{{{footer}}}
</td>
<td style="text-align:right">
<a id="verifyEmailId2" style="color:yellow;margin-left:3px;cursor:pointer;display:none" onclick="account_showVerifyEmail()">Verify Email</a>
<a style="margin-left:3px" href="terms">Terms &amp; Privacy</a>
</td>
</tr>
</table>
<div id="footer">
<div class="footer1">{{{footer}}}</div>
<div class="footer2">
<a id="verifyEmailId2" style="display:none" onclick="account_showVerifyEmail()">Verify Email</a>
&nbsp;<a href=terms>Terms &amp; Privacy</a>
</div>
</div>
<div id=dialog style="display:none">
<div id=dialogHeader>
<div id=id_dialogclose style=float:right;padding:3px;margin-right:3px;cursor:pointer onclick=setDialogMode()>&#x2716;</div>
<div id=id_dialogtitle style=padding:5px></div>
<div style=width:100%;margin:6px></div>
<div id=id_dialogclose onclick=setDialogMode()>&#x2716;</div>
<div id=id_dialogtitle></div>
</div>
<div id=dialogBody>
<div id=dialog1>
@ -792,38 +781,38 @@
<div id=id_dialogOptions></div>
</div>
<div id=dialog3 style="">
<div style=height:26px>
<select id=d3uploadMode style=float:right;width:260px onchange=d3modechange()>
<div id=d3upload>
<div>File Selection</div>
<select id=d3uploadMode onchange=d3modechange()>
<option value=1>Local file upload</option>
<option value=2>Server file selection</option>
</select>
<div>File Selection</div>
</div>
<div id=d3localmode style=height:26px;display:none>
<div id=d3localmode style="display:none">
<div>Upload File</div>
<form id=d3localmodeform method=post enctype=multipart/form-data action=uploadfile.ashx target=fileUploadFrame>
<input type=text id=d3attrib name=attrib style="display:none" />
<input type=file id=d3localFile name=files style=float:right;width:260px onchange=d3setActions() />
<input type=file id=d3localFile name=files onchange=d3setActions() />
<input type=submit id=d3submit style="display:none" />
</form>
<div>Upload File</div>
</div>
<div id=d3servermode>
<div style="width:100%;background-color:#d3d9d6;text-align:left;padding:3px" valign=bottom>
<div id=d3serveraction valign=bottom>
<input type=button id=p3FolderUp disabled="disabled" onclick=d3folderup() value="Up" />&nbsp;
</div>
<div id=d3serverfiles style="width:100%;height:150px;background-color:white;padding:2px;border:1px solid gray;overflow-y:scroll"></div>
<div id=d3serverfiles></div>
</div>
</div>
<div id=dialog7 style="margin:auto;margin:3px">
<div id=dialog7 style="">
<div id="d7meshkvm">
<h4 style="width:100%;border-bottom:1px solid gray">Agent Remote Desktop</h4>
<div style="margin:3px 0 3px 0">
<select id="d7bitmapquality" style="float:right;width:200px;height:20px" dir="rtl"></select>
<div style="height:20px">Quality</div>
<h4>Agent Remote Desktop</h4>
<div>
<div>Quality</div>
<select id="d7bitmapquality" dir="rtl"></select>
</div>
<div style="margin:3px 0 3px 0">
<select id="d7bitmapscaling" style="float:right;width:200px;height:20px" dir="rtl">
<div>
<div>Scaling</div>
<select id="d7bitmapscaling" style="" dir="rtl">
<option selected=selected value=1024>100%</option>
<option value=896>87.5%</option>
<option value=768>75%</option>
@ -833,51 +822,50 @@
<option value=256>25%</option>
<option value=128>12.5%</option>
</select>
<div style="height:20px">Scaling</div>
</div>
<div style="margin:3px 0 3px 0">
<select id="d7framelimiter" style="float:right;width:200px;height:20px" dir="rtl">
<div>
<div>Frame rate</div>
<select id="d7framelimiter" dir="rtl">
<option selected=selected value=50>Fast</option>
<option value=100>Medium</option>
<option value=400>Slow</option>
<option value=1000>Very slow</option>
</select>
<div style="height:20px">Frame rate</div>
</div>
</div>
<div id="d7amtkvm">
<h4 style="width:100%;border-bottom:1px solid gray">Intel&reg; AMT Hardware KVM</h4>
<div style='height:26px'>
<select id="d7desktopmode" style="float:right;width:200px">
<h4>Intel&reg; AMT Hardware KVM</h4>
<div>
<div>Image Encoding</div>
<select id="d7desktopmode">
<option value="1">RLE8, Fastest</option>
<option value="2">RLE16, Recommended</option>
<option value="3">RAW8, Slow</option>
<option value="4">RAW16, Very Slow</option>
</select>
<div>Image Encoding</div>
</div>
<div style="height:60px">
<div style="float:right;border:1px solid #666;width:200px;height:60px;overflow-y:scroll;background-color:white">
<div>
<div>Other Settings</div>
<div id="d7otherset">
<label><input type="checkbox" id='d7showfocus'>Show Focus Tool<br></label>
<label><input type="checkbox" id='d7showcursor'>Show Local Mouse Cursor<br></label>
<label><input type="checkbox" id='d7localKeyMap'>Local Keyboard Map<br></label>
</div>
<div>Other Settings</div>
</div>
</div>
</div>
</div>
<div id="idx_dlgButtonBar" style="padding:10px;margin-bottom:4px">
<div id="idx_dlgButtonBar">
<input id="idx_dlgCancelButton" type="button" value="Cancel" style="" onclick="dialogclose(0)">
<input id="idx_dlgOkButton" type="button" value="OK" style="" onclick="dialogclose(1)">
<div style="height:25px"><input id=idx_dlgDeleteButton type=button value=Delete style="display:none" onclick="dialogclose(2)"></div>
<div><input id=idx_dlgDeleteButton type=button value=Delete style="display:none" onclick="dialogclose(2)"></div>
</div>
</div>
<iframe name="fileUploadFrame" style="display:none"></iframe>
<form style="display:none" method=post action=uploadfile.ashx enctype=multipart/form-data target=fileUploadFrame><input id=p5fileDragName name="name"><input id=p5fileDragSize name="size"><input id=p5fileDragType name="type"><input id=p5fileDragData name="data"><input id=p5fileDragLink name="link"><input type=submit id=p5loginSubmit2 style="display:none" /></form>
<form style="display:none" method=post action=uploadnodefile.ashx enctype=multipart/form-data target=fileUploadFrame><input id=p13fileDragName name="name"><input id=p13fileDragSize name="size"><input id=p13fileDragType name="type"><input id=p13fileDragData name="data"><input id=p13fileDragLink name="link"><input type=submit id=p13loginSubmit2 style="display:none" /></form>
<audio id="chimes"><source src="sounds/chimes.mp3" type="audio/mp3"></audio>
</div>
{{!-- </div> --}}
</div>
<script type="text/javascript">
'use strict';
@ -905,6 +893,7 @@
var desktop;
var desktopsettings = { encoding: 2, showfocus: false, showmouse: true, showcad: true, quality: 40, scaling: 1024, framerate: 50, localkeymap: false };
var multidesktopsettings = { quality: 20, scaling: 128, framerate: 1000 };
var deskAspectRatio = getstore('deskAspectRatio', false);
var terminal;
var files;
var debugLevel = parseInt("{{{debuglevel}}}");
@ -927,6 +916,10 @@
var passRequirements = "{{{passRequirements}}}";
if (passRequirements != "") { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
var webPageStackMenu = getstore('webPageStackMenu', false);
if (webPageStackMenu == true || webPageStackMenu == 'true') { webPageStackMenu = true } else { webPageStackMenu = false };
toggleStackMenu(0)
function startup() {
if ((features & 32) == 0) {
// Guard against other site's top frames (web bugs).
@ -1039,6 +1032,29 @@
setupServerTimelineStats();
}
// Toggle the web page to full screen
function toggleAspectRatio(toggle) {
if (toggle === 1) { deskAspectRatio = !deskAspectRatio; putstore('deskAspectRatio', deskAspectRatio); }
deskAdjust()
}
// If FullScreen, toggle menu to be horisontal or vertical
function toggleStackMenu(toggle) {
if (webPageFullScreen == true) {
if (toggle === 1) {
webPageStackMenu = !webPageStackMenu;
putstore('webPageStackMenu', webPageStackMenu);
}
if (webPageStackMenu == false) {
QC('body').remove("menu_stack");
} else {
QC('body').add("menu_stack");
if (xxcurrentView >= 10) QC('column_l').remove('room4submenu');
}
deskAdjust();
}
}
// Toggle the web page to full screen
function toggleFullScreen(toggle) {
if (toggle === 1) { webPageFullScreen = !webPageFullScreen; putstore('webPageFullScreen', webPageFullScreen); }
@ -1047,46 +1063,15 @@
if (webPageFullScreen == false) {
QC('body').remove("fullscreen");
QC('body').remove("arg_hide");
/* QS('container').width = '960px';
QS('container')['border-right'] = '1px solid #b7b7b7';
QS('container')['border-left'] = '1px solid #b7b7b7';
QS('container')['min-width'] = '960px';
QS('container')['overflow'] = '';
QS('column_l').width = '930px';
QS('column_l').height = '';
QS('column_l')['margin-left'] = '';
QS('column_l')["overflow-y"] = '';
QS('column_l')["max-height"] = (xxcurrentView >= 10) ? 'calc(100vh - 159px)' : 'calc(100vh - 135px)';
QS('container').position = '';
QS('page_content').position = '';
QV('MainMenuSpan', true); */
if (xxcurrentView >= 10) QC('column_l').add('room4submenu');
QV('UserDummyMenuSpan', false);
QV('page_leftbar', false);
//QV('page_leftbar', false);
} else {
QC('body').add("fullscreen");
if (hide & 16) QC('body').add("arg_hide");
/* QS('container').position = 'absolute';
QS('container').width = '100%';
QS('container').top = '0px';
QS('container').bottom = '0px';
QS('container')['border-right'] = '0';
QS('container')['border-left'] = '0';
QS('container')['min-width'] = '700px';
QS('container')['overflow'] = 'hidden';
QS('page_content').position = 'absolute';
QS('page_content').top = '66px';
QS('page_content').left = (hide & 16)?'0px':'90px';
QS('page_content').right = '0px';
QS('page_content').bottom = '0px';
QS('column_l').height = 'calc(100vh - 135px)';
QS('column_l').width = 'calc(100% - 30px)';
QS('column_l')["overflow-y"] = 'auto';
QS('column_l')["max-height"] = 'calc(100vh - 135px)';
QV('MainMenuSpan', false); */
if (hide & 16) QC('body').add("arg_hide"); // This is replacement for QV('page_leftbar', !(hide & 16));
if (xxcurrentView >= 10) QC('column_l').remove('room4submenu');
QV('UserDummyMenuSpan', (xxcurrentView < 10) && webPageFullScreen);
QV('page_leftbar', !(hide & 16));
}
//center();
masterUpdate(512);
QV('body', true);
}
@ -2322,7 +2307,7 @@
multiDesktop[id] = desktop;
desktop = desktopNode = currentNode = null;
// Setup a replacement desktop
QH('DeskParent', '<canvas id="Desk" width="640" height="480" style="width:100%;-ms-touch-action:none;margin-left:0px" oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
QH('DeskParent', '<canvas id="Desk" oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
} else {
// This is a new device, create a canvas for it.
var c = document.createElement('canvas');
@ -4154,7 +4139,7 @@
var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3'];
function showEditNodeValueDialog(mode) {
if (xxdialogMode) return;
var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue style=width:230px maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
setDialogMode(2, "Edit Device", 3, showEditNodeValueDialogEx, x, mode);
var v = currentNode[showEditNodeValueDialog_modes2[mode]];
if (v == null) v = '';
@ -4193,7 +4178,6 @@
QH('DeskParent', '');
var c = xdesk.m.CanvasId;
c.setAttribute('id', 'Desk');
c.setAttribute('style', 'width:100%;-ms-touch-action:none;margin-left:0px');
c.setAttribute('onmousedown', 'dmousedown(event)');
c.setAttribute('onmouseup', 'dmouseup(event)');
c.setAttribute('onmousemove', 'dmousemove(event)');
@ -4207,7 +4191,7 @@
delete multiDesktop[currentNode._id];
} else {
// Device is not already connected, just setup a blank canvas
QH('DeskParent', '<canvas id=Desk width=640 height=480 style="width:100%;-ms-touch-action:none;margin-left:0px" oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
QH('DeskParent', '<canvas id=Desk oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
desktopNode = currentNode;
}
// Setup the mouse wheel
@ -4503,45 +4487,19 @@
var browserfullscreen = false;
function deskToggleFull(e) {
fullscreen = !fullscreen;
/* QV('mastheadx', !fullscreen);
QV('masthead', !fullscreen);
QV('topbar', !fullscreen);
QV('p11deviceNameHeader', !fullscreen);
QV('footer', !fullscreen);
QV('column_l_bottomgap', !fullscreen);
QV('idx_deskFullBtn2', fullscreen);
QV('deskFullBtn', !fullscreen);
QV('page_leftbar', !fullscreen); */
if (fullscreen) {
QC('body').add("fulldesk");
QS('deskarea3x').height = null;
// If shift is pressed, enter browser full screen.
if (e.shiftKey == true) { enterBrowserFullscreen(Q('deskarea0')); browserfullscreen = true; }
/* QS('column_l').width = '930px';
QS('column_l').height = '';
QS('column_l')['margin-left'] = '';
QS('column_l')['overflow-y'] = '';
QS('container').position = '';
QS('page_content').position = '';
QV('MainMenuSpan', true);
QS('container').width = '100%';
QS('container')['border-right'] = '0';
QS('container')['border-left'] = '0';
QS('column_l').padding = '0';
QS('column_l').width = '100%';
QS('column_l')["max-height"] = ''; */
} else {
QC('body').remove("fulldesk");
exitBrowserFullscreen();
browserfullscreen = false;
/* QS('container').width = '960px';
QS('container')['border-right'] = '1px solid #b7b7b7';
QS('container')['border-left'] = '1px solid #b7b7b7';
QS('column_l').padding = '0 15px';
QS('column_l').width = '930px'; */
toggleFullScreen();
}
deskAdjust();
deskAdjust();
//deskAdjust();
updateDesktopButtons();
}
@ -4551,33 +4509,33 @@
}
function deskAdjust() {
var x = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (Q('deskarea1').clientHeight + Q('deskarea2').clientHeight + Q('Desk').clientHeight + Q('deskarea4').clientHeight + 2)) / 2;
if (fullscreen) {
document.documentElement.style.overflow = 'hidden';
if (deskAspectRatio) {
QS('Desk').width = '100%';
QS('Desk').height = '100%';
QS('deskarea3x').height = null;
if (x < 0) {
var mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (Q('deskarea1').clientHeight + Q('deskarea2').clientHeight + Q('deskarea4').clientHeight));
var mw = 9999;
if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; }
if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; }
QS('Desk')['max-height'] = mh + 'px';
QS('Desk')['max-width'] = mw + 'px';
x = 0;
} else {
QS('Desk')['max-height'] = null;
QS('Desk')['max-width'] = null;
}
QS('Desk')['margin-top'] = x + 'px';
QS('Desk')['margin-bottom'] = x + 'px';
} else {
var mw = 9999, mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (webPageFullScreen?276:290));
if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; }
if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; }
document.documentElement.style.overflow = 'auto';
QS('Desk')['max-height'] = mh + 'px';
QS('Desk')['max-width'] = mw + 'px';
QS('Desk')['margin-top'] = '0';
QS('Desk')['margin-bottom'] = '0';
var parentH = Q('DeskParent').clientHeight;
var parentW = Q('DeskParent').clientWidth;
var deskH = Q('Desk').height;
var deskW = Q('Desk').width;
if (parentH / parentW > deskH / deskW) {
var hNew = (deskH * parentW / deskW) + 'px';
if (webPageFullScreen || fullscreen) {
QS('deskarea3x').height = null;
} else {
QS('deskarea3x').height = hNew;
}
QS('Desk').height = hNew;
QS('Desk').width = '100%';
} else {
var wNew = (deskW * parentH / deskH) + 'px';
if (webPageFullScreen || fullscreen) {
QS('Desk').height = null;
} else {
QS('Desk').height = '100%';
}
QS('Desk').width = wNew;
}
}
}
@ -7549,7 +7507,7 @@
}
function center() {
if (xxcurrentView == 11) { deskAdjust(); } //deskAdjust(); }
if (xxcurrentView == 11) { deskAdjust(); }
else if (xxcurrentView == 10) { masterUpdate(256); }
else if (xxcurrentView == 1) { masterUpdate(4); }
}
@ -7622,14 +7580,7 @@
QV('topbar', x != 0);
if ((x == 0) && (webPageFullScreen)) {
QC('body').add("arg_hide");
QS('column_l').height = 'calc(100vh - 111px)';
// Please check. I think this part is not needed anymore. Removing class will revert to default style
//QS('page_content').position = '';
//QV('page_leftbar', false);
//QS('column_l')["max-height"] = '';
//QV('column_l').left = 0;
//QV('page_content').left = 0;
// QS('column_l').height = 'calc(100vh - 111px)';
}
QV('MainSubMenuSpan', x >= 10 && x < 20);
@ -7637,6 +7588,7 @@
QV('MeshSubMenuSpan', x >= 20 && x < 30);
QV('UserSubMenuSpan', x >= 30 && x < 40);
QV('ServerSubMenuSpan', x == 6 || x == 115 || x == 40);
var panels = { 10: 'MainDev', 11: 'MainDevDesktop', 12: 'MainDevTerminal', 13: 'MainDevFiles', 14: 'MainDevAmt', 15: 'MainDevConsole', 16: 'MainDevEvents', 20: 'MeshGeneral', 30: 'UserGeneral', 31: 'UserEvents', 6: 'ServerGeneral', 40: 'ServerStats', 115: 'ServerConsole' };
for (var i in panels) {
QC(panels[i]).remove('style3x');

View File

@ -220,9 +220,8 @@
</div>
<div id=dialog style="display:none">
<div id=dialogHeader>
<div id=id_dialogclose style=float:right;padding:5px;cursor:pointer onclick=setDialogMode()><b>X</b></div>
<div id=id_dialogtitle style=padding:5px></div>
<div style=width:100%;margin:6px></div>
<div id=id_dialogclose onclick=setDialogMode()><b>X</b></div>
<div id=id_dialogtitle></div>
</div>
<div id=dialogBody>
<div id=dialog1>