Merge pull request #194 from Ylianst/revert-193-revert-189-master

Revert "Fixed reported CSS issues and added support for IE"
This commit is contained in:
Ylian Saint-Hilaire 2019-04-19 14:14:13 -07:00 committed by GitHub
commit 4425baaa5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 885 additions and 1191 deletions

View File

@ -21,59 +21,13 @@
border-left: 1px solid #b7b7b7;
padding: 0;
}
.fullscreen.login #container {
-ms-grid-rows: 66px 24px 1fr 45px;
grid-template-rows: 66px 24px auto 45px;
-ms-grid-columns: 90px 1fr;
grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
grid-template-areas:
"header header"
"nav nav"
"content content"
"footer footer";
}
.fullscreen.arg_hide #container {
-ms-grid-rows: 66px 24px 1fr 45px;
grid-template-rows: 66px 24px auto 45px;
-ms-grid-columns: 90px 1fr;
grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
grid-template-areas:
"header header"
"nav nav"
"content content"
"footer footer";
}
.fullscreen.menu_stack #container {
-ms-grid-rows: 66px minmax(24px, max-content) 1fr 45px;
grid-template-rows: 66px minmax(24px, max-content) auto 45px;
-ms-grid-columns: 90px 1fr;
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-height: 0px;
border-right: 0px none #b7b7b7;
border-left: 0px none #b7b7b7;
height: calc(100% - 0px);
position: relative;
display: -ms-grid;
display: grid;
grid-gap: 0px;
grid-template-areas:
"header header"
"sidebar nav"
"sidebar content"
"sidebar footer";
-ms-grid-columns: 90px 1fr;
grid-template-columns: 90px auto;
-ms-grid-rows: 66px 24px 1fr 45px;
grid-template-rows: 66px 24px auto 45px;
}
.fulldesk #container {
@ -83,15 +37,6 @@
border-right: 0px none #b7b7b7;
border-left: 0px none #b7b7b7;
position: unset;
position: relative;
display: -ms-grid !important;
display: grid !important;
grid-gap: 0px;
grid-template-areas: "content"!important;
-ms-grid-columns: 1fr;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important;
-ms-grid-rows: 1fr;
grid-template-rows: repeat(auto-fit, minmax(100px, 1fr))!important;
}
#masthead {
@ -112,11 +57,8 @@
.fullscreen #masthead {
width: 100%;
grid-area: header;
-ms-grid-column: 1;
-ms-grid-column-span: 2;
-ms-grid-row: 1;
}
.fulldesk #masthead {
display: none;
}
@ -149,11 +91,29 @@
font-weight: bold;
}
#page_content {
/*max-height: calc(100vh - 108px);*/
}
.fullscreen #page_content {
position: absolute;
top: 66px;
left: 90px;
right: 0px;
bottom: 0px;
}
.arg_hide #page_content {
left: 0px;
}
.fulldesk #page_content {
position: static;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
#page_leftbar {
-ms-grid-column: 1;
-ms-grid-row: 2;
-ms-grid-row-span: 3;
/* height: calc(100vh - 66px); */
height: calc(100vh - 66px);
width: 90px;
position: absolute;
z-index: 1000;
@ -172,20 +132,13 @@
}
#topbar {
/* height: 24px; */
position: relative;
grid-area: nav;
-ms-grid-column: 2;
-ms-grid-row: 2;
}
.fulldesk #topbar {
display: none;
}
.menu_stack #topbar, .login #topbar, .arg_hide #topbar {
-ms-grid-column: 1;
-ms-grid-column-span: 2;
-ms-grid-row: 2;
}
.topbar_td {
width: 100px;
@ -205,8 +158,7 @@
right: 6px
}
/* #UserDummyMenuSpan, */
#MainSubMenuSpan, #MeshSubMenuSpan, #UserSubMenuSpan, #ServerSubMenuSpan, #MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
#MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
width: 100%;
height: 22px
}
@ -224,8 +176,7 @@
#column_l {
position: relative;
float: left;
width: 100%;
box-sizing: border-box;
width: 930px;
margin: 0;
padding: 0 15px;
background-color: #fff;
@ -236,35 +187,22 @@
max-height: calc(100vh - 159px) !important;
}
.menu_stack.fullscreen.fulldesk #column_l {
-ms-grid-column: 1;
-ms-grid-row: 1;
-ms-grid-column-span: 2;
-ms-grid-row-span: 4;
}
.fullscreen #column_l {
-ms-grid-column: 2;
-ms-grid-row: 3;
grid-area: content;
width: unset;
height: calc(100vh - 135px);
width: calc(100% - 30px);
overflow-y: auto;
}
.menu_stack.fullscreen #column_l, .login #column_l, .arg_hide #column_l {
-ms-grid-column: 1;
-ms-grid-column-span: 2;
-ms-grid-row: 3;
}
.fulldesk #column_l {
height: 100%;
width: 100%;
height: unset;
/*height: unset;*/
/*max-height: unset;*/
/*overflow-y: unset;*/
margin-left: unset;
overflow-y: unset;
padding: 0;
max-height: none;
-ms-grid-column: 1;
-ms-grid-row: 1;
max-height:100vh;
height:100vh;
overflow-y:hidden;
}
.fulldesk #column_l_bottomgap {
display: none;
@ -319,9 +257,6 @@
}
#footer {
-ms-grid-column: 2;
-ms-grid-row: 4;
grid-area: footer;
clear: both;
overflow: auto;
width: 100%;
@ -333,11 +268,6 @@
.fulldesk #footer {
display: none;
}
.menu_stack.fullscreen #footer, .login #footer, .arg_hide #footer {
-ms-grid-column: 1;
-ms-grid-column-span: 2;
-ms-grid-row: 4;
}
/* Support for footer made with table */
#footer table {
@ -440,9 +370,7 @@
#idx_dlgButtonBar {
padding: 10px;
margin-bottom: 5px;
overflow: auto;
float: right;
margin-bottom: 20px;
}
#idx_dlgCancelButton {
@ -655,7 +583,7 @@
}
#p3events {
height: calc(100vh - 245px);
height: calc(100vh - 243px);
overflow-y: scroll
}
@ -693,7 +621,7 @@
#p5filetable {
width: 100%;
height: calc(100vh - 295px);
height: calc(100vh - 294px);
overflow: auto;
-webkit-user-select: none;
position: relative;
@ -744,12 +672,6 @@
height: 60px;
}
#serverMainStats {
height:calc(100vh - 251px);
max-height:calc(100vh - 251px);
width:100%
}
#p10BackButton, #p11BackButton {
float:left
}
@ -1442,10 +1364,6 @@ a {
/*filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");*/ /* Firefox 10+, Firefox on Android */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%) opacity(60%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-moz-opacity: 0.60;
opacity:.60;
filter: alpha(opacity=60);
}
.unselectable {
@ -1517,116 +1435,13 @@ a {
padding: 4px
}
.deskareaicon {
cursor: pointer;
border: none;
float: right;
font-size: 130%;
margin-right: 4px;
}
.areaHead {
padding-left: 4px;
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: -ms-grid;
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;
-ms-grid-columns: 1fr;
-ms-grid-rows: 24px max-content 1fr max-content;
}
#deskarea0 .mR {
margin-right: 3px;
}
#deskarea1 {
grid-area: deskarea1;
-ms-grid-column: 1;
-ms-grid-row: 1;
}
#deskarea2 {
grid-area: deskarea2;
background-color: gray;
-ms-grid-column: 1;
-ms-grid-row: 2;
}
#progressbar {
height:2px;
width:0%;
background-color:red;
}
#deskarea3x {
background: black;
text-align: center;
position: relative;
overflow: hidden;
width: 100%;
max-height: calc(100vh - 296px); /* + 24px hight of submenu */
height: calc(100vh - 296px);
}
.room4submenu #deskarea3x {
max-height: calc(100vh - 296px);
height: calc(100vh - 296px);
}
.fulldesk #deskarea3x {
grid-area: deskarea3;
max-height: none;
height: calc(100vh - 56px);
-ms-grid-column: 1;
-ms-grid-row: 3;
}
#DeskFocus {
overflow: hidden;
color: transparent;
@ -1643,12 +1458,7 @@ a {
overflow: hidden;
width: 100%;
-ms-touch-action: none;
position: absolute;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
margin: auto;
margin-left: 0px;
}
@ -1678,22 +1488,6 @@ a {
background-color: #EFE8B6;
}
#deskarea4 {
grid-area: deskarea4;
-ms-grid-column: 1;
-ms-grid-row: 4;
}
#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;
@ -1701,159 +1495,6 @@ 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 - 349px);
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;
}
#p15statetext {
padding: 4px;
height: 15px;
}
#p15agentConsole {
background: black;
margin: 0;
padding: 0;
color: lightgray;
width: 100%;
/* */
height: calc(100vh - 299px);
max-height: calc(100vh - 299px);
position: relative;
}
.menu_stack.fullscreen #p15agentConsole {
height: calc(100vh - 305px);
max-height: calc(100vh - 305px);
}
#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;
height: calc(100vh - 299px);
max-height: calc(100vh - 299px);
width: 930px;
}
.menu_stack.fullscreen #p15agentConsoleText {
width: calc(100vw - 30px);
height: calc(100vh - 305px);
max-height: calc(100vh - 305px);
}
.fullscreen #p15agentConsoleText {
width: calc(100vw - 120px);
}
#p16events, #p31events {
max-height: calc(100vh - 269px);
overflow-y: auto;
}
#p40 {
height:calc(100vh - 191px)
}
.viewSelector {
width:32px;
height:32px;

View File

@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@ -53,6 +53,7 @@
<!-- 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>
@ -82,11 +83,12 @@
<div class="lb6"></div>
</div>
</div>
<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>
@ -141,12 +143,13 @@
</div>
<div id=UserDummyMenuSpan>
<table id=UserDummyMenu cellpadding=0 cellspacing=0 class=style1>
<tr><td class=style3 style="">&nbsp;</td></tr>
<tr><td class=style3 style="text-align:right;height:24px">&nbsp;</td></tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="column_l">
<div id=p0 style="display:none">
<div id=p0message><span id=p0span>Server disconnected</span>, <href onclick=reload() style=cursor:pointer><u>click to reconnect</u></href>.</div>
@ -250,7 +253,7 @@
</div>
<div id="p2AccountActions">
<p><strong>Account actions</strong></p>
<p class="mL">
<p style="margin-left:40px">
<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 />
@ -269,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>
@ -281,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>
@ -290,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>
@ -300,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" cellpadding="0" cellspacing="0">
<table id="p5toolbar" style="width:100%" cellpadding="0" cellspacing="0">
<tr>
<td id="p5filehead" valign=bottom>
<div id="p5rightOfButtons"></div>
@ -348,7 +351,7 @@
<input type=submit id=p5fileCatchAllSubmit style="display:none" />
</form>
-->
<div id="p5PublicShare" style=""><div>These files are shared publicly, click "link" to get public url.</div></div>
<div id="p5PublicShare" style=""><div style="padding:4px">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>
@ -360,15 +363,13 @@
<div id=p6 style="display:none">
<img id=MainMeshImage src="serverpic.ashx">
<h1>My Server</h1>
<div id="p2ServerActions">
<p><strong>Server actions</strong></p>
<div class="mL">
<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>
</div>
</div>
</p>
<br /><strong>Server Statistics</strong><br /><br />
<div id="serverStats">
<div id="serverCpuChartView" style="display:none">
@ -418,33 +419,36 @@
<div class="icon2"></div>
<div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
</div>
<div id=deskarea0 cellpadding=0 cellspacing=0>
<div id=deskarea1 class="areaHead">
<div class="toright2">
<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 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>
<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() 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">
<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>
<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><input type=button id=connectbutton1 value="Connect" onclick=connectDesktop(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<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>
</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>
@ -452,24 +456,24 @@
<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 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>
</div>
<div id=deskarea4 class="areaFoot">
<div class="toright2">
</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 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>
<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 id="deskkeys">
<select style="margin-left:6px" id="deskkeys">
<option value=5>Win</option>
<option value=0>Win+Down</option>
<option value=1>Win+Up</option>
@ -479,16 +483,17 @@
<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="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" 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>
<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 id=p12 style="display:none">
<div id="p12title">
<div id="p12BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<div id="p12BackButton" style="float:left"><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()>
@ -499,15 +504,15 @@
<div class="icon2"></div>
<div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
</div>
<table id=termTable cellpadding=0 cellspacing=0>
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
<tr>
<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()/>
<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 />
</div>
<div>
<input type="button" id="autoconnectbutton2" value="AutoConnect" onclick=autoConnectTerminal(event) onkeypress="return false" onkeydown="return false" style="display:none">
<span id="connectbutton2span"><input type="button" id="connectbutton2" value="Connect" onclick=connectTerminal(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id="connectbutton2span">&nbsp;<input type="button" id="connectbutton2" value="Connect" onclick=connectTerminal(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id="connectbutton2hspan">&nbsp;<input type="button" id="connectbutton2h" value="HW Connect" onclick=connectTerminal(event,2) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
<span id="disconnectbutton2span">&nbsp;<input type="button" id="disconnectbutton2" value="Disconnect" onclick=connectTerminal(event,0) onkeypress="return false" onkeydown="return false"></span>
&nbsp;<span id="termstatus">Disconnected</span>
@ -516,23 +521,23 @@
</tr>
<tr>
<td>
<div class="areaProgress"><div id="termprogressbar" style=""></div></div>
<div style="background-color:gray"><div id="termprogressbar" style="height:2px;width:0%;background-color:red"></div></div>
</td>
</tr>
<tr>
<td id="termarea3x">
<pre id="Term"></pre>
<td style="background:black;text-align:center;height:500px;position:relative">
<pre id="Term" style="background:black;margin:0;padding:0"></pre>
</td>
</tr>
<tr>
<td class="areaFoot">
<div class="toright2">
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
<div style="float:right;text-align:right">
<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"></select>
<select id="specialkeylist" onkeypress="return false" style="margin-left:5px"></select>
<input id="specialkeylistinput" type="button" onkeypress="return false" class="bottombutton" value="Send" title="Send the selected special key" onclick="sendSpecialKey()" />
</div>
<div>
@ -552,11 +557,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" cellpadding="0" cellspacing="0">
<table id="p13toolbar" style="width: 100%" cellpadding="0" cellspacing="0">
<tr>
<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() />
<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 />
</div>
<div>
<input id=p13AutoConnect value="AutoConnect" onclick=autoConnectFiles(event) onkeypress="return false" onkeydown="return false" type="button" style="display:none">
@ -566,8 +571,8 @@
</td>
</tr>
<tr>
<td class="areaHead2" valign=bottom>
<div id="p13rightOfButtons" class="toright2"></div>
<td style="width:100%;background-color:#d3d9d6;text-align:left;padding:4px" valign=bottom>
<div id="p13rightOfButtons" style="float:right;margin-top:3px"></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;
@ -583,8 +588,8 @@
</td>
</tr>
<tr>
<td class="areaHead3">
<div class="toright2">
<td style="background-color:#E4E9E7;height:28px">
<div style=float:right>
<select id=p13sortdropdown onchange=p13updateFiles()>
<option value=1 selected="selected">Sort by name</option>
<option value=2>Sort by size</option>
@ -598,12 +603,12 @@
</td>
</tr>
</table>
<div id="p13filetable" style="">
<div id="p13bigok" style="display:none"><b>&checkmark;</b></div>
<div id="p13bigfail" style="display:none"><b>&#10007;</b></div>
<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>
<span id="p13files"></span>
</div>
<table id="p13toolbarBottom" cellpadding=0 cellspacing=0>
<table id="p13toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
<tr><td class=style6>&nbsp;<span id="p13bottomstatus"></span></td></tr>
</table>
</div>
@ -612,35 +617,35 @@
<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 src="/commander.htm"></iframe>
<iframe id=p14iframe style="width:100%;height:calc(100vh - 242px);border:0;overflow:hidden" 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 id="consoleTable" cellpadding=0 cellspacing=0>
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
<tr>
<td class="areaHead">
<div class="toright2">
<div id=p15coreName title="Information about current core running on this agent"></div>
<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>
<input type=button id=p15uploadCore value="Agent Action" onclick=p15uploadCore(event) title="Change the agent Java Script code module" />
</div>
<div id="p15statetext"></div>
<div id="p15statetext" style=padding:4px></div>
</td>
</tr>
<tr>
<td>
<div class="areaProgress"><div id="consoleprogressbar" style=""></div></div>
<div style="background-color:gray"><div id="consoleprogressbar" style="height:2px;width:0%;background-color:red"></div></div>
</td>
</tr>
<tr>
<td id=p15agentConsole>
<pre id=p15agentConsoleText></pre>
<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>
</tr>
<tr>
<td class="areaFoot">
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
<table style="width:100%">
<tr>
<td style="width:99%">
@ -659,11 +664,12 @@
<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>
<table class="pTable">
<tr>
<td class="h1"></td>
<td>&nbsp;<input type=button onclick=refreshDeviceEvents() value="Refresh" /></td>
<td class="auto-style1">
<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>
@ -672,11 +678,11 @@
<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 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>
</div>
<div id=p20 style="display:none">
<picture id=MainMeshImage style=border-width:0px;height:200px;width:200px;float:right>
@ -713,11 +719,12 @@
<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>
<table class="pTable">
<tr>
<td class="h1"></td>
<td>&nbsp;<input type=button onclick=refreshUsersEvents() value="Refresh" /></td>
<td class="auto-style1">
<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>
@ -726,16 +733,16 @@
<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 class="h2end"></div>
<div class="h2" style="height:100%;float:right;">&nbsp;</div>
</div>
<div id=p40 style="display:none;">
</div>
<div id=p31events style="max-height:calc(100vh - 267px);overflow-y:scroll"></div>
</div>
<div id=p40 style="display:none;height:calc(100vh - 170px)">
<h1>My Server Stats</h1>
<div class="areaHead">
<div class="toright2">
<div style=width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px>
<div style="float:right">
<select id=p40type onchange=updateServerTimelineStats()>
<option value=0>Connections</option>
<option value=1>Memory</option>
@ -750,25 +757,32 @@
<img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>&nbsp;
</div>
<div>
<input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
&nbsp;<input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
&nbsp;<input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X
</div>
</div>
<canvas id=serverMainStats style=""></canvas>
<canvas id=serverMainStats style="height:calc(100vh - 250px);max-height:calc(100vh - 250px);width:100%"></canvas>
</div>
<br id="column_l_bottomgap" />
</div>
<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 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>
<div id=dialog style="display:none">
<div id=dialogHeader>
<div id=id_dialogclose onclick=setDialogMode()>&#x2716;</div>
<div id=id_dialogtitle></div>
<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>
<div id=dialogBody>
<div id=dialog1>
@ -778,38 +792,38 @@
<div id=id_dialogOptions></div>
</div>
<div id=dialog3 style="">
<div id=d3upload>
<div>File Selection</div>
<select id=d3uploadMode onchange=d3modechange()>
<div style=height:26px>
<select id=d3uploadMode style=float:right;width:260px 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="display:none">
<div>Upload File</div>
<div id=d3localmode style=height:26px;display:none>
<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 onchange=d3setActions() />
<input type=file id=d3localFile name=files style=float:right;width:260px onchange=d3setActions() />
<input type=submit id=d3submit style="display:none" />
</form>
<div>Upload File</div>
</div>
<div id=d3servermode>
<div id=d3serveraction valign=bottom>
<div style="width:100%;background-color:#d3d9d6;text-align:left;padding:3px" valign=bottom>
<input type=button id=p3FolderUp disabled="disabled" onclick=d3folderup() value="Up" />&nbsp;
</div>
<div id=d3serverfiles></div>
<div id=d3serverfiles style="width:100%;height:150px;background-color:white;padding:2px;border:1px solid gray;overflow-y:scroll"></div>
</div>
</div>
<div id=dialog7 style="">
<div id=dialog7 style="margin:auto;margin:3px">
<div id="d7meshkvm">
<h4>Agent Remote Desktop</h4>
<div>
<div>Quality</div>
<select id="d7bitmapquality" dir="rtl"></select>
<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>
</div>
<div>
<div>Scaling</div>
<select id="d7bitmapscaling" style="" dir="rtl">
<div style="margin:3px 0 3px 0">
<select id="d7bitmapscaling" style="float:right;width:200px;height:20px" dir="rtl">
<option selected=selected value=1024>100%</option>
<option value=896>87.5%</option>
<option value=768>75%</option>
@ -819,43 +833,44 @@
<option value=256>25%</option>
<option value=128>12.5%</option>
</select>
<div style="height:20px">Scaling</div>
</div>
<div>
<div>Frame rate</div>
<select id="d7framelimiter" dir="rtl">
<div style="margin:3px 0 3px 0">
<select id="d7framelimiter" style="float:right;width:200px;height:20px" 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>Intel&reg; AMT Hardware KVM</h4>
<div>
<div>Image Encoding</div>
<select id="d7desktopmode">
<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">
<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>
<div>Other Settings</div>
<div id="d7otherset">
<div style="height:60px">
<div style="float:right;border:1px solid #666;width:200px;height:60px;overflow-y:scroll;background-color:white">
<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">
<div id="idx_dlgButtonBar" style="padding:10px;margin-bottom:4px">
<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><input id=idx_dlgDeleteButton type=button value=Delete style="display:none" onclick="dialogclose(2)"></div>
<div style="height:25px"><input id=idx_dlgDeleteButton type=button value=Delete style="display:none" onclick="dialogclose(2)"></div>
</div>
</div>
<iframe name="fileUploadFrame" style="display:none"></iframe>
@ -863,6 +878,7 @@
<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>
<script type="text/javascript">
'use strict';
var args;
@ -911,11 +927,6 @@
var passRequirements = "{{{passRequirements}}}";
if (passRequirements != "") { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
var deskAspectRatio = getstore('deskAspectRatio', false);
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).
@ -939,7 +950,7 @@
if (args.hide) {
var hide = parseInt(args.hide);
QV('masthead', !(hide & 1));
QV('topbar', !(hide & 2));
QV('topbarmaster', !(hide & 2));
QV('footer', !(hide & 4));
QV('p10title', !(hide & 8));
QV('p11title', !(hide & 8));
@ -1028,47 +1039,54 @@
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); }
var hide = 0;
if (args.hide) { hide = parseInt(args.hide); }
if (webPageFullScreen == false) {
QC('body').remove("menu_stack");
QC('body').remove("fullscreen");
QC('body').remove("arg_hide");
if (xxcurrentView >= 10) QC('column_l').add('room4submenu');
/* 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); */
QV('UserDummyMenuSpan', false);
//QV('page_leftbar', false);
QV('page_leftbar', false);
} else {
QC('body').add("fullscreen");
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');
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); */
QV('UserDummyMenuSpan', (xxcurrentView < 10) && webPageFullScreen);
QV('page_leftbar', !(hide & 16));
}
//center();
masterUpdate(512);
QV('body', true);
}
@ -1431,7 +1449,7 @@
case 'getcookie': {
if (message.tag == 'clickonce') {
var basicPort = "{{{serverRedirPort}}}" == "" ? "{{{serverPublicPort}}}" : "{{{serverRedirPort}}}";
var rdpurl = "http://" + window.location.hostname + ":" + basicPort + "/clickonce/minirouter/MeshMiniRouter.application?WS=wss%3A%2F%2F" + window.location.hostname + "%2Fmeshrelay.ashx%3Fauth=" + message.cookie + "&CH={{{webcerthash}}}&AP=" + message.protocol + ((debugmode == 1) ? "" : "&XHOL=1");
var rdpurl = "http://" + window.location.hostname + ":" + basicPort + "/clickonce/minirouter/MeshMiniRouter.application?WS=wss%3A%2F%2F" + window.location.hostname + "%2Fmeshrelay.ashx%3Fauth=" + message.cookie + "&CH={{{webcerthash}}}&AP=" + message.protocol + ((debugmode == 1) ? "" : "&HOL=1");
var newWindow = window.open(rdpurl, '_blank');
newWindow.opener = null;
}
@ -2324,7 +2342,7 @@
multiDesktop[id] = desktop;
desktop = desktopNode = currentNode = null;
// Setup a replacement desktop
QH('DeskParent', '<canvas id="Desk" oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></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>');
} else {
// This is a new device, create a canvas for it.
var c = document.createElement('canvas');
@ -4156,7 +4174,7 @@
var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3'];
function showEditNodeValueDialog(mode) {
if (xxdialogMode) return;
var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
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) />');
setDialogMode(2, "Edit Device", 3, showEditNodeValueDialogEx, x, mode);
var v = currentNode[showEditNodeValueDialog_modes2[mode]];
if (v == null) v = '';
@ -4195,6 +4213,7 @@
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)');
@ -4208,7 +4227,7 @@
delete multiDesktop[currentNode._id];
} else {
// Device is not already connected, just setup a blank canvas
QH('DeskParent', '<canvas id=Desk oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></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>');
desktopNode = currentNode;
}
// Setup the mouse wheel
@ -4504,19 +4523,45 @@
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();
}
@ -4526,34 +4571,33 @@
}
function deskAdjust() {
if (deskAspectRatio) {
QS('Desk').width = '100%';
QS('Desk').height = '100%';
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';
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 {
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('deskarea3x').height = null;
QS('Desk')['max-height'] = null;
QS('Desk')['max-width'] = null;
}
QS('Desk').height = hNew;
QS('Desk').width = '100%';
QS('Desk')['margin-top'] = x + 'px';
QS('Desk')['margin-bottom'] = x + 'px';
} else {
var wNew = (deskW * parentH / deskH) + 'px';
if (webPageFullScreen || fullscreen) {
QS('Desk').height = null;
} else {
QS('Desk').height = '100%';
}
QS('Desk').width = wNew;
}
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';
}
}
@ -7525,7 +7569,7 @@
}
function center() {
if (xxcurrentView == 11) { deskAdjust(); }
if (xxcurrentView == 11) { deskAdjust(); } //deskAdjust(); }
else if (xxcurrentView == 10) { masterUpdate(256); }
else if (xxcurrentView == 1) { masterUpdate(4); }
}
@ -7598,6 +7642,14 @@
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;
}
QV('MainSubMenuSpan', x >= 10 && x < 20);

View File

@ -11,17 +11,18 @@
<script keeplink=1 type="text/javascript" src="scripts/u2f-api.js"></script>
<title>{{{title}}} - Login</title>
</head>
<body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide login">
<body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide">
<div id=container>
<div id=mastheadx></div>
<div id=masthead>
<div class="title">{{{title}}}</div>
<div class="title2">{{{title2}}}</div>
</div>
<div id=page_content>
<div id=topbar class="noselect style3">
<div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div>
</div>
<div id=column_l>
<div id=column_l style="height:calc(100vh - 111px)">
<h1>Welcome</h1>
<div id="welcomeText" style="display:none">Connect to your home or office devices from anywhere in the world using <a href="http://www.meshcommander.com/meshcentral2">MeshCentral</a>, the real time, open source remote monitoring and management web site. You will need to download and install a management agent on your computers. Once installed, computers will show up in the &quot;My Devices&quot; section of this web site and you will be able to monitor them and take control of them.</div>
<table id="centralTable" style="">
@ -215,7 +216,7 @@
&nbsp;<a href=terms>Terms &amp; Privacy</a>
</div>
</div>
</div>
</div>
<div id=dialog style="display:none">
<div id=dialogHeader>