few more bootstrap fixes
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Oct 31, 2024 at 13:31 UTC
438289b2edcc35ed287b6a83601510d35d38072e
2 files changed
+150
-147
public/styles/style-bootstrap.css
+2
-1
@@ -731,7 +731,6 @@ body {
731
732
#devListToolbarSpan {
733
width: 100%;
734
- height: 24px;
734
background: var(--sub-menu-bg);
735
vertical-align: middle;
736
border-spacing: 0;
@@ -2919,11 +2918,13 @@ nav .lbbuttonsel2 {
2918
.viewSelectorSel {
2919
background-color: #BBB;
2920
opacity: 0.8;
2921
+ color: black;
2922
}
2923
2924
.viewSelector:hover {
2925
opacity: 0.5;
2926
background-color: #AAA;
2927
+ color: black;
2928
}
2929
2930
views/default3.handlebars
+148
-146
@@ -406,128 +406,124 @@
406
title="Go to last page" style="display:none;margin-right:12px">
407
<div class="viewSelector8"></div>
408
</div>
409
- <div tabindex=0 id=devViewButton1 class=viewSelector onclick=onDeviceViewChange(1)
410
- onkeypress="if (event.key == 'Enter') { onDeviceViewChange(1); }" title="Columns">
411
- <div class="viewSelector2"></div>
412
- </div>
413
- <div tabindex=0 id=devViewButton2 class=viewSelector onclick=onDeviceViewChange(2)
414
- onkeypress="if (event.key == 'Enter') { onDeviceViewChange(2); }" title="List">
415
- <div class="viewSelector1"></div>
416
- </div>
417
- <div tabindex=0 id=devViewButton3 class=viewSelector onclick=onDeviceViewChange(3)
418
- onkeypress="if (event.key == 'Enter') { onDeviceViewChange(3); }" title="Desktops">
419
- <div class="viewSelector3"></div>
420
- </div>
421
- <div tabindex=0 id=devViewButton5 class=viewSelector onclick=onDeviceViewChange(5)
422
- onkeypress="if (event.key == 'Enter') { onDeviceViewChange(5); }" title="Desktops">
423
- <div class="viewSelector7"></div>
424
- </div>
425
- <div tabindex=0 id=devViewButton4 class=viewSelector onclick=onDeviceViewChange(4)
426
- onkeypress="if (event.key == 'Enter') { onDeviceViewChange(4); }" title="Map"
427
- style="display:none">
428
- <div class="viewSelector4"></div>
429
- </div>
409
+ <span role=button tabindex=0 id=devViewButton1 class="fa-layers fa-fw fa-xl" onclick=onDeviceViewChange(1) onkeypress="if (event.key == 'Enter') { onDeviceViewChange(1); }" title="Columns">
410
+ <i class="fa-solid fa-bars" data-fa-transform="shrink-8 right-4 up-2"></i>
411
+ <i class="fa-solid fa-bars" data-fa-transform="shrink-8 left-4 up-2"></i>
412
+ <i class="fa-solid fa-bars" data-fa-transform="shrink-8 right-4 down-3"></i>
413
+ <i class="fa-solid fa-bars" data-fa-transform="shrink-8 left-4 down-3"></i>
414
+ </span>
415
+ <span role=button tabindex=0 id=devViewButton2 class="fa-layers fa-fw fa-xl" onclick=onDeviceViewChange(2) onkeypress="if (event.key == 'Enter') { onDeviceViewChange(2); }" title="List">
416
+ <i class="fa-solid fa-bars"></i>
417
+ </span>
418
+ <span role=button tabindex=0 id=devViewButton3 class="fa-layers fa-fw fa-xl" onclick=onDeviceViewChange(3) onkeypress="if (event.key == 'Enter') { onDeviceViewChange(3); }" title="Desktops">
419
+ <i class="fa-solid fa-square" data-fa-transform="shrink-9 up-4 left-4"></i>
420
+ <i class="fa-solid fa-square" data-fa-transform="shrink-9 up-4 right-4"></i>
421
+ <i class="fa-solid fa-square" data-fa-transform="shrink-9 down-4 left-4"></i>
422
+ <i class="fa-solid fa-square" data-fa-transform="shrink-9 down-4 right-4"></i>
423
+ </span>
424
+ <span role=button tabindex=0 id=devViewButton5 class="fa-layers fa-fw fa-xl" onclick=onDeviceViewChange(5) onkeypress="if (event.key == 'Enter') { onDeviceViewChange(5); }" title="Desktops">
425
+ <i class="fa-solid fa-square" data-fa-transform="shrink-10 up-4 left-6"></i>
426
+ <i class="fa-solid fa-square" data-fa-transform="shrink-10 up-4 right-1"></i>
427
+ <i class="fa-solid fa-square" data-fa-transform="shrink-10 up-4 right-5"></i>
428
+ <i class="fa-solid fa-square" data-fa-transform="shrink-10 down-4 left-1"></i>
429
+ <i class="fa-solid fa-square" data-fa-transform="shrink-10 down-4 left-5"></i>
430
+ <i class="fa-solid fa-square" data-fa-transform="shrink-10 down-4 right-6"></i>
431
+ </span>
432
+ <span role=button tabindex=0 id=devViewButton4 class="fa-layers fa-fw fa-xl" onclick=onDeviceViewChange(4) onkeypress="if (event.key == 'Enter') { onDeviceViewChange(4); }" title="Map" style="display:none">
433
+ <i class="fa-solid fa-map-location-dot"></i>
434
+ </span>
435
</div>
436
</div>
432
- <table id="devListToolbarSpan" class="noselect">
433
- <tr>
434
- <td id="devListToolbar" style="background: linear-gradient(180deg,#fff,#fff,#e9ecef);padding:5px;">
435
- <div>
436
- <span class="fa-layers fa-fw" role="button" style="display:none" title="Collapse All" id="CollapseAllButton" onclick="cmexpandaction(2)">
437
- <i class="fa-solid fa-chevron-up" data-fa-transform="down-6"></i>
438
- <i class="fa-solid fa-chevron-down" data-fa-transform="up-6"></i>
439
- </span>
440
- <span class="fa-layers fa-fw" role="button" style="display:none" title="Expand All" id="ExpandAllButton" onclick="cmexpandaction(1)">
441
- <i class="fa-solid fa-chevron-up" data-fa-transform="up-6"></i>
442
- <i class="fa-solid fa-chevron-down" data-fa-transform="down-6"></i>
443
- </span>
444
- <input type=button class="btn btn-outline-primary me-2 mb-1 btn-sm" id=SelectAllButton onclick="selectallButtonFunction();" value="Select All" />
445
- <input type=button class="btn btn-outline-primary me-2 mb-1 btn-sm" id=GroupActionButton disabled="disabled" value="Group Action" onclick=groupActionFunction() />
446
- <input type=button id=ScrollToTopButton onclick="onDevicesScroll(true);" class="btn btn-outline-primary me-2 mb-1 btn-sm" value="Scroll To Top" />
447
- <input type="text" id=SearchInput class="form-control-sm me-2 mb-1 btn-sm" style="width: auto;" placeholder="Filter">
448
- <select class="form-select-sm me-2 mb-1" style="width: auto;" id=DevFilterSelect onchange=onOnlineCheckBox(event) title="Device Filter">
449
- <option value=0 selected>All</option>
450
- <option value=1>Online</option>
451
- <option value=5>Offline</option>
452
- <option value=2>Sessions</option>
453
- <option value=3>Starred</option>
454
- <option value=4>Intel® AMT</option>
455
- <option value=6>Help</option>
456
- <option value=7>Tagged</option>
457
- <option value=8>Untagged</option>
458
- </select>
459
- <label><input class="form-check-input me-2" type=checkbox id=RealNameCheckBox onclick=onRealNameCheckBox() /> <span title="Show devices operating system name">OS Name</span></label>
460
- <label style="display:none"><input type=checkbox id=OnlineCheckBox class="form-check-input me-2" onclick=onOnlineCheckBox(event) /><span title="Only show devices that are online">Online</span></label>
461
- <span id="devsCustomUIBar"></span>
462
- </div>
463
- </td>
464
- <td id=kvmListToolbar class=style14 style="display:none">
465
- <span class="fa-layers fa-fw" role="button" style="display:none" title="Collapse All" id="CollapseAllButton2" onclick="cmexpandaction(2)">
437
+ <div id="devListToolbarSpan" class="noselect d-flex align-items-center">
438
+ <div id=devListToolbar class=me-auto style="display:none"></td>
439
+ <div>
440
+ <span class="fa-layers fa-fw" role="button" style="display:none" title="Collapse All" id="CollapseAllButton" onclick="cmexpandaction(2)">
441
<i class="fa-solid fa-chevron-up" data-fa-transform="down-6"></i>
442
<i class="fa-solid fa-chevron-down" data-fa-transform="up-6"></i>
443
</span>
469
- <span class="fa-layers fa-fw" role="button" style="display:none" title="Expand All" id="ExpandAllButton2" onclick="cmexpandaction(1)">
444
+ <span class="fa-layers fa-fw" role="button" style="display:none" title="Expand All" id="ExpandAllButton" onclick="cmexpandaction(1)">
445
<i class="fa-solid fa-chevron-up" data-fa-transform="up-6"></i>
446
<i class="fa-solid fa-chevron-down" data-fa-transform="down-6"></i>
447
</span>
473
- <input type="button" onclick="connectAllKvmFunction()" value="Connect All" />
474
- <input type="button" onclick="disconnectAllKvmFunction()" value="Disconnect All" />
475
- <input type="button" onclick="onDevicesScroll(true);" value="Scroll To Top" />
476
- <label><input type="checkbox" id="autoConnectDesktopCheckbox" class="form-check-input me-2"
477
- onclick="autoConnectDesktops(event)" title="Automatic connect" />Auto </label>
478
- <input type="button" onclick="showMultiDesktopSettings()" value="Settings" />
479
- <input id=KvmSearchInput type=search placeholder=Filter
480
- onchange=onDeviceSearchChanged(event) onclick=onDeviceSearchChanged(event)
481
- onkeyup=onDeviceSearchChanged(event) autocomplete=off onfocus=onSearchFocus(1)
482
- onblur=onSearchFocus(0) />
483
- <span id=KvmSearchInputClearButton style="display:none;position:relative"><img
484
- src="images/x16.png" type="button" onclick="clearDeviceSearch()"
485
- style="position:absolute;cursor:pointer;left:-18px;top:-8px"
486
- srcset="images/x32.png 2x" /></span>
487
- </td>
488
- <td id=devMapToolbar class=style14 style="display:none">
489
- <input type=search id=mapSearchLocation placeholder="Search Location"
490
- onfocus=onMapSearchFocus(1) onblur=onMapSearchFocus(0) />
491
- <input type=button value=Search title="Search for location" onclick=getSearchLocation() />
492
- <input type=button id=refreshmap title="Reset map view" value=Reset
493
- onclick=refreshMap(false,true) />
494
- </td>
495
- <td class="d-flex justify-content-end align-items-center" style=height:100%>
496
- <div style="display:none" id=devListToolbarView>
497
- View
498
- <select id=viewselect onchange=onDeviceViewChange()>
499
- <option value=1>Columns</option>
500
- <option value=2>List</option>
501
- <option value=3>Desktops Fixed Width</option>
502
- <option id=viewselectmapoption value=4 style="display:none">Map</option>
503
- <option value=5>Desktops</option>
504
- </select>
505
- </div>
506
- <div style="display:none" id=devListToolbarSize>
507
- Size
508
- <select id=sizeselect class="form-select-sm me-2" onchange=onDeviceViewChange()>
509
- <option value=0>Small</option>
510
- <option value=1>Medium</option>
511
- <option value=2>Large</option>
512
- </select>
513
-
514
- </div>
515
- <div style="display:none" id=devListToolbarSort>
516
- Sort
517
- <select id=sortselect class="form-select-sm me-2" onchange=mainUpdate(6)>
518
- <option>Group</option>
519
- <option>Power</option>
520
- <option>Device</option>
521
- <option>Tags</option>
522
- <option>Group-Tags</option>
523
- <option>Last Seen</option>
524
- </select>
525
-
526
- </div>
527
- <i class="fa-solid fa-gear" role="button" id=devListToolbarSettings onclick="onDeviceViewSettings()"></i>
528
- </td>
529
- </tr>
530
- </table>
448
+ <input type=button class="btn btn-outline-primary me-2 btn-sm" id=SelectAllButton onclick="selectallButtonFunction();" value="Select All" />
449
+ <input type=button class="btn btn-outline-primary me-2 btn-sm" id=GroupActionButton disabled="disabled" value="Group Action" onclick=groupActionFunction() />
450
+ <input type=button id=ScrollToTopButton onclick="onDevicesScroll(true);" class="btn btn-outline-primary me-2 mb-1 btn-sm" value="Scroll To Top" />
451
+ <input type="text" id=SearchInput class="form-control-sm me-2 btn-sm" style="width: auto;" placeholder="Filter">
452
+ <select class="form-select-sm me-2" style="width: auto;" id=DevFilterSelect onchange=onOnlineCheckBox(event) title="Device Filter">
453
+ <option value=0 selected>All</option>
454
+ <option value=1>Online</option>
455
+ <option value=5>Offline</option>
456
+ <option value=2>Sessions</option>
457
+ <option value=3>Starred</option>
458
+ <option value=4>Intel® AMT</option>
459
+ <option value=6>Help</option>
460
+ <option value=7>Tagged</option>
461
+ <option value=8>Untagged</option>
462
+ </select>
463
+ <label><input class="form-check-input me-2" type=checkbox id=RealNameCheckBox onclick=onRealNameCheckBox() /> <span title="Show devices operating system name">OS Name</span></label>
464
+ <label style="display:none"><input type=checkbox id=OnlineCheckBox class="form-check-input me-2" onclick=onOnlineCheckBox(event) /><span title="Only show devices that are online">Online</span></label>
465
+ <span id="devsCustomUIBar"></span>
466
+ </div>
467
+ </div>
468
+ <div id=kvmListToolbar class=style14 style="display:none">
469
+ <span class="fa-layers fa-fw" role="button" style="display:none" title="Collapse All" id="CollapseAllButton2" onclick="cmexpandaction(2)">
470
+ <i class="fa-solid fa-chevron-up" data-fa-transform="down-6"></i>
471
+ <i class="fa-solid fa-chevron-down" data-fa-transform="up-6"></i>
472
+ </span>
473
+ <span class="fa-layers fa-fw" role="button" style="display:none" title="Expand All" id="ExpandAllButton2" onclick="cmexpandaction(1)">
474
+ <i class="fa-solid fa-chevron-up" data-fa-transform="up-6"></i>
475
+ <i class="fa-solid fa-chevron-down" data-fa-transform="down-6"></i>
476
+ </span>
477
+ <input type="button" onclick="connectAllKvmFunction()" value="Connect All" />
478
+ <input type="button" onclick="disconnectAllKvmFunction()" value="Disconnect All" />
479
+ <input type="button" onclick="onDevicesScroll(true);" value="Scroll To Top" />
480
+ <label><input type="checkbox" id="autoConnectDesktopCheckbox" class="form-check-input me-2" onclick="autoConnectDesktops(event)" title="Automatic connect" />Auto </label>
481
+ <input type="button" onclick="showMultiDesktopSettings()" value="Settings" />
482
+ <input id=KvmSearchInput type=search placeholder=Filter onchange=onDeviceSearchChanged(event) onclick=onDeviceSearchChanged(event) onkeyup=onDeviceSearchChanged(event) autocomplete=off onfocus=onSearchFocus(1) onblur=onSearchFocus(0) />
483
+ <span id=KvmSearchInputClearButton style="display:none;position:relative">
484
+ <img src="images/x16.png" type="button" onclick="clearDeviceSearch()" style="position:absolute;cursor:pointer;left:-18px;top:-8px" srcset="images/x32.png 2x" />
485
+ </span>
486
+ </div>
487
+ <div id=devMapToolbar class=style14 style="display:none">
488
+ <input type=search id=mapSearchLocation placeholder="Search Location" onfocus=onMapSearchFocus(1) onblur=onMapSearchFocus(0) />
489
+ <input type=button value=Search title="Search for location" onclick=getSearchLocation() />
490
+ <input type=button id=refreshmap title="Reset map view" value=Reset onclick=refreshMap(false,true) />
491
+ </div>
492
+ <div class="d-flex align-items-center">
493
+ <div style="display:none" id=devListToolbarView>
494
+ View
495
+ <select id=viewselect onchange=onDeviceViewChange()>
496
+ <option value=1>Columns</option>
497
+ <option value=2>List</option>
498
+ <option value=3>Desktops Fixed Width</option>
499
+ <option id=viewselectmapoption value=4 style="display:none">Map</option>
500
+ <option value=5>Desktops</option>
501
+ </select>
502
+ </div>
503
+ <div style="display:none" id=devListToolbarSize>
504
+ Size
505
+ <select id=sizeselect class="form-select-sm me-2" onchange=onDeviceViewChange()>
506
+ <option value=0>Small</option>
507
+ <option value=1>Medium</option>
508
+ <option value=2>Large</option>
509
+ </select>
510
+
511
+ </div>
512
+ <div style="display:none" id=devListToolbarSort>
513
+ Sort
514
+ <select id=sortselect class="form-select-sm me-2" onchange=mainUpdate(6)>
515
+ <option>Group</option>
516
+ <option>Power</option>
517
+ <option>Device</option>
518
+ <option>Tags</option>
519
+ <option>Group-Tags</option>
520
+ <option>Last Seen</option>
521
+ </select>
522
+
523
+ </div>
524
+ <i class="fa-solid fa-gear" role="button" id=devListToolbarSettings onclick="onDeviceViewSettings()"></i>
525
+ </div>
526
+ </div>
527
<div id=NoMeshesPanel style="display:none">
528
<table>
529
<tr>
@@ -642,7 +638,7 @@
638
</div>
639
<div id=p2logintokens></div>
640
<strong>Device Groups</strong>
645
- <span id="p2createMeshLink1"> - <button class="btn btn-primary btn-sm me-2" onclick="return account_createMesh()"> <i class="fa-solid fa-plus-circle"></i>New</button></span>
641
+ <span id="p2createMeshLink1"> - <button class="btn btn-primary btn-sm" onclick="return account_createMesh()"> <i class="fa-fw fa-solid fa-plus-circle"></i>New</button></span>
642
<br /><br />
643
<div id=p2meshes></div>
644
<div id=p2noMeshFound style="display:none">No device groups.<span id="p2createMeshLink2"> <a href=#
@@ -896,14 +892,10 @@
892
<td style=width:20px></td>
893
<td style=width:200px;vertical-align:top;position:relative valign=top>
894
<div class="deviceNotifyLargeDot">
899
- <div id="p10deviceMsg" onclick=showDeviceMessages(null,null,event)
900
- class=deviceNotifyDotSub></div>
901
- <img id="p10deviceStar" class=deviceNotifyDotSub src=images/icon-star-notify-16.png
902
- width=16 height=16>
903
- <img id="p10deviceNotify" onclick=showDeviceSessions(null,null,event)
904
- class=deviceNotifyDotSub src=images/icon-relay-notify.png width=16 height=16>
905
- <img id="p10deviceHelp" onclick=showDeviceHelpRequests(null,null,event)
906
- class=deviceNotifyDotSub src=images/icon-help-notify-16.png width=16 height=16>
895
+ <div id="p10deviceMsg" onclick=showDeviceMessages(null,null,event) class=deviceNotifyDotSub></div>
896
+ <i title="Starred" role=button class="fa-solid fa-star" id="p10deviceStar" onclick=showDeviceSessions(null,null,event) data-fa-transform="shrink-5" data-fa-mask="fa-solid fa-circle"></i>
897
+ <i title="List of remote sessions active on this computer." role=button class="fa-solid fa-arrow-right-arrow-left" id="p10deviceNotify" onclick=showDeviceSessions(null,null,event) data-fa-transform="shrink-5" data-fa-mask="fa-solid fa-circle"></i>
898
+ <i title="Help Requested" role=button class="fa-solid fa-question" id="p10deviceHelp" onclick=showDeviceHelpRequests(null,null,event) data-fa-transform="shrink-5" data-fa-mask="fa-solid fa-circle"></i>
899
</div>
900
<div id="p10deviceBattery" class="deviceBatteryLarge deviceBatteryLarge1"></div>
901
<a href=# onclick=p10showiconselector()><img id=MainComputerImage></a>
@@ -1482,7 +1474,7 @@
1474
<i class="fa-solid fa-chart-line fa-xl fa-border" role="button" onclick=deskToggleCpuGraph(event) title="Show device CPU and memory usage."></i>
1475
</div>
1476
</div>
1485
- <div id=p17info style="overflow-y:auto">
1477
+ <div id=p17info class="ps-0 pb-5 overflow-y-auto container-fluid">
1478
<div id=p17graph style="width:100%">
1479
<table style=width:100%>
1480
<tr>
@@ -5727,7 +5719,7 @@
5719
for (var j in node.sessions.kvm) {
5720
if (j.startsWith('user/')) {
5721
var trash = '';
5730
- if (((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF))) { trash = ' <a href=# onclick=\'return endDeviceSession("kvm", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
5722
+ if (((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF))) { trash = ' <i role=button onclick=\'return endDeviceSession("kvm", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" class="fa-fw fa-solid fa-trash text-danger" ></i>'; }
5723
x += addHtmlValue2(getUserName(j), ((node.sessions.kvm[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.kvm[j]))) + trash);
5724
} else if (j == 'busy') {
5725
x += addHtmlValue2("Device is busy", ((node.sessions.kvm[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.kvm[j]))));
@@ -5737,35 +5729,35 @@
5729
x += '<u>' + "Remote Desktop" + '</u>';
5730
for (var j in node.sessions.multidesk) {
5731
var trash = '';
5740
- if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <a href=# onclick=\'return endDeviceSession("multidesk", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
5732
+ if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <i role=button onclick=\'return endDeviceSession("multidesk", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" class="fa-fw fa-solid fa-trash text-danger"></i>'; }
5733
x += addHtmlValue2(getUserName(j), ((node.sessions.multidesk[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.multidesk[j]))) + trash);
5734
}
5735
} else if (i == 'terminal') {
5736
x += '<u>' + "Terminal" + '</u>';
5737
for (var j in node.sessions.terminal) {
5738
var trash = '';
5747
- if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <a href=# onclick=\'return endDeviceSession("terminal", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
5739
+ if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <i role=button onclick=\'return endDeviceSession("terminal", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" class="fa-fw fa-solid fa-trash text-danger"></i>'; }
5740
x += addHtmlValue2(getUserName(j), ((node.sessions.terminal[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.terminal[j]))) + trash);
5741
}
5742
} else if (i == 'files') {
5743
x += '<u>' + "Files" + '</u>';
5744
for (var j in node.sessions.files) {
5745
var trash = '';
5754
- if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <a href=# onclick=\'return endDeviceSession("files", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
5746
+ if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <i role=button onclick=\'return endDeviceSession("files", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" class="fa-fw fa-solid fa-trash text-danger"></i>'; }
5747
x += addHtmlValue2(getUserName(j), ((node.sessions.files[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.files[j]))) + trash);
5748
}
5749
} else if (i == 'tcp') {
5750
x += '<u>' + "TCP Routing" + '</u>';
5751
for (var j in node.sessions.tcp) {
5752
var trash = '';
5761
- if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <a href=# onclick=\'return endDeviceSession("tcp", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
5753
+ if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <i role=button onclick=\'return endDeviceSession("tcp", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" class="fa-fw fa-solid fa-trash text-danger"></i>'; }
5754
x += addHtmlValue2(getUserName(j), ((node.sessions.tcp[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.tcp[j]))) + trash);
5755
}
5756
} else if (i == 'udp') {
5757
x += '<u>' + "UDP Routing" + '</u>';
5758
for (var j in node.sessions.udp) {
5759
var trash = '';
5768
- if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <a href=# onclick=\'return endDeviceSession("udp", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
5760
+ if ((j == userinfo._id) || (GetNodeRights(node) == 0xFFFFFFFF)) { trash = ' <i role=button onclick=\'return endDeviceSession("udp", "' + encodeURIComponentEx(node._id) + '", "' + encodeURIComponentEx(j) + '")\' title="' + "Disconnect this session" + '" class="fa-fw fa-solid fa-trash text-danger"></i>'; }
5761
x += addHtmlValue2(getUserName(j), ((node.sessions.udp[j] == 1) ? "1 session" : nobreak(format("{0} sessions", node.sessions.udp[j]))) + trash);
5762
}
5763
}
@@ -8960,7 +8952,7 @@
8952
for (var i = 0; i < deviceShares.length; i++) {
8953
var dshare = deviceShares[i], trash = '';
8954
if (dshare.url != null) { trash += '<a href="' + dshare.url + '" rel="noreferrer noopener" target=_blank title="' + "Device Sharing Link" + '" style=cursor:pointer><img src=images/link2.png border=0 height=10 width=10></a> '; }
8963
- trash += '<a href=# onclick=\'return p30removeDeviceSharing(event,"' + encodeURIComponentEx(currentNode._id) + '","' + encodeURIComponentEx(dshare.publicid) + '","' + encodeURIComponentEx(dshare.guestName) + '")\' title="' + "Remove device sharing" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
8955
+ trash += '<i role=button onclick=\'return p30removeDeviceSharing(event,"' + encodeURIComponentEx(currentNode._id) + '","' + encodeURIComponentEx(dshare.publicid) + '","' + encodeURIComponentEx(dshare.guestName) + '")\' title="' + "Remove device sharing" + '" class="fa-fw fa-solid fa-trash text-danger"></i>';
8956
var type = ''; if (dshare.p <= 7) { type = ['', "Terminal", "Desktop", "Desktop + Terminal", "Files", "Terminal + Files", "Desktop + Files", "Desktop + Terminal + Files"][dshare.p]; } else if (dshare.p == 8) { type = "HTTP/" + dshare.port; } else if (dshare.p == 16) { type = "HTTPS/" + dshare.port; }
8957
var details = type;
8958
if ((dshare.startTime != null) && (dshare.expireTime != null)) { details = format("{0}, {1} to {2}", type, printFlexDateTime(new Date(dshare.startTime)), printFlexDateTime(new Date(dshare.expireTime))); }
@@ -12974,9 +12966,9 @@
12966
dateHeader = printDate(time);
12967
x += '<table class="table table-hover p3eventsTable" cellpadding=0 cellspacing=0><tr><td colspan=4 class=DevSt>' + dateHeader + '</td></tr>';
12968
}
12977
- var icon = 'si3';
12978
- if (event.etype == 'user') icon = 'm2';
12979
- if (event.etype == 'server') icon = 'si3';
12969
+ var icon = 'fa-mobile-screen';
12970
+ if (event.etype == 'user') icon = 'fa-user';
12971
+ if (event.etype == 'server') icon = 'fa-server';
12972
12973
var msg;
12974
if ((event.msgid == null) || (eventsMessageId[event.msgid] == null)) {
@@ -13000,8 +12992,8 @@
12992
msg = EscapeHtml(event.username) + guestname + ' → ' + msg;
12993
}
12994
}
13003
- if (event.etype == 'relay' || event.action == 'relaylog') icon = 'relayIcon16';
13004
- x += '<tr onclick=showEventDetails(' + event.h + ',1) onmouseover=eventMouseHover(this,1) onmouseout=eventMouseHover(this,0) style=cursor:pointer><td style=width:18px><div class=' + icon + '></div></td><td class=g1> </td><td class=style10>' + printTime(time) + ' - ' + msg + '</td></tr><tr></tr>';
12995
+ if (event.etype == 'relay' || event.action == 'relaylog') icon = 'fa-arrow-right-arrow-left';
12996
+ x += '<tr onclick=showEventDetails(' + event.h + ',1) onmouseover=eventMouseHover(this,1) onmouseout=eventMouseHover(this,0) role="button"><td style=width:18px><i class="fa-solid ' + icon + '"></i></td><td class=g1> </td><td class=style10>' + printTime(time) + ' - ' + msg + '</td></tr><tr></tr>';
12997
}
12998
}
12999
if (dateHeader != null) x += '</table>';
@@ -16588,8 +16580,7 @@
16580
e.children[1].classList.remove('g1s');
16581
e.children[2].classList.remove('style10s');
16582
//e.children[2].style['background-color'] = ((over == 0) ? '#c9c9c9' : '#b9b9b9');
16591
- e.children[3].classList.remove('g2s');
16592
- if (over == 1) { e.children[1].classList.add('g1s'); e.children[2].classList.add('style10s'); e.children[3].classList.add('g2s'); }
16583
+ if (over == 1) { e.children[1].classList.add('g1s'); e.children[2].classList.add('style10s'); }
16584
}
16585
16586
function eventsUpdate() {
@@ -16603,10 +16594,10 @@
16594
dateHeader = printDate(time);
16595
x += '<table class="table table-hover p3eventsTable" cellpadding=0 cellspacing=0><tr><td colspan=4 class=DevSt>' + dateHeader + '</td></tr>';
16596
}
16606
- var icon = 'si3';
16607
- if (event.etype == 'ugrp') icon = 'm4';
16608
- if (event.etype == 'user') icon = 'm2';
16609
- if (event.etype == 'server') icon = 'si3';
16597
+ var icon = 'fa-mobile-screen';
16598
+ if (event.etype == 'ugrp') icon = 'fa-users';
16599
+ if (event.etype == 'user') icon = 'fa-user';
16600
+ if (event.etype == 'server') icon = 'fa-server';
16601
16602
var msg;
16603
if ((event.msgid == null) || (eventsMessageId[event.msgid] == null)) {
@@ -16632,7 +16623,18 @@
16623
if (event.nodeid) {
16624
var node = getNodeFromId(event.nodeid);
16625
if (node != null) {
16635
- icon = 'si' + node.icon;
16626
+ console.log(node);
16627
+ switch(node.icon){
16628
+ case 1:
16629
+ icon = 'fa-computer';
16630
+ break;
16631
+ case 2:
16632
+ icon = 'fa-laptop';
16633
+ break;
16634
+ case 8:
16635
+ icon = 'fa-laptop-code';
16636
+ break;
16637
+ }
16638
msg = '<a href=# onclick=\'gotoDevice("' + event.nodeid + '",10);haltEvent(event);\'>' + EscapeHtml(node.name) + '</a> → ' + msg;
16639
}
16640
}
@@ -16646,8 +16648,8 @@
16648
}
16649
}
16650
if (event.remoteaddr) { msg += ' (' + event.remoteaddr + ')'; }
16649
- if (event.etype == 'relay' || event.action == 'relaylog') icon = 'relayIcon16';
16650
- x += '<tr onclick=showEventDetails(' + event.h + ',2) onmouseover=eventMouseHover(this,1) onmouseout=eventMouseHover(this,0) style=cursor:pointer><td style=width:18px><div class=' + icon + '></div></td><td class=g1> </td><td class=style10>' + printTime(time) + ' - ' + msg + '</td></tr><tr></tr>';
16651
+ if (event.etype == 'relay' || event.action == 'relaylog') icon = 'fa-arrow-right-arrow-left';
16652
+ x += '<tr onclick=showEventDetails(' + event.h + ',2) onmouseover=eventMouseHover(this,1) onmouseout=eventMouseHover(this,0) role=button><td style=width:18px><i class="fa-fw fa-solid ' + icon + '"></i></td><td class=g1> </td><td class=style10>' + printTime(time) + ' - ' + msg + '</td></tr><tr></tr>';
16653
}
16654
}
16655
if (dateHeader != null) x += '</table>';
@@ -20602,7 +20604,7 @@
20604
// function addLink(x, f) { return '<span tabindex=0 style=cursor:pointer;text-decoration:none onclick=\'' + f + '\' onkeypress="if (event.key==\'Enter\') {' + f + '} ">' + x + ' <img class=hoverButton src=images/link5.png></span>'; }
20605
function addLink(x, f) { return '<span tabindex=0 role="button" onclick=\'' + f + '\' onkeypress="if (event.key==\'Enter\') {' + f + '} ">' + x + ' <i class="fa-solid fa-pencil fa-xs"></i></span>'; }
20606
function addLinkConditional(x, f, c) { if (c) return addLink(x, f); return x; }
20605
- function addKeyLink(x, f) { return '<span tabindex=0 style=cursor:pointer;text-decoration:none onclick=' + f + ' onkeypress="if (event.key==\'Enter\') { ' + f + ' } ">' + x + ' <img class=hoverButton src=images/key16.png></span>'; }
20607
+ function addKeyLink(x, f) { return '<span tabindex=0 role=button onclick=' + f + ' onkeypress="if (event.key==\'Enter\') { ' + f + ' } ">' + x + ' <i class="fa-solid fa-key"></i></span>'; }
20608
function addKeyLinkConditional(x, f, c) { if (c) return addKeyLink(x, f); return x; }
20609
function haltEvent(e) { if (e.preventDefault) e.preventDefault(); if (e.stopPropagation) e.stopPropagation(); return false; }
20610
function addOption(q, t, i) { var option = document.createElement('option'); option.text = t; option.value = i; Q(q).add(option); }