Fixed reported CSS issues and added support for IE
Jovan Strika committed
Apr 19, 2019 at 14:27 UTC
7305c119039253b9f3fc16e191b52677c46c8c23
3 files changed
+1384
-890
public/styles/style.css
+580
-54
@@ -1,4 +1,9 @@
1
-body {
1
+
2
+html, body {
3
+ width: 100%;
4
+ height: 100%;
5
+}
6
+body {
7
margin: 0;
8
padding: 0;
9
border: 0;
@@ -6,7 +11,7 @@
11
font-size: 13px;
12
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
13
background-color: #d3d9d6;
9
- overflow-y: hidden;
14
+ /* overflow-y: hidden; */
15
}
16
17
#container {
@@ -21,22 +26,79 @@
26
border-left: 1px solid #b7b7b7;
27
padding: 0;
28
}
24
-
29
+ .fullscreen.login #container {
30
+ -ms-grid-rows: 66px 24px 1fr 45px;
31
+ grid-template-rows: 66px 24px auto 45px;
32
+ -ms-grid-columns: 90px 1fr;
33
+ grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
34
+ grid-template-areas:
35
+ "header header"
36
+ "nav nav"
37
+ "content content"
38
+ "footer footer";
39
+ }
40
+ .fullscreen.arg_hide #container {
41
+ -ms-grid-rows: 66px 24px 1fr 45px;
42
+ grid-template-rows: 66px 24px auto 45px;
43
+ -ms-grid-columns: 90px 1fr;
44
+ grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
45
+ grid-template-areas:
46
+ "header header"
47
+ "nav nav"
48
+ "content content"
49
+ "footer footer";
50
+ }
51
+ .fullscreen.menu_stack #container {
52
+ -ms-grid-rows: 66px minmax(24px, max-content) 1fr 45px;
53
+ grid-template-rows: 66px minmax(24px, max-content) auto 45px;
54
+ -ms-grid-columns: 90px 1fr;
55
+ grid-template-columns: 90px repeat(auto-fit, minmax(900px, 1fr));
56
+ grid-template-areas:
57
+ "header header"
58
+ "nav nav"
59
+ "content content"
60
+ "footer footer";
61
+ }
62
.fullscreen #container {
63
width: 100%;
27
- min-width: 700px;
64
+ min-width: 100%;
65
min-height: 0px;
66
border-right: 0px none #b7b7b7;
67
border-left: 0px none #b7b7b7;
31
- }
68
69
+ height: calc(100% - 0px);
70
+ position: relative;
71
+ display: -ms-grid;
72
+ display: grid;
73
+ grid-gap: 0px;
74
+ grid-template-areas:
75
+ "header header"
76
+ "sidebar nav"
77
+ "sidebar content"
78
+ "sidebar footer";
79
+ -ms-grid-columns: 90px 1fr;
80
+ grid-template-columns: 90px auto;
81
+ -ms-grid-rows: 66px 24px 1fr 45px;
82
+ grid-template-rows: 66px 24px auto 45px;
83
+ }
84
+
85
.fulldesk #container {
86
width: 100%;
87
+ height: 100%;
88
min-width: 700px;
89
min-height: 0px;
90
border-right: 0px none #b7b7b7;
91
border-left: 0px none #b7b7b7;
92
position: unset;
93
+ position: relative;
94
+ display: -ms-grid !important;
95
+ display: grid !important;
96
+ grid-gap: 0px;
97
+ grid-template-areas: "content"!important;
98
+ -ms-grid-columns: 1fr;
99
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important;
100
+ -ms-grid-rows: 1fr;
101
+ grid-template-rows: repeat(auto-fit, minmax(100px, 1fr))!important;
102
}
103
104
#masthead {
@@ -57,8 +119,11 @@
119
120
.fullscreen #masthead {
121
width: 100%;
122
+ grid-area: header;
123
+ -ms-grid-column: 1;
124
+ -ms-grid-column-span: 2;
125
+ -ms-grid-row: 1;
126
}
61
-
127
.fulldesk #masthead {
128
display: none;
129
}
@@ -91,39 +156,26 @@
156
font-weight: bold;
157
}
158
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
-
159
#page_leftbar {
116
- height: calc(100vh - 66px);
160
+ -ms-grid-column: 1;
161
+ -ms-grid-row: 2;
162
+ -ms-grid-row-span: 3;
163
+ /* height: calc(100vh - 66px); */
164
width: 90px;
118
- position: absolute;
165
z-index: 1000;
166
background: #113962;
167
background: linear-gradient(to bottom, #104893 0%,#113962 100%);
168
color: white;
169
+ overflow-y: hidden;
170
+ display: none;
171
}
172
.fullscreen #page_leftbar {
173
+ grid-area: sidebar;
174
display: block;
175
}
176
+ .menu_stack #page_leftbar {
177
+ display: none;
178
+ }
179
.arg_hide #page_leftbar {
180
display: none;
181
}
@@ -131,14 +183,22 @@
183
display: none;
184
}
185
186
+
187
#topbar {
135
- /* height: 24px; */
188
position: relative;
189
+ grid-area: nav;
190
+ -ms-grid-column: 2;
191
+ -ms-grid-row: 2;
192
}
193
194
.fulldesk #topbar {
195
display: none;
196
}
197
+ .menu_stack #topbar, .login #topbar, .arg_hide #topbar {
198
+ -ms-grid-column: 1;
199
+ -ms-grid-column-span: 2;
200
+ -ms-grid-row: 2;
201
+ }
202
203
.topbar_td {
204
width: 100px;
@@ -157,54 +217,95 @@
217
top: 3px;
218
right: 6px
219
}
220
+#toggle2 {
221
+ cursor: pointer;
222
+ color: white;
223
+ position: absolute;
224
+ top: 3px;
225
+ right: 26px;
226
+ display: none;
227
+}
228
+ .fullscreen #toggle2 {
229
+ display: block;
230
+ }
231
161
-#MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
232
+ /* #UserDummyMenuSpan, */
233
+#MainSubMenuSpan, #MeshSubMenuSpan, #UserSubMenuSpan, #ServerSubMenuSpan, #MainMenuSpan, #MainSubMenu, #MeshSubMenu, #UserSubMenu, #ServerSubMenu, #UserDummyMenu {
234
width: 100%;
163
- height: 22px
235
+ height: 24px;
236
+ color: white;
237
+ background-color: #808080;
238
}
239
+ .menu_stack #UserDummyMenu {
240
+ display: none;
241
+ }
242
243
#MainMenuSpan {
244
display: table;
245
}
246
+
247
.fullscreen #MainMenuSpan {
248
display: none;
249
}
250
.fulldesk #MainMenuSpan {
251
display: none;
252
}
253
+ .menu_stack #MainMenuSpan {
254
+ display: block;
255
+ }
256
257
#column_l {
258
position: relative;
259
float: left;
179
- width: 930px;
260
+ width: 100%;
261
+ box-sizing: border-box;
262
margin: 0;
263
padding: 0 15px;
264
background-color: #fff;
183
- /*max-height: calc(100vh - 111px);*/
265
+ /* max-height: calc(100vh - 151px); */
266
min-width: unset;
267
}
186
-.room4submenu {
187
- max-height: calc(100vh - 159px) !important;
188
-}
268
269
+ .menu_stack.fullscreen.fulldesk #column_l {
270
+ -ms-grid-column: 1;
271
+ -ms-grid-row: 1;
272
+ -ms-grid-column-span: 2;
273
+ -ms-grid-row-span: 4;
274
+ }
275
.fullscreen #column_l {
191
- height: calc(100vh - 135px);
192
- width: calc(100% - 30px);
276
+ -ms-grid-column: 2;
277
+ -ms-grid-row: 3;
278
+ grid-area: content;
279
+ width: unset;
280
+ /* height: calc(100vh - 111px);
281
+ width: calc(100% - 30px); */
282
overflow-y: auto;
283
}
284
285
+ .menu_stack.fullscreen #column_l, .login #column_l, .arg_hide #column_l {
286
+ -ms-grid-column: 1;
287
+ -ms-grid-column-span: 2;
288
+ -ms-grid-row: 3;
289
+ }
290
.fulldesk #column_l {
291
+ height: 100%;
292
width: 100%;
293
height: unset;
294
margin-left: unset;
295
overflow-y: unset;
296
padding: 0;
202
- max-height: unset;
297
+ max-height: none;
298
+ -ms-grid-column: 1;
299
+ -ms-grid-row: 1;
300
}
301
.fulldesk #column_l_bottomgap {
302
display: none;
303
}
304
305
+.room4submenu {
306
+ min-height: calc(100vh - 159px);
307
+}
308
+
309
#centralTable {
310
width: 100%;
311
}
@@ -254,6 +355,9 @@
355
}
356
357
#footer {
358
+ -ms-grid-column: 2;
359
+ -ms-grid-row: 4;
360
+ grid-area: footer;
361
clear: both;
362
overflow: auto;
363
width: 100%;
@@ -265,6 +369,11 @@
369
.fulldesk #footer {
370
display: none;
371
}
372
+ .menu_stack.fullscreen #footer, .login #footer, .arg_hide #footer {
373
+ -ms-grid-column: 1;
374
+ -ms-grid-column-span: 2;
375
+ -ms-grid-row: 4;
376
+ }
377
378
/* Support for footer made with table */
379
#footer table {
@@ -315,6 +424,12 @@
424
text-decoration: none;
425
}
426
427
+#verifyEmailId2 {
428
+ color:yellow;
429
+ margin-left:3px;
430
+ cursor:pointer;
431
+}
432
+
433
#dialog {
434
z-index: 1000;
435
background-color: #EEE;
@@ -332,6 +447,18 @@
447
background-color: #003366;
448
color: #FFF;
449
border-radius: 5px 5px 0 0;
450
+ margin-bottom: 6px;
451
+}
452
+
453
+#id_dialogclose {
454
+ float: right;
455
+ padding: 3px;
456
+ margin-right: 3px;
457
+ cursor: pointer;
458
+}
459
+
460
+#id_dialogtitle {
461
+ padding: 5px;
462
}
463
464
#dialogBody {
@@ -360,14 +487,63 @@
487
padding:10px;
488
}
489
363
-#dialog2, #dialog3 {
364
- margin: auto;
490
+#dialog2, #dialog3, #dialog7 {
491
margin: 3px;
492
}
493
494
+#d3uploadMode, #d3localFile {
495
+ float:right;
496
+ width:260px;
497
+}
498
+
499
+#d3serveraction {
500
+ width: 100%;
501
+ background-color: #d3d9d6;
502
+ text-align: left;
503
+ padding: 3px;
504
+}
505
+
506
+#d3serverfiles {
507
+ width: 100%;
508
+ height: 150px;
509
+ background-color: white;
510
+ padding: 2px;
511
+ border: 1px solid gray;
512
+ overflow-y: scroll;
513
+}
514
+
515
+
516
+#d7bitmapquality, #d7bitmapquality, #d7bitmapscaling, #d7framelimiter, #d7desktopmode {
517
+ float: right;
518
+ width: 200px;
519
+ height: 20px;
520
+}
521
+
522
+#dialog7 h4 {
523
+ width:100%;
524
+ border-bottom: 1px solid gray;
525
+}
526
+
527
+#d7meshkvm div, #d7amtkvm div, #d3upload, #d3localmode {
528
+ margin:3px 0 3px 0;
529
+ display: flex;
530
+ justify-content: space-between;
531
+}
532
+
533
+#d7otherset {
534
+ display: block;
535
+ border: 1px solid #666;
536
+ width: 200px;
537
+ height: 60px;
538
+ overflow-y: scroll;
539
+ background-color: white;
540
+}
541
+
542
#idx_dlgButtonBar {
543
padding: 10px;
370
- margin-bottom: 20px;
544
+ margin-bottom: 5px;
545
+ overflow: auto;
546
+ float: right;
547
}
548
549
#idx_dlgCancelButton {
@@ -398,7 +574,7 @@
574
575
#idx_deskFullBtn2 {
576
float: left;
401
- font-size: large;
577
+ font-size: 16px;
578
cursor: pointer;
579
display: none;
580
}
@@ -543,6 +719,14 @@
719
font-size: 10px;
720
}
721
722
+#p2AccountActions .mL {
723
+ margin-left: 40px;
724
+}
725
+
726
+#p2ServerActions .mL {
727
+ margin-left: 40px;
728
+}
729
+
730
.newMeshBtn {
731
background: url(../images/icon-addnew.png) no-repeat 0px 0px;
732
height: 12px;
@@ -552,10 +736,14 @@
736
padding-left: 15px;
737
}
738
555
-#p2noMeshFound, #p2ServerActionsBackup, #p2ServerActionsRestore, #p2ServerActionsVersion, #p2ServerActionsErrors, #serverStats {
739
+#p2noMeshFound, #serverStats {
740
margin-left:40px;
741
}
742
743
+#p2ServerActionsBackup, #p2ServerActionsRestore, #p2ServerActionsVersion, #p2ServerActionsErrors {
744
+ margin-left:0px;
745
+}
746
+
747
.pTable {
748
width: 100%;
749
height: 24px;
@@ -580,7 +768,7 @@
768
}
769
770
#p3events {
583
- height: calc(100vh - 243px);
771
+ height: calc(100vh - 245px);
772
overflow-y: scroll
773
}
774
@@ -599,6 +787,10 @@
787
width: 230px;
788
}
789
790
+#p5toolbar {
791
+ width: 100%;
792
+}
793
+
794
#p5filehead {
795
width: 100%;
796
background-color: #d3d9d6;
@@ -618,7 +810,7 @@
810
811
#p5filetable {
812
width: 100%;
621
- height: calc(100vh - 294px);
813
+ height: calc(100vh - 295px);
814
overflow: auto;
815
-webkit-user-select: none;
816
position: relative;
@@ -631,6 +823,9 @@
823
-webkit-user-select: none;
824
background-color: lightsteelblue;
825
}
826
+ #p5PublicShare div {
827
+ padding: 4px;
828
+ }
829
830
#bigok {
831
width: 256px;
@@ -669,6 +864,12 @@
864
height: 60px;
865
}
866
867
+#serverMainStats {
868
+ height:calc(100vh - 251px);
869
+ max-height:calc(100vh - 251px);
870
+ width:100%
871
+}
872
+
873
#p10BackButton, #p11BackButton {
874
float:left
875
}
@@ -723,6 +924,14 @@
924
font-size: x-small;
925
}
926
927
+#dp10devicevalue {
928
+ width: 230px;
929
+}
930
+
931
+.fulldesk #p11 {
932
+ height: 100%;
933
+}
934
+
935
#MainComputerImage {
936
border-width: 0px;
937
height: 200px;
@@ -763,7 +972,6 @@
972
top: 0;
973
right: 0;
974
border-left: 2px solid lightgray;
766
- display: none;
975
}
976
#DeskToolsRefreshButton {
977
float: right;
@@ -774,6 +982,7 @@
982
a {
983
color: #036;
984
text-decoration: underline;
985
+ cursor: pointer;
986
}
987
988
.i1 {
@@ -1071,11 +1280,20 @@ a {
1280
background-color: #D3D9D6;
1281
}
1282
1283
+/* .pTable .style14 {
1284
+ float: left;
1285
+} */
1286
+
1287
.auto-style1 {
1288
text-align: right;
1289
background-color: #D3D9D6;
1290
}
1291
1292
+#pTable .auto-style1 {
1293
+ height: 100%;
1294
+ float: right;
1295
+}
1296
+
1297
.icon2 {
1298
float: left;
1299
margin: 7px;
@@ -1215,7 +1433,7 @@ a {
1433
.h1 {
1434
background-position: 0% 0%;
1435
width: 14px;
1218
- height: 100%;
1436
+ height: 24px;
1437
/* fallback (Opera) */
1438
/* Mozilla: */
1439
/* Chrome, Safari:*/
@@ -1229,13 +1447,13 @@ a {
1447
height: 100%;
1448
width: 20px;
1449
float: right;
1232
- background-color: #ffffff
1450
+ background-color: #ffffff;
1451
}
1452
1453
.h2 {
1454
background-position: 0% 0%;
1455
width: 14px;
1238
- height: 100%;
1456
+ height: 24px;
1457
/* fallback (Opera) */
1458
/* Mozilla: */
1459
/* Chrome, Safari:*/
@@ -1362,6 +1580,10 @@ a {
1580
/*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 */
1581
filter: gray; /* IE6-9 */
1582
-webkit-filter: grayscale(100%) opacity(60%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
1583
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
1584
+ -moz-opacity: 0.60;
1585
+ opacity:.60;
1586
+ filter: alpha(opacity=60);
1587
}
1588
1589
.unselectable {
@@ -1433,13 +1655,117 @@ a {
1655
padding: 4px
1656
}
1657
1658
+
1659
+.deskareaicon {
1660
+ cursor: pointer;
1661
+ border: none;
1662
+ float: right;
1663
+ font-size: 130%;
1664
+ margin-right: 4px;
1665
+}
1666
+
1667
+.areaHead {
1668
+ padding-left: 4px;
1669
+ padding-top: 2px;
1670
+ padding-bottom: 2px;
1671
+ background: #C0C0C0;
1672
+}
1673
+
1674
+.areaProgress {
1675
+ background-color: gray;
1676
+}
1677
+
1678
+.areaProgress div {
1679
+ height: 2px;
1680
+ width: 0%;
1681
+ background-color:red;
1682
+}
1683
+
1684
+.areaFoot {
1685
+ padding-top: 2px;
1686
+ padding-bottom: 2px;
1687
+ background: #C0C0C0;
1688
+}
1689
+
1690
+.toright2 {
1691
+ float: right;
1692
+ text-align: right;
1693
+ padding-right: 4px;
1694
+}
1695
+
1696
+#deskarea0 {
1697
+ width: 100%;
1698
+ padding: 0px;
1699
+ padding: 0px;
1700
+ margin-top: 0px;
1701
+}
1702
+
1703
+ .fulldesk #deskarea0 {
1704
+ min-width: 100%;
1705
+ min-height: 0px;
1706
+ height: 100%;
1707
+ position: relative;
1708
+ display: -ms-grid;
1709
+ display: grid;
1710
+ grid-gap: 0px;
1711
+ grid-template-areas:
1712
+ "deskarea1"
1713
+ "deskarea2"
1714
+ "deskarea3"
1715
+ "deskarea4";
1716
+ /* grid-template-columns: 90px auto; */
1717
+ grid-template-rows: 24px max-content auto max-content;
1718
+ -ms-grid-columns: 1fr;
1719
+ -ms-grid-rows: 24px max-content 1fr max-content;
1720
+ }
1721
+
1722
+ #deskarea0 .mR {
1723
+ margin-right: 3px;
1724
+ }
1725
+
1726
+#deskarea1 {
1727
+ grid-area: deskarea1;
1728
+ -ms-grid-column: 1;
1729
+ -ms-grid-row: 1;
1730
+}
1731
+
1732
+
1733
+#deskarea2 {
1734
+ grid-area: deskarea2;
1735
+ background-color: gray;
1736
+ -ms-grid-column: 1;
1737
+ -ms-grid-row: 2;
1738
+}
1739
+
1740
+#progressbar {
1741
+ height:2px;
1742
+ width:0%;
1743
+ background-color:red;
1744
+}
1745
+
1746
#deskarea3x {
1747
background: black;
1748
text-align: center;
1749
position: relative;
1750
overflow: hidden;
1751
+ width: 100%;
1752
+ max-height: calc(100vh - 296px); /* + 24px hight of submenu */
1753
+ height: calc(100vh - 296px);
1754
}
1755
1756
+ .room4submenu #deskarea3x {
1757
+ max-height: calc(100vh - 296px);
1758
+ height: calc(100vh - 296px);
1759
+ }
1760
+
1761
+ .fulldesk #deskarea3x {
1762
+ grid-area: deskarea3;
1763
+ max-height: none;
1764
+ height: calc(100vh - 56px);
1765
+ -ms-grid-column: 1;
1766
+ -ms-grid-row: 3;
1767
+ }
1768
+
1769
#DeskFocus {
1770
overflow: hidden;
1771
color: transparent;
@@ -1449,17 +1775,27 @@ a {
1775
}
1776
1777
#DeskParent {
1452
- overflow:hidden
1778
+ margin: 0;
1779
+ overflow:hidden;
1780
+ height: 100%;
1781
+ width: 100%;
1782
+ position: absolute;
1783
+ right: 0;
1784
+ top: 0;
1785
}
1786
1787
#Desk {
1788
overflow: hidden;
1789
width: 100%;
1790
-ms-touch-action: none;
1459
- margin-left: 0px;
1791
+ position: absolute;
1792
+ top: 0px;
1793
+ bottom: 0px;
1794
+ left: 0px;
1795
+ right: 0px;
1796
+ margin: auto;
1797
}
1798
1462
-
1799
#deskToolsBar {
1800
position: absolute;
1801
padding: 3px;
@@ -1471,6 +1807,27 @@ a {
1807
cursor: pointer;
1808
}
1809
1810
+#deskToolsArea {
1811
+ position: absolute;
1812
+ top: 26px;
1813
+ left: 4px;
1814
+ right: 4px;
1815
+ bottom: 4px;
1816
+ background-color: lightgray;
1817
+ text-align: left;
1818
+}
1819
+
1820
+#deskToolsHeader {
1821
+ border-bottom: 1px solid darkgray;
1822
+ padding: 3px;
1823
+}
1824
+
1825
+#deskToolsHeader .colmn1 {
1826
+ width: 50px;
1827
+ padding-right: 5px;
1828
+ float: left;
1829
+}
1830
+
1831
#DeskToolsProcesses {
1832
overflow-y: scroll;
1833
position: absolute;
@@ -1486,6 +1843,22 @@ a {
1843
background-color: #EFE8B6;
1844
}
1845
1846
+#deskarea4 {
1847
+ grid-area: deskarea4;
1848
+ -ms-grid-column: 1;
1849
+ -ms-grid-row: 4;
1850
+}
1851
+
1852
+#DeskChatButton, #DeskNotifyButton, #DeskOpenWebButton {
1853
+ float: right;
1854
+ margin-top: 1px;
1855
+ margin-right: 4px;
1856
+ cursor: pointer;
1857
+}
1858
+
1859
+#DeskClip, #DeskControlSpan, #specialkeylist {
1860
+ margin-left:6px;
1861
+}
1862
1863
.userTableHeader {
1864
border-bottom: 1pt solid lightgray;
@@ -1493,6 +1866,159 @@ a {
1866
padding-bottom: 4px;
1867
}
1868
1869
+#deskkeys {
1870
+ margin-left: 6px;
1871
+}
1872
+
1873
+#p12BackButton {
1874
+ float: left;
1875
+}
1876
+
1877
+#termTable {
1878
+ width: 100%;
1879
+ padding: 0px;
1880
+ padding: 0px;
1881
+ margin-top: 0px;
1882
+}
1883
+
1884
+#termarea3x {
1885
+ background: black;
1886
+ text-align: center;
1887
+ height: 500px;
1888
+ position: relative;
1889
+}
1890
+
1891
+#Term {
1892
+ background: black;
1893
+ margin: 0;
1894
+ padding: 0;
1895
+}
1896
+
1897
+#p13toolbar {
1898
+ width: 100%
1899
+}
1900
+#p13toolbar .areaHead {
1901
+ border-bottom: 2px solid black;
1902
+}
1903
+
1904
+#p13toolbar .areaHead2 {
1905
+ width: 100%;
1906
+ background-color: #d3d9d6;
1907
+ text-align: left;
1908
+ padding: 4px;
1909
+}
1910
+
1911
+#p13toolbar .areaHead3 {
1912
+ background-color:#E4E9E7;
1913
+ height:28px;
1914
+}
1915
+
1916
+#p13filetable {
1917
+ width: 100%;
1918
+ height: calc(100vh - 349px);
1919
+ overflow: auto;
1920
+ -webkit-user-select: none;
1921
+}
1922
+
1923
+#p13bigok {
1924
+ width: 256px;
1925
+ overflow: hidden;
1926
+ position: absolute;
1927
+ left: 337px;
1928
+ top: 200px;
1929
+ text-align: center;
1930
+ font-size: 1600%;
1931
+ color: #AAAAAA;
1932
+}
1933
+
1934
+#p13bigfail {
1935
+ width: 256px;
1936
+ overflow: hidden;
1937
+ position: absolute;
1938
+ left: 337px;
1939
+ top: 200px;
1940
+ text-align: center;
1941
+ font-size: 1600%;
1942
+ color: #AAAAAA;
1943
+}
1944
+
1945
+#p14iframe {
1946
+ width: 100%;
1947
+ height: calc(100vh - 242px);
1948
+ border: 0;
1949
+ overflow: hidden;
1950
+}
1951
+
1952
+#p13toolbarBottom, #p13toolbar {
1953
+ width: 100%;
1954
+}
1955
+
1956
+#consoleTable {
1957
+ width: 100%;
1958
+ padding: 0px;
1959
+ padding: 0px;
1960
+ margin-top: 0px;
1961
+}
1962
+
1963
+#p15statetext {
1964
+ padding: 4px;
1965
+ height: 15px;
1966
+}
1967
+
1968
+#p15agentConsole {
1969
+ background: black;
1970
+ margin: 0;
1971
+ padding: 0;
1972
+ color: lightgray;
1973
+ width: 100%;
1974
+ /* */
1975
+ height: calc(100vh - 299px);
1976
+ max-height: calc(100vh - 299px);
1977
+ position: relative;
1978
+}
1979
+
1980
+ .menu_stack.fullscreen #p15agentConsole {
1981
+ height: calc(100vh - 305px);
1982
+ max-height: calc(100vh - 305px);
1983
+ }
1984
+
1985
+#p15coreName {
1986
+ padding: 4px;
1987
+ display: inline-block;
1988
+}
1989
+
1990
+#p15agentConsoleText {
1991
+ /* position: absolute; */
1992
+ margin: 0;
1993
+ padding: 0;
1994
+ top: 0;
1995
+ bottom: 0;
1996
+ /* left: 0;
1997
+ right: 0; */
1998
+ overflow-y: scroll;
1999
+ overflow-x: auto;
2000
+ height: calc(100vh - 299px);
2001
+ max-height: calc(100vh - 299px);
2002
+ width: 930px;
2003
+}
2004
+ .menu_stack.fullscreen #p15agentConsoleText {
2005
+ width: calc(100vw - 30px);
2006
+ height: calc(100vh - 305px);
2007
+ max-height: calc(100vh - 305px);
2008
+ }
2009
+ .fullscreen #p15agentConsoleText {
2010
+ width: calc(100vw - 120px);
2011
+ }
2012
+
2013
+#p16events, #p31events {
2014
+ max-height: calc(100vh - 269px);
2015
+ overflow-y: auto;
2016
+}
2017
+
2018
+#p40 {
2019
+ height:calc(100vh - 191px)
2020
+}
2021
+
2022
.viewSelector {
2023
width:32px;
2024
height:32px;
views/default.handlebars
+800
-831
@@ -53,7 +53,6 @@
53
<!-- main page -->
54
<div id=container>
55
<div id="notifiyBox" class="notifiyBox" style="display:none"></div>
56
- <div id=mastheadx></div>
56
<div id=masthead class=noselect>
57
<div class="title">{{{title}}}</div>
58
<div class="title2">{{{title2}}}</div>
@@ -83,593 +82,588 @@
82
<div class="lb6"></div>
83
</div>
84
</div>
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)">↔</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"> </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® AMT</td>
112
- <td id=MainDevConsole class="topbar_td style3x" onclick=go(15)>Console</td>
113
- <td class="topbar_td_end style3"> </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"> </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"> </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"> </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"> </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">
85
+ <div id=topbar class=noselect>
86
+ <div>
87
+ <div style="position:relative">
88
+ <div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">↔</div>
89
+ <div id=toggle2 title="Toggle Main Menu position" onclick="toggleStackMenu(1)">↕</div>
90
+ <table id=MainMenuSpan cellpadding=0 cellspacing=0 class=style1>
91
<tr>
166
- <td class=h1></td>
167
- <td id=devListToolbar class=style14 style="display:none">
168
- <input type="button" id="SelectAllButton" onclick="selectallButtonFunction();" value="Select All" />
169
- <input type=button id=GroupActionButton disabled="disabled" value="Group Action" onclick=groupActionFunction() />
170
- <input id=SearchInput type=text placeholder=Filter onchange=masterUpdate(5) onkeyup=masterUpdate(5) autocomplete=off onfocus=onSearchFocus(1) onblur=onSearchFocus(0) />
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
- <input type="button" onclick="connectAllKvmFunction()" value="Connect All" />
175
- <input type="button" onclick="disconnectAllKvmFunction()" value="Disconnect All" />
176
- <label><input type="checkbox" id="autoConnectDesktopCheckbox" onclick="autoConnectDesktops(event)" title="Automatic connect" />Auto </label>
177
- <input type="button" onclick="showMultiDesktopSettings()" value="Settings" />
178
- </td>
179
- <td id=devMapToolbar class=style14 style="display:none">
180
- <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
-
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
-
212
- </div>
213
- </td>
214
- <td class=h2></td>
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"> </td>
99
</tr>
100
</table>
217
- <div id=NoMeshesPanel style="display:none">
218
- <table>
101
+ <div id=MainSubMenuSpan style="display:none">
102
+ <table id=MainSubMenu cellpadding=0 cellspacing=0 class=style1>
103
<tr>
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>
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® AMT</td>
110
+ <td id=MainDevConsole class="topbar_td style3x" onclick=go(15)>Console</td>
111
+ <td class="topbar_td_end style3"> </td>
112
</tr>
113
</table>
114
</div>
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>
115
+ <div id=MeshSubMenuSpan style="display:none">
116
+ <table id=MeshSubMenu cellpadding=0 cellspacing=0 class=style1>
117
+ <tr>
118
+ <td id=MeshGeneral class="topbar_td style3x" onclick=go(20)>General</td>
119
+ <td class="topbar_td_end style3"> </td>
120
+ </tr>
121
+ </table>
122
</div>
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>✓</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>✓</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>✓</strong></span></div><span><a onclick="account_manageOtp(0)">Manage backup codes</a><br /></span></div>
252
- </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"> </td>
129
+ </tr>
130
+ </table>
131
</div>
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 />
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"> </td>
139
+ </tr>
140
+ </table>
141
+ </div>
142
+ <div id=UserDummyMenuSpan>
143
+ <table id=UserDummyMenu cellpadding=0 cellspacing=0 class=style1>
144
+ <tr><td class=style3 style=""> </td></tr>
145
+ </table>
146
</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 />
147
</div>
271
- <div id=p3 style="display:none">
272
- <h1>My Events</h1>
273
- <table class="pTable">
274
- <tr>
275
- <td class=h1></td>
276
- <td> <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>
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
+ <input type="button" id="SelectAllButton" onclick="selectallButtonFunction();" value="Select All" />
166
+ <input type=button id=GroupActionButton disabled="disabled" value="Group Action" onclick=groupActionFunction() />
167
+ <input id=SearchInput type=text placeholder=Filter onchange=masterUpdate(5) onkeyup=masterUpdate(5) autocomplete=off onfocus=onSearchFocus(1) onblur=onSearchFocus(0) />
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
+ <input type="button" onclick="connectAllKvmFunction()" value="Connect All" />
172
+ <input type="button" onclick="disconnectAllKvmFunction()" value="Disconnect All" />
173
+ <label><input type="checkbox" id="autoConnectDesktopCheckbox" onclick="autoConnectDesktops(event)" title="Automatic connect" />Auto </label>
174
+ <input type="button" onclick="showMultiDesktopSettings()" value="Settings" />
175
+ </td>
176
+ <td id=devMapToolbar class=style14 style="display:none">
177
+ <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>
286
- </td>
287
- <td class=h2></td>
288
- </tr>
289
- </table>
290
- <div id=p3events style=""></div>
291
- </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>
311
- <div id=p5 style="display:none">
312
- <h1>My Files</h1>
313
- <table id="p5toolbar" style="width:100%" cellpadding="0" cellspacing="0">
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
+
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
+
209
+ </div>
210
+ </td>
211
+ <td class=h2></td>
212
+ </tr>
213
+ </table>
214
+ <div id=NoMeshesPanel style="display:none">
215
+ <table>
216
<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" />
319
- <input type=button id=p5SelectAllButton disabled="disabled" onclick="p5selectallfile();" value="Select All" onkeypress="return false;" onkeydown="return false;" />
320
- <input type=button id=p5RenameFileButton disabled="disabled" value="Rename" onclick="p5renamefile();" onkeypress="return false;" onkeydown="return false;" />
321
- <input type=button id=p5DeleteFileButton disabled="disabled" value="Delete" onclick="p5deletefile();" onkeypress="return false;" onkeydown="return false;" />
322
- <input type=button id=p5NewFolderButton disabled="disabled" value="New Folder" onclick="p5createfolder();" onkeypress="return false;" onkeydown="return false;" />
323
- <input type=button id=p5UploadButton disabled="disabled" value="Upload" onclick="p5uploadFile()" onkeypress="return false;" onkeydown="return false;" />
324
- <input type=button id=p5CutButton disabled="disabled" value="Cut" onclick="p5copyFile(1)" onkeypress="return false" onkeydown="return false" />
325
- <input type=button id=p5CopyButton disabled="disabled" value="Copy" onclick="p5copyFile(0)" onkeypress="return false" onkeydown="return false" />
326
- <input type=button id=p5PasteButton disabled="disabled" value="Paste" onclick="p5pasteFile()" onkeypress="return false" onkeydown="return false" />
327
- </div>
217
+ <td valign="top" style="width: 50px">
218
+ <img src="images/info.png" />
219
</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> <span id="p5currentpath"></span></div>
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>
223
</td>
224
</tr>
225
</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>✓</b></div>
356
- <div id="bigfail" style="display:none"><b>✗</b></div>
357
- <span id="p5files"></span>
226
+ </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>
237
+ </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>✓</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>✓</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>✓</strong></span></div><span><a onclick="account_manageOtp(0)">Manage backup codes</a><br /></span></div>
249
</div>
359
- <table id="p5toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
360
- <tr><td class=style6> <span id="p5bottomstatus"></span></td></tr>
361
- </table>
250
</div>
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">
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> <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" />
316
+ <input type=button id=p5SelectAllButton disabled="disabled" onclick="p5selectallfile();" value="Select All" onkeypress="return false;" onkeydown="return false;" />
317
+ <input type=button id=p5RenameFileButton disabled="disabled" value="Rename" onclick="p5renamefile();" onkeypress="return false;" onkeydown="return false;" />
318
+ <input type=button id=p5DeleteFileButton disabled="disabled" value="Delete" onclick="p5deletefile();" onkeypress="return false;" onkeydown="return false;" />
319
+ <input type=button id=p5NewFolderButton disabled="disabled" value="New Folder" onclick="p5createfolder();" onkeypress="return false;" onkeydown="return false;" />
320
+ <input type=button id=p5UploadButton disabled="disabled" value="Upload" onclick="p5uploadFile()" onkeypress="return false;" onkeydown="return false;" />
321
+ <input type=button id=p5CutButton disabled="disabled" value="Cut" onclick="p5copyFile(1)" onkeypress="return false" onkeydown="return false" />
322
+ <input type=button id=p5CopyButton disabled="disabled" value="Copy" onclick="p5copyFile(0)" onkeypress="return false" onkeydown="return false" />
323
+ <input type=button id=p5PasteButton disabled="disabled" value="Paste" onclick="p5pasteFile()" onkeypress="return false" onkeydown="return false" />
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> <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>✓</b></div>
353
+ <div id="bigfail" style="display:none"><b>✗</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> <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">
366
<div id="p2ServerActionsBackup"><a href="/backup.zip" rel="noreferrer noopener" target="_blank">Download server backup</a></div>
367
<div id="p2ServerActionsRestore"><a onclick="server_showRestoreDlg()">Restore server with backup</a></div>
368
<div id="p2ServerActionsVersion"><a onclick="server_showVersionDlg()">Check server version</a></div>
369
<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>
370
</div>
371
</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>
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>
414
- <div id="p14warning" onclick="showFeaturesDlg()">
415
- <div class="icon2"></div>
416
- <div class="warningbox">Intel® AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
417
- </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>
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>
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>
427
- <div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Left" onclick="drotate(-1)">↺</div>
428
- <div style='cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px' title="Rotate Right" onclick="drotate(1)">↻</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)> ✖</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> <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> <input type=button id=disconnectbutton1 value="Disconnect" onclick=connectDesktop(event,0) onkeypress="return false" onkeydown="return false"></span>
441
- <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>
470
- <input id=DeskToolsButton type=button value=Tools title="Toggle tools view" onkeypress="return false" onkeydown="return false" onclick="toggleDeskTools()">
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>
489
- </div>
490
- </td>
491
- </tr>
492
- </table>
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>
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>
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>
499
- <div id="p12warning" onclick=showFeaturesDlg()>
500
- <div class="icon2"></div>
501
- <div class="warningbox">Intel® AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
412
+ </div>
413
+ <div id="p14warning" onclick="showFeaturesDlg()">
414
+ <div class="icon2"></div>
415
+ <div class="warningbox">Intel® 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>
420
+ </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>
426
+ <div class='deskareaicon' title="Toggle Aspect Ratio" onclick="toggleAspectRatio(1)">⇲</div>
427
+ <div class='deskareaicon' title="Rotate Left" onclick="drotate(-1)">↺</div>
428
+ <div class='deskareaicon' title="Rotate Right" onclick="drotate(1)">↻</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)> ✖</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> <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> <input type=button id=disconnectbutton1 value="Disconnect" onclick=connectDesktop(event,0) onkeypress="return false" onkeydown="return false"></span>
441
+ <span id="deskstatus">Disconnected</span>
442
+ </div>
443
</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>
444
+ <div id=deskarea2 style="">
445
+ <div class="areaProgress"><div id="progressbar" style=""></div></div>
446
</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"> <input type="button" id="connectbutton2" value="Connect" onclick=connectTerminal(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
516
- <span id="connectbutton2hspan"> <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"> <input type="button" id="disconnectbutton2" value="Disconnect" onclick=connectTerminal(event,0) onkeypress="return false" onkeydown="return false"></span>
518
- <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
-
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>
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>
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>
462
</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" />
578
- <input type=button id=p13SelectAllButton disabled="disabled" onclick="p13selectallfile()" value="Select All" onkeypress="return false" onkeydown="return false" />
579
- <input type=button id=p13RenameFileButton disabled="disabled" value="Rename" onclick="p13renamefile()" onkeypress="return false" onkeydown="return false" />
580
- <input type=button id=p13DeleteFileButton disabled="disabled" value="Delete" onclick="p13deletefile()" onkeypress="return false" onkeydown="return false" />
581
- <input type=button id=p13NewFolderButton disabled="disabled" value="New Folder" onclick="p13createfolder()" onkeypress="return false" onkeydown="return false" />
582
- <input type=button id=p13UploadButton disabled="disabled" value="Upload" onclick="p13uploadFile()" onkeypress="return false" onkeydown="return false" />
583
- <input type=button id=p13CutButton disabled="disabled" value="Cut" onclick="p13copyFile(1)" onkeypress="return false" onkeydown="return false" />
584
- <input type=button id=p13CopyButton disabled="disabled" value="Copy" onclick="p13copyFile(0)" onkeypress="return false" onkeydown="return false" />
585
- <input type=button id=p13PasteButton disabled="disabled" value="Paste" onclick="p13pasteFile()" onkeypress="return false" onkeydown="return false" />
586
- <input type=button id=p13RefreshButton disabled="disabled" value="Refresh" onclick="p13folderup(9999)" onkeypress="return false" onkeydown="return false" />
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> <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>✓</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>✗</b></div>
609
- <span id="p13files"></span>
463
+ <div id=deskarea4 class="areaFoot">
464
+ <div class="toright2">
465
+ <select id=termdisplays style="display:none" onchange=deskSetDisplay(event) onclick=deskGetDisplayNumbers(event)></select>
466
+ <input id=DeskToolsButton type=button value=Tools title="Toggle tools view" onkeypress="return false" onkeydown="return false" onclick="toggleDeskTools()">
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>
485
+ </div>
486
</div>
611
- <table id="p13toolbarBottom" style=width:100% cellpadding=0 cellspacing=0>
612
- <tr><td class=style6> <span id="p13bottomstatus"></span></td></tr>
613
- </table>
487
</div>
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® 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>
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>
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> </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>
494
+ <div id="p12warning" onclick=showFeaturesDlg()>
495
+ <div class="icon2"></div>
496
+ <div class="warningbox">Intel® AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
497
</div>
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"> </div>
669
- <div class="h1" style="float:left"> </div>
670
- <!--<div class=style14 style=height:100%;float:left> <input id=p31deleteall type=button style="display:none" value="Delete All..." /> </div>-->
671
- <div class="style14" style="float:left"> <input type=button value=Refresh onclick=refreshDeviceEvents() /> </div>
672
- <div class="auto-style1" style="height:100%;float:right">
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"> <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"> <input type="button" id="disconnectbutton2" value="Disconnect" onclick=connectTerminal(event,0) onkeypress="return false" onkeydown="return false"></span>
513
+ <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
+
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>
554
+ </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" />
573
+ <input type=button id=p13SelectAllButton disabled="disabled" onclick="p13selectallfile()" value="Select All" onkeypress="return false" onkeydown="return false" />
574
+ <input type=button id=p13RenameFileButton disabled="disabled" value="Rename" onclick="p13renamefile()" onkeypress="return false" onkeydown="return false" />
575
+ <input type=button id=p13DeleteFileButton disabled="disabled" value="Delete" onclick="p13deletefile()" onkeypress="return false" onkeydown="return false" />
576
+ <input type=button id=p13NewFolderButton disabled="disabled" value="New Folder" onclick="p13createfolder()" onkeypress="return false" onkeydown="return false" />
577
+ <input type=button id=p13UploadButton disabled="disabled" value="Upload" onclick="p13uploadFile()" onkeypress="return false" onkeydown="return false" />
578
+ <input type=button id=p13CutButton disabled="disabled" value="Cut" onclick="p13copyFile(1)" onkeypress="return false" onkeydown="return false" />
579
+ <input type=button id=p13CopyButton disabled="disabled" value="Copy" onclick="p13copyFile(0)" onkeypress="return false" onkeydown="return false" />
580
+ <input type=button id=p13PasteButton disabled="disabled" value="Paste" onclick="p13pasteFile()" onkeypress="return false" onkeydown="return false" />
581
+ <input type=button id=p13RefreshButton disabled="disabled" value="Refresh" onclick="p13folderup(9999)" onkeypress="return false" onkeydown="return false" />
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> <span id="p13currentpath"></span></div>
598
+ </td>
599
+ </tr>
600
+ </table>
601
+ <div id="p13filetable" style="">
602
+ <div id="p13bigok" style="display:none"><b>✓</b></div>
603
+ <div id="p13bigfail" style="display:none"><b>✗</b></div>
604
+ <span id="p13files"></span>
605
+ </div>
606
+ <table id="p13toolbarBottom" cellpadding=0 cellspacing=0>
607
+ <tr><td class=style6> <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® AMT - <span id=p14deviceName></span></h1>
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>
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> </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>
661
+ </div>
662
+ <table class="pTable">
663
+ <tr>
664
+ <td class="h1"></td>
665
+ <td> <input type=button onclick=refreshDeviceEvents() value="Refresh" /></td>
666
+ <td class="auto-style1">
667
Show
668
<select id=p16limitdropdown onchange=refreshDeviceEvents()>
669
<option value=60>Last 60</option>
@@ -678,53 +672,52 @@
672
<option value=500>Last 500</option>
673
<option value=1000>Last 1000</option>
674
</select>
681
- <div class="h2end"></div>
682
- <div class="h2" style="height:100%;float:right"> </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"> </div>
724
- <div class="h1" style="height:100%;float:left"> </div>
725
- <!--<div class=style14 style=float:left> <input id=p31deleteall type=button style="display:none" value="Delete All..." /> </div>-->
726
- <div class="style14" style="float:left"> <input type=button value=Refresh onclick=refreshUsersEvents() /> </div>
727
- <div class="auto-style1" style="height:100%;float:right">
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> <input type=button onclick=refreshUsersEvents() value="Refresh" /></td>
720
+ <td class="auto-style1">
721
Show
722
<select id=p31limitdropdown onchange=refreshUsersEvents()>
723
<option value=60>Last 60</option>
@@ -733,151 +726,142 @@
726
<option value=500>Last 500</option>
727
<option value=1000>Last 1000</option>
728
</select>
736
- <div class="h2end"></div>
737
- <div class="h2" style="height:100%;float:right;"> </div>
738
- </div>
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>
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>
750
+ <img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>
751
</div>
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>
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>
757
- <img src=images/link4.png height=10 width=10 title="Download data points (.csv)" style=cursor:pointer onclick=p40downloadEvents()>
758
- </div>
759
- <div>
760
- <input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
761
- <input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X
762
- </div>
752
+ <div>
753
+ <input value="Refresh" type="button" onclick="refreshServerTimelineStats()" />
754
+ <input id=p40log type="checkbox" onclick="updateServerTimelineHours()" />Log-X
755
</div>
764
- <canvas id=serverMainStats style="height:calc(100vh - 250px);max-height:calc(100vh - 250px);width:100%"></canvas>
756
</div>
766
- <br id="column_l_bottomgap" />
757
+ <canvas id=serverMainStats style=""></canvas>
758
</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 & Privacy</a>
777
- </td>
778
- </tr>
779
- </table>
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
+ <a href=terms>Terms & Privacy</a>
766
+ </div>
767
+ </div>
768
+ <div id=dialog style="display:none">
769
+ <div id=dialogHeader>
770
+ <div id=id_dialogclose onclick=setDialogMode()>✖</div>
771
+ <div id=id_dialogtitle></div>
772
</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()>✖</div>
784
- <div id=id_dialogtitle style=padding:5px></div>
785
- <div style=width:100%;margin:6px></div>
773
+ <div id=dialogBody>
774
+ <div id=dialog1>
775
+ <div id=id_dialogMessage style=""></div>
776
</div>
787
- <div id=dialogBody>
788
- <div id=dialog1>
789
- <div id=id_dialogMessage style=""></div>
777
+ <div id=dialog2 style="">
778
+ <div id=id_dialogOptions></div>
779
+ </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>
791
- <div id=dialog2 style="">
792
- <div id=id_dialogOptions></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>
795
</div>
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>
796
+ <div id=d3servermode>
797
+ <div id=d3serveraction valign=bottom>
798
+ <input type=button id=p3FolderUp disabled="disabled" onclick=d3folderup() value="Up" />
799
</div>
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>
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 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" />
813
- </div>
814
- <div id=d3serverfiles style="width:100%;height:150px;background-color:white;padding:2px;border:1px solid gray;overflow-y:scroll"></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>
821
+ </select>
822
+ </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>
831
</div>
832
</div>
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>
833
+ <div id="d7amtkvm">
834
+ <h4>Intel® 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>
843
</div>
848
- <div id="d7amtkvm">
849
- <h4 style="width:100%;border-bottom:1px solid gray">Intel® 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>
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>
850
</div>
851
</div>
852
</div>
853
</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>
854
</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>
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>
860
</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>
865
</div>
866
<script type="text/javascript">
867
'use strict';
@@ -927,6 +911,11 @@
911
var passRequirements = "{{{passRequirements}}}";
912
if (passRequirements != "") { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
913
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
+
919
function startup() {
920
if ((features & 32) == 0) {
921
// Guard against other site's top frames (web bugs).
@@ -950,7 +939,7 @@
939
if (args.hide) {
940
var hide = parseInt(args.hide);
941
QV('masthead', !(hide & 1));
953
- QV('topbarmaster', !(hide & 2));
942
+ QV('topbar', !(hide & 2));
943
QV('footer', !(hide & 4));
944
QV('p10title', !(hide & 8));
945
QV('p11title', !(hide & 8));
@@ -1039,54 +1028,47 @@
1028
setupServerTimelineStats();
1029
}
1030
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
+
1054
// Toggle the web page to full screen
1055
function toggleFullScreen(toggle) {
1056
if (toggle === 1) { webPageFullScreen = !webPageFullScreen; putstore('webPageFullScreen', webPageFullScreen); }
1057
var hide = 0;
1058
if (args.hide) { hide = parseInt(args.hide); }
1059
if (webPageFullScreen == false) {
1060
+ QC('body').remove("menu_stack");
1061
QC('body').remove("fullscreen");
1062
QC('body').remove("arg_hide");
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
+ if (xxcurrentView >= 10) QC('column_l').add('room4submenu');
1064
QV('UserDummyMenuSpan', false);
1064
- QV('page_leftbar', false);
1065
+ //QV('page_leftbar', false);
1066
} else {
1067
QC('body').add("fullscreen");
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); */
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');
1070
QV('UserDummyMenuSpan', (xxcurrentView < 10) && webPageFullScreen);
1087
- QV('page_leftbar', !(hide & 16));
1071
}
1089
- //center();
1072
masterUpdate(512);
1073
QV('body', true);
1074
}
@@ -1449,7 +1431,7 @@
1431
case 'getcookie': {
1432
if (message.tag == 'clickonce') {
1433
var basicPort = "{{{serverRedirPort}}}" == "" ? "{{{serverPublicPort}}}" : "{{{serverRedirPort}}}";
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");
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");
1435
var newWindow = window.open(rdpurl, '_blank');
1436
newWindow.opener = null;
1437
}
@@ -1609,12 +1591,32 @@
1591
var newsiteadmin = message.event.account.siteadmin?message.event.account.siteadmin:0;
1592
var oldsiteadmin = userinfo.siteadmin?userinfo.siteadmin:0;
1593
if ((message.event.account.quota != userinfo.quota) || (((userinfo.siteadmin & 8) == 0) && ((message.event.account.siteadmin & 8) != 0))) { meshserver.send({ action: 'files' }); }
1594
+ var oldgroups = userinfo.groups;
1595
userinfo = message.event.account;
1596
if (oldsiteadmin != newsiteadmin) updateSiteAdmin();
1597
updateSelf();
1598
+
1599
+ if ((userinfo.siteadmin & 2) != 0) {
1600
+ // Compare our groups
1601
+ var og = oldgroups ? oldgroups : [];
1602
+ var ng = userinfo.groups ? userinfo.groups : [];
1603
+ if (og.join(',') != ng.join(',')) {
1604
+ // Our groups have changed, re-ask for a list of users.
1605
+ users = wssessions = null;
1606
+ meshserver.send({ action: 'users' });
1607
+ meshserver.send({ action: 'wssessioncount' });
1608
+ }
1609
+ }
1610
}
1611
if (users == null) break;
1617
- users[message.event.account._id] = message.event.account;
1612
+
1613
+ // Check if the account if part of our user group
1614
+ if ((userinfo.groups == null) || (userinfo.groups.length == 0) || (findOne(message.event.account.groups, userinfo.groups) == true)) {
1615
+ users[message.event.account._id] = message.event.account; // Part of our groups, update this user.
1616
+ } else {
1617
+ delete users[message.event.account._id]; // No longer part of our groups, remove this user.
1618
+ }
1619
+
1620
updateUsers();
1621
break;
1622
}
@@ -2322,7 +2324,7 @@
2324
multiDesktop[id] = desktop;
2325
desktop = desktopNode = currentNode = null;
2326
// Setup a replacement desktop
2325
- 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>');
2327
+ QH('DeskParent', '<canvas id="Desk" oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
2328
} else {
2329
// This is a new device, create a canvas for it.
2330
var c = document.createElement('canvas');
@@ -4154,7 +4156,7 @@
4156
var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3'];
4157
function showEditNodeValueDialog(mode) {
4158
if (xxdialogMode) return;
4157
- 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) />');
4159
+ var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
4160
setDialogMode(2, "Edit Device", 3, showEditNodeValueDialogEx, x, mode);
4161
var v = currentNode[showEditNodeValueDialog_modes2[mode]];
4162
if (v == null) v = '';
@@ -4193,7 +4195,6 @@
4195
QH('DeskParent', '');
4196
var c = xdesk.m.CanvasId;
4197
c.setAttribute('id', 'Desk');
4196
- c.setAttribute('style', 'width:100%;-ms-touch-action:none;margin-left:0px');
4198
c.setAttribute('onmousedown', 'dmousedown(event)');
4199
c.setAttribute('onmouseup', 'dmouseup(event)');
4200
c.setAttribute('onmousemove', 'dmousemove(event)');
@@ -4207,7 +4208,7 @@
4208
delete multiDesktop[currentNode._id];
4209
} else {
4210
// Device is not already connected, just setup a blank canvas
4210
- 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>');
4211
+ QH('DeskParent', '<canvas id=Desk oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event)></canvas>');
4212
desktopNode = currentNode;
4213
}
4214
// Setup the mouse wheel
@@ -4503,45 +4504,19 @@
4504
var browserfullscreen = false;
4505
function deskToggleFull(e) {
4506
fullscreen = !fullscreen;
4506
- /* QV('mastheadx', !fullscreen);
4507
- QV('masthead', !fullscreen);
4508
- QV('topbar', !fullscreen);
4509
- QV('p11deviceNameHeader', !fullscreen);
4510
- QV('footer', !fullscreen);
4511
- QV('column_l_bottomgap', !fullscreen);
4512
- QV('idx_deskFullBtn2', fullscreen);
4513
- QV('deskFullBtn', !fullscreen);
4514
- QV('page_leftbar', !fullscreen); */
4507
if (fullscreen) {
4508
QC('body').add("fulldesk");
4509
+ QS('deskarea3x').height = null;
4510
// If shift is pressed, enter browser full screen.
4511
if (e.shiftKey == true) { enterBrowserFullscreen(Q('deskarea0')); browserfullscreen = true; }
4519
- /* QS('column_l').width = '930px';
4520
- QS('column_l').height = '';
4521
- QS('column_l')['margin-left'] = '';
4522
- QS('column_l')['overflow-y'] = '';
4523
- QS('container').position = '';
4524
- QS('page_content').position = '';
4525
- QV('MainMenuSpan', true);
4526
- QS('container').width = '100%';
4527
- QS('container')['border-right'] = '0';
4528
- QS('container')['border-left'] = '0';
4529
- QS('column_l').padding = '0';
4530
- QS('column_l').width = '100%';
4531
- QS('column_l')["max-height"] = ''; */
4512
} else {
4513
QC('body').remove("fulldesk");
4514
exitBrowserFullscreen();
4515
browserfullscreen = false;
4536
- /* QS('container').width = '960px';
4537
- QS('container')['border-right'] = '1px solid #b7b7b7';
4538
- QS('container')['border-left'] = '1px solid #b7b7b7';
4539
- QS('column_l').padding = '0 15px';
4540
- QS('column_l').width = '930px'; */
4516
toggleFullScreen();
4517
}
4518
deskAdjust();
4544
- deskAdjust();
4519
+ //deskAdjust();
4520
updateDesktopButtons();
4521
}
4522
@@ -4551,33 +4526,34 @@
4526
}
4527
4528
function deskAdjust() {
4554
- var x = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (Q('deskarea1').clientHeight + Q('deskarea2').clientHeight + Q('Desk').clientHeight + Q('deskarea4').clientHeight + 2)) / 2;
4555
- if (fullscreen) {
4556
- document.documentElement.style.overflow = 'hidden';
4529
+ if (deskAspectRatio) {
4530
+ QS('Desk').width = '100%';
4531
+ QS('Desk').height = '100%';
4532
QS('deskarea3x').height = null;
4558
- if (x < 0) {
4559
- var mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (Q('deskarea1').clientHeight + Q('deskarea2').clientHeight + Q('deskarea4').clientHeight));
4560
- var mw = 9999;
4561
- if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; }
4562
- if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; }
4563
- QS('Desk')['max-height'] = mh + 'px';
4564
- QS('Desk')['max-width'] = mw + 'px';
4565
- x = 0;
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%';
4548
} else {
4567
- QS('Desk')['max-height'] = null;
4568
- QS('Desk')['max-width'] = null;
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;
4556
}
4570
- QS('Desk')['margin-top'] = x + 'px';
4571
- QS('Desk')['margin-bottom'] = x + 'px';
4572
- } else {
4573
- var mw = 9999, mh = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - (webPageFullScreen?276:290));
4574
- if (desktop) { mw = (desktop.m.width / desktop.m.height) * mh; }
4575
- if (webRtcDesktop && webRtcDesktop.softdesktop) { mw = (webRtcDesktop.softdesktop.m.width / webRtcDesktop.softdesktop.m.height) * mh; }
4576
- document.documentElement.style.overflow = 'auto';
4577
- QS('Desk')['max-height'] = mh + 'px';
4578
- QS('Desk')['max-width'] = mw + 'px';
4579
- QS('Desk')['margin-top'] = '0';
4580
- QS('Desk')['margin-bottom'] = '0';
4557
}
4558
}
4559
@@ -7037,7 +7013,7 @@
7013
var removeMultiFactor = false;
7014
if ((tag == 1) && (Q('p4twoFactorRemove').checked == true)) { removeMultiFactor = true; }
7015
if (Q('p4pass1').value == Q('p4pass2').value) {
7040
- var r = { action: 'changeuserpass', user: currentUser.name, pass: Q('p4pass1').value, removeMultiFactor: removeMultiFactor, resetNextLogin: Q('p4resetNextLogin').checked };
7016
+ var r = { action: 'changeuserpass', userid: currentUser._id, pass: Q('p4pass1').value, removeMultiFactor: removeMultiFactor, resetNextLogin: Q('p4resetNextLogin').checked };
7017
if (features & 0x00010000) { r.hint = Q('p4hint').value; }
7018
meshserver.send(r);
7019
}
@@ -7549,7 +7525,7 @@
7525
}
7526
7527
function center() {
7552
- if (xxcurrentView == 11) { deskAdjust(); } //deskAdjust(); }
7528
+ if (xxcurrentView == 11) { deskAdjust(); }
7529
else if (xxcurrentView == 10) { masterUpdate(256); }
7530
else if (xxcurrentView == 1) { masterUpdate(4); }
7531
}
@@ -7622,14 +7598,6 @@
7598
QV('topbar', x != 0);
7599
if ((x == 0) && (webPageFullScreen)) {
7600
QC('body').add("arg_hide");
7625
- QS('column_l').height = 'calc(100vh - 111px)';
7626
-
7627
- // Please check. I think this part is not needed anymore. Removing class will revert to default style
7628
- //QS('page_content').position = '';
7629
- //QV('page_leftbar', false);
7630
- //QS('column_l')["max-height"] = '';
7631
- //QV('column_l').left = 0;
7632
- //QV('page_content').left = 0;
7601
}
7602
7603
QV('MainSubMenuSpan', x >= 10 && x < 20);
@@ -7694,7 +7662,8 @@
7662
function validateEmail(v) { var emailReg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return emailReg.test(v); } // New version
7663
function isPrivateIP(a) { return (a.startsWith('10.') || a.startsWith('172.16.') || a.startsWith('192.168.')); }
7664
function u2fSupported() { return (window.u2f && ((navigator.userAgent.indexOf('Chrome/') > 0) || (navigator.userAgent.indexOf('Firefox/') > 0) || (navigator.userAgent.indexOf('Opera/') > 0) || (navigator.userAgent.indexOf('Safari/') > 0))); }
7665
+ function findOne(arr1, arr2) { if ((arr1 == null) || (arr2 == null)) return false; return arr2.some(function (v) { return arr1.indexOf(v) >= 0; }); };
7666
7667
</script>
7668
</body>
7700
-</html>
\ No newline at end of file
7669
+</html>
views/login.handlebars
+4
-5
@@ -11,18 +11,17 @@
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">
14
+<body id="body" onload="if (typeof(startup) !== 'undefined') startup();" class="arg_hide login">
15
<div id=container>
16
- <div id=mastheadx></div>
16
<div id=masthead>
17
<div class="title">{{{title}}}</div>
18
<div class="title2">{{{title2}}}</div>
19
</div>
21
- <div id=page_content>
20
+
21
<div id=topbar class="noselect style3">
22
<div id=toggle title="Toggle full width" onclick="toggleFullScreen(1)">↔</div>
23
</div>
25
- <div id=column_l style="height:calc(100vh - 111px)">
24
+ <div id=column_l>
25
<h1>Welcome</h1>
26
<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 "My Devices" section of this web site and you will be able to monitor them and take control of them.</div>
27
<table id="centralTable" style="">
@@ -216,7 +215,7 @@
215
<a href=terms>Terms & Privacy</a>
216
</div>
217
</div>
219
- </div>
218
+
219
</div>
220
<div id=dialog style="display:none">
221
<div id=dialogHeader>