Revert "Fixed reported CSS issues and added support for IE"

Ylian Saint-Hilaire committed Apr 19, 2019 at 14:14 UTC 5ffbaa0613c9e2154fc435f77ac264cc139e2689
3 files changed +875 -1181
public/styles/style.css
+39 -398
@@ -21,59 +21,13 @@
21 border-left: 1px solid #b7b7b7;
22 padding: 0;
23 }
24 - .fullscreen.login #container {
25 - -ms-grid-rows: 66px 24px 1fr 45px;
26 - grid-template-rows: 66px 24px auto 45px;
27 - -ms-grid-columns: 90px 1fr;
28 - grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
29 - grid-template-areas:
30 - "header header"
31 - "nav nav"
32 - "content content"
33 - "footer footer";
34 - }
35 - .fullscreen.arg_hide #container {
36 - -ms-grid-rows: 66px 24px 1fr 45px;
37 - grid-template-rows: 66px 24px auto 45px;
38 - -ms-grid-columns: 90px 1fr;
39 - grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
40 - grid-template-areas:
41 - "header header"
42 - "nav nav"
43 - "content content"
44 - "footer footer";
45 - }
46 - .fullscreen.menu_stack #container {
47 - -ms-grid-rows: 66px minmax(24px, max-content) 1fr 45px;
48 - grid-template-rows: 66px minmax(24px, max-content) auto 45px;
49 - -ms-grid-columns: 90px 1fr;
50 - grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
51 - grid-template-areas:
52 - "header header"
53 - "nav nav"
54 - "content content"
55 - "footer footer";
56 - }
24 +
25 .fullscreen #container {
26 width: 100%;
27 min-width: 700px;
28 min-height: 0px;
29 border-right: 0px none #b7b7b7;
30 border-left: 0px none #b7b7b7;
63 - height: calc(100% - 0px);
64 - position: relative;
65 - display: -ms-grid;
66 - display: grid;
67 - grid-gap: 0px;
68 - grid-template-areas:
69 - "header header"
70 - "sidebar nav"
71 - "sidebar content"
72 - "sidebar footer";
73 - -ms-grid-columns: 90px 1fr;
74 - grid-template-columns: 90px auto;
75 - -ms-grid-rows: 66px 24px 1fr 45px;
76 - grid-template-rows: 66px 24px auto 45px;
31 }
32
33 .fulldesk #container {
@@ -83,15 +37,6 @@
37 border-right: 0px none #b7b7b7;
38 border-left: 0px none #b7b7b7;
39 position: unset;
86 - position: relative;
87 - display: -ms-grid !important;
88 - display: grid !important;
89 - grid-gap: 0px;
90 - grid-template-areas: "content"!important;
91 - -ms-grid-columns: 1fr;
92 - grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important;
93 - -ms-grid-rows: 1fr;
94 - grid-template-rows: repeat(auto-fit, minmax(100px, 1fr))!important;
40 }
41
42 #masthead {
@@ -112,11 +57,8 @@
57
58 .fullscreen #masthead {
59 width: 100%;
115 - grid-area: header;
116 - -ms-grid-column: 1;
117 - -ms-grid-column-span: 2;
118 - -ms-grid-row: 1;
60 }
61 +
62 .fulldesk #masthead {
63 display: none;
64 }
@@ -149,11 +91,29 @@
91 font-weight: bold;
92 }
93
94 +#page_content {
95 + /*max-height: calc(100vh - 108px);*/
96 +}
97 + .fullscreen #page_content {
98 + position: absolute;
99 + top: 66px;
100 + left: 90px;
101 + right: 0px;
102 + bottom: 0px;
103 + }
104 + .arg_hide #page_content {
105 + left: 0px;
106 + }
107 + .fulldesk #page_content {
108 + position: static;
109 + top: 0;
110 + left: 0;
111 + right: 0;
112 + bottom: 0;
113 + }
114 +
115 #page_leftbar {
153 - -ms-grid-column: 1;
154 - -ms-grid-row: 2;
155 - -ms-grid-row-span: 3;
156 - /* height: calc(100vh - 66px); */
116 + height: calc(100vh - 66px);
117 width: 90px;
118 position: absolute;
119 z-index: 1000;
@@ -172,20 +132,13 @@
132 }
133
134 #topbar {
135 + /* height: 24px; */
136 position: relative;
176 - grid-area: nav;
177 - -ms-grid-column: 2;
178 - -ms-grid-row: 2;
137 }
138
139 .fulldesk #topbar {
140 display: none;
141 }
184 - .menu_stack #topbar, .login #topbar, .arg_hide #topbar {
185 - -ms-grid-column: 1;
186 - -ms-grid-column-span: 2;
187 - -ms-grid-row: 2;
188 - }
142
143 .topbar_td {
144 width: 100px;
@@ -205,8 +158,7 @@
158 right: 6px
159 }
160
208 - /* #UserDummyMenuSpan, */
209 -#MainSubMenuSpan, #MeshSubMenuSpan, #UserSubMenuSpan, #ServerSubMenuSpan, #MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
161 +#MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
162 width: 100%;
163 height: 22px
164 }
@@ -224,8 +176,7 @@
176 #column_l {
177 position: relative;
178 float: left;
227 - width: 100%;
228 - box-sizing: border-box;
179 + width: 930px;
180 margin: 0;
181 padding: 0 15px;
182 background-color: #fff;
@@ -236,35 +187,22 @@
187 max-height: calc(100vh - 159px) !important;
188 }
189
239 - .menu_stack.fullscreen.fulldesk #column_l {
240 - -ms-grid-column: 1;
241 - -ms-grid-row: 1;
242 - -ms-grid-column-span: 2;
243 - -ms-grid-row-span: 4;
244 - }
190 .fullscreen #column_l {
246 - -ms-grid-column: 2;
247 - -ms-grid-row: 3;
248 - grid-area: content;
249 - width: unset;
191 + height: calc(100vh - 135px);
192 + width: calc(100% - 30px);
193 overflow-y: auto;
194 }
195
253 - .menu_stack.fullscreen #column_l, .login #column_l, .arg_hide #column_l {
254 - -ms-grid-column: 1;
255 - -ms-grid-column-span: 2;
256 - -ms-grid-row: 3;
257 - }
196 .fulldesk #column_l {
259 - height: 100%;
197 width: 100%;
261 - height: unset;
198 + /*height: unset;*/
199 + /*max-height: unset;*/
200 + /*overflow-y: unset;*/
201 margin-left: unset;
263 - overflow-y: unset;
202 padding: 0;
265 - max-height: none;
266 - -ms-grid-column: 1;
267 - -ms-grid-row: 1;
203 + max-height:100vh;
204 + height:100vh;
205 + overflow-y:hidden;
206 }
207 .fulldesk #column_l_bottomgap {
208 display: none;
@@ -319,9 +257,6 @@
257 }
258
259 #footer {
322 - -ms-grid-column: 2;
323 - -ms-grid-row: 4;
324 - grid-area: footer;
260 clear: both;
261 overflow: auto;
262 width: 100%;
@@ -333,11 +268,6 @@
268 .fulldesk #footer {
269 display: none;
270 }
336 - .menu_stack.fullscreen #footer, .login #footer, .arg_hide #footer {
337 - -ms-grid-column: 1;
338 - -ms-grid-column-span: 2;
339 - -ms-grid-row: 4;
340 - }
271
272 /* Support for footer made with table */
273 #footer table {
@@ -440,9 +370,7 @@
370
371 #idx_dlgButtonBar {
372 padding: 10px;
443 - margin-bottom: 5px;
444 - overflow: auto;
445 - float: right;
373 + margin-bottom: 20px;
374 }
375
376 #idx_dlgCancelButton {
@@ -655,7 +583,7 @@
583 }
584
585 #p3events {
658 - height: calc(100vh - 245px);
586 + height: calc(100vh - 243px);
587 overflow-y: scroll
588 }
589
@@ -693,7 +621,7 @@
621
622 #p5filetable {
623 width: 100%;
696 - height: calc(100vh - 295px);
624 + height: calc(100vh - 294px);
625 overflow: auto;
626 -webkit-user-select: none;
627 position: relative;
@@ -744,12 +672,6 @@
672 height: 60px;
673 }
674
747 -#serverMainStats {
748 - height:calc(100vh - 251px);
749 - max-height:calc(100vh - 251px);
750 - width:100%
751 -}
752 -
675 #p10BackButton, #p11BackButton {
676 float:left
677 }
@@ -1442,10 +1364,6 @@ a {
1364 /*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 */
1365 filter: gray; /* IE6-9 */
1366 -webkit-filter: grayscale(100%) opacity(60%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
1445 - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
1446 - -moz-opacity: 0.60;
1447 - opacity:.60;
1448 - filter: alpha(opacity=60);
1367 }
1368
1369 .unselectable {
@@ -1517,116 +1435,13 @@ a {
1435 padding: 4px
1436 }
1437
1520 -.deskareaicon {
1521 - cursor: pointer;
1522 - border: none;
1523 - float: right;
1524 - font-size: 130%;
1525 - margin-right: 4px;
1526 -}
1527 -
1528 -.areaHead {
1529 - padding-left: 4px;
1530 - padding-top: 2px;
1531 - padding-bottom: 2px;
1532 - background: #C0C0C0;
1533 -}
1534 -
1535 -.areaProgress {
1536 - background-color: gray;
1537 -}
1538 -
1539 -.areaProgress div {
1540 - height: 2px;
1541 - width: 0%;
1542 - background-color:red;
1543 -}
1544 -
1545 -.areaFoot {
1546 - padding-top: 2px;
1547 - padding-bottom: 2px;
1548 - background: #C0C0C0;
1549 -}
1550 -
1551 -.toright2 {
1552 - float: right;
1553 - text-align: right;
1554 - padding-right: 4px;
1555 -}
1556 -
1557 -#deskarea0 {
1558 - width: 100%;
1559 - padding: 0px;
1560 - padding: 0px;
1561 - margin-top: 0px;
1562 -}
1563 -
1564 - .fulldesk #deskarea0 {
1565 - min-width: 100%;
1566 - min-height: 0px;
1567 - height: 100%;
1568 - position: relative;
1569 - display: -ms-grid;
1570 - display: grid;
1571 - grid-gap: 0px;
1572 - grid-template-areas:
1573 - "deskarea1"
1574 - "deskarea2"
1575 - "deskarea3"
1576 - "deskarea4";
1577 - /* grid-template-columns: 90px auto; */
1578 - grid-template-rows: 24px max-content auto max-content;
1579 - -ms-grid-columns: 1fr;
1580 - -ms-grid-rows: 24px max-content 1fr max-content;
1581 - }
1582 -
1583 - #deskarea0 .mR {
1584 - margin-right: 3px;
1585 - }
1586 -
1587 -#deskarea1 {
1588 - grid-area: deskarea1;
1589 - -ms-grid-column: 1;
1590 - -ms-grid-row: 1;
1591 -}
1592 -
1593 -
1594 -#deskarea2 {
1595 - grid-area: deskarea2;
1596 - background-color: gray;
1597 - -ms-grid-column: 1;
1598 - -ms-grid-row: 2;
1599 -}
1600 -
1601 -#progressbar {
1602 - height:2px;
1603 - width:0%;
1604 - background-color:red;
1605 -}
1606 -
1438 #deskarea3x {
1439 background: black;
1440 text-align: center;
1441 position: relative;
1442 overflow: hidden;
1612 - width: 100%;
1613 - max-height: calc(100vh - 296px); /* + 24px hight of submenu */
1614 - height: calc(100vh - 296px);
1443 }
1444
1617 - .room4submenu #deskarea3x {
1618 - max-height: calc(100vh - 296px);
1619 - height: calc(100vh - 296px);
1620 - }
1621 -
1622 - .fulldesk #deskarea3x {
1623 - grid-area: deskarea3;
1624 - max-height: none;
1625 - height: calc(100vh - 56px);
1626 - -ms-grid-column: 1;
1627 - -ms-grid-row: 3;
1628 - }
1629 -
1445 #DeskFocus {
1446 overflow: hidden;
1447 color: transparent;
@@ -1643,12 +1458,7 @@ a {
1458 overflow: hidden;
1459 width: 100%;
1460 -ms-touch-action: none;
1646 - position: absolute;
1647 - top: 0px;
1648 - bottom: 0px;
1649 - left: 0px;
1650 - right: 0px;
1651 - margin: auto;
1461 + margin-left: 0px;
1462 }
1463
1464
@@ -1678,22 +1488,6 @@ a {
1488 background-color: #EFE8B6;
1489 }
1490
1681 -#deskarea4 {
1682 - grid-area: deskarea4;
1683 - -ms-grid-column: 1;
1684 - -ms-grid-row: 4;
1685 -}
1686 -
1687 -#DeskChatButton, #DeskNotifyButton, #DeskOpenWebButton {
1688 - float: right;
1689 - margin-top: 1px;
1690 - margin-right: 4px;
1691 - cursor: pointer;
1692 -}
1693 -
1694 -#DeskClip, #DeskControlSpan, #specialkeylist {
1695 - margin-left:6px;
1696 -}
1491
1492 .userTableHeader {
1493 border-bottom: 1pt solid lightgray;
@@ -1701,159 +1495,6 @@ a {
1495 padding-bottom: 4px;
1496 }
1497
1704 -#deskkeys {
1705 - margin-left: 6px;
1706 -}
1707 -
1708 -#p12BackButton {
1709 - float: left;
1710 -}
1711 -
1712 -#termTable {
1713 - width: 100%;
1714 - padding: 0px;
1715 - padding: 0px;
1716 - margin-top: 0px;
1717 -}
1718 -
1719 -#termarea3x {
1720 - background: black;
1721 - text-align: center;
1722 - height: 500px;
1723 - position: relative;
1724 -}
1725 -
1726 -#Term {
1727 - background: black;
1728 - margin: 0;
1729 - padding: 0;
1730 -}
1731 -
1732 -#p13toolbar {
1733 - width: 100%
1734 -}
1735 -#p13toolbar .areaHead {
1736 - border-bottom: 2px solid black;
1737 -}
1738 -
1739 -#p13toolbar .areaHead2 {
1740 - width: 100%;
1741 - background-color: #d3d9d6;
1742 - text-align: left;
1743 - padding: 4px;
1744 -}
1745 -
1746 -#p13toolbar .areaHead3 {
1747 - background-color:#E4E9E7;
1748 - height:28px;
1749 -}
1750 -
1751 -#p13filetable {
1752 - width: 100%;
1753 - height: calc(100vh - 349px);
1754 - overflow: auto;
1755 - -webkit-user-select: none;
1756 -}
1757 -
1758 -#p13bigok {
1759 - width: 256px;
1760 - overflow: hidden;
1761 - position: absolute;
1762 - left: 337px;
1763 - top: 200px;
1764 - text-align: center;
1765 - font-size: 1600%;
1766 - color: #AAAAAA;
1767 -}
1768 -
1769 -#p13bigfail {
1770 - width: 256px;
1771 - overflow: hidden;
1772 - position: absolute;
1773 - left: 337px;
1774 - top: 200px;
1775 - text-align: center;
1776 - font-size: 1600%;
1777 - color: #AAAAAA;
1778 -}
1779 -
1780 -#p14iframe {
1781 - width: 100%;
1782 - height: calc(100vh - 242px);
1783 - border: 0;
1784 - overflow: hidden;
1785 -}
1786 -
1787 -#p13toolbarBottom, #p13toolbar {
1788 - width: 100%;
1789 -}
1790 -
1791 -#consoleTable {
1792 - width: 100%;
1793 - padding: 0px;
1794 - padding: 0px;
1795 - margin-top: 0px;
1796 -}
1797 -
1798 -#p15statetext {
1799 - padding: 4px;
1800 - height: 15px;
1801 -}
1802 -
1803 -#p15agentConsole {
1804 - background: black;
1805 - margin: 0;
1806 - padding: 0;
1807 - color: lightgray;
1808 - width: 100%;
1809 - /* */
1810 - height: calc(100vh - 299px);
1811 - max-height: calc(100vh - 299px);
1812 - position: relative;
1813 -}
1814 -
1815 - .menu_stack.fullscreen #p15agentConsole {
1816 - height: calc(100vh - 305px);
1817 - max-height: calc(100vh - 305px);
1818 - }
1819 -
1820 -#p15coreName {
1821 - padding: 4px;
1822 - display: inline-block;
1823 -}
1824 -
1825 -#p15agentConsoleText {
1826 - /* position: absolute; */
1827 - margin: 0;
1828 - padding: 0;
1829 - top: 0;
1830 - bottom: 0;
1831 - /* left: 0;
1832 - right: 0; */
1833 - overflow-y: scroll;
1834 - overflow-x: auto;
1835 - height: calc(100vh - 299px);
1836 - max-height: calc(100vh - 299px);
1837 - width: 930px;
1838 -}
1839 - .menu_stack.fullscreen #p15agentConsoleText {
1840 - width: calc(100vw - 30px);
1841 - height: calc(100vh - 305px);
1842 - max-height: calc(100vh - 305px);
1843 - }
1844 - .fullscreen #p15agentConsoleText {
1845 - width: calc(100vw - 120px);
1846 - }
1847 -
1848 -#p16events, #p31events {
1849 - max-height: calc(100vh - 269px);
1850 - overflow-y: auto;
1851 -}
1852 -
1853 -#p40 {
1854 - height:calc(100vh - 191px)
1855 -}
1856 -
1498 .viewSelector {
1499 width:32px;
1500 height:32px;
views/default.handlebars
+831 -779
@@ -1,4 +1,4 @@
1 -<!DOCTYPE html>
1 +<!DOCTYPE html>
2 <html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -53,6 +53,7 @@
53 <!-- main page -->
54 <div id=container>
55 <div id="notifiyBox" class="notifiyBox" style="display:none"></div>
56 + <div id=mastheadx></div>
57 <div id=masthead class=noselect>
58 <div class="title">{{{title}}}</div>
59 <div class="title2">{{{title2}}}</div>
@@ -82,588 +83,593 @@
83 <div class="lb6"></div>
84 </div>
85 </div>
85 - <div id=topbar class=noselect>
86 - <div>
87 - <div style="position:relative">
88 - <div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div>
89 - <div id=toggle2 title="Toggle Main Menu position" onclick="toggleStackMenu(1)">&varr;</div>
90 - <table id=MainMenuSpan cellpadding=0 cellspacing=0 class=style1>
86 + <div id="page_content">
87 + <div id=topbarmaster>
88 + <div id=topbar class=noselect>
89 + <div>
90 + <div style="position:relative">
91 + <div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div>
92 + <table id=MainMenuSpan cellpadding=0 cellspacing=0 class=style1>
93 + <tr>
94 + <td id=MainMenuMyDevices class="topbar_td style3x" onclick=go(1)>My Devices</td>
95 + <td id=MainMenuMyAccount class="topbar_td style3x" onclick=go(2)>My Account</td>
96 + <td id=MainMenuMyEvents class="topbar_td style3x" onclick=go(3)>My Events</td>
97 + <td id=MainMenuMyFiles class="topbar_td style3x" onclick=go(5)>My Files</td>
98 + <td id=MainMenuMyUsers class="topbar_td style3x" onclick=go(4)>My Users</td>
99 + <td id=MainMenuMyServer class="topbar_td style3x" onclick=go(6)>My Server</td>
100 + <td class="topbar_td_end style3">&nbsp;</td>
101 + </tr>
102 + </table>
103 + <div id=MainSubMenuSpan style="display:none">
104 + <table id=MainSubMenu cellpadding=0 cellspacing=0 class=style1>
105 + <tr>
106 + <td id=MainDev class="topbar_td style3x" onclick=go(10)>General</td>
107 + <td id=MainDevDesktop class="topbar_td style3x" onclick=go(11)>Desktop</td>
108 + <td id=MainDevTerminal class="topbar_td style3x" onclick=go(12)>Terminal</td>
109 + <td id=MainDevFiles class="topbar_td style3x" onclick=go(13)>Files</td>
110 + <td id=MainDevEvents class="topbar_td style3x" onclick=go(16)>Events</td>
111 + <td id=MainDevAmt class="topbar_td style3x" onclick=go(14)>Intel&reg; AMT</td>
112 + <td id=MainDevConsole class="topbar_td style3x" onclick=go(15)>Console</td>
113 + <td class="topbar_td_end style3">&nbsp;</td>
114 + </tr>
115 + </table>
116 + </div>
117 + <div id=MeshSubMenuSpan style="display:none">
118 + <table id=MeshSubMenu cellpadding=0 cellspacing=0 class=style1>
119 + <tr>
120 + <td id=MeshGeneral class="topbar_td style3x" onclick=go(20)>General</td>
121 + <td class="topbar_td_end style3">&nbsp;</td>
122 + </tr>
123 + </table>
124 + </div>
125 + <div id=UserSubMenuSpan style="display:none">
126 + <table id=UserSubMenu cellpadding=0 cellspacing=0 class=style1>
127 + <tr>
128 + <td id=UserGeneral class="topbar_td style3x" onclick=go(30)>General</td>
129 + <td id=UserEvents class="topbar_td style3x" onclick=go(31)>Events</td>
130 + <td class="topbar_td_end style3">&nbsp;</td>
131 + </tr>
132 + </table>
133 + </div>
134 + <div id=ServerSubMenuSpan style="display:none">
135 + <table id=ServerSubMenu cellpadding=0 cellspacing=0 class=style1>
136 + <tr>
137 + <td id=ServerGeneral class="topbar_td style3x" onclick=go(6)>General</td>
138 + <td id=ServerStats class="topbar_td style3x" onclick=go(40)>Stats</td>
139 + <td id=ServerConsole class="topbar_td style3x" onclick=go(115)>Console</td>
140 + <td class="topbar_td_end style3">&nbsp;</td>
141 + </tr>
142 + </table>
143 + </div>
144 + <div id=UserDummyMenuSpan>
145 + <table id=UserDummyMenu cellpadding=0 cellspacing=0 class=style1>
146 + <tr><td class=style3 style="text-align:right;height:24px">&nbsp;</td></tr>
147 + </table>
148 + </div>
149 + </div>
150 + </div>
151 + </div>
152 + </div>
153 + <div id="column_l">
154 + <div id=p0 style="display:none">
155 + <div id=p0message><span id=p0span>Server disconnected</span>, <href onclick=reload() style=cursor:pointer><u>click to reconnect</u></href>.</div>
156 + </div>
157 + <div id=p1 style="display:none">
158 + <div style="display:none" id="devListToolbarViewIcons">
159 + <div id=devViewButton1 class="viewSelector" onclick=onDeviceViewChange(1) title="Columns"><div class="viewSelector2"></div></div>
160 + <div id=devViewButton2 class=viewSelector onclick=onDeviceViewChange(2) title="List"><div class="viewSelector1"></div></div>
161 + <div id=devViewButton3 class=viewSelector onclick=onDeviceViewChange(3) title="Desktops"><div class="viewSelector3"></div></div>
162 + <div id=devViewButton4 class=viewSelector onclick=onDeviceViewChange(4) title="Map"><div class="viewSelector4"></div></div>
163 + </div><div><h1>My Devices</h1></div>
164 + <table id="devListToolbarSpan" class="noselect">
165 <tr>
92 - <td id=MainMenuMyDevices class="topbar_td style3x" onclick=go(1)>My Devices</td>
93 - <td id=MainMenuMyAccount class="topbar_td style3x" onclick=go(2)>My Account</td>
94 - <td id=MainMenuMyEvents class="topbar_td style3x" onclick=go(3)>My Events</td>
95 - <td id=MainMenuMyFiles class="topbar_td style3x" onclick=go(5)>My Files</td>
96 - <td id=MainMenuMyUsers class="topbar_td style3x" onclick=go(4)>My Users</td>
97 - <td id=MainMenuMyServer class="topbar_td style3x" onclick=go(6)>My Server</td>
98 - <td class="topbar_td_end style3">&nbsp;</td>
166 + <td class=h1></td>
167 + <td id=devListToolbar class=style14 style="display:none">
168 + &nbsp;&nbsp;<input type="button" id="SelectAllButton" onclick="selectallButtonFunction();" value="Select All" />&nbsp;
169 + <input type=button id=GroupActionButton disabled="disabled" value="Group Action" onclick=groupActionFunction() />&nbsp;
170 + <input id=SearchInput type=text placeholder=Filter onchange=masterUpdate(5) onkeyup=masterUpdate(5) autocomplete=off onfocus=onSearchFocus(1) onblur=onSearchFocus(0) />&nbsp;
171 + <label><input type=checkbox id=RealNameCheckBox onclick=onRealNameCheckBox() /><span title="Show devices operating system name">OS Name</span></label>
172 + </td>
173 + <td id=kvmListToolbar class=style14 style="display:none">
174 + &nbsp;&nbsp;<input type="button" onclick="connectAllKvmFunction()" value="Connect All" />&nbsp;
175 + <input type="button" onclick="disconnectAllKvmFunction()" value="Disconnect All" />&nbsp;
176 + <label><input type="checkbox" id="autoConnectDesktopCheckbox" onclick="autoConnectDesktops(event)" title="Automatic connect" />Auto&nbsp;</label>
177 + <input type="button" onclick="showMultiDesktopSettings()" value="Settings" />&nbsp;
178 + </td>
179 + <td id=devMapToolbar class=style14 style="display:none">
180 + &nbsp;&nbsp;<input type=text id=mapSearchLocation placeholder="Search Location" onfocus=onMapSearchFocus(1) onblur=onMapSearchFocus(0) />
181 + <input type=button value=Search title="Search for location" onclick=getSearchLocation() />
182 + <input type=button id=refreshmap title="Reset map view" value=Reset onclick=refreshMap(false,true) />
183 + </td>
184 + <td class="auto-style1" style=height:100%>
185 + <div style="display:none" id=devListToolbarView>
186 + View
187 + <select id=viewselect onchange=onDeviceViewChange()>
188 + <option value=1>Columns</option>
189 + <option value=2>List</option>
190 + <option value=3>Desktops</option>
191 + <option id=viewselectmapoption value=4>Map</option>
192 + </select>
193 + </div>
194 + <div style="display:none" id=devListToolbarSort>
195 + Sort
196 + <select id=sortselect onchange=masterUpdate(6)>
197 + <option>Group</option>
198 + <option>Power</option>
199 + <option>Device</option>
200 + <option>Tags</option>
201 + </select>
202 + &nbsp;
203 + </div>
204 + <div style="display:none" id=devListToolbarSize>
205 + Size
206 + <select id=sizeselect onchange=onDeviceViewChange()>
207 + <option value=0>Small</option>
208 + <option value=1>Medium</option>
209 + <option value=2>Large</option>
210 + </select>
211 + &nbsp;
212 + </div>
213 + </td>
214 + <td class=h2></td>
215 </tr>
216 </table>
101 - <div id=MainSubMenuSpan style="display:none">
102 - <table id=MainSubMenu cellpadding=0 cellspacing=0 class=style1>
103 - <tr>
104 - <td id=MainDev class="topbar_td style3x" onclick=go(10)>General</td>
105 - <td id=MainDevDesktop class="topbar_td style3x" onclick=go(11)>Desktop</td>
106 - <td id=MainDevTerminal class="topbar_td style3x" onclick=go(12)>Terminal</td>
107 - <td id=MainDevFiles class="topbar_td style3x" onclick=go(13)>Files</td>
108 - <td id=MainDevEvents class="topbar_td style3x" onclick=go(16)>Events</td>
109 - <td id=MainDevAmt class="topbar_td style3x" onclick=go(14)>Intel&reg; AMT</td>
110 - <td id=MainDevConsole class="topbar_td style3x" onclick=go(15)>Console</td>
111 - <td class="topbar_td_end style3">&nbsp;</td>
112 - </tr>
113 - </table>
114 - </div>
115 - <div id=MeshSubMenuSpan style="display:none">
116 - <table id=MeshSubMenu cellpadding=0 cellspacing=0 class=style1>
217 + <div id=NoMeshesPanel style="display:none">
218 + <table>
219 <tr>
118 - <td id=MeshGeneral class="topbar_td style3x" onclick=go(20)>General</td>
119 - <td class="topbar_td_end style3">&nbsp;</td>
220 + <td valign="top" style="width: 50px">
221 + <img src="images/info.png" />
222 + </td>
223 + <td>
224 + <div id="getStarted1">To get started, <a onclick=account_createMesh()><strong>click here to create a device group</strong></a>.</div>
225 + <div id="getStarted2">No device groups.</div>
226 + </td>
227 </tr>
228 </table>
229 </div>
123 - <div id=UserSubMenuSpan style="display:none">
124 - <table id=UserSubMenu cellpadding=0 cellspacing=0 class=style1>
125 - <tr>
126 - <td id=UserGeneral class="topbar_td style3x" onclick=go(30)>General</td>
127 - <td id=UserEvents class="topbar_td style3x" onclick=go(31)>Events</td>
128 - <td class="topbar_td_end style3">&nbsp;</td>
129 - </tr>
130 - </table>
230 + <div id="xdevices" class="noselect" style="display:none"></div>
231 + <div id="xdevicesmap" style="display:none">
232 + <div id=xmapSearchResultsDlg style="display:none">
233 + <div id=xmapSearchResultsBck>
234 + <div id=xmapSearchClose onclick=mapCloseSearchWindow()><b>X</b></div>
235 + <div style=padding:5px>Location Results</div>
236 + <div style=width:100%;margin:6px></div>
237 + </div>
238 + <div id=xmapSearchResults style=margin:6px></div>
239 + </div>
240 </div>
132 - <div id=ServerSubMenuSpan style="display:none">
133 - <table id=ServerSubMenu cellpadding=0 cellspacing=0 class=style1>
134 - <tr>
135 - <td id=ServerGeneral class="topbar_td style3x" onclick=go(6)>General</td>
136 - <td id=ServerStats class="topbar_td style3x" onclick=go(40)>Stats</td>
137 - <td id=ServerConsole class="topbar_td style3x" onclick=go(115)>Console</td>
138 - <td class="topbar_td_end style3">&nbsp;</td>
139 - </tr>
140 - </table>
241 + <div id="xmap-info-window"></div>
242 + </div>
243 + <div id=p2 style="display:none">
244 + <h1>My Account</h1>
245 + <img id="p2AccountImage" alt="" src="images/mainaccount.jpg"/>
246 + <div id="p2AccountSecurity" style="display:none">
247 + <p><strong>Account security</strong></p>
248 + <div style="margin-left:25px">
249 + <div id="manageAuthApp"><div class="p2AccountActions"><span id="authAppSetupCheck"><strong>&#x2713;</strong></span></div><span><a onclick="account_manageAuthApp()">Manage authenticator app</a><br /></span></div>
250 + <div id="manageHardwareOtp"><div class="p2AccountActions"><span id="authKeySetupCheck"><strong>&#x2713;</strong></span></div><span><a onclick="account_manageHardwareOtp(0)">Manage security keys</a><br /></span></div>
251 + <div id="manageOtp"><div class="p2AccountActions"><span id="authCodesSetupCheck"><strong>&#x2713;</strong></span></div><span><a onclick="account_manageOtp(0)">Manage backup codes</a><br /></span></div>
252 + </div>
253 </div>
142 - <div id=UserDummyMenuSpan>
143 - <table id=UserDummyMenu cellpadding=0 cellspacing=0 class=style1>
144 - <tr><td class=style3 style="">&nbsp;</td></tr>
145 - </table>
254 + <div id="p2AccountActions">
255 + <p><strong>Account actions</strong></p>
256 + <p style="margin-left:40px">
257 + <span id="verifyEmailId" style="display:none"><a onclick="account_showVerifyEmail()">Verify email</a><br /></span>
258 + <a onclick="account_showChangeEmail()">Change email address</a><br />
259 + <a onclick="account_showChangePassword()">Change password</a><span id="p2nextPasswordUpdateTime"></span><br />
260 + <a onclick="account_showDeleteAccount()">Delete account</a><br />
261 + </p>
262 + <br style=clear:both />
263 </div>
264 + <strong>Device Groups</strong>
265 + <span id="p2createMeshLink1">( <a onclick=account_createMesh() class="newMeshBtn"> New</a> )</span>
266 + <br /><br />
267 + <div id=p2meshes></div>
268 + <div id=p2noMeshFound style="display:none">No device groups.<span id="p2createMeshLink2"> <a onclick=account_createMesh()><strong>Get started here!</strong></a></span></div>
269 + <br style=clear:both />
270 </div>
148 - </div>
149 - </div>
150 - <div id="column_l">
151 - <div id=p0 style="display:none">
152 - <div id=p0message><span id=p0span>Server disconnected</span>, <href onclick=reload() style=cursor:pointer><u>click to reconnect</u></href>.</div>
153 - </div>
154 - <div id=p1 style="display:none">
155 - <div style="display:none" id="devListToolbarViewIcons">
156 - <div id=devViewButton1 class="viewSelector" onclick=onDeviceViewChange(1) title="Columns"><div class="viewSelector2"></div></div>
157 - <div id=devViewButton2 class=viewSelector onclick=onDeviceViewChange(2) title="List"><div class="viewSelector1"></div></div>
158 - <div id=devViewButton3 class=viewSelector onclick=onDeviceViewChange(3) title="Desktops"><div class="viewSelector3"></div></div>
159 - <div id=devViewButton4 class=viewSelector onclick=onDeviceViewChange(4) title="Map"><div class="viewSelector4"></div></div>
160 - </div><div><h1>My Devices</h1></div>
161 - <table id="devListToolbarSpan" class="noselect">
162 - <tr>
163 - <td class=h1></td>
164 - <td id=devListToolbar class=style14 style="display:none">
165 - &nbsp;&nbsp;<input type="button" id="SelectAllButton" onclick="selectallButtonFunction();" value="Select All" />&nbsp;
166 - <input type=button id=GroupActionButton disabled="disabled" value="Group Action" onclick=groupActionFunction() />&nbsp;
167 - <input id=SearchInput type=text placeholder=Filter onchange=masterUpdate(5) onkeyup=masterUpdate(5) autocomplete=off onfocus=onSearchFocus(1) onblur=onSearchFocus(0) />&nbsp;
168 - <label><input type=checkbox id=RealNameCheckBox onclick=onRealNameCheckBox() /><span title="Show devices operating system name">OS Name</span></label>
169 - </td>
170 - <td id=kvmListToolbar class=style14 style="display:none">
171 - &nbsp;&nbsp;<input type="button" onclick="connectAllKvmFunction()" value="Connect All" />&nbsp;
172 - <input type="button" onclick="disconnectAllKvmFunction()" value="Disconnect All" />&nbsp;
173 - <label><input type="checkbox" id="autoConnectDesktopCheckbox" onclick="autoConnectDesktops(event)" title="Automatic connect" />Auto&nbsp;</label>
174 - <input type="button" onclick="showMultiDesktopSettings()" value="Settings" />&nbsp;
175 - </td>
176 - <td id=devMapToolbar class=style14 style="display:none">
177 - &nbsp;&nbsp;<input type=text id=mapSearchLocation placeholder="Search Location" onfocus=onMapSearchFocus(1) onblur=onMapSearchFocus(0) />
178 - <input type=button value=Search title="Search for location" onclick=getSearchLocation() />
179 - <input type=button id=refreshmap title="Reset map view" value=Reset onclick=refreshMap(false,true) />
180 - </td>
181 - <td class="auto-style1" style=height:100%>
182 - <div style="display:none" id=devListToolbarView>
183 - View
184 - <select id=viewselect onchange=onDeviceViewChange()>
185 - <option value=1>Columns</option>
186 - <option value=2>List</option>
187 - <option value=3>Desktops</option>
188 - <option id=viewselectmapoption value=4>Map</option>
189 - </select>
190 - </div>
191 - <div style="display:none" id=devListToolbarSort>
192 - Sort
193 - <select id=sortselect onchange=masterUpdate(6)>
194 - <option>Group</option>
195 - <option>Power</option>
196 - <option>Device</option>
197 - <option>Tags</option>
198 - </select>
199 - &nbsp;
200 - </div>
201 - <div style="display:none" id=devListToolbarSize>
202 - Size
203 - <select id=sizeselect onchange=onDeviceViewChange()>
204 - <option value=0>Small</option>
205 - <option value=1>Medium</option>
206 - <option value=2>Large</option>
207 - </select>
208 - &nbsp;
209 - </div>
210 - </td>
211 - <td class=h2></td>
212 - </tr>
213 - </table>
214 - <div id=NoMeshesPanel style="display:none">
215 - <table>
271 + <div id=p3 style="display:none">
272 + <h1>My Events</h1>
273 + <table class="pTable">
274 <tr>
217 - <td valign="top" style="width: 50px">
218 - <img src="images/info.png" />
219 - </td>
220 - <td>
221 - <div id="getStarted1">To get started, <a onclick=account_createMesh()><strong>click here to create a device group</strong></a>.</div>
222 - <div id="getStarted2">No device groups.</div>
275 + <td class=h1></td>
276 + <td>&nbsp;<input id=p2deleteall type=button onclick=showDeleteAllEventsDialog() style="display:none" value="Delete All..." /></td>
277 + <td class=auto-style1>
278 + Show
279 + <select id=p3limitdropdown onchange=refreshEvents()>
280 + <option value=60>Last 60</option>
281 + <option value=120>Last 120</option>
282 + <option value=250>Last 250</option>
283 + <option value=500>Last 500</option>
284 + <option value=1000>Last 1000</option>
285 + </select>
286 </td>
287 + <td class=h2></td>
288 </tr>
289 </table>
290 + <div id=p3events style=""></div>
291 </div>
227 - <div id="xdevices" class="noselect" style="display:none"></div>
228 - <div id="xdevicesmap" style="display:none">
229 - <div id=xmapSearchResultsDlg style="display:none">
230 - <div id=xmapSearchResultsBck>
231 - <div id=xmapSearchClose onclick=mapCloseSearchWindow()><b>X</b></div>
232 - <div style=padding:5px>Location Results</div>
233 - <div style=width:100%;margin:6px></div>
234 - </div>
235 - <div id=xmapSearchResults style=margin:6px></div>
236 - </div>
292 + <div id=p4 style="display:none">
293 + <h1>My Users</h1>
294 + <table class="pTable">
295 + <tr>
296 + <td class=h1></td>
297 + <td class=style14>
298 + <div style="float:right">
299 + <input type=button onclick=showUserBroadcastDialog() style=margin-right:6px value="Broadcast" />
300 + </div>
301 + <div>
302 + <input id=UserNewAccountButton type=button style=margin-left:6px onclick=showCreateNewAccountDialog() value="New Account..." />
303 + <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) />
304 + </div>
305 + </td>
306 + <td class=h2></td>
307 + </tr>
308 + </table>
309 + <div id="p3users"></div>
310 </div>
238 - <div id="xmap-info-window"></div>
239 - </div>
240 - <div id=p2 style="display:none">
241 - <h1>My Account</h1>
242 - <img id="p2AccountImage" alt="" src="images/mainaccount.jpg"/>
243 - <div id="p2AccountSecurity" style="display:none">
244 - <p><strong>Account security</strong></p>
245 - <div style="margin-left:25px">
246 - <div id="manageAuthApp"><div class="p2AccountActions"><span id="authAppSetupCheck"><strong>&#x2713;</strong></span></div><span><a onclick="account_manageAuthApp()">Manage authenticator app</a><br /></span></div>
247 - <div id="manageHardwareOtp"><div class="p2AccountActions"><span id="authKeySetupCheck"><strong>&#x2713;</strong></span></div><span><a onclick="account_manageHardwareOtp(0)">Manage security keys</a><br /></span></div>
248 - <div id="manageOtp"><div class="p2AccountActions"><span id="authCodesSetupCheck"><strong>&#x2713;</strong></span></div><span><a onclick="account_manageOtp(0)">Manage backup codes</a><br /></span></div>
311 + <div id=p5 style="display:none">
312 + <h1>My Files</h1>
313 + <table id="p5toolbar" style="width:100%" cellpadding="0" cellspacing="0">
314 + <tr>
315 + <td id="p5filehead" valign=bottom>
316 + <div id="p5rightOfButtons"></div>
317 + <div>
318 + <input type=button id=p5FolderUp disabled="disabled" onclick="p5folderup();" value="Up" />&nbsp;
319 + <input type=button id=p5SelectAllButton disabled="disabled" onclick="p5selectallfile();" value="Select All" onkeypress="return false;" onkeydown="return false;" />&nbsp;
320 + <input type=button id=p5RenameFileButton disabled="disabled" value="Rename" onclick="p5renamefile();" onkeypress="return false;" onkeydown="return false;" />&nbsp;
321 + <input type=button id=p5DeleteFileButton disabled="disabled" value="Delete" onclick="p5deletefile();" onkeypress="return false;" onkeydown="return false;" />&nbsp;
322 + <input type=button id=p5NewFolderButton disabled="disabled" value="New Folder" onclick="p5createfolder();" onkeypress="return false;" onkeydown="return false;" />&nbsp;
323 + <input type=button id=p5UploadButton disabled="disabled" value="Upload" onclick="p5uploadFile()" onkeypress="return false;" onkeydown="return false;" />&nbsp;
324 + <input type=button id=p5CutButton disabled="disabled" value="Cut" onclick="p5copyFile(1)" onkeypress="return false" onkeydown="return false" />&nbsp;
325 + <input type=button id=p5CopyButton disabled="disabled" value="Copy" onclick="p5copyFile(0)" onkeypress="return false" onkeydown="return false" />&nbsp;
326 + <input type=button id=p5PasteButton disabled="disabled" value="Paste" onclick="p5pasteFile()" onkeypress="return false" onkeydown="return false" />&nbsp;
327 + </div>
328 + </td>
329 + </tr>
330 + <tr>
331 + <td id="p5filesubhead">
332 + <div style=float:right>
333 + <select id=p5sortdropdown onchange=updateFiles()>
334 + <option value="1" selected="selected">Sort by name</option>
335 + <option value="2">Sort by size</option>
336 + <option value="3">Sort by date</option>
337 + <option value="4">Descend by name</option>
338 + <option value="5">Descend by size</option>
339 + <option value="6">Descend by date</option>
340 + </select>
341 + </div>
342 + <div>&nbsp;&nbsp;<span id="p5currentpath"></span></div>
343 + </td>
344 + </tr>
345 + </table>
346 + <div id="p5filetable">
347 + <!--
348 + <form id=p5fileCatchAll method=post enctype=multipart/form-data action=uploadfile.ashx target=fileUploadFrame>
349 + <input type=file id=p5fileCatchAllInput name=files style="position:absolute;left:0;width:100%;top:0;bottom:0;opacity:0;display:none" onchange="p5fileCatchAllInputChanged(event)" />
350 + <input id=p5fileDragLink2 name="link" style="display:none" />
351 + <input type=submit id=p5fileCatchAllSubmit style="display:none" />
352 + </form>
353 + -->
354 + <div id="p5PublicShare" style=""><div style="padding:4px">These files are shared publicly, click "link" to get public url.</div></div>
355 + <div id="bigok" style="display:none"><b>&checkmark;</b></div>
356 + <div id="bigfail" style="display:none"><b>&#10007;</b></div>
357 + <span id="p5files"></span>
358 </div>
359 + <table id="p5toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
360 + <tr><td class=style6>&nbsp;<span id="p5bottomstatus"></span></td></tr>
361 + </table>
362 </div>
251 - <div id="p2AccountActions">
252 - <p><strong>Account actions</strong></p>
253 - <p class="mL">
254 - <span id="verifyEmailId" style="display:none"><a onclick="account_showVerifyEmail()">Verify email</a><br /></span>
255 - <a onclick="account_showChangeEmail()">Change email address</a><br />
256 - <a onclick="account_showChangePassword()">Change password</a><span id="p2nextPasswordUpdateTime"></span><br />
257 - <a onclick="account_showDeleteAccount()">Delete account</a><br />
258 - </p>
259 - <br style=clear:both />
260 - </div>
261 - <strong>Device Groups</strong>
262 - <span id="p2createMeshLink1">( <a onclick=account_createMesh() class="newMeshBtn"> New</a> )</span>
263 - <br /><br />
264 - <div id=p2meshes></div>
265 - <div id=p2noMeshFound style="display:none">No device groups.<span id="p2createMeshLink2"> <a onclick=account_createMesh()><strong>Get started here!</strong></a></span></div>
266 - <br style=clear:both />
267 - </div>
268 - <div id=p3 style="display:none">
269 - <h1>My Events</h1>
270 - <table class="pTable">
271 - <tr>
272 - <td class="h1"></td>
273 - <td>&nbsp;<input id="p2deleteall" type=button onclick=showDeleteAllEventsDialog() style="display:none" value="Delete All..." /></td>
274 - <td class="auto-style1">
275 - Show
276 - <select id=p3limitdropdown onchange=refreshEvents()>
277 - <option value=60>Last 60</option>
278 - <option value=120>Last 120</option>
279 - <option value=250>Last 250</option>
280 - <option value=500>Last 500</option>
281 - <option value=1000>Last 1000</option>
282 - </select>
283 - </td>
284 - <td class="h2"></td>
285 - </tr>
286 - </table>
287 - <div id=p3events style=""></div>
288 - </div>
289 - <div id=p4 style="display:none">
290 - <h1>My Users</h1>
291 - <table class="pTable">
292 - <tr>
293 - <td class="h1"></td>
294 - <td class="style14">
295 - <div style="float:right">
296 - <input type=button onclick=showUserBroadcastDialog() style=margin-right:6px value="Broadcast" />
297 - </div>
298 - <div>
299 - <input id=UserNewAccountButton type=button style=margin-left:6px onclick=showCreateNewAccountDialog() value="New Account..." />
300 - <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) />
301 - </div>
302 - </td>
303 - <td class="h2"></td>
304 - </tr>
305 - </table>
306 - <div id="p3users"></div>
307 - </div>
308 - <div id=p5 style="display:none">
309 - <h1>My Files</h1>
310 - <table id="p5toolbar" cellpadding="0" cellspacing="0">
311 - <tr>
312 - <td id="p5filehead" valign=bottom>
313 - <div id="p5rightOfButtons"></div>
314 - <div>
315 - <input type=button id=p5FolderUp disabled="disabled" onclick="p5folderup();" value="Up" />&nbsp;
316 - <input type=button id=p5SelectAllButton disabled="disabled" onclick="p5selectallfile();" value="Select All" onkeypress="return false;" onkeydown="return false;" />&nbsp;
317 - <input type=button id=p5RenameFileButton disabled="disabled" value="Rename" onclick="p5renamefile();" onkeypress="return false;" onkeydown="return false;" />&nbsp;
318 - <input type=button id=p5DeleteFileButton disabled="disabled" value="Delete" onclick="p5deletefile();" onkeypress="return false;" onkeydown="return false;" />&nbsp;
319 - <input type=button id=p5NewFolderButton disabled="disabled" value="New Folder" onclick="p5createfolder();" onkeypress="return false;" onkeydown="return false;" />&nbsp;
320 - <input type=button id=p5UploadButton disabled="disabled" value="Upload" onclick="p5uploadFile()" onkeypress="return false;" onkeydown="return false;" />&nbsp;
321 - <input type=button id=p5CutButton disabled="disabled" value="Cut" onclick="p5copyFile(1)" onkeypress="return false" onkeydown="return false" />&nbsp;
322 - <input type=button id=p5CopyButton disabled="disabled" value="Copy" onclick="p5copyFile(0)" onkeypress="return false" onkeydown="return false" />&nbsp;
323 - <input type=button id=p5PasteButton disabled="disabled" value="Paste" onclick="p5pasteFile()" onkeypress="return false" onkeydown="return false" />&nbsp;
324 - </div>
325 - </td>
326 - </tr>
327 - <tr>
328 - <td id="p5filesubhead">
329 - <div style=float:right>
330 - <select id=p5sortdropdown onchange=updateFiles()>
331 - <option value="1" selected="selected">Sort by name</option>
332 - <option value="2">Sort by size</option>
333 - <option value="3">Sort by date</option>
334 - <option value="4">Descend by name</option>
335 - <option value="5">Descend by size</option>
336 - <option value="6">Descend by date</option>
337 - </select>
338 - </div>
339 - <div>&nbsp;&nbsp;<span id="p5currentpath"></span></div>
340 - </td>
341 - </tr>
342 - </table>
343 - <div id="p5filetable">
344 - <!--
345 - <form id=p5fileCatchAll method=post enctype=multipart/form-data action=uploadfile.ashx target=fileUploadFrame>
346 - <input type=file id=p5fileCatchAllInput name=files style="position:absolute;left:0;width:100%;top:0;bottom:0;opacity:0;display:none" onchange="p5fileCatchAllInputChanged(event)" />
347 - <input id=p5fileDragLink2 name="link" style="display:none" />
348 - <input type=submit id=p5fileCatchAllSubmit style="display:none" />
349 - </form>
350 - -->
351 - <div id="p5PublicShare" style=""><div>These files are shared publicly, click "link" to get public url.</div></div>
352 - <div id="bigok" style="display:none"><b>&checkmark;</b></div>
353 - <div id="bigfail" style="display:none"><b>&#10007;</b></div>
354 - <span id="p5files"></span>
355 - </div>
356 - <table id="p5toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
357 - <tr><td class=style6>&nbsp;<span id="p5bottomstatus"></span></td></tr>
358 - </table>
359 - </div>
360 - <div id=p6 style="display:none">
361 - <img id=MainMeshImage src="serverpic.ashx">
362 - <h1>My Server</h1>
363 - <div id="p2ServerActions">
364 - <p><strong>Server actions</strong></p>
365 - <div class="mL">
363 + <div id=p6 style="display:none">
364 + <img id=MainMeshImage src="serverpic.ashx">
365 + <h1>My Server</h1>
366 + <p id="p2ServerActions"><strong>Server actions</strong></p>
367 + <p style="margin-left:40px">
368 <div id="p2ServerActionsBackup"><a href="/backup.zip" rel="noreferrer noopener" target="_blank">Download server backup</a></div>
369 <div id="p2ServerActionsRestore"><a onclick="server_showRestoreDlg()">Restore server with backup</a></div>
370 <div id="p2ServerActionsVersion"><a onclick="server_showVersionDlg()">Check server version</a></div>
371 <div id="p2ServerActionsErrors"><a onclick="server_showErrorsDlg()">Show server error log</a></div>
372 + </p>
373 + <br /><strong>Server Statistics</strong><br /><br />
374 + <div id="serverStats">
375 + <div id="serverCpuChartView" style="display:none">
376 + <div class="chartViewCanvas"><canvas id="serverCpuChart"></canvas></div>
377 + <div class="chartViewText" id="serverCpuChartText"></div>
378 + </div>
379 + <div id="serverMemoryChartView" style="display:none">
380 + <div class="chartViewCanvas"><canvas id="serverMemoryChart"></canvas></div>
381 + <div class="chartViewText" id="serverMemoryChartText"></div>
382 + </div><br /><br />
383 + <div id="serverStatsTable"></div>
384 </div>
385 </div>
372 - <br /><strong>Server Statistics</strong><br /><br />
373 - <div id="serverStats">
374 - <div id="serverCpuChartView" style="display:none">
375 - <div class="chartViewCanvas"><canvas id="serverCpuChart"></canvas></div>
376 - <div class="chartViewText" id="serverCpuChartText"></div>
377 - </div>
378 - <div id="serverMemoryChartView" style="display:none">
379 - <div class="chartViewCanvas"><canvas id="serverMemoryChart"></canvas></div>
380 - <div class="chartViewText" id="serverMemoryChartText"></div>
381 - </div><br /><br />
382 - <div id="serverStatsTable"></div>
383 - </div>
384 - </div>
385 - <div id=p10 style="display:none">
386 - <table style="width:100%" cellpadding="0" cellspacing="0">
387 - <tr>
388 - <td style=width:auto valign=top>
389 - <div id=p10title>
390 - <div id="p10BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
391 - <h1>General - <span id=p10deviceName></span></h1>
392 - </div>
393 - <div id=p10html></div>
394 - </td>
395 - <td style=width:20px></td>
396 - <td style=width:200px>
397 - <a onclick=p10showiconselector()><img id=MainComputerImage></a>
398 - <div id=MainComputerState></div>
399 - </td>
400 - </tr>
401 - </table><br>
402 - <div id=p10html2></div>
403 - <div id=p10html3></div>
404 - </div>
405 - <div id=p11 class="noselect" style="display:none">
406 - <div id="p11title">
407 - <div id=p11deviceNameHeader>
408 - <div id="p11BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
409 - <div id="devListToolbarViewIcons"><div class="viewSelector" onclick=deskToggleFull(event) title="Full Screen. Hold shift to browser full screen."><div class="viewSelector5"></div></div></div>
410 - <h1>Desktop - <span id=p11deviceName></span></h1>
411 - </div>
412 - </div>
413 - <div id="p14warning" onclick="showFeaturesDlg()">
414 - <div class="icon2"></div>
415 - <div class="warningbox">Intel&reg; AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
416 - </div>
417 - <div id="p14warning2" onclick="showPowerActionDlg()">
418 - <div class="icon2"></div>
419 - <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
386 + <div id=p10 style="display:none">
387 + <table style="width:100%" cellpadding="0" cellspacing="0">
388 + <tr>
389 + <td style=width:auto valign=top>
390 + <div id=p10title>
391 + <div id="p10BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
392 + <h1>General - <span id=p10deviceName></span></h1>
393 + </div>
394 + <div id=p10html></div>
395 + </td>
396 + <td style=width:20px></td>
397 + <td style=width:200px>
398 + <a onclick=p10showiconselector()><img id=MainComputerImage></a>
399 + <div id=MainComputerState></div>
400 + </td>
401 + </tr>
402 + </table><br>
403 + <div id=p10html2></div>
404 + <div id=p10html3></div>
405 </div>
421 -
422 - <div id=deskarea0 cellpadding=0 cellspacing=0>
423 - <div id=deskarea1 class="areaHead">
424 - <div class="toright2">
425 - <span id="p14power"></span>&nbsp;
426 - <div class='deskareaicon' title="Toggle Aspect Ratio" onclick="toggleAspectRatio(1)">&#8690;</div>
427 - <div class='deskareaicon' title="Rotate Left" onclick="drotate(-1)">&olarr;</div>
428 - <div class='deskareaicon' title="Rotate Right" onclick="drotate(1)">&orarr;</div>
429 - <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">
430 - <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">
431 - <input id="deskActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() class="mR" />
432 - <input id="deskActionsSettings" type="button" value="Settings..." title="Edit remote desktop settings" onkeypress="return false" onkeydown="return false" onclick="showDesktopSettings()" class="mR">
433 - <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">
434 - </div>
435 - <div>
436 - <div id="idx_deskFullBtn2" onclick=deskToggleFull(event)>&nbsp;&#x2716;</div>
437 - <input type="button" id="autoconnectbutton1" value="AutoConnect" onclick=autoConnectDesktop(event) onkeypress="return false" onkeydown="return false" style="display:none">
438 - <span id=connectbutton1span><input type=button id=connectbutton1 value="Connect" onclick=connectDesktop(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
439 - <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>
440 - <span id=disconnectbutton1span>&nbsp;<input type=button id=disconnectbutton1 value="Disconnect" onclick=connectDesktop(event,0) onkeypress="return false" onkeydown="return false"></span>
441 - &nbsp;<span id="deskstatus">Disconnected</span>
406 + <div id=p11 class="noselect" style="display:none">
407 + <div id="p11title">
408 + <div id=p11deviceNameHeader>
409 + <div id="p11BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
410 + <div id="devListToolbarViewIcons"><div class="viewSelector" onclick=deskToggleFull(event) title="Full Screen. Hold shift to browser full screen."><div class="viewSelector5"></div></div></div>
411 + <h1>Desktop - <span id=p11deviceName></span></h1>
412 </div>
413 </div>
444 - <div id=deskarea2 style="">
445 - <div class="areaProgress"><div id="progressbar" style=""></div></div>
414 + <div id="p14warning" onclick="showFeaturesDlg()">
415 + <div class="icon2"></div>
416 + <div class="warningbox">Intel&reg; AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
417 </div>
447 - <div id=deskarea3x>
448 - <div id=DeskFocus oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></div>
449 - <div id=DeskParent>
450 - <canvas id=Desk width=640 height=480 oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event) onmousewheel=dmousewheel(event)></canvas>
451 - </div>
452 - <div id=DeskTools>
453 - <a id=DeskToolsRefreshButton style="" onclick="refreshDeskTools()">Refresh</a>
454 - <div id=DeskToolsBar>Processes</div>
455 - <div id=deskToolsArea>
456 - <div id=deskToolsHeader>
457 - <a class="colmn1" title="Sort by process id" onclick=sortProcess(0)>PID</a>
458 - <a class="colmn2" title="Sort by name" onclick=sortProcess(1)>Name</a></div>
459 - <div id="DeskToolsProcesses" style=""></div>
460 - </div>
461 - </div>
418 + <div id="p14warning2" onclick="showPowerActionDlg()">
419 + <div class="icon2"></div>
420 + <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
421 </div>
463 - <div id=deskarea4 class="areaFoot">
464 - <div class="toright2">
465 - <select id=termdisplays style="display:none" onchange=deskSetDisplay(event) onclick=deskGetDisplayNumbers(event)></select>&nbsp;
466 - <input id=DeskToolsButton type=button value=Tools title="Toggle tools view" onkeypress="return false" onkeydown="return false" onclick="toggleDeskTools()">&nbsp;
467 - <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>
468 - <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>
469 - <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>
470 - </div>
471 - <div>
472 - <select id="deskkeys">
473 - <option value=5>Win</option>
474 - <option value=0>Win+Down</option>
475 - <option value=1>Win+Up</option>
476 - <option value=2>Win+L</option>
477 - <option value=3>Win+M</option>
478 - <option value=4>Shift+Win+M</option>
479 - <option value=6>Win+R</option>
480 - </select>
481 - <input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()">
482 - <input id="DeskClip" style="" type="button" value="Clipboard" onkeypress="return false" onkeydown="return false" onclick="showDeskClip()">
483 - <input id="DeskCAD" type="button" value="Ctrl-Alt-Del" onkeypress="return false" onkeydown="return false" onclick="sendCAD()">
484 - <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;
485 - </div>
486 - </div>
487 - </div>
488 - </div>
489 - <div id=p12 style="display:none">
490 - <div id="p12title">
491 - <div id="p12BackButton"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
492 - <h1>Terminal - <span id=p12deviceName></span></h1>
493 - </div>
494 - <div id="p12warning" onclick=showFeaturesDlg()>
495 - <div class="icon2"></div>
496 - <div class="warningbox">Intel&reg; AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
497 - </div>
498 - <div id="p12warning2" onclick=showPowerActionDlg()>
499 - <div class="icon2"></div>
500 - <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
501 - </div>
502 - <table id=termTable cellpadding=0 cellspacing=0>
503 - <tr>
504 - <td class="areaHead">
505 - <div class="toright2">
506 - <input id="termActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction()/>
507 - </div>
508 - <div>
509 - <input type="button" id="autoconnectbutton2" value="AutoConnect" onclick=autoConnectTerminal(event) onkeypress="return false" onkeydown="return false" style="display:none">
510 - <span id="connectbutton2span"><input type="button" id="connectbutton2" value="Connect" onclick=connectTerminal(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
511 - <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>
512 - <span id="disconnectbutton2span">&nbsp;<input type="button" id="disconnectbutton2" value="Disconnect" onclick=connectTerminal(event,0) onkeypress="return false" onkeydown="return false"></span>
513 - &nbsp;<span id="termstatus">Disconnected</span>
514 - </div>
515 - </td>
516 - </tr>
517 - <tr>
518 - <td>
519 - <div class="areaProgress"><div id="termprogressbar" style=""></div></div>
520 - </td>
521 - </tr>
522 - <tr>
523 - <td id="termarea3x">
524 - <pre id="Term"></pre>
525 - </td>
526 - </tr>
527 - <tr>
528 - <td class="areaFoot">
529 - <div class="toright2">
530 - <span id="terminalSettingsButtons" style="display:none">
531 - <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()">
532 - <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()">
533 - <input id="id_ttypebutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Extended Ascii" title="Toggle terminal emulation type" onclick="termToggleType()">
534 - </span>
535 - <select id="specialkeylist" onkeypress="return false"></select>
536 - <input id="specialkeylistinput" type="button" onkeypress="return false" class="bottombutton" value="Send" title="Send the selected special key" onclick="sendSpecialKey()" />
537 - </div>
538 - <div>
539 - &nbsp;
540 - <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="ctrlcbutton" value="Ctl-C" onclick="termSendKey(3,'ctrlcbutton')" />
541 - <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="ctrlxbutton" value="Ctl-X" onclick="termSendKey(24,'ctrlxbutton')" />
542 - <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="escbutton" value="ESC" onclick="termSendKey(27,'escbutton')" />
543 - <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="bsbutton" value="Backspace" onclick="termSendKey(8,'bsbutton')" />
544 - <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="pastebutton" value="Paste" title="Paste text into the terminal" onclick="showTermPasteDialog()" />
545 - </div>
546 - </td>
547 - </tr>
548 - </table>
549 - </div>
550 - <div id=p13 style="display:none">
551 - <div id="p13title">
552 - <div id="p13BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
553 - <h1>Files - <span id=p13deviceName></span></h1>
422 + <table id=deskarea0 cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
423 + <tr id=deskarea1>
424 + <td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
425 + <div style="float:right;text-align:right">
426 + <span id="p14power"></span>&nbsp;
427 + <div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Left" onclick="drotate(-1)">&olarr;</div>
428 + <div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Right" onclick="drotate(1)">&orarr;</div>
429 + <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">
430 + <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>
431 + <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 />
432 + <input id="deskActionsSettings" type="button" value="Settings..." title="Edit remote desktop settings" onkeypress="return false" onkeydown="return false" onclick="showDesktopSettings()" style="margin-right:3px">
433 + <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">
434 + </div>
435 + <div>
436 + <div id="idx_deskFullBtn2" onclick=deskToggleFull(event)>&nbsp;&#x2716;</div>
437 + <input type="button" id="autoconnectbutton1" value="AutoConnect" onclick=autoConnectDesktop(event) onkeypress="return false" onkeydown="return false" style="display:none">
438 + <span id=connectbutton1span>&nbsp;<input type=button id=connectbutton1 value="Connect" onclick=connectDesktop(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
439 + <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>
440 + <span id=disconnectbutton1span>&nbsp;<input type=button id=disconnectbutton1 value="Disconnect" onclick=connectDesktop(event,0) onkeypress="return false" onkeydown="return false"></span>
441 + &nbsp;<span id="deskstatus">Disconnected</span>
442 + </div>
443 + </td>
444 + </tr>
445 + <tr id=deskarea2>
446 + <td>
447 + <div style=background-color:gray><div id=progressbar style=height:2px;width:0%;background-color:red></div></div>
448 + </td>
449 + </tr>
450 + <tr id=deskarea3>
451 + <td id=deskarea3x style="">
452 + <div id=DeskFocus oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></div>
453 + <div id=DeskParent>
454 + <canvas id=Desk width=640 height=480 oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event) onmousewheel=dmousewheel(event)></canvas>
455 + </div>
456 + <div id=DeskTools>
457 + <a id=DeskToolsRefreshButton style="" onclick="refreshDeskTools()">Refresh</a>
458 + <div id=DeskToolsBar>Processes</div>
459 + <div style="position:absolute;top:26px;left:4px;right:4px;bottom:4px;background-color:lightgray;text-align:left">
460 + <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>
461 + <div id="DeskToolsProcesses" style=""></div>
462 + </div>
463 + </div>
464 + </td>
465 + </tr>
466 + <tr id=deskarea4>
467 + <td style=padding-top:2px;padding-bottom:2px;background:#C0C0C0>
468 + <div style=float:right;text-align:right>
469 + <select id=termdisplays style="display:none" onchange=deskSetDisplay(event) onclick=deskGetDisplayNumbers(event)></select>&nbsp;
470 + <input id=DeskToolsButton type=button value=Tools title="Toggle tools view" onkeypress="return false" onkeydown="return false" onclick="toggleDeskTools()">&nbsp;
471 + <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>
472 + <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>
473 + <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>
474 + </div>
475 + <div>
476 + <select style="margin-left:6px" id="deskkeys">
477 + <option value=5>Win</option>
478 + <option value=0>Win+Down</option>
479 + <option value=1>Win+Up</option>
480 + <option value=2>Win+L</option>
481 + <option value=3>Win+M</option>
482 + <option value=4>Shift+Win+M</option>
483 + <option value=6>Win+R</option>
484 + </select>
485 + <input id="DeskWD" type=button value="Send" onkeypress="return false" onkeydown="return false" onclick="deskSendKeys()">
486 + <input id="DeskClip" style="margin-left:6px;display:none" type="button" value="Clipboard" onkeypress="return false" onkeydown="return false" onclick="showDeskClip()">
487 + <input id="DeskCAD" type="button" value="Ctrl-Alt-Del" onkeypress="return false" onkeydown="return false" onclick="sendCAD()">
488 + <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;
489 + </div>
490 + </td>
491 + </tr>
492 + </table>
493 </div>
555 - <table id="p13toolbar" cellpadding="0" cellspacing="0">
556 - <tr>
557 - <td class="areaHead">
558 - <div class="toright2">
559 - <input id="filesActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() />
560 - </div>
561 - <div>
562 - <input id=p13AutoConnect value="AutoConnect" onclick=autoConnectFiles(event) onkeypress="return false" onkeydown="return false" type="button" style="display:none">
563 - <input id=p13Connect value="Connect" onclick=connectFiles(event) onkeypress="return false" onkeydown="return false" type="button">
564 - <span id=p13Status>Disconnected</span>
565 - </div>
566 - </td>
567 - </tr>
568 - <tr>
569 - <td class="areaHead2" valign=bottom>
570 - <div id="p13rightOfButtons" class="toright2"></div>
571 - <div>
572 - <input type=button id=p13FolderUp disabled="disabled" onclick="p13folderup()" value="Up" />&nbsp;
573 - <input type=button id=p13SelectAllButton disabled="disabled" onclick="p13selectallfile()" value="Select All" onkeypress="return false" onkeydown="return false" />&nbsp;
574 - <input type=button id=p13RenameFileButton disabled="disabled" value="Rename" onclick="p13renamefile()" onkeypress="return false" onkeydown="return false" />&nbsp;
575 - <input type=button id=p13DeleteFileButton disabled="disabled" value="Delete" onclick="p13deletefile()" onkeypress="return false" onkeydown="return false" />&nbsp;
576 - <input type=button id=p13NewFolderButton disabled="disabled" value="New Folder" onclick="p13createfolder()" onkeypress="return false" onkeydown="return false" />&nbsp;
577 - <input type=button id=p13UploadButton disabled="disabled" value="Upload" onclick="p13uploadFile()" onkeypress="return false" onkeydown="return false" />&nbsp;
578 - <input type=button id=p13CutButton disabled="disabled" value="Cut" onclick="p13copyFile(1)" onkeypress="return false" onkeydown="return false" />&nbsp;
579 - <input type=button id=p13CopyButton disabled="disabled" value="Copy" onclick="p13copyFile(0)" onkeypress="return false" onkeydown="return false" />&nbsp;
580 - <input type=button id=p13PasteButton disabled="disabled" value="Paste" onclick="p13pasteFile()" onkeypress="return false" onkeydown="return false" />&nbsp;
581 - <input type=button id=p13RefreshButton disabled="disabled" value="Refresh" onclick="p13folderup(9999)" onkeypress="return false" onkeydown="return false" />&nbsp;
582 - </div>
583 - </td>
584 - </tr>
585 - <tr>
586 - <td class="areaHead3">
587 - <div class="toright2">
588 - <select id=p13sortdropdown onchange=p13updateFiles()>
589 - <option value=1 selected="selected">Sort by name</option>
590 - <option value=2>Sort by size</option>
591 - <option value=3>Sort by date</option>
592 - <option value=4>Descend by name</option>
593 - <option value=5>Descend by size</option>
594 - <option value=6>Descend by date</option>
595 - </select>
596 - </div>
597 - <div>&nbsp;&nbsp;<span id="p13currentpath"></span></div>
598 - </td>
599 - </tr>
600 - </table>
601 - <div id="p13filetable" style="">
602 - <div id="p13bigok" style="display:none"><b>&checkmark;</b></div>
603 - <div id="p13bigfail" style="display:none"><b>&#10007;</b></div>
604 - <span id="p13files"></span>
494 + <div id=p12 style="display:none">
495 + <div id="p12title">
496 + <div id="p12BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
497 + <h1>Terminal - <span id=p12deviceName></span></h1>
498 + </div>
499 + <div id="p12warning" onclick=showFeaturesDlg()>
500 + <div class="icon2"></div>
501 + <div class="warningbox">Intel&reg; AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
502 + </div>
503 + <div id="p12warning2" onclick=showPowerActionDlg()>
504 + <div class="icon2"></div>
505 + <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
506 + </div>
507 + <table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
508 + <tr>
509 + <td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
510 + <div style="float:right;text-align:right">
511 + <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 />
512 + </div>
513 + <div>
514 + <input type="button" id="autoconnectbutton2" value="AutoConnect" onclick=autoConnectTerminal(event) onkeypress="return false" onkeydown="return false" style="display:none">
515 + <span id="connectbutton2span">&nbsp;<input type="button" id="connectbutton2" value="Connect" onclick=connectTerminal(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
516 + <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>
517 + <span id="disconnectbutton2span">&nbsp;<input type="button" id="disconnectbutton2" value="Disconnect" onclick=connectTerminal(event,0) onkeypress="return false" onkeydown="return false"></span>
518 + &nbsp;<span id="termstatus">Disconnected</span>
519 + </div>
520 + </td>
521 + </tr>
522 + <tr>
523 + <td>
524 + <div style="background-color:gray"><div id="termprogressbar" style="height:2px;width:0%;background-color:red"></div></div>
525 + </td>
526 + </tr>
527 + <tr>
528 + <td style="background:black;text-align:center;height:500px;position:relative">
529 + <pre id="Term" style="background:black;margin:0;padding:0"></pre>
530 + </td>
531 + </tr>
532 + <tr>
533 + <td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
534 + <div style="float:right;text-align:right">
535 + <span id="terminalSettingsButtons" style="display:none">
536 + <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()">
537 + <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()">
538 + <input id="id_ttypebutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Extended Ascii" title="Toggle terminal emulation type" onclick="termToggleType()">
539 + </span>
540 + <select id="specialkeylist" onkeypress="return false" style="margin-left:5px"></select>
541 + <input id="specialkeylistinput" type="button" onkeypress="return false" class="bottombutton" value="Send" title="Send the selected special key" onclick="sendSpecialKey()" />
542 + </div>
543 + <div>
544 + &nbsp;
545 + <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="ctrlcbutton" value="Ctl-C" onclick="termSendKey(3,'ctrlcbutton')" />
546 + <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="ctrlxbutton" value="Ctl-X" onclick="termSendKey(24,'ctrlxbutton')" />
547 + <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="escbutton" value="ESC" onclick="termSendKey(27,'escbutton')" />
548 + <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="bsbutton" value="Backspace" onclick="termSendKey(8,'bsbutton')" />
549 + <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="pastebutton" value="Paste" title="Paste text into the terminal" onclick="showTermPasteDialog()" />
550 + </div>
551 + </td>
552 + </tr>
553 + </table>
554 </div>
606 - <table id="p13toolbarBottom" cellpadding=0 cellspacing=0>
607 - <tr><td class=style6>&nbsp;<span id="p13bottomstatus"></span></td></tr>
608 - </table>
609 - </div>
610 - <div id=p14 style="display:none">
611 - <div id="p14title">
612 - <div id="p14BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
613 - <h1>Intel&reg; AMT - <span id=p14deviceName></span></h1>
555 + <div id=p13 style="display:none">
556 + <div id="p13title">
557 + <div id="p13BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
558 + <h1>Files - <span id=p13deviceName></span></h1>
559 + </div>
560 + <table id="p13toolbar" style="width: 100%" cellpadding="0" cellspacing="0">
561 + <tr>
562 + <td style="background-color:#C0C0C0;border-bottom:2px solid black;padding:2px">
563 + <div style="float:right;text-align:right">
564 + <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 />
565 + </div>
566 + <div>
567 + <input id=p13AutoConnect value="AutoConnect" onclick=autoConnectFiles(event) onkeypress="return false" onkeydown="return false" type="button" style="display:none">
568 + <input id=p13Connect value="Connect" onclick=connectFiles(event) onkeypress="return false" onkeydown="return false" type="button">
569 + <span id=p13Status>Disconnected</span>
570 + </div>
571 + </td>
572 + </tr>
573 + <tr>
574 + <td style="width:100%;background-color:#d3d9d6;text-align:left;padding:4px" valign=bottom>
575 + <div id="p13rightOfButtons" style="float:right;margin-top:3px"></div>
576 + <div>
577 + <input type=button id=p13FolderUp disabled="disabled" onclick="p13folderup()" value="Up" />&nbsp;
578 + <input type=button id=p13SelectAllButton disabled="disabled" onclick="p13selectallfile()" value="Select All" onkeypress="return false" onkeydown="return false" />&nbsp;
579 + <input type=button id=p13RenameFileButton disabled="disabled" value="Rename" onclick="p13renamefile()" onkeypress="return false" onkeydown="return false" />&nbsp;
580 + <input type=button id=p13DeleteFileButton disabled="disabled" value="Delete" onclick="p13deletefile()" onkeypress="return false" onkeydown="return false" />&nbsp;
581 + <input type=button id=p13NewFolderButton disabled="disabled" value="New Folder" onclick="p13createfolder()" onkeypress="return false" onkeydown="return false" />&nbsp;
582 + <input type=button id=p13UploadButton disabled="disabled" value="Upload" onclick="p13uploadFile()" onkeypress="return false" onkeydown="return false" />&nbsp;
583 + <input type=button id=p13CutButton disabled="disabled" value="Cut" onclick="p13copyFile(1)" onkeypress="return false" onkeydown="return false" />&nbsp;
584 + <input type=button id=p13CopyButton disabled="disabled" value="Copy" onclick="p13copyFile(0)" onkeypress="return false" onkeydown="return false" />&nbsp;
585 + <input type=button id=p13PasteButton disabled="disabled" value="Paste" onclick="p13pasteFile()" onkeypress="return false" onkeydown="return false" />&nbsp;
586 + <input type=button id=p13RefreshButton disabled="disabled" value="Refresh" onclick="p13folderup(9999)" onkeypress="return false" onkeydown="return false" />&nbsp;
587 + </div>
588 + </td>
589 + </tr>
590 + <tr>
591 + <td style="background-color:#E4E9E7;height:28px">
592 + <div style=float:right>
593 + <select id=p13sortdropdown onchange=p13updateFiles()>
594 + <option value=1 selected="selected">Sort by name</option>
595 + <option value=2>Sort by size</option>
596 + <option value=3>Sort by date</option>
597 + <option value=4>Descend by name</option>
598 + <option value=5>Descend by size</option>
599 + <option value=6>Descend by date</option>
600 + </select>
601 + </div>
602 + <div>&nbsp;&nbsp;<span id="p13currentpath"></span></div>
603 + </td>
604 + </tr>
605 + </table>
606 + <div id="p13filetable" style="width:100%;height:calc(100vh - 346px);overflow:auto;-webkit-user-select:none">
607 + <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>
608 + <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>
609 + <span id="p13files"></span>
610 + </div>
611 + <table id="p13toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
612 + <tr><td class=style6>&nbsp;<span id="p13bottomstatus"></span></td></tr>
613 + </table>
614 </div>
615 - <iframe id=p14iframe src="/commander.htm"></iframe>
616 - </div>
617 - <div id=p15 style="display:none">
618 - <div id="p15title">
619 - <div id="p15BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
620 - <h1><span id=p15deviceName></span></h1>
615 + <div id=p14 style="display:none">
616 + <div id="p14title">
617 + <div id="p14BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
618 + <h1>Intel&reg; AMT - <span id=p14deviceName></span></h1>
619 + </div>
620 + <iframe id=p14iframe style="width:100%;height:calc(100vh - 242px);border:0;overflow:hidden" src="/commander.htm"></iframe>
621 </div>
622 - <table id="consoleTable" cellpadding=0 cellspacing=0>
623 - <tr>
624 - <td class="areaHead">
625 - <div class="toright2">
626 - <div id=p15coreName title="Information about current core running on this agent"></div>
627 - <input type=button id=p15uploadCore value="Agent Action" onclick=p15uploadCore(event) title="Change the agent Java Script code module" />
628 - </div>
629 - <div id="p15statetext"></div>
630 - </td>
631 - </tr>
632 - <tr>
633 - <td>
634 - <div class="areaProgress"><div id="consoleprogressbar" style=""></div></div>
635 - </td>
636 - </tr>
637 - <tr>
638 - <td id=p15agentConsole>
639 - <pre id=p15agentConsoleText></pre>
640 - </td>
641 - </tr>
642 - <tr>
643 - <td class="areaFoot">
644 - <table style="width:100%">
645 - <tr>
646 - <td style="width:99%">
647 - <input id=p15consoleText style=width:100% onkeyup=p15consoleSend(event) onfocus=onConsoleFocus(1) onblur=onConsoleFocus(0) />
648 - </td>
649 - <td>&nbsp;</td>
650 - <td style="width:1%"><input id="id_p15consoleClear" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Clear" onclick="p15consoleClear()"></td>
651 - </tr>
652 - </table>
653 - </td>
654 - </tr>
655 - </table>
656 - </div>
657 - <div id=p16 style="display:none">
658 - <div id="p16title">
659 - <div id="p16BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
660 - <h1>Events - <span id=p16deviceName></span></h1>
622 + <div id=p15 style="display:none">
623 + <div id="p15title">
624 + <div id="p15BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
625 + <h1><span id=p15deviceName></span></h1>
626 + </div>
627 + <table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
628 + <tr>
629 + <td style=background:#C0C0C0>
630 + <div style=float:right;padding-right:4px>
631 + <div style=padding:4px;display:inline-block id=p15coreName title="Information about current core running on this agent"></div>
632 + <input type=button id=p15uploadCore value="Agent Action" onclick=p15uploadCore(event) title="Change the agent Java Script code module" />
633 + </div>
634 + <div id="p15statetext" style=padding:4px></div>
635 + </td>
636 + </tr>
637 + <tr>
638 + <td>
639 + <div style="background-color:gray"><div id="consoleprogressbar" style="height:2px;width:0%;background-color:red"></div></div>
640 + </td>
641 + </tr>
642 + <tr>
643 + <td id=p15agentConsole style="background:black;margin:0;padding:0;color:lightgray;width:100%;height:calc(100vh - 296px);max-height:500px;position:relative">
644 + <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>
645 + </td>
646 + </tr>
647 + <tr>
648 + <td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
649 + <table style="width:100%">
650 + <tr>
651 + <td style="width:99%">
652 + <input id=p15consoleText style=width:100% onkeyup=p15consoleSend(event) onfocus=onConsoleFocus(1) onblur=onConsoleFocus(0) />
653 + </td>
654 + <td>&nbsp;</td>
655 + <td style="width:1%"><input id="id_p15consoleClear" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Clear" onclick="p15consoleClear()"></td>
656 + </tr>
657 + </table>
658 + </td>
659 + </tr>
660 + </table>
661 </div>
662 - <table class="pTable">
663 - <tr>
664 - <td class="h1"></td>
665 - <td>&nbsp;<input type=button onclick=refreshDeviceEvents() value="Refresh" /></td>
666 - <td class="auto-style1">
662 + <div id=p16 style="display:none">
663 + <div id="p16title">
664 + <div id="p16BackButton" style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
665 + <h1>Events - <span id=p16deviceName></span></h1>
666 + </div>
667 + <div style="width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px">
668 + <div class="h1pre">&nbsp;</div>
669 + <div class="h1" style="float:left">&nbsp;</div>
670 + <!--<div class=style14 style=height:100%;float:left>&nbsp;&nbsp;<input id=p31deleteall type=button style="display:none" value="Delete All..." />&nbsp;</div>-->
671 + <div class="style14" style="float:left">&nbsp;&nbsp;<input type=button value=Refresh onclick=refreshDeviceEvents() />&nbsp;</div>
672 + <div class="auto-style1" style="height:100%;float:right">
673 Show
674 <select id=p16limitdropdown onchange=refreshDeviceEvents()>
675 <option value=60>Last 60</option>
@@ -672,52 +678,53 @@
678 <option value=500>Last 500</option>
679 <option value=1000>Last 1000</option>
680 </select>
675 - </td>
676 - <td class="h2"></td>
677 - </tr>
678 - </table>
679 - <div id=p16events></div>
680 - </div>
681 - <div id=p20 style="display:none">
682 - <picture id=MainMeshImage style=border-width:0px;height:200px;width:200px;float:right>
683 - <source type="image/webp" width=200 height=200 srcset="images/webp/mesh-200.webp">
684 - <img alt="" width=200 height=200 src=images/mesh-200.jpg />
685 - </picture>
686 - <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
687 - <h1>General - <span id=p20meshName></span></h1>
688 - <p id=p20info></p>
689 - </div>
690 - <div id=p30 style="display:none">
691 - <table style="width:100%" cellpadding="0" cellspacing="0">
692 - <tr>
693 - <td style=width:auto valign=top>
694 - <div id="p30title">
695 - <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
696 - <h1>General - <span id=p30userName></span></h1>
697 - </div>
698 - <div id=p30html></div>
699 - </td>
700 - <td style=width:20px></td>
701 - <td style=width:200px>
702 - <picture id=MainUserImage style=border-width:0px;height:200px;width:200px;float:right>
703 - <source type="image/webp" width=200 height=200 srcset="images/webp/user-200.webp">
704 - <img alt="" width=200 height=200 src=images/user-200.jpg />
705 - </picture>
706 - <div style="width:100%;text-align:center"><strong><span id=MainUserState></span></strong></div>
707 - </td>
708 - </tr>
709 - </table><br>
710 - <div id=p30html2></div>
711 - <div id=p30html3></div>
712 - </div>
713 - <div id=p31 style="display:none">
714 - <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
715 - <h1>Events - <span id=p31userName></span></h1>
716 - <table class="pTable">
717 - <tr>
718 - <td class="h1"></td>
719 - <td>&nbsp;<input type=button onclick=refreshUsersEvents() value="Refresh" /></td>
720 - <td class="auto-style1">
681 + <div class="h2end"></div>
682 + <div class="h2" style="height:100%;float:right">&nbsp;</div>
683 + </div>
684 + </div>
685 + <div id=p16events style="max-height:calc(100vh - 267px);overflow-y:auto"></div>
686 + </div>
687 + <div id=p20 style="display:none">
688 + <picture id=MainMeshImage style=border-width:0px;height:200px;width:200px;float:right>
689 + <source type="image/webp" width=200 height=200 srcset="images/webp/mesh-200.webp">
690 + <img alt="" width=200 height=200 src=images/mesh-200.jpg />
691 + </picture>
692 + <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
693 + <h1>General - <span id=p20meshName></span></h1>
694 + <p id=p20info></p>
695 + </div>
696 + <div id=p30 style="display:none">
697 + <table style="width:100%" cellpadding="0" cellspacing="0">
698 + <tr>
699 + <td style=width:auto valign=top>
700 + <div id="p30title">
701 + <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
702 + <h1>General - <span id=p30userName></span></h1>
703 + </div>
704 + <div id=p30html></div>
705 + </td>
706 + <td style=width:20px></td>
707 + <td style=width:200px>
708 + <picture id=MainUserImage style=border-width:0px;height:200px;width:200px;float:right>
709 + <source type="image/webp" width=200 height=200 srcset="images/webp/user-200.webp">
710 + <img alt="" width=200 height=200 src=images/user-200.jpg />
711 + </picture>
712 + <div style="width:100%;text-align:center"><strong><span id=MainUserState></span></strong></div>
713 + </td>
714 + </tr>
715 + </table><br>
716 + <div id=p30html2></div>
717 + <div id=p30html3></div>
718 + </div>
719 + <div id=p31 style="display:none">
720 + <div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
721 + <h1>Events - <span id=p31userName></span></h1>
722 + <div style="width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px">
723 + <div class="h1pre">&nbsp;</div>
724 + <div class="h1" style="height:100%;float:left">&nbsp;</div>
725 + <!--<div class=style14 style=float:left>&nbsp;&nbsp;<input id=p31deleteall type=button style="display:none" value="Delete All..." />&nbsp;</div>-->
726 + <div class="style14" style="float:left">&nbsp;&nbsp;<input type=button value=Refresh onclick=refreshUsersEvents() />&nbsp;</div>
727 + <div class="auto-style1" style="height:100%;float:right">
728 Show
729 <select id=p31limitdropdown onchange=refreshUsersEvents()>
730 <option value=60>Last 60</option>
@@ -726,142 +733,151 @@
733 <option value=500>Last 500</option>
734 <option value=1000>Last 1000</option>
735 </select>
729 - </td>
730 - <td class="h2"></td>
731 - </tr>
732 - </table>
733 - <div id=p31events></div>
734 - </div>
735 - <div id=p40 style="display:none;">
736 - <h1>My Server Stats</h1>
737 - <div class="areaHead">
738 - <div class="toright2">
739 - <select id=p40type onchange=updateServerTimelineStats()>
740 - <option value=0>Connections</option>
741 - <option value=1>Memory</option>
742 - </select>&nbsp;
743 - <select id=p40time onchange=updateServerTimelineHours()>
744 - <option value=3>Last 3 hours</option>
745 - <option value=8>Last 8 hours</option>
746 - <option value=24>Last day</option>
747 - <option value=168>Last week</option>
748 - <option value=720>Last 30 days</option>
749 - </select>&nbsp;
750 - <img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>&nbsp;
736 + <div class="h2end"></div>
737 + <div class="h2" style="height:100%;float:right;">&nbsp;</div>
738 + </div>
739 </div>
752 - <div>
753 - <input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
754 - &nbsp;<input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X
740 + <div id=p31events style="max-height:calc(100vh - 267px);overflow-y:scroll"></div>
741 + </div>
742 + <div id=p40 style="display:none;height:calc(100vh - 170px)">
743 + <h1>My Server Stats</h1>
744 + <div style=width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px>
745 + <div style="float:right">
746 + <select id=p40type onchange=updateServerTimelineStats()>
747 + <option value=0>Connections</option>
748 + <option value=1>Memory</option>
749 + </select>&nbsp;
750 + <select id=p40time onchange=updateServerTimelineHours()>
751 + <option value=3>Last 3 hours</option>
752 + <option value=8>Last 8 hours</option>
753 + <option value=24>Last day</option>
754 + <option value=168>Last week</option>
755 + <option value=720>Last 30 days</option>
756 + </select>&nbsp;
757 + <img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>&nbsp;
758 + </div>
759 + <div>
760 + &nbsp;<input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
761 + &nbsp;<input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X
762 + </div>
763 </div>
764 + <canvas id=serverMainStats style="height:calc(100vh - 250px);max-height:calc(100vh - 250px);width:100%"></canvas>
765 </div>
757 - <canvas id=serverMainStats style=""></canvas>
766 + <br id="column_l_bottomgap" />
767 </div>
759 - <br id="column_l_bottomgap" />
760 - </div>
761 - <div id="footer">
762 - <div class="footer1">{{{footer}}}</div>
763 - <div class="footer2">
764 - <a id="verifyEmailId2" style="display:none" onclick="account_showVerifyEmail()">Verify Email</a>
765 - &nbsp;<a href=terms>Terms &amp; Privacy</a>
766 - </div>
767 - </div>
768 - <div id=dialog style="display:none">
769 - <div id=dialogHeader>
770 - <div id=id_dialogclose onclick=setDialogMode()>&#x2716;</div>
771 - <div id=id_dialogtitle></div>
768 + <div id=footer class=noselect>
769 + <table cellpadding=0 cellspacing=10 style="width:100%">
770 + <tr>
771 + <td style="text-align:left;color:white">
772 + {{{footer}}}
773 + </td>
774 + <td style="text-align:right">
775 + <a id="verifyEmailId2" style="color:yellow;margin-left:3px;cursor:pointer;display:none" onclick="account_showVerifyEmail()">Verify Email</a>
776 + <a style="margin-left:3px" href="terms">Terms &amp; Privacy</a>
777 + </td>
778 + </tr>
779 + </table>
780 </div>
773 - <div id=dialogBody>
774 - <div id=dialog1>
775 - <div id=id_dialogMessage style=""></div>
776 - </div>
777 - <div id=dialog2 style="">
778 - <div id=id_dialogOptions></div>
781 + <div id=dialog style="display:none">
782 + <div id=dialogHeader>
783 + <div id=id_dialogclose style=float:right;padding:3px;margin-right:3px;cursor:pointer onclick=setDialogMode()>&#x2716;</div>
784 + <div id=id_dialogtitle style=padding:5px></div>
785 + <div style=width:100%;margin:6px></div>
786 </div>
780 - <div id=dialog3 style="">
781 - <div id=d3upload>
782 - <div>File Selection</div>
783 - <select id=d3uploadMode onchange=d3modechange()>
784 - <option value=1>Local file upload</option>
785 - <option value=2>Server file selection</option>
786 - </select>
787 + <div id=dialogBody>
788 + <div id=dialog1>
789 + <div id=id_dialogMessage style=""></div>
790 </div>
788 - <div id=d3localmode style="display:none">
789 - <div>Upload File</div>
790 - <form id=d3localmodeform method=post enctype=multipart/form-data action=uploadfile.ashx target=fileUploadFrame>
791 - <input type=text id=d3attrib name=attrib style="display:none" />
792 - <input type=file id=d3localFile name=files onchange=d3setActions() />
793 - <input type=submit id=d3submit style="display:none" />
794 - </form>
791 + <div id=dialog2 style="">
792 + <div id=id_dialogOptions></div>
793 </div>
796 - <div id=d3servermode>
797 - <div id=d3serveraction valign=bottom>
798 - <input type=button id=p3FolderUp disabled="disabled" onclick=d3folderup() value="Up" />&nbsp;
799 - </div>
800 - <div id=d3serverfiles></div>
801 - </div>
802 - </div>
803 - <div id=dialog7 style="">
804 - <div id="d7meshkvm">
805 - <h4>Agent Remote Desktop</h4>
806 - <div>
807 - <div>Quality</div>
808 - <select id="d7bitmapquality" dir="rtl"></select>
809 - </div>
810 - <div>
811 - <div>Scaling</div>
812 - <select id="d7bitmapscaling" style="" dir="rtl">
813 - <option selected=selected value=1024>100%</option>
814 - <option value=896>87.5%</option>
815 - <option value=768>75%</option>
816 - <option value=640>62.5%</option>
817 - <option value=512>50%</option>
818 - <option value=384>37.5%</option>
819 - <option value=256>25%</option>
820 - <option value=128>12.5%</option>
794 + <div id=dialog3 style="">
795 + <div style=height:26px>
796 + <select id=d3uploadMode style=float:right;width:260px onchange=d3modechange()>
797 + <option value=1>Local file upload</option>
798 + <option value=2>Server file selection</option>
799 </select>
800 + <div>File Selection</div>
801 </div>
823 - <div>
824 - <div>Frame rate</div>
825 - <select id="d7framelimiter" dir="rtl">
826 - <option selected=selected value=50>Fast</option>
827 - <option value=100>Medium</option>
828 - <option value=400>Slow</option>
829 - <option value=1000>Very slow</option>
830 - </select>
802 + <div id=d3localmode style=height:26px;display:none>
803 + <form id=d3localmodeform method=post enctype=multipart/form-data action=uploadfile.ashx target=fileUploadFrame>
804 + <input type=text id=d3attrib name=attrib style="display:none" />
805 + <input type=file id=d3localFile name=files style=float:right;width:260px onchange=d3setActions() />
806 + <input type=submit id=d3submit style="display:none" />
807 + </form>
808 + <div>Upload File</div>
809 + </div>
810 + <div id=d3servermode>
811 + <div style="width:100%;background-color:#d3d9d6;text-align:left;padding:3px" valign=bottom>
812 + <input type=button id=p3FolderUp disabled="disabled" onclick=d3folderup() value="Up" />&nbsp;
813 + </div>
814 + <div id=d3serverfiles style="width:100%;height:150px;background-color:white;padding:2px;border:1px solid gray;overflow-y:scroll"></div>
815 </div>
816 </div>
833 - <div id="d7amtkvm">
834 - <h4>Intel&reg; AMT Hardware KVM</h4>
835 - <div>
836 - <div>Image Encoding</div>
837 - <select id="d7desktopmode">
838 - <option value="1">RLE8, Fastest</option>
839 - <option value="2">RLE16, Recommended</option>
840 - <option value="3">RAW8, Slow</option>
841 - <option value="4">RAW16, Very Slow</option>
842 - </select>
817 + <div id=dialog7 style="margin:auto;margin:3px">
818 +
819 + <div id="d7meshkvm">
820 + <h4 style="width:100%;border-bottom:1px solid gray">Agent Remote Desktop</h4>
821 + <div style="margin:3px 0 3px 0">
822 + <select id="d7bitmapquality" style="float:right;width:200px;height:20px" dir="rtl"></select>
823 + <div style="height:20px">Quality</div>
824 + </div>
825 + <div style="margin:3px 0 3px 0">
826 + <select id="d7bitmapscaling" style="float:right;width:200px;height:20px" dir="rtl">
827 + <option selected=selected value=1024>100%</option>
828 + <option value=896>87.5%</option>
829 + <option value=768>75%</option>
830 + <option value=640>62.5%</option>
831 + <option value=512>50%</option>
832 + <option value=384>37.5%</option>
833 + <option value=256>25%</option>
834 + <option value=128>12.5%</option>
835 + </select>
836 + <div style="height:20px">Scaling</div>
837 + </div>
838 + <div style="margin:3px 0 3px 0">
839 + <select id="d7framelimiter" style="float:right;width:200px;height:20px" dir="rtl">
840 + <option selected=selected value=50>Fast</option>
841 + <option value=100>Medium</option>
842 + <option value=400>Slow</option>
843 + <option value=1000>Very slow</option>
844 + </select>
845 + <div style="height:20px">Frame rate</div>
846 + </div>
847 </div>
844 - <div>
845 - <div>Other Settings</div>
846 - <div id="d7otherset">
847 - <label><input type="checkbox" id='d7showfocus'>Show Focus Tool<br></label>
848 - <label><input type="checkbox" id='d7showcursor'>Show Local Mouse Cursor<br></label>
849 - <label><input type="checkbox" id='d7localKeyMap'>Local Keyboard Map<br></label>
848 + <div id="d7amtkvm">
849 + <h4 style="width:100%;border-bottom:1px solid gray">Intel&reg; AMT Hardware KVM</h4>
850 + <div style='height:26px'>
851 + <select id="d7desktopmode" style="float:right;width:200px">
852 + <option value="1">RLE8, Fastest</option>
853 + <option value="2">RLE16, Recommended</option>
854 + <option value="3">RAW8, Slow</option>
855 + <option value="4">RAW16, Very Slow</option>
856 + </select>
857 + <div>Image Encoding</div>
858 + </div>
859 + <div style="height:60px">
860 + <div style="float:right;border:1px solid #666;width:200px;height:60px;overflow-y:scroll;background-color:white">
861 + <label><input type="checkbox" id='d7showfocus'>Show Focus Tool<br></label>
862 + <label><input type="checkbox" id='d7showcursor'>Show Local Mouse Cursor<br></label>
863 + <label><input type="checkbox" id='d7localKeyMap'>Local Keyboard Map<br></label>
864 + </div>
865 + <div>Other Settings</div>
866 </div>
867 </div>
868 </div>
869 </div>
870 + <div id="idx_dlgButtonBar" style="padding:10px;margin-bottom:4px">
871 + <input id="idx_dlgCancelButton" type="button" value="Cancel" style="" onclick="dialogclose(0)">
872 + <input id="idx_dlgOkButton" type="button" value="OK" style="" onclick="dialogclose(1)">
873 + <div style="height:25px"><input id=idx_dlgDeleteButton type=button value=Delete style="display:none" onclick="dialogclose(2)"></div>
874 + </div>
875 </div>
855 - <div id="idx_dlgButtonBar">
856 - <input id="idx_dlgCancelButton" type="button" value="Cancel" style="" onclick="dialogclose(0)">
857 - <input id="idx_dlgOkButton" type="button" value="OK" style="" onclick="dialogclose(1)">
858 - <div><input id=idx_dlgDeleteButton type=button value=Delete style="display:none" onclick="dialogclose(2)"></div>
859 - </div>
876 + <iframe name="fileUploadFrame" style="display:none"></iframe>
877 + <form style="display:none" method=post action=uploadfile.ashx enctype=multipart/form-data target=fileUploadFrame><input id=p5fileDragName name="name"><input id=p5fileDragSize name="size"><input id=p5fileDragType name="type"><input id=p5fileDragData name="data"><input id=p5fileDragLink name="link"><input type=submit id=p5loginSubmit2 style="display:none" /></form>
878 + <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>
879 + <audio id="chimes"><source src="sounds/chimes.mp3" type="audio/mp3"></audio>
880 </div>
861 - <iframe name="fileUploadFrame" style="display:none"></iframe>
862 - <form style="display:none" method=post action=uploadfile.ashx enctype=multipart/form-data target=fileUploadFrame><input id=p5fileDragName name="name"><input id=p5fileDragSize name="size"><input id=p5fileDragType name="type"><input id=p5fileDragData name="data"><input id=p5fileDragLink name="link"><input type=submit id=p5loginSubmit2 style="display:none" /></form>
863 - <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>
864 - <audio id="chimes"><source src="sounds/chimes.mp3" type="audio/mp3"></audio>
881 </div>
882 <script type="text/javascript">
883 'use strict';
@@ -911,11 +927,6 @@
927 var passRequirements = "{{{passRequirements}}}";
928 if (passRequirements != "") { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
929
914 - var deskAspectRatio = getstore('deskAspectRatio', false);
915 - var webPageStackMenu = getstore('webPageStackMenu', false);
916 - if (webPageStackMenu == true || webPageStackMenu == 'true') { webPageStackMenu = true } else { webPageStackMenu = false };
917 - toggleStackMenu(0)
918 -
930 function startup() {
931 if ((features & 32) == 0) {
932 // Guard against other site's top frames (web bugs).
@@ -939,7 +950,7 @@
950 if (args.hide) {
951 var hide = parseInt(args.hide);
952 QV('masthead', !(hide & 1));
942 - QV('topbar', !(hide & 2));
953 + QV('topbarmaster', !(hide & 2));
954 QV('footer', !(hide & 4));
955 QV('p10title', !(hide & 8));
956 QV('p11title', !(hide & 8));
@@ -1028,47 +1039,54 @@
1039 setupServerTimelineStats();
1040 }
1041
1031 - // Toggle the web page to full screen
1032 - function toggleAspectRatio(toggle) {
1033 - if (toggle === 1) { deskAspectRatio = !deskAspectRatio; putstore('deskAspectRatio', deskAspectRatio); }
1034 - deskAdjust()
1035 - }
1036 -
1037 - // If FullScreen, toggle menu to be horisontal or vertical
1038 - function toggleStackMenu(toggle) {
1039 - if (webPageFullScreen == true) {
1040 - if (toggle === 1) {
1041 - webPageStackMenu = !webPageStackMenu;
1042 - putstore('webPageStackMenu', webPageStackMenu);
1043 - }
1044 - if (webPageStackMenu == false) {
1045 - QC('body').remove("menu_stack");
1046 - } else {
1047 - QC('body').add("menu_stack");
1048 - if (xxcurrentView >= 10) QC('column_l').remove('room4submenu');
1049 - }
1050 - deskAdjust();
1051 - }
1052 - }
1053 -
1042 // Toggle the web page to full screen
1043 function toggleFullScreen(toggle) {
1044 if (toggle === 1) { webPageFullScreen = !webPageFullScreen; putstore('webPageFullScreen', webPageFullScreen); }
1045 var hide = 0;
1046 if (args.hide) { hide = parseInt(args.hide); }
1047 if (webPageFullScreen == false) {
1060 - QC('body').remove("menu_stack");
1048 QC('body').remove("fullscreen");
1049 QC('body').remove("arg_hide");
1063 - if (xxcurrentView >= 10) QC('column_l').add('room4submenu');
1050 + /* QS('container').width = '960px';
1051 + QS('container')['border-right'] = '1px solid #b7b7b7';
1052 + QS('container')['border-left'] = '1px solid #b7b7b7';
1053 + QS('container')['min-width'] = '960px';
1054 + QS('container')['overflow'] = '';
1055 + QS('column_l').width = '930px';
1056 + QS('column_l').height = '';
1057 + QS('column_l')['margin-left'] = '';
1058 + QS('column_l')["overflow-y"] = '';
1059 + QS('column_l')["max-height"] = (xxcurrentView >= 10) ? 'calc(100vh - 159px)' : 'calc(100vh - 135px)';
1060 + QS('container').position = '';
1061 + QS('page_content').position = '';
1062 + QV('MainMenuSpan', true); */
1063 QV('UserDummyMenuSpan', false);
1065 - //QV('page_leftbar', false);
1064 + QV('page_leftbar', false);
1065 } else {
1066 QC('body').add("fullscreen");
1068 - if (hide & 16) QC('body').add("arg_hide"); // This is replacement for QV('page_leftbar', !(hide & 16));
1069 - if (xxcurrentView >= 10) QC('column_l').remove('room4submenu');
1067 + if (hide & 16) QC('body').add("arg_hide");
1068 + /* QS('container').position = 'absolute';
1069 + QS('container').width = '100%';
1070 + QS('container').top = '0px';
1071 + QS('container').bottom = '0px';
1072 + QS('container')['border-right'] = '0';
1073 + QS('container')['border-left'] = '0';
1074 + QS('container')['min-width'] = '700px';
1075 + QS('container')['overflow'] = 'hidden';
1076 + QS('page_content').position = 'absolute';
1077 + QS('page_content').top = '66px';
1078 + QS('page_content').left = (hide & 16)?'0px':'90px';
1079 + QS('page_content').right = '0px';
1080 + QS('page_content').bottom = '0px';
1081 + QS('column_l').height = 'calc(100vh - 135px)';
1082 + QS('column_l').width = 'calc(100% - 30px)';
1083 + QS('column_l')["overflow-y"] = 'auto';
1084 + QS('column_l')["max-height"] = 'calc(100vh - 135px)';
1085 + QV('MainMenuSpan', false); */
1086 QV('UserDummyMenuSpan', (xxcurrentView < 10) && webPageFullScreen);
1087 + QV('page_leftbar', !(hide & 16));
1088 }
1089 + //center();
1090 masterUpdate(512);
1091 QV('body', true);
1092 }
@@ -1431,7 +1449,7 @@
1449 case 'getcookie': {
1450 if (message.tag == 'clickonce') {
1451 var basicPort = "{{{serverRedirPort}}}" == "" ? "{{{serverPublicPort}}}" : "{{{serverRedirPort}}}";
1434 - 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");
1452 + 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");
1453 var newWindow = window.open(rdpurl, '_blank');
1454 newWindow.opener = null;
1455 }
@@ -1609,7 +1627,7 @@
1627 }
1628 }
1629 if (users == null) break;
1612 -
1630 +
1631 // Check if the account if part of our user group
1632 if ((userinfo.groups == null) || (userinfo.groups.length == 0) || (findOne(message.event.account.groups, userinfo.groups) == true)) {
1633 users[message.event.account._id] = message.event.account; // Part of our groups, update this user.
@@ -2324,7 +2342,7 @@
2342 multiDesktop[id] = desktop;
2343 desktop = desktopNode = currentNode = null;
2344 // Setup a replacement desktop
2327 - QH('DeskParent', '<canvas id="Desk" oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
2345 + 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>');
2346 } else {
2347 // This is a new device, create a canvas for it.
2348 var c = document.createElement('canvas');
@@ -4156,7 +4174,7 @@
4174 var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3'];
4175 function showEditNodeValueDialog(mode) {
4176 if (xxdialogMode) return;
4159 - var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
4177 + 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) />');
4178 setDialogMode(2, "Edit Device", 3, showEditNodeValueDialogEx, x, mode);
4179 var v = currentNode[showEditNodeValueDialog_modes2[mode]];
4180 if (v == null) v = '';
@@ -4195,6 +4213,7 @@
4213 QH('DeskParent', '');
4214 var c = xdesk.m.CanvasId;
4215 c.setAttribute('id', 'Desk');
4216 + c.setAttribute('style', 'width:100%;-ms-touch-action:none;margin-left:0px');
4217 c.setAttribute('onmousedown', 'dmousedown(event)');
4218 c.setAttribute('onmouseup', 'dmouseup(event)');
4219 c.setAttribute('onmousemove', 'dmousemove(event)');
@@ -4208,7 +4227,7 @@
4227 delete multiDesktop[currentNode._id];
4228 } else {
4229 // Device is not already connected, just setup a blank canvas
4211 - QH('DeskParent', '<canvas id=Desk oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
4230 + 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>');
4231 desktopNode = currentNode;
4232 }
4233 // Setup the mouse wheel
@@ -4504,19 +4523,45 @@
4523 var browserfullscreen = false;
4524 function deskToggleFull(e) {
4525 fullscreen = !fullscreen;
4526 + /* QV('mastheadx', !fullscreen);
4527 + QV('masthead', !fullscreen);
4528 + QV('topbar', !fullscreen);
4529 + QV('p11deviceNameHeader', !fullscreen);
4530 + QV('footer', !fullscreen);
4531 + QV('column_l_bottomgap', !fullscreen);
4532 + QV('idx_deskFullBtn2', fullscreen);
4533 + QV('deskFullBtn', !fullscreen);
4534 + QV('page_leftbar', !fullscreen); */
4535 if (fullscreen) {
4536 QC('body').add("fulldesk");
4509 - QS('deskarea3x').height = null;
4537 // If shift is pressed, enter browser full screen.
4538 if (e.shiftKey == true) { enterBrowserFullscreen(Q('deskarea0')); browserfullscreen = true; }
4539 + /* QS('column_l').width = '930px';
4540 + QS('column_l').height = '';
4541 + QS('column_l')['margin-left'] = '';
4542 + QS('column_l')['overflow-y'] = '';
4543 + QS('container').position = '';
4544 + QS('page_content').position = '';
4545 + QV('MainMenuSpan', true);
4546 + QS('container').width = '100%';
4547 + QS('container')['border-right'] = '0';
4548 + QS('container')['border-left'] = '0';
4549 + QS('column_l').padding = '0';
4550 + QS('column_l').width = '100%';
4551 + QS('column_l')["max-height"] = ''; */
4552 } else {
4553 QC('body').remove("fulldesk");
4554 exitBrowserFullscreen();
4555 browserfullscreen = false;
4556 + /* QS('container').width = '960px';
4557 + QS('container')['border-right'] = '1px solid #b7b7b7';
4558 + QS('container')['border-left'] = '1px solid #b7b7b7';
4559 + QS('column_l').padding = '0 15px';
4560 + QS('column_l').width = '930px'; */
4561 toggleFullScreen();
4562 }
4563 deskAdjust();
4519 - //deskAdjust();
4564 + deskAdjust();
4565 updateDesktopButtons();
4566 }
4567
@@ -4526,34 +4571,33 @@
4571 }
4572
4573 function deskAdjust() {
4529 - if (deskAspectRatio) {
4530 - QS('Desk').width = '100%';
4531 - QS('Desk').height = '100%';
4574 + var x = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (Q('deskarea1').clientHeight + Q('deskarea2').clientHeight + Q('Desk').clientHeight + Q('deskarea4').clientHeight + 2)) / 2;
4575 + if (fullscreen) {
4576 + document.documentElement.style.overflow = 'hidden';
4577 QS('deskarea3x').height = null;
4533 - } else {
4534 - var parentH = Q('DeskParent').clientHeight;
4535 - var parentW = Q('DeskParent').clientWidth;
4536 - var deskH = Q('Desk').height;
4537 - var deskW = Q('Desk').width;
4538 - if (parentH / parentW > deskH / deskW) {
4539 - var hNew = (deskH * parentW / deskW) + 'px';
4540 - if (webPageFullScreen || fullscreen) {
4541 - QS('deskarea3x').height = null;
4542 - } else {
4543 - // QS('deskarea3x').height = hNew;
4544 - QS('deskarea3x').height = null;
4545 - }
4546 - QS('Desk').height = hNew;
4547 - QS('Desk').width = '100%';
4578 + if (x < 0) {
4579 + var mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (Q('deskarea1').clientHeight + Q('deskarea2').clientHeight + Q('deskarea4').clientHeight));
4580 + var mw = 9999;
4581 + if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; }
4582 + if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; }
4583 + QS('Desk')['max-height'] = mh + 'px';
4584 + QS('Desk')['max-width'] = mw + 'px';
4585 + x = 0;
4586 } else {
4549 - var wNew = (deskW * parentH / deskH) + 'px';
4550 - if (webPageFullScreen || fullscreen) {
4551 - QS('Desk').height = null;
4552 - } else {
4553 - QS('Desk').height = '100%';
4554 - }
4555 - QS('Desk').width = wNew;
4587 + QS('Desk')['max-height'] = null;
4588 + QS('Desk')['max-width'] = null;
4589 }
4590 + QS('Desk')['margin-top'] = x + 'px';
4591 + QS('Desk')['margin-bottom'] = x + 'px';
4592 + } else {
4593 + var mw = 9999, mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (webPageFullScreen?276:290));
4594 + if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; }
4595 + if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; }
4596 + document.documentElement.style.overflow = 'auto';
4597 + QS('Desk')['max-height'] = mh + 'px';
4598 + QS('Desk')['max-width'] = mw + 'px';
4599 + QS('Desk')['margin-top'] = '0';
4600 + QS('Desk')['margin-bottom'] = '0';
4601 }
4602 }
4603
@@ -7525,7 +7569,7 @@
7569 }
7570
7571 function center() {
7528 - if (xxcurrentView == 11) { deskAdjust(); }
7572 + if (xxcurrentView == 11) { deskAdjust(); } //deskAdjust(); }
7573 else if (xxcurrentView == 10) { masterUpdate(256); }
7574 else if (xxcurrentView == 1) { masterUpdate(4); }
7575 }
@@ -7598,6 +7642,14 @@
7642 QV('topbar', x != 0);
7643 if ((x == 0) && (webPageFullScreen)) {
7644 QC('body').add("arg_hide");
7645 + QS('column_l').height = 'calc(100vh - 111px)';
7646 +
7647 + // Please check. I think this part is not needed anymore. Removing class will revert to default style
7648 + //QS('page_content').position = '';
7649 + //QV('page_leftbar', false);
7650 + //QS('column_l')["max-height"] = '';
7651 + //QV('column_l').left = 0;
7652 + //QV('page_content').left = 0;
7653 }
7654
7655 QV('MainSubMenuSpan', x >= 10 && x < 20);
@@ -7666,4 +7718,4 @@
7718
7719 </script>
7720 </body>
7669 -</html>
7721 +</html>
\ No newline at end of file
views/login.handlebars
+5 -4
@@ -11,17 +11,18 @@
11 <script keeplink=1 type="text/javascript" src="scripts/u2f-api.js"></script>
12 <title>{{{title}}} - Login</title>
13 </head>
14 -<body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide login">
14 +<body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide">
15 <div id=container>
16 + <div id=mastheadx></div>
17 <div id=masthead>
18 <div class="title">{{{title}}}</div>
19 <div class="title2">{{{title2}}}</div>
20 </div>
20 -
21 + <div id=page_content>
22 <div id=topbar class="noselect style3">
23 <div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">&harr;</div>
24 </div>
24 - <div id=column_l>
25 + <div id=column_l style="height:calc(100vh - 111px)">
26 <h1>Welcome</h1>
27 <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>
28 <table id="centralTable" style="">
@@ -215,7 +216,7 @@
216 &nbsp;<a href=terms>Terms &amp; Privacy</a>
217 </div>
218 </div>
218 -
219 + </div>
220 </div>
221 <div id=dialog style="display:none">
222 <div id=dialogHeader>