Fixed reported CSS issues and added support for IE

This commit is contained in:
Jovan Strika 2019-04-19 14:27:40 -04:00
parent c5c8b0466b
commit acb7fe320b
3 changed files with 1400 additions and 906 deletions

View File

@ -1,4 +1,9 @@
body { 
html, body {
width: 100%;
height: 100%;
}
body {
margin: 0; margin: 0;
padding: 0; padding: 0;
border: 0; border: 0;
@ -6,7 +11,7 @@
font-size: 13px; font-size: 13px;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
background-color: #d3d9d6; background-color: #d3d9d6;
overflow-y: hidden; /* overflow-y: hidden; */
} }
#container { #container {
@ -21,22 +26,79 @@
border-left: 1px solid #b7b7b7; border-left: 1px solid #b7b7b7;
padding: 0; 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 { .fullscreen #container {
width: 100%; width: 100%;
min-width: 700px; min-width: 100%;
min-height: 0px; min-height: 0px;
border-right: 0px none #b7b7b7; border-right: 0px none #b7b7b7;
border-left: 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 { .fulldesk #container {
width: 100%; width: 100%;
height: 100%;
min-width: 700px; min-width: 700px;
min-height: 0px; min-height: 0px;
border-right: 0px none #b7b7b7; border-right: 0px none #b7b7b7;
border-left: 0px none #b7b7b7; border-left: 0px none #b7b7b7;
position: unset; 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 { #masthead {
@ -57,8 +119,11 @@
.fullscreen #masthead { .fullscreen #masthead {
width: 100%; width: 100%;
grid-area: header;
-ms-grid-column: 1;
-ms-grid-column-span: 2;
-ms-grid-row: 1;
} }
.fulldesk #masthead { .fulldesk #masthead {
display: none; display: none;
} }
@ -91,39 +156,26 @@
font-weight: bold; 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 { #page_leftbar {
height: calc(100vh - 66px); -ms-grid-column: 1;
-ms-grid-row: 2;
-ms-grid-row-span: 3;
/* height: calc(100vh - 66px); */
width: 90px; width: 90px;
position: absolute;
z-index: 1000; z-index: 1000;
background: #113962; background: #113962;
background: linear-gradient(to bottom, #104893 0%,#113962 100%); background: linear-gradient(to bottom, #104893 0%,#113962 100%);
color: white; color: white;
overflow-y: hidden;
display: none;
} }
.fullscreen #page_leftbar { .fullscreen #page_leftbar {
grid-area: sidebar;
display: block; display: block;
} }
.menu_stack #page_leftbar {
display: none;
}
.arg_hide #page_leftbar { .arg_hide #page_leftbar {
display: none; display: none;
} }
@ -131,14 +183,22 @@
display: none; display: none;
} }
#topbar { #topbar {
/* height: 24px; */
position: relative; position: relative;
grid-area: nav;
-ms-grid-column: 2;
-ms-grid-row: 2;
} }
.fulldesk #topbar { .fulldesk #topbar {
display: none; 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 { .topbar_td {
width: 100px; width: 100px;
@ -157,54 +217,95 @@
top: 3px; top: 3px;
right: 6px right: 6px
} }
#toggle2 {
#MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu { cursor: pointer;
width: 100%; color: white;
height: 22px position: absolute;
top: 3px;
right: 26px;
display: none;
} }
.fullscreen #toggle2 {
display: block;
}
/* #UserDummyMenuSpan, */
#MainSubMenuSpan, #MeshSubMenuSpan, #UserSubMenuSpan, #ServerSubMenuSpan, #MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
width: 100%;
height: 24px;
color: white;
background-color: #808080;
}
.menu_stack #UserDummyMenu {
display: none;
}
#MainMenuSpan { #MainMenuSpan {
display: table; display: table;
} }
.fullscreen #MainMenuSpan { .fullscreen #MainMenuSpan {
display: none; display: none;
} }
.fulldesk #MainMenuSpan { .fulldesk #MainMenuSpan {
display: none; display: none;
} }
.menu_stack #MainMenuSpan {
display: block;
}
#column_l { #column_l {
position: relative; position: relative;
float: left; float: left;
width: 930px; width: 100%;
box-sizing: border-box;
margin: 0; margin: 0;
padding: 0 15px; padding: 0 15px;
background-color: #fff; background-color: #fff;
/*max-height: calc(100vh - 111px);*/ /* max-height: calc(100vh - 151px); */
min-width: unset; min-width: unset;
} }
.room4submenu {
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 { .fullscreen #column_l {
height: calc(100vh - 135px); -ms-grid-column: 2;
width: calc(100% - 30px); -ms-grid-row: 3;
grid-area: content;
width: unset;
/* height: calc(100vh - 111px);
width: calc(100% - 30px); */
overflow-y: auto; 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 { .fulldesk #column_l {
height: 100%;
width: 100%; width: 100%;
height: unset; height: unset;
margin-left: unset; margin-left: unset;
overflow-y: unset; overflow-y: unset;
padding: 0; padding: 0;
max-height: unset; max-height: none;
-ms-grid-column: 1;
-ms-grid-row: 1;
} }
.fulldesk #column_l_bottomgap { .fulldesk #column_l_bottomgap {
display: none; display: none;
} }
.room4submenu {
min-height: calc(100vh - 159px);
}
#centralTable { #centralTable {
width: 100%; width: 100%;
} }
@ -254,6 +355,9 @@
} }
#footer { #footer {
-ms-grid-column: 2;
-ms-grid-row: 4;
grid-area: footer;
clear: both; clear: both;
overflow: auto; overflow: auto;
width: 100%; width: 100%;
@ -265,6 +369,11 @@
.fulldesk #footer { .fulldesk #footer {
display: none; 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 */ /* Support for footer made with table */
#footer table { #footer table {
@ -315,6 +424,12 @@
text-decoration: none; text-decoration: none;
} }
#verifyEmailId2 {
color:yellow;
margin-left:3px;
cursor:pointer;
}
#dialog { #dialog {
z-index: 1000; z-index: 1000;
background-color: #EEE; background-color: #EEE;
@ -332,6 +447,18 @@
background-color: #003366; background-color: #003366;
color: #FFF; color: #FFF;
border-radius: 5px 5px 0 0; 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 { #dialogBody {
@ -360,14 +487,63 @@
padding:10px; padding:10px;
} }
#dialog2, #dialog3 { #dialog2, #dialog3, #dialog7 {
margin: auto;
margin: 3px; 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 { #idx_dlgButtonBar {
padding: 10px; padding: 10px;
margin-bottom: 20px; margin-bottom: 5px;
overflow: auto;
float: right;
} }
#idx_dlgCancelButton { #idx_dlgCancelButton {
@ -398,7 +574,7 @@
#idx_deskFullBtn2 { #idx_deskFullBtn2 {
float: left; float: left;
font-size: large; font-size: 16px;
cursor: pointer; cursor: pointer;
display: none; display: none;
} }
@ -543,6 +719,14 @@
font-size: 10px; font-size: 10px;
} }
#p2AccountActions .mL {
margin-left: 40px;
}
#p2ServerActions .mL {
margin-left: 40px;
}
.newMeshBtn { .newMeshBtn {
background: url(../images/icon-addnew.png) no-repeat 0px 0px; background: url(../images/icon-addnew.png) no-repeat 0px 0px;
height: 12px; height: 12px;
@ -552,10 +736,14 @@
padding-left: 15px; padding-left: 15px;
} }
#p2noMeshFound, #p2ServerActionsBackup, #p2ServerActionsRestore, #p2ServerActionsVersion, #p2ServerActionsErrors, #serverStats { #p2noMeshFound, #serverStats {
margin-left:40px; margin-left:40px;
} }
#p2ServerActionsBackup, #p2ServerActionsRestore, #p2ServerActionsVersion, #p2ServerActionsErrors {
margin-left:0px;
}
.pTable { .pTable {
width: 100%; width: 100%;
height: 24px; height: 24px;
@ -580,7 +768,7 @@
} }
#p3events { #p3events {
height: calc(100vh - 243px); height: calc(100vh - 245px);
overflow-y: scroll overflow-y: scroll
} }
@ -599,6 +787,10 @@
width: 230px; width: 230px;
} }
#p5toolbar {
width: 100%;
}
#p5filehead { #p5filehead {
width: 100%; width: 100%;
background-color: #d3d9d6; background-color: #d3d9d6;
@ -618,7 +810,7 @@
#p5filetable { #p5filetable {
width: 100%; width: 100%;
height: calc(100vh - 294px); height: calc(100vh - 295px);
overflow: auto; overflow: auto;
-webkit-user-select: none; -webkit-user-select: none;
position: relative; position: relative;
@ -631,6 +823,9 @@
-webkit-user-select: none; -webkit-user-select: none;
background-color: lightsteelblue; background-color: lightsteelblue;
} }
#p5PublicShare div {
padding: 4px;
}
#bigok { #bigok {
width: 256px; width: 256px;
@ -669,6 +864,12 @@
height: 60px; height: 60px;
} }
#serverMainStats {
height:calc(100vh - 251px);
max-height:calc(100vh - 251px);
width:100%
}
#p10BackButton, #p11BackButton { #p10BackButton, #p11BackButton {
float:left float:left
} }
@ -723,6 +924,14 @@
font-size: x-small; font-size: x-small;
} }
#dp10devicevalue {
width: 230px;
}
.fulldesk #p11 {
height: 100%;
}
#MainComputerImage { #MainComputerImage {
border-width: 0px; border-width: 0px;
height: 200px; height: 200px;
@ -763,7 +972,6 @@
top: 0; top: 0;
right: 0; right: 0;
border-left: 2px solid lightgray; border-left: 2px solid lightgray;
display: none;
} }
#DeskToolsRefreshButton { #DeskToolsRefreshButton {
float: right; float: right;
@ -774,6 +982,7 @@
a { a {
color: #036; color: #036;
text-decoration: underline; text-decoration: underline;
cursor: pointer;
} }
.i1 { .i1 {
@ -1071,11 +1280,20 @@ a {
background-color: #D3D9D6; background-color: #D3D9D6;
} }
/* .pTable .style14 {
float: left;
} */
.auto-style1 { .auto-style1 {
text-align: right; text-align: right;
background-color: #D3D9D6; background-color: #D3D9D6;
} }
#pTable .auto-style1 {
height: 100%;
float: right;
}
.icon2 { .icon2 {
float: left; float: left;
margin: 7px; margin: 7px;
@ -1215,7 +1433,7 @@ a {
.h1 { .h1 {
background-position: 0% 0%; background-position: 0% 0%;
width: 14px; width: 14px;
height: 100%; height: 24px;
/* fallback (Opera) */ /* fallback (Opera) */
/* Mozilla: */ /* Mozilla: */
/* Chrome, Safari:*/ /* Chrome, Safari:*/
@ -1229,13 +1447,13 @@ a {
height: 100%; height: 100%;
width: 20px; width: 20px;
float: right; float: right;
background-color: #ffffff background-color: #ffffff;
} }
.h2 { .h2 {
background-position: 0% 0%; background-position: 0% 0%;
width: 14px; width: 14px;
height: 100%; height: 24px;
/* fallback (Opera) */ /* fallback (Opera) */
/* Mozilla: */ /* Mozilla: */
/* Chrome, Safari:*/ /* Chrome, Safari:*/
@ -1362,6 +1580,10 @@ 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: 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 */ filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%) opacity(60%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */ -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 { .unselectable {
@ -1433,13 +1655,117 @@ a {
padding: 4px 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 { #deskarea3x {
background: black; background: black;
text-align: center; text-align: center;
position: relative; position: relative;
overflow: hidden; 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 { #DeskFocus {
overflow: hidden; overflow: hidden;
color: transparent; color: transparent;
@ -1449,17 +1775,27 @@ a {
} }
#DeskParent { #DeskParent {
overflow:hidden margin: 0;
overflow:hidden;
height: 100%;
width: 100%;
position: absolute;
right: 0;
top: 0;
} }
#Desk { #Desk {
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
-ms-touch-action: none; -ms-touch-action: none;
margin-left: 0px; position: absolute;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
margin: auto;
} }
#deskToolsBar { #deskToolsBar {
position: absolute; position: absolute;
padding: 3px; padding: 3px;
@ -1471,6 +1807,27 @@ a {
cursor: pointer; 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 { #DeskToolsProcesses {
overflow-y: scroll; overflow-y: scroll;
position: absolute; position: absolute;
@ -1486,6 +1843,22 @@ a {
background-color: #EFE8B6; 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 { .userTableHeader {
border-bottom: 1pt solid lightgray; border-bottom: 1pt solid lightgray;
@ -1493,6 +1866,159 @@ a {
padding-bottom: 4px; 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 { .viewSelector {
width:32px; width:32px;
height:32px; height:32px;

View File

@ -53,7 +53,6 @@
<!-- main page --> <!-- main page -->
<div id=container> <div id=container>
<div id="notifiyBox" class="notifiyBox" style="display:none"></div> <div id="notifiyBox" class="notifiyBox" style="display:none"></div>
<div id=mastheadx></div>
<div id=masthead class=noselect> <div id=masthead class=noselect>
<div class="title">{{{title}}}</div> <div class="title">{{{title}}}</div>
<div class="title2">{{{title2}}}</div> <div class="title2">{{{title2}}}</div>
@ -83,12 +82,11 @@
<div class="lb6"></div> <div class="lb6"></div>
</div> </div>
</div> </div>
<div id="page_content">
<div id=topbarmaster>
<div id=topbar class=noselect> <div id=topbar class=noselect>
<div> <div>
<div style="position:relative"> <div style="position:relative">
<div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div> <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> <table id=MainMenuSpan cellpadding=0 cellspacing=0 class=style1>
<tr> <tr>
<td id=MainMenuMyDevices class="topbar_td style3x" onclick=go(1)>My Devices</td> <td id=MainMenuMyDevices class="topbar_td style3x" onclick=go(1)>My Devices</td>
@ -143,13 +141,12 @@
</div> </div>
<div id=UserDummyMenuSpan> <div id=UserDummyMenuSpan>
<table id=UserDummyMenu cellpadding=0 cellspacing=0 class=style1> <table id=UserDummyMenu cellpadding=0 cellspacing=0 class=style1>
<tr><td class=style3 style="text-align:right;height:24px">&nbsp;</td></tr> <tr><td class=style3 style="">&nbsp;</td></tr>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
<div id="column_l"> <div id="column_l">
<div id=p0 style="display:none"> <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> <div id=p0message><span id=p0span>Server disconnected</span>, <href onclick=reload() style=cursor:pointer><u>click to reconnect</u></href>.</div>
@ -253,7 +250,7 @@
</div> </div>
<div id="p2AccountActions"> <div id="p2AccountActions">
<p><strong>Account actions</strong></p> <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> <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_showChangeEmail()">Change email address</a><br />
<a onclick="account_showChangePassword()">Change password</a><span id="p2nextPasswordUpdateTime"></span><br /> <a onclick="account_showChangePassword()">Change password</a><span id="p2nextPasswordUpdateTime"></span><br />
@ -272,9 +269,9 @@
<h1>My Events</h1> <h1>My Events</h1>
<table class="pTable"> <table class="pTable">
<tr> <tr>
<td class=h1></td> <td class="h1"></td>
<td>&nbsp;<input id=p2deleteall type=button onclick=showDeleteAllEventsDialog() style="display:none" value="Delete All..." /></td> <td>&nbsp;<input id="p2deleteall" type=button onclick=showDeleteAllEventsDialog() style="display:none" value="Delete All..." /></td>
<td class=auto-style1> <td class="auto-style1">
Show Show
<select id=p3limitdropdown onchange=refreshEvents()> <select id=p3limitdropdown onchange=refreshEvents()>
<option value=60>Last 60</option> <option value=60>Last 60</option>
@ -284,7 +281,7 @@
<option value=1000>Last 1000</option> <option value=1000>Last 1000</option>
</select> </select>
</td> </td>
<td class=h2></td> <td class="h2"></td>
</tr> </tr>
</table> </table>
<div id=p3events style=""></div> <div id=p3events style=""></div>
@ -293,8 +290,8 @@
<h1>My Users</h1> <h1>My Users</h1>
<table class="pTable"> <table class="pTable">
<tr> <tr>
<td class=h1></td> <td class="h1"></td>
<td class=style14> <td class="style14">
<div style="float:right"> <div style="float:right">
<input type=button onclick=showUserBroadcastDialog() style=margin-right:6px value="Broadcast" /> <input type=button onclick=showUserBroadcastDialog() style=margin-right:6px value="Broadcast" />
</div> </div>
@ -303,14 +300,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) /> <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> </div>
</td> </td>
<td class=h2></td> <td class="h2"></td>
</tr> </tr>
</table> </table>
<div id="p3users"></div> <div id="p3users"></div>
</div> </div>
<div id=p5 style="display:none"> <div id=p5 style="display:none">
<h1>My Files</h1> <h1>My Files</h1>
<table id="p5toolbar" style="width:100%" cellpadding="0" cellspacing="0"> <table id="p5toolbar" cellpadding="0" cellspacing="0">
<tr> <tr>
<td id="p5filehead" valign=bottom> <td id="p5filehead" valign=bottom>
<div id="p5rightOfButtons"></div> <div id="p5rightOfButtons"></div>
@ -351,7 +348,7 @@
<input type=submit id=p5fileCatchAllSubmit style="display:none" /> <input type=submit id=p5fileCatchAllSubmit style="display:none" />
</form> </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="bigok" style="display:none"><b>&checkmark;</b></div>
<div id="bigfail" style="display:none"><b>&#10007;</b></div> <div id="bigfail" style="display:none"><b>&#10007;</b></div>
<span id="p5files"></span> <span id="p5files"></span>
@ -363,13 +360,15 @@
<div id=p6 style="display:none"> <div id=p6 style="display:none">
<img id=MainMeshImage src="serverpic.ashx"> <img id=MainMeshImage src="serverpic.ashx">
<h1>My Server</h1> <h1>My Server</h1>
<p id="p2ServerActions"><strong>Server actions</strong></p> <div id="p2ServerActions">
<p style="margin-left:40px"> <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="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="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="p2ServerActionsVersion"><a onclick="server_showVersionDlg()">Check server version</a></div>
<div id="p2ServerActionsErrors"><a onclick="server_showErrorsDlg()">Show server error log</a></div> <div id="p2ServerActionsErrors"><a onclick="server_showErrorsDlg()">Show server error log</a></div>
</p> </div>
</div>
<br /><strong>Server Statistics</strong><br /><br /> <br /><strong>Server Statistics</strong><br /><br />
<div id="serverStats"> <div id="serverStats">
<div id="serverCpuChartView" style="display:none"> <div id="serverCpuChartView" style="display:none">
@ -419,36 +418,33 @@
<div class="icon2"></div> <div class="icon2"></div>
<div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div> <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
</div> </div>
<table id=deskarea0 cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
<tr id=deskarea1> <div id=deskarea0 cellpadding=0 cellspacing=0>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0"> <div id=deskarea1 class="areaHead">
<div style="float:right;text-align:right"> <div class="toright2">
<span id="p14power"></span>&nbsp; <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 class='deskareaicon' title="Toggle Aspect Ratio" onclick="toggleAspectRatio(1)">&#8690;</div>
<div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Right" onclick="drotate(1)">&orarr;</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="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="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() 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() class="mR" />
<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 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="margin-right:3px;display:none"> <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> <div>
<div id="idx_deskFullBtn2" onclick=deskToggleFull(event)>&nbsp;&#x2716;</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"> <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=connectbutton1span><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=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> <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> &nbsp;<span id="deskstatus">Disconnected</span>
</div> </div>
</td> </div>
</tr> <div id=deskarea2 style="">
<tr id=deskarea2> <div class="areaProgress"><div id="progressbar" style=""></div></div>
<td> </div>
<div style=background-color:gray><div id=progressbar style=height:2px;width:0%;background-color:red></div></div> <div id=deskarea3x>
</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=DeskFocus oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></div>
<div id=DeskParent> <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> <canvas id=Desk width=640 height=480 oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event) onmousewheel=dmousewheel(event)></canvas>
@ -456,24 +452,24 @@
<div id=DeskTools> <div id=DeskTools>
<a id=DeskToolsRefreshButton style="" onclick="refreshDeskTools()">Refresh</a> <a id=DeskToolsRefreshButton style="" onclick="refreshDeskTools()">Refresh</a>
<div id=DeskToolsBar>Processes</div> <div id=DeskToolsBar>Processes</div>
<div style="position:absolute;top:26px;left:4px;right:4px;bottom:4px;background-color:lightgray;text-align:left"> <div id=deskToolsArea>
<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=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 id="DeskToolsProcesses" style=""></div>
</div> </div>
</div> </div>
</td> </div>
</tr> <div id=deskarea4 class="areaFoot">
<tr id=deskarea4> <div class="toright2">
<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; <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; <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=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 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=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 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> <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>
<div> <div>
<select style="margin-left:6px" id="deskkeys"> <select id="deskkeys">
<option value=5>Win</option> <option value=5>Win</option>
<option value=0>Win+Down</option> <option value=0>Win+Down</option>
<option value=1>Win+Up</option> <option value=1>Win+Up</option>
@ -483,17 +479,16 @@
<option value=6>Win+R</option> <option value=6>Win+R</option>
</select> </select>
<input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()"> <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="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()"> <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; <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>
</td>
</tr>
</table>
</div> </div>
<div id=p12 style="display:none"> <div id=p12 style="display:none">
<div id="p12title"> <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> <h1>Terminal - <span id=p12deviceName></span></h1>
</div> </div>
<div id="p12warning" onclick=showFeaturesDlg()> <div id="p12warning" onclick=showFeaturesDlg()>
@ -504,15 +499,15 @@
<div class="icon2"></div> <div class="icon2"></div>
<div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div> <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
</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> <tr>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0"> <td class="areaHead">
<div style="float:right;text-align:right"> <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() style=margin-right:3px /> <input id="termActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction()/>
</div> </div>
<div> <div>
<input type="button" id="autoconnectbutton2" value="AutoConnect" onclick=autoConnectTerminal(event) onkeypress="return false" onkeydown="return false" style="display:none"> <input type="button" id="autoconnectbutton2" value="AutoConnect" onclick=autoConnectTerminal(event) onkeypress="return false" onkeydown="return false" style="display:none">
<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="connectbutton2span"><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="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> <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> &nbsp;<span id="termstatus">Disconnected</span>
@ -521,23 +516,23 @@
</tr> </tr>
<tr> <tr>
<td> <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> </td>
</tr> </tr>
<tr> <tr>
<td style="background:black;text-align:center;height:500px;position:relative"> <td id="termarea3x">
<pre id="Term" style="background:black;margin:0;padding:0"></pre> <pre id="Term"></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0"> <td class="areaFoot">
<div style="float:right;text-align:right"> <div class="toright2">
<span id="terminalSettingsButtons" style="display:none"> <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_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_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()"> <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> </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()" /> <input id="specialkeylistinput" type="button" onkeypress="return false" class="bottombutton" value="Send" title="Send the selected special key" onclick="sendSpecialKey()" />
</div> </div>
<div> <div>
@ -557,11 +552,11 @@
<div id="p13BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div> <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> <h1>Files - <span id=p13deviceName></span></h1>
</div> </div>
<table id="p13toolbar" style="width: 100%" cellpadding="0" cellspacing="0"> <table id="p13toolbar" cellpadding="0" cellspacing="0">
<tr> <tr>
<td style="background-color:#C0C0C0;border-bottom:2px solid black;padding:2px"> <td class="areaHead">
<div style="float:right;text-align:right"> <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() style=margin-right:3px /> <input id="filesActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() />
</div> </div>
<div> <div>
<input id=p13AutoConnect value="AutoConnect" onclick=autoConnectFiles(event) onkeypress="return false" onkeydown="return false" type="button" style="display:none"> <input id=p13AutoConnect value="AutoConnect" onclick=autoConnectFiles(event) onkeypress="return false" onkeydown="return false" type="button" style="display:none">
@ -571,8 +566,8 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="width:100%;background-color:#d3d9d6;text-align:left;padding:4px" valign=bottom> <td class="areaHead2" valign=bottom>
<div id="p13rightOfButtons" style="float:right;margin-top:3px"></div> <div id="p13rightOfButtons" class="toright2"></div>
<div> <div>
<input type=button id=p13FolderUp disabled="disabled" onclick="p13folderup()" value="Up" />&nbsp; <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; <input type=button id=p13SelectAllButton disabled="disabled" onclick="p13selectallfile()" value="Select All" onkeypress="return false" onkeydown="return false" />&nbsp;
@ -588,8 +583,8 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="background-color:#E4E9E7;height:28px"> <td class="areaHead3">
<div style=float:right> <div class="toright2">
<select id=p13sortdropdown onchange=p13updateFiles()> <select id=p13sortdropdown onchange=p13updateFiles()>
<option value=1 selected="selected">Sort by name</option> <option value=1 selected="selected">Sort by name</option>
<option value=2>Sort by size</option> <option value=2>Sort by size</option>
@ -603,12 +598,12 @@
</td> </td>
</tr> </tr>
</table> </table>
<div id="p13filetable" style="width:100%;height:calc(100vh - 346px);overflow:auto;-webkit-user-select:none"> <div id="p13filetable" style="">
<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="p13bigok" style="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="p13bigfail" style="display:none"><b>&#10007;</b></div>
<span id="p13files"></span> <span id="p13files"></span>
</div> </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> <tr><td class=style6>&nbsp;<span id="p13bottomstatus"></span></td></tr>
</table> </table>
</div> </div>
@ -617,35 +612,35 @@
<div id="p14BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div> <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> <h1>Intel&reg; AMT - <span id=p14deviceName></span></h1>
</div> </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>
<div id=p15 style="display:none"> <div id=p15 style="display:none">
<div id="p15title"> <div id="p15title">
<div id="p15BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div> <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> <h1><span id=p15deviceName></span></h1>
</div> </div>
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px"> <table id="consoleTable" cellpadding=0 cellspacing=0>
<tr> <tr>
<td style=background:#C0C0C0> <td class="areaHead">
<div style=float:right;padding-right:4px> <div class="toright2">
<div style=padding:4px;display:inline-block id=p15coreName title="Information about current core running on this agent"></div> <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" /> <input type=button id=p15uploadCore value="Agent Action" onclick=p15uploadCore(event) title="Change the agent Java Script code module" />
</div> </div>
<div id="p15statetext" style=padding:4px></div> <div id="p15statetext"></div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <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> </td>
</tr> </tr>
<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"> <td id=p15agentConsole>
<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> <pre id=p15agentConsoleText></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0"> <td class="areaFoot">
<table style="width:100%"> <table style="width:100%">
<tr> <tr>
<td style="width:99%"> <td style="width:99%">
@ -664,12 +659,11 @@
<div id="p16BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div> <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> <h1>Events - <span id=p16deviceName></span></h1>
</div> </div>
<div style="width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px"> <table class="pTable">
<div class="h1pre">&nbsp;</div> <tr>
<div class="h1" style="float:left">&nbsp;</div> <td class="h1"></td>
<!--<div class=style14 style=height:100%;float:left>&nbsp;&nbsp;<input id=p31deleteall type=button style="display:none" value="Delete All..." />&nbsp;</div>--> <td>&nbsp;<input type=button onclick=refreshDeviceEvents() value="Refresh" /></td>
<div class="style14" style="float:left">&nbsp;&nbsp;<input type=button value=Refresh onclick=refreshDeviceEvents() />&nbsp;</div> <td class="auto-style1">
<div class="auto-style1" style="height:100%;float:right">
Show Show
<select id=p16limitdropdown onchange=refreshDeviceEvents()> <select id=p16limitdropdown onchange=refreshDeviceEvents()>
<option value=60>Last 60</option> <option value=60>Last 60</option>
@ -678,11 +672,11 @@
<option value=500>Last 500</option> <option value=500>Last 500</option>
<option value=1000>Last 1000</option> <option value=1000>Last 1000</option>
</select> </select>
<div class="h2end"></div> </td>
<div class="h2" style="height:100%;float:right">&nbsp;</div> <td class="h2"></td>
</div> </tr>
</div> </table>
<div id=p16events style="max-height:calc(100vh - 267px);overflow-y:auto"></div> <div id=p16events></div>
</div> </div>
<div id=p20 style="display:none"> <div id=p20 style="display:none">
<picture id=MainMeshImage style=border-width:0px;height:200px;width:200px;float:right> <picture id=MainMeshImage style=border-width:0px;height:200px;width:200px;float:right>
@ -719,12 +713,11 @@
<div id=p31 style="display:none"> <div id=p31 style="display:none">
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div> <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
<h1>Events - <span id=p31userName></span></h1> <h1>Events - <span id=p31userName></span></h1>
<div style="width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px"> <table class="pTable">
<div class="h1pre">&nbsp;</div> <tr>
<div class="h1" style="height:100%;float:left">&nbsp;</div> <td class="h1"></td>
<!--<div class=style14 style=float:left>&nbsp;&nbsp;<input id=p31deleteall type=button style="display:none" value="Delete All..." />&nbsp;</div>--> <td>&nbsp;<input type=button onclick=refreshUsersEvents() value="Refresh" /></td>
<div class="style14" style="float:left">&nbsp;&nbsp;<input type=button value=Refresh onclick=refreshUsersEvents() />&nbsp;</div> <td class="auto-style1">
<div class="auto-style1" style="height:100%;float:right">
Show Show
<select id=p31limitdropdown onchange=refreshUsersEvents()> <select id=p31limitdropdown onchange=refreshUsersEvents()>
<option value=60>Last 60</option> <option value=60>Last 60</option>
@ -733,16 +726,16 @@
<option value=500>Last 500</option> <option value=500>Last 500</option>
<option value=1000>Last 1000</option> <option value=1000>Last 1000</option>
</select> </select>
<div class="h2end"></div> </td>
<div class="h2" style="height:100%;float:right;">&nbsp;</div> <td class="h2"></td>
</tr>
</table>
<div id=p31events></div>
</div> </div>
</div> <div id=p40 style="display:none;">
<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> <h1>My Server Stats</h1>
<div style=width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px> <div class="areaHead">
<div style="float:right"> <div class="toright2">
<select id=p40type onchange=updateServerTimelineStats()> <select id=p40type onchange=updateServerTimelineStats()>
<option value=0>Connections</option> <option value=0>Connections</option>
<option value=1>Memory</option> <option value=1>Memory</option>
@ -757,32 +750,25 @@
<img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>&nbsp; <img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>&nbsp;
</div> </div>
<div> <div>
&nbsp;<input value="Refresh" type="button" onclick="refreshServerTimelineStats()" /> <input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
&nbsp;<input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X &nbsp;<input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X
</div> </div>
</div> </div>
<canvas id=serverMainStats style="height:calc(100vh - 250px);max-height:calc(100vh - 250px);width:100%"></canvas> <canvas id=serverMainStats style=""></canvas>
</div> </div>
<br id="column_l_bottomgap" /> <br id="column_l_bottomgap" />
</div> </div>
<div id=footer class=noselect> <div id="footer">
<table cellpadding=0 cellspacing=10 style="width:100%"> <div class="footer1">{{{footer}}}</div>
<tr> <div class="footer2">
<td style="text-align:left;color:white"> <a id="verifyEmailId2" style="display:none" onclick="account_showVerifyEmail()">Verify Email</a>
{{{footer}}} &nbsp;<a href=terms>Terms &amp; Privacy</a>
</td> </div>
<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>
<div id=dialog style="display:none"> <div id=dialog style="display:none">
<div id=dialogHeader> <div id=dialogHeader>
<div id=id_dialogclose style=float:right;padding:3px;margin-right:3px;cursor:pointer onclick=setDialogMode()>&#x2716;</div> <div id=id_dialogclose onclick=setDialogMode()>&#x2716;</div>
<div id=id_dialogtitle style=padding:5px></div> <div id=id_dialogtitle></div>
<div style=width:100%;margin:6px></div>
</div> </div>
<div id=dialogBody> <div id=dialogBody>
<div id=dialog1> <div id=dialog1>
@ -792,38 +778,38 @@
<div id=id_dialogOptions></div> <div id=id_dialogOptions></div>
</div> </div>
<div id=dialog3 style=""> <div id=dialog3 style="">
<div style=height:26px> <div id=d3upload>
<select id=d3uploadMode style=float:right;width:260px onchange=d3modechange()> <div>File Selection</div>
<select id=d3uploadMode onchange=d3modechange()>
<option value=1>Local file upload</option> <option value=1>Local file upload</option>
<option value=2>Server file selection</option> <option value=2>Server file selection</option>
</select> </select>
<div>File Selection</div>
</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> <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=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" /> <input type=submit id=d3submit style="display:none" />
</form> </form>
<div>Upload File</div>
</div> </div>
<div id=d3servermode> <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; <input type=button id=p3FolderUp disabled="disabled" onclick=d3folderup() value="Up" />&nbsp;
</div> </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> </div>
<div id=dialog7 style="margin:auto;margin:3px"> <div id=dialog7 style="">
<div id="d7meshkvm"> <div id="d7meshkvm">
<h4 style="width:100%;border-bottom:1px solid gray">Agent Remote Desktop</h4> <h4>Agent Remote Desktop</h4>
<div style="margin:3px 0 3px 0"> <div>
<select id="d7bitmapquality" style="float:right;width:200px;height:20px" dir="rtl"></select> <div>Quality</div>
<div style="height:20px">Quality</div> <select id="d7bitmapquality" dir="rtl"></select>
</div> </div>
<div style="margin:3px 0 3px 0"> <div>
<select id="d7bitmapscaling" style="float:right;width:200px;height:20px" dir="rtl"> <div>Scaling</div>
<select id="d7bitmapscaling" style="" dir="rtl">
<option selected=selected value=1024>100%</option> <option selected=selected value=1024>100%</option>
<option value=896>87.5%</option> <option value=896>87.5%</option>
<option value=768>75%</option> <option value=768>75%</option>
@ -833,44 +819,43 @@
<option value=256>25%</option> <option value=256>25%</option>
<option value=128>12.5%</option> <option value=128>12.5%</option>
</select> </select>
<div style="height:20px">Scaling</div>
</div> </div>
<div style="margin:3px 0 3px 0"> <div>
<select id="d7framelimiter" style="float:right;width:200px;height:20px" dir="rtl"> <div>Frame rate</div>
<select id="d7framelimiter" dir="rtl">
<option selected=selected value=50>Fast</option> <option selected=selected value=50>Fast</option>
<option value=100>Medium</option> <option value=100>Medium</option>
<option value=400>Slow</option> <option value=400>Slow</option>
<option value=1000>Very slow</option> <option value=1000>Very slow</option>
</select> </select>
<div style="height:20px">Frame rate</div>
</div> </div>
</div> </div>
<div id="d7amtkvm"> <div id="d7amtkvm">
<h4 style="width:100%;border-bottom:1px solid gray">Intel&reg; AMT Hardware KVM</h4> <h4>Intel&reg; AMT Hardware KVM</h4>
<div style='height:26px'> <div>
<select id="d7desktopmode" style="float:right;width:200px"> <div>Image Encoding</div>
<select id="d7desktopmode">
<option value="1">RLE8, Fastest</option> <option value="1">RLE8, Fastest</option>
<option value="2">RLE16, Recommended</option> <option value="2">RLE16, Recommended</option>
<option value="3">RAW8, Slow</option> <option value="3">RAW8, Slow</option>
<option value="4">RAW16, Very Slow</option> <option value="4">RAW16, Very Slow</option>
</select> </select>
<div>Image Encoding</div>
</div> </div>
<div style="height:60px"> <div>
<div style="float:right;border:1px solid #666;width:200px;height:60px;overflow-y:scroll;background-color:white"> <div>Other Settings</div>
<div id="d7otherset">
<label><input type="checkbox" id='d7showfocus'>Show Focus Tool<br></label> <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='d7showcursor'>Show Local Mouse Cursor<br></label>
<label><input type="checkbox" id='d7localKeyMap'>Local Keyboard Map<br></label> <label><input type="checkbox" id='d7localKeyMap'>Local Keyboard Map<br></label>
</div> </div>
<div>Other Settings</div>
</div> </div>
</div> </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_dlgCancelButton" type="button" value="Cancel" style="" onclick="dialogclose(0)">
<input id="idx_dlgOkButton" type="button" value="OK" style="" onclick="dialogclose(1)"> <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>
</div> </div>
<iframe name="fileUploadFrame" style="display:none"></iframe> <iframe name="fileUploadFrame" style="display:none"></iframe>
@ -878,7 +863,6 @@
<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> <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> <audio id="chimes"><source src="sounds/chimes.mp3" type="audio/mp3"></audio>
</div> </div>
</div>
<script type="text/javascript"> <script type="text/javascript">
'use strict'; 'use strict';
var args; var args;
@ -927,6 +911,11 @@
var passRequirements = "{{{passRequirements}}}"; var passRequirements = "{{{passRequirements}}}";
if (passRequirements != "") { passRequirements = JSON.parse(decodeURIComponent(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() { function startup() {
if ((features & 32) == 0) { if ((features & 32) == 0) {
// Guard against other site's top frames (web bugs). // Guard against other site's top frames (web bugs).
@ -950,7 +939,7 @@
if (args.hide) { if (args.hide) {
var hide = parseInt(args.hide); var hide = parseInt(args.hide);
QV('masthead', !(hide & 1)); QV('masthead', !(hide & 1));
QV('topbarmaster', !(hide & 2)); QV('topbar', !(hide & 2));
QV('footer', !(hide & 4)); QV('footer', !(hide & 4));
QV('p10title', !(hide & 8)); QV('p10title', !(hide & 8));
QV('p11title', !(hide & 8)); QV('p11title', !(hide & 8));
@ -1039,54 +1028,47 @@
setupServerTimelineStats(); 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 // Toggle the web page to full screen
function toggleFullScreen(toggle) { function toggleFullScreen(toggle) {
if (toggle === 1) { webPageFullScreen = !webPageFullScreen; putstore('webPageFullScreen', webPageFullScreen); } if (toggle === 1) { webPageFullScreen = !webPageFullScreen; putstore('webPageFullScreen', webPageFullScreen); }
var hide = 0; var hide = 0;
if (args.hide) { hide = parseInt(args.hide); } if (args.hide) { hide = parseInt(args.hide); }
if (webPageFullScreen == false) { if (webPageFullScreen == false) {
QC('body').remove("menu_stack");
QC('body').remove("fullscreen"); QC('body').remove("fullscreen");
QC('body').remove("arg_hide"); QC('body').remove("arg_hide");
/* QS('container').width = '960px'; if (xxcurrentView >= 10) QC('column_l').add('room4submenu');
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('UserDummyMenuSpan', false);
QV('page_leftbar', false); //QV('page_leftbar', false);
} else { } else {
QC('body').add("fullscreen"); QC('body').add("fullscreen");
if (hide & 16) QC('body').add("arg_hide"); if (hide & 16) QC('body').add("arg_hide"); // This is replacement for QV('page_leftbar', !(hide & 16));
/* QS('container').position = 'absolute'; if (xxcurrentView >= 10) QC('column_l').remove('room4submenu');
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('UserDummyMenuSpan', (xxcurrentView < 10) && webPageFullScreen);
QV('page_leftbar', !(hide & 16));
} }
//center();
masterUpdate(512); masterUpdate(512);
QV('body', true); QV('body', true);
} }
@ -1449,7 +1431,7 @@
case 'getcookie': { case 'getcookie': {
if (message.tag == 'clickonce') { if (message.tag == 'clickonce') {
var basicPort = "{{{serverRedirPort}}}" == "" ? "{{{serverPublicPort}}}" : "{{{serverRedirPort}}}"; 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) ? "" : "&HOL=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) ? "" : "&XHOL=1");
var newWindow = window.open(rdpurl, '_blank'); var newWindow = window.open(rdpurl, '_blank');
newWindow.opener = null; newWindow.opener = null;
} }
@ -1609,12 +1591,32 @@
var newsiteadmin = message.event.account.siteadmin?message.event.account.siteadmin:0; var newsiteadmin = message.event.account.siteadmin?message.event.account.siteadmin:0;
var oldsiteadmin = userinfo.siteadmin?userinfo.siteadmin:0; var oldsiteadmin = userinfo.siteadmin?userinfo.siteadmin:0;
if ((message.event.account.quota != userinfo.quota) || (((userinfo.siteadmin & 8) == 0) && ((message.event.account.siteadmin & 8) != 0))) { meshserver.send({ action: 'files' }); } if ((message.event.account.quota != userinfo.quota) || (((userinfo.siteadmin & 8) == 0) && ((message.event.account.siteadmin & 8) != 0))) { meshserver.send({ action: 'files' }); }
var oldgroups = userinfo.groups;
userinfo = message.event.account; userinfo = message.event.account;
if (oldsiteadmin != newsiteadmin) updateSiteAdmin(); if (oldsiteadmin != newsiteadmin) updateSiteAdmin();
updateSelf(); updateSelf();
if ((userinfo.siteadmin & 2) != 0) {
// Compare our groups
var og = oldgroups ? oldgroups : [];
var ng = userinfo.groups ? userinfo.groups : [];
if (og.join(',') != ng.join(',')) {
// Our groups have changed, re-ask for a list of users.
users = wssessions = null;
meshserver.send({ action: 'users' });
meshserver.send({ action: 'wssessioncount' });
}
}
} }
if (users == null) break; if (users == null) break;
users[message.event.account._id] = message.event.account;
// Check if the account if part of our user group
if ((userinfo.groups == null) || (userinfo.groups.length == 0) || (findOne(message.event.account.groups, userinfo.groups) == true)) {
users[message.event.account._id] = message.event.account; // Part of our groups, update this user.
} else {
delete users[message.event.account._id]; // No longer part of our groups, remove this user.
}
updateUsers(); updateUsers();
break; break;
} }
@ -2322,7 +2324,7 @@
multiDesktop[id] = desktop; multiDesktop[id] = desktop;
desktop = desktopNode = currentNode = null; desktop = desktopNode = currentNode = null;
// Setup a replacement desktop // 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 { } else {
// This is a new device, create a canvas for it. // This is a new device, create a canvas for it.
var c = document.createElement('canvas'); var c = document.createElement('canvas');
@ -4154,7 +4156,7 @@
var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3']; var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3'];
function showEditNodeValueDialog(mode) { function showEditNodeValueDialog(mode) {
if (xxdialogMode) return; 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); setDialogMode(2, "Edit Device", 3, showEditNodeValueDialogEx, x, mode);
var v = currentNode[showEditNodeValueDialog_modes2[mode]]; var v = currentNode[showEditNodeValueDialog_modes2[mode]];
if (v == null) v = ''; if (v == null) v = '';
@ -4193,7 +4195,6 @@
QH('DeskParent', ''); QH('DeskParent', '');
var c = xdesk.m.CanvasId; var c = xdesk.m.CanvasId;
c.setAttribute('id', 'Desk'); c.setAttribute('id', 'Desk');
c.setAttribute('style', 'width:100%;-ms-touch-action:none;margin-left:0px');
c.setAttribute('onmousedown', 'dmousedown(event)'); c.setAttribute('onmousedown', 'dmousedown(event)');
c.setAttribute('onmouseup', 'dmouseup(event)'); c.setAttribute('onmouseup', 'dmouseup(event)');
c.setAttribute('onmousemove', 'dmousemove(event)'); c.setAttribute('onmousemove', 'dmousemove(event)');
@ -4207,7 +4208,7 @@
delete multiDesktop[currentNode._id]; delete multiDesktop[currentNode._id];
} else { } else {
// Device is not already connected, just setup a blank canvas // 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; desktopNode = currentNode;
} }
// Setup the mouse wheel // Setup the mouse wheel
@ -4503,45 +4504,19 @@
var browserfullscreen = false; var browserfullscreen = false;
function deskToggleFull(e) { function deskToggleFull(e) {
fullscreen = !fullscreen; 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) { if (fullscreen) {
QC('body').add("fulldesk"); QC('body').add("fulldesk");
QS('deskarea3x').height = null;
// If shift is pressed, enter browser full screen. // If shift is pressed, enter browser full screen.
if (e.shiftKey == true) { enterBrowserFullscreen(Q('deskarea0')); browserfullscreen = true; } 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 { } else {
QC('body').remove("fulldesk"); QC('body').remove("fulldesk");
exitBrowserFullscreen(); exitBrowserFullscreen();
browserfullscreen = false; 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(); toggleFullScreen();
} }
deskAdjust(); deskAdjust();
deskAdjust(); //deskAdjust();
updateDesktopButtons(); updateDesktopButtons();
} }
@ -4551,33 +4526,34 @@
} }
function deskAdjust() { 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 (deskAspectRatio) {
if (fullscreen) { QS('Desk').width = '100%';
document.documentElement.style.overflow = 'hidden'; QS('Desk').height = '100%';
QS('deskarea3x').height = null; 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 { } else {
QS('Desk')['max-height'] = null; var parentH = Q('DeskParent').clientHeight;
QS('Desk')['max-width'] = null; 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')['margin-top'] = x + 'px'; QS('Desk').height = hNew;
QS('Desk')['margin-bottom'] = x + 'px'; QS('Desk').width = '100%';
} else { } else {
var mw = 9999, mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (webPageFullScreen?276:290)); var wNew = (deskW * parentH / deskH) + 'px';
if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; } if (webPageFullScreen || fullscreen) {
if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; } QS('Desk').height = null;
document.documentElement.style.overflow = 'auto'; } else {
QS('Desk')['max-height'] = mh + 'px'; QS('Desk').height = '100%';
QS('Desk')['max-width'] = mw + 'px'; }
QS('Desk')['margin-top'] = '0'; QS('Desk').width = wNew;
QS('Desk')['margin-bottom'] = '0'; }
} }
} }
@ -7037,7 +7013,7 @@
var removeMultiFactor = false; var removeMultiFactor = false;
if ((tag == 1) && (Q('p4twoFactorRemove').checked == true)) { removeMultiFactor = true; } if ((tag == 1) && (Q('p4twoFactorRemove').checked == true)) { removeMultiFactor = true; }
if (Q('p4pass1').value == Q('p4pass2').value) { if (Q('p4pass1').value == Q('p4pass2').value) {
var r = { action: 'changeuserpass', user: currentUser.name, pass: Q('p4pass1').value, removeMultiFactor: removeMultiFactor, resetNextLogin: Q('p4resetNextLogin').checked }; var r = { action: 'changeuserpass', userid: currentUser._id, pass: Q('p4pass1').value, removeMultiFactor: removeMultiFactor, resetNextLogin: Q('p4resetNextLogin').checked };
if (features & 0x00010000) { r.hint = Q('p4hint').value; } if (features & 0x00010000) { r.hint = Q('p4hint').value; }
meshserver.send(r); meshserver.send(r);
} }
@ -7549,7 +7525,7 @@
} }
function center() { function center() {
if (xxcurrentView == 11) { deskAdjust(); } //deskAdjust(); } if (xxcurrentView == 11) { deskAdjust(); }
else if (xxcurrentView == 10) { masterUpdate(256); } else if (xxcurrentView == 10) { masterUpdate(256); }
else if (xxcurrentView == 1) { masterUpdate(4); } else if (xxcurrentView == 1) { masterUpdate(4); }
} }
@ -7622,14 +7598,6 @@
QV('topbar', x != 0); QV('topbar', x != 0);
if ((x == 0) && (webPageFullScreen)) { if ((x == 0) && (webPageFullScreen)) {
QC('body').add("arg_hide"); 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); QV('MainSubMenuSpan', x >= 10 && x < 20);
@ -7694,6 +7662,7 @@
function validateEmail(v) { var emailReg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return emailReg.test(v); } // New version function validateEmail(v) { var emailReg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return emailReg.test(v); } // New version
function isPrivateIP(a) { return (a.startsWith('10.') || a.startsWith('172.16.') || a.startsWith('192.168.')); } function isPrivateIP(a) { return (a.startsWith('10.') || a.startsWith('172.16.') || a.startsWith('192.168.')); }
function u2fSupported() { return (window.u2f && ((navigator.userAgent.indexOf('Chrome/') > 0) || (navigator.userAgent.indexOf('Firefox/') > 0) || (navigator.userAgent.indexOf('Opera/') > 0) || (navigator.userAgent.indexOf('Safari/') > 0))); } function u2fSupported() { return (window.u2f && ((navigator.userAgent.indexOf('Chrome/') > 0) || (navigator.userAgent.indexOf('Firefox/') > 0) || (navigator.userAgent.indexOf('Opera/') > 0) || (navigator.userAgent.indexOf('Safari/') > 0))); }
function findOne(arr1, arr2) { if ((arr1 == null) || (arr2 == null)) return false; return arr2.some(function (v) { return arr1.indexOf(v) >= 0; }); };
</script> </script>
</body> </body>

View File

@ -11,18 +11,17 @@
<script keeplink=1 type="text/javascript" src="scripts/u2f-api.js"></script> <script keeplink=1 type="text/javascript" src="scripts/u2f-api.js"></script>
<title>{{{title}}} - Login</title> <title>{{{title}}} - Login</title>
</head> </head>
<body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide"> <body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide login">
<div id=container> <div id=container>
<div id=mastheadx></div>
<div id=masthead> <div id=masthead>
<div class="title">{{{title}}}</div> <div class="title">{{{title}}}</div>
<div class="title2">{{{title2}}}</div> <div class="title2">{{{title2}}}</div>
</div> </div>
<div id=page_content>
<div id=topbar class="noselect style3"> <div id=topbar class="noselect style3">
<div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div> <div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div>
</div> </div>
<div id=column_l style="height:calc(100vh - 111px)"> <div id=column_l>
<h1>Welcome</h1> <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> <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=""> <table id="centralTable" style="">
@ -216,7 +215,7 @@
&nbsp;<a href=terms>Terms &amp; Privacy</a> &nbsp;<a href=terms>Terms &amp; Privacy</a>
</div> </div>
</div> </div>
</div>
</div> </div>
<div id=dialog style="display:none"> <div id=dialog style="display:none">
<div id=dialogHeader> <div id=dialogHeader>