From b398cb7fa95100b63623d43a4f9db5eb3e1b80e9 Mon Sep 17 00:00:00 2001 From: si458 Date: Sat, 16 Nov 2024 02:25:25 +0000 Subject: [PATCH] bootstrap: more fixes and icon changes part 2 Signed-off-by: si458 --- public/styles/style-bootstrap.css | 24 +-- views/default3.handlebars | 313 ++++++++++++++---------------- 2 files changed, 154 insertions(+), 183 deletions(-) diff --git a/public/styles/style-bootstrap.css b/public/styles/style-bootstrap.css index 828860a9..e2a1d9b5 100644 --- a/public/styles/style-bootstrap.css +++ b/public/styles/style-bootstrap.css @@ -636,7 +636,6 @@ body { width: 230px; height: 100px; overflow-y: scroll; - background-color: white; } #idx_dlgButtonBar { @@ -1265,7 +1264,7 @@ NoMeshesPanel img { } .pwsBlack { - background-color: black; + background-color: var(--bs-body-color); } .pwsBlue { @@ -2463,7 +2462,6 @@ nav .lbbuttonsel2 { padding-top: 2px; padding-bottom: 2px; background: var(--sub-menu-bg); - height: 22px; } .night .areaFoot { @@ -2691,13 +2689,6 @@ nav .lbbuttonsel2 { -ms-grid-row: 4; } -#DeskRunButton, #DeskChatButton, #DeskNotifyButton, #DeskOpenWebButton, #DeskBackgroundButton, #DeskSaveImageButton, #DeskRecordButton, #DeskClipboardInButton, #DeskClipboardOutButton, #DeskRefreshButton, #DeskLockButton, #DeskInputLockedButton, #DeskInputUnLockedButton, #DeskGuestShareButton, #DeskMonitorSelectionSpan { - float: right; - margin-top: 1px; - margin-right: 4px; - cursor: pointer; -} - #DeskClip, #DeskControlSpan, #specialkeylist { padding-left: 6px; } @@ -2705,15 +2696,11 @@ nav .lbbuttonsel2 { .serverStateTableCell { width: 300px; height: 24px; - background: var(--sub-menu-bg); + background: var(--bs-secondary-bg); margin-bottom: 4px; vertical-align: middle; border-spacing: 0; -} - -.night .serverStateTableCell { - background-color: #333; - color: #CCC; + color: var(--bs-secondary-color); } .userTableHeader { @@ -2722,10 +2709,6 @@ nav .lbbuttonsel2 { padding-bottom: 4px; } -#deskkeys { - margin-left: 6px; -} - #p12BackButton { float: left; } @@ -3289,7 +3272,6 @@ nav .lbbuttonsel2 { .dtab { overflow: hidden; border-bottom: 1px solid #ccc; - background-color: #f1f1f1; } .dtab button { diff --git a/views/default3.handlebars b/views/default3.handlebars index 9713d4b4..e283959e 100644 --- a/views/default3.handlebars +++ b/views/default3.handlebars @@ -943,54 +943,43 @@
NUM
-
-
-
 ✖
-   -
-
-
- - - - - -
-
-
-
- +
+ - - - - - Disconnected + Disconnected +
+
+
+
+ + + + + +
+
+
+   +
 ✖
@@ -1036,73 +1025,62 @@ style="display:none;position:absolute;left:30px;top:17px;right:30px;bottom:17px;overflow-y:auto">
-
-
- - - -   - - - - - - - - - - - - - - - - - > - - - - - - - - - - - - - - +
+
+ + + + + +   +
+
+ + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
-
-
- - - - - -  
@@ -3495,13 +3473,13 @@ var splitip = currentNode.lastaddr.split(':'); if (splitip.length > 2) { // IPv6 - x += addHtmlValue2("Last agent address", currentNode.lastaddr + ' '); + x += addHtmlValue2("Last agent address", currentNode.lastaddr + ' '); } else { // IPv4 if (isPrivateIP(currentNode.lastaddr)) { - x += addHtmlValue2("Last agent address", splitip[0] + ' '); + x += addHtmlValue2("Last agent address", splitip[0] + ' '); } else { - x += addHtmlValue2("Last agent address", '' + splitip[0] + ' '); + x += addHtmlValue2("Last agent address", '' + splitip[0] + ' '); } } } @@ -3514,12 +3492,12 @@ x += '
' if (net.name) { x += addHtmlValue2("Name", '' + EscapeHtml(net.name) + ''); } if (net.desc) { x += addHtmlValue2("Description", EscapeHtml(net.desc).replace('(R)', '®').replace('(r)', '®')); } - if (net.dnssuffix) { x += addHtmlValue2("DNS suffix", EscapeHtml(net.dnssuffix) + ' '); } - if (net.mac) { x += addHtmlValue2("MAC address", '' + EscapeHtml(net.mac.toLowerCase()) + ' '); } - if (net.v4addr) { x += addHtmlValue2("IPv4 address", EscapeHtml(net.v4addr) + ' '); } - if (net.v4mask) { x += addHtmlValue2("IPv4 mask", EscapeHtml(net.v4mask) + ' '); } - if (net.v4gateway) { x += addHtmlValue2("IPv4 gateway", EscapeHtml(net.v4gateway) + ' '); } - if (net.gatewaymac) { x += addHtmlValue2("Gateway MAC", '' + EscapeHtml(net.gatewaymac.toLowerCase()) + ' '); } + if (net.dnssuffix) { x += addHtmlValue2("DNS suffix", EscapeHtml(net.dnssuffix) + ' '); } + if (net.mac) { x += addHtmlValue2("MAC address", '' + EscapeHtml(net.mac.toLowerCase()) + ' '); } + if (net.v4addr) { x += addHtmlValue2("IPv4 address", EscapeHtml(net.v4addr) + ' '); } + if (net.v4mask) { x += addHtmlValue2("IPv4 mask", EscapeHtml(net.v4mask) + ' '); } + if (net.v4gateway) { x += addHtmlValue2("IPv4 gateway", EscapeHtml(net.v4gateway) + ' '); } + if (net.gatewaymac) { x += addHtmlValue2("Gateway MAC", '' + EscapeHtml(net.gatewaymac.toLowerCase()) + ' '); } } } else if (message.netif2 != null) { // New style @@ -3528,18 +3506,18 @@ if ((Array.isArray(net) == false) || (net.length < 1) || (net[0] == null) || ((typeof net[0].mac == 'string') && (net[0].mac.startsWith('00:00:00:00')))) continue; x += '
' x += addHtmlValue2("Name", '' + EscapeHtml(i) + ''); - if (typeof net[0].mac == 'string') { x += addHtmlValue2("MAC address", '' + EscapeHtml(net[0].mac.toLowerCase()) + ' '); } + if (typeof net[0].mac == 'string') { x += addHtmlValue2("MAC address", '' + EscapeHtml(net[0].mac.toLowerCase()) + ' '); } if (net[0].fqdn) { x += addHtmlValue2("FQDN", net[0].fqdn); } for (var j = 0; j < net.length; j++) { var netif = net[j]; if (netif.family == 'IPv6') { - if (netif.address) { x += addHtmlValue2("IPv6 address", EscapeHtml(netif.address) + ' '); } - if (netif.netmask) { x += addHtmlValue2("IPv6 mask", EscapeHtml(netif.netmask) + ' '); } - if (netif.gateway) { x += addHtmlValue2("IPv6 gateway", EscapeHtml(netif.gateway) + ' '); } + if (netif.address) { x += addHtmlValue2("IPv6 address", EscapeHtml(netif.address) + ' '); } + if (netif.netmask) { x += addHtmlValue2("IPv6 mask", EscapeHtml(netif.netmask) + ' '); } + if (netif.gateway) { x += addHtmlValue2("IPv6 gateway", EscapeHtml(netif.gateway) + ' '); } } else if (netif.family == 'IPv4') { - if (netif.address) { x += addHtmlValue2("IPv4 address", EscapeHtml(netif.address) + ' '); } - if (netif.netmask) { x += addHtmlValue2("IPv4 mask", EscapeHtml(netif.netmask) + ' '); } - if (netif.gateway) { x += addHtmlValue2("IPv4 gateway", EscapeHtml(netif.gateway) + ' '); } + if (netif.address) { x += addHtmlValue2("IPv4 address", EscapeHtml(netif.address) + ' '); } + if (netif.netmask) { x += addHtmlValue2("IPv4 mask", EscapeHtml(netif.netmask) + ' '); } + if (netif.gateway) { x += addHtmlValue2("IPv4 gateway", EscapeHtml(netif.gateway) + ' '); } } } } @@ -6448,9 +6426,11 @@ // Set the modal body content based on the bodyContent Type if (typeof bodyContent == 'number') { for (var i = 1; i < 24; i++) { QV('dialog' + i, i == bodyContent); } // Edit this line when more dialogs are added + xxdialogMode = i; } else if (typeof bodyContent == 'string'){ Q('dialog2').innerHTML = bodyContent; for (var i = 1; i < 24; i++) { QV('dialog' + i, i == 2); } // Edit this line when more dialogs are added + xxdialogMode = 2; } // If size is provided, set the modal size class if (size) { @@ -9858,49 +9838,52 @@ var d2map = null; function p10showNodeLocationDialog() { if ((xxdialogMode != null) && (xxdialogTag == '@xxmap')) { setDialogMode(0); } else { if (xxdialogMode) return false; } - var markers = [], types = ['iploc', 'wifiloc', 'gpsloc', 'userloc'], boundingBox = null; + var showLocation = function (event) { + var markers = [], types = ['iploc', 'wifiloc', 'gpsloc', 'userloc'], boundingBox = null; - for (var loctype in types) { - if (currentNode[types[loctype]] != null) { - var loc = currentNode[types[loctype]].split(','), lat = parseFloat(loc[0]), lon = parseFloat(loc[1]); - if ((lat < 90) && (lat > -90) && (lon < 180) && (lon > -180)) { // Check valid lat/lon - var deviceMark = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([lon, lat])) }); - deviceMark.setStyle(markerStyle(currentNode, parseInt(loctype) + 1)); - markers.push(deviceMark); + for (var loctype in types) { + if (currentNode[types[loctype]] != null) { + var loc = currentNode[types[loctype]].split(','), lat = parseFloat(loc[0]), lon = parseFloat(loc[1]); + if ((lat < 90) && (lat > -90) && (lon < 180) && (lon > -180)) { // Check valid lat/lon + var deviceMark = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([lon, lat])) }); + deviceMark.setStyle(markerStyle(currentNode, parseInt(loctype) + 1)); + markers.push(deviceMark); - if (boundingBox == null) { boundingBox = [lat, lon, lat, lon, 0]; } else { if (lat < boundingBox[0]) { boundingBox[0] = lat; } if (lon < boundingBox[1]) { boundingBox[1] = lon; } if (lat > boundingBox[2]) { boundingBox[2] = lat; } if (lon > boundingBox[3]) { boundingBox[3] = lon; } } + if (boundingBox == null) { boundingBox = [lat, lon, lat, lon, 0]; } else { if (lat < boundingBox[0]) { boundingBox[0] = lat; } if (lon < boundingBox[1]) { boundingBox[1] = lon; } if (lat > boundingBox[2]) { boundingBox[2] = lat; } if (lon > boundingBox[3]) { boundingBox[3] = lon; } } + } } } + + // Setup the device mark layer + var vectorSource = new ol.source.Vector({ features: markers }); + var vectorLayer = new ol.layer.Vector({ source: vectorSource }); + + var clng = 0, clat = 0, zoom = 8; + if (boundingBox != null) { + var clat = (boundingBox[0] + boundingBox[2]) / 2; + var clng = (boundingBox[1] + boundingBox[3]) / 2; + var cscale = Math.max(Math.abs(boundingBox[0] - boundingBox[2]), Math.abs(boundingBox[1] - boundingBox[3])); + var i = 360, zoom = -2; + while (i > cscale) { zoom++; i = i / 2; } + } + + if (markers.length == 1) { zoom = 8; } + + // Setup the map + d2map = new ol.Map({ + target: 'd2map', + interactions: ol.interaction.defaults({ dragPan: false, mouseWheelZoom: false }), + layers: [new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer], + view: new ol.View({ center: ol.proj.fromLonLat([clng, clat]), zoom: zoom }) + }); + document.getElementById('xxAddAgentModal').removeEventListener('shown.bs.modal', showLocation); } - - // Setup the device mark layer - var vectorSource = new ol.source.Vector({ features: markers }); - var vectorLayer = new ol.layer.Vector({ source: vectorSource }); - + document.getElementById('xxAddAgentModal').addEventListener('shown.bs.modal', showLocation); //var x = '
Open in Google maps
'; var x = '
'; xxdialogTag = '@xxmap'; setModalContent('xxAddAgent', 'Device Location', x); showModal('xxAddAgentModal', 'idx_dlgOkButton'); - - var clng = 0, clat = 0, zoom = 8; - if (boundingBox != null) { - var clat = (boundingBox[0] + boundingBox[2]) / 2; - var clng = (boundingBox[1] + boundingBox[3]) / 2; - var cscale = Math.max(Math.abs(boundingBox[0] - boundingBox[2]), Math.abs(boundingBox[1] - boundingBox[3])); - var i = 360, zoom = -2; - while (i > cscale) { zoom++; i = i / 2; } - } - - if (markers.length == 1) { zoom = 8; } - - // Setup the map - d2map = new ol.Map({ - target: 'd2map', - interactions: ol.interaction.defaults({ dragPan: false, mouseWheelZoom: false }), - layers: [new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer], - view: new ol.View({ center: ol.proj.fromLonLat([clng, clat]), zoom: zoom }) - }); return false; } @@ -10482,6 +10465,7 @@ } function askRdpCredentialsEx() { + xxdialogMode = 0; var width = null, height = null; if (desktopsettings.rdpsize) { if (desktopsettings.rdpsize == 'browser') { @@ -11562,7 +11546,12 @@ var str = displays[i], allDisplays = 1; if (str == 'All Displays') { str = "All Displays"; allDisplays = 2; } // Language translation if (str.startsWith('Display ')) { str = format("Display {0}", str.substring(8)); } // Language translation - displaySelector += ''; + var maintext = 'id=DeskMonitorSelectionX' + i + ' title="' + EscapeHtml(str) + '" onclick=deskSetDisplay(' + i + ') role=button' + if (allDisplays == 2) { + displaySelector += ''; + } else { + displaySelector += ''; + } if ((deskPreferedStickyDisplay == i) && (selDisplay != deskPreferedStickyDisplay)) { desktop.m.SetDisplay(i); } deskPreferedStickyDisplay = -1; } @@ -14536,13 +14525,13 @@ var x = '', count = 1; if ((loginTokens != null) && (loginTokens.length > 0)) { x += '

' + "Active Login Tokens" + ' -

'; - x += '
'; + x += '
' + "Name" + '' + "Username" + '
'; for (var i = 0; i < loginTokens.length; i++) { var ltoken = loginTokens[i]; - var trash = ''; + var trash = ''; var details = ''; if (ltoken.expire != 0) { details = EscapeHtml(format("Expires {0}", printDateTime(new Date(ltoken.expire)))) + ' '; } - x += ''; + x += ''; } x += '
' + "Name" + '' + "Username" + '
 ' + EscapeHtml(ltoken.name) + '
' + details + trash + '
' + EscapeHtml(ltoken.tokenUser) + '
 ' + EscapeHtml(ltoken.name) + '
' + details + trash + '
' + EscapeHtml(ltoken.tokenUser) + '

'; QV('accountCreateLoginTokenSpan', false); @@ -14675,7 +14664,7 @@ // Add device group name var meshrights = GetMeshRights(currentMesh), mname = EscapeHtml(currentMesh.name); if (mname.length == 0) { mname = '' + "None" + ''; } - if ((meshrights & 1) != 0) { mname = '' + mname + ' '; } + if ((meshrights & 1) != 0) { mname = '' + mname + ' '; } QH('p20meshName', mname); QV('MeshSummary', (currentMesh.mtype != 4)); @@ -14838,7 +14827,7 @@ x += ''; } - x += ''; + x += '
' + "User Authorizations" + '
'; // Sort the users for this mesh var count = 1, sortedusers = []; @@ -14853,18 +14842,18 @@ // Display all users for this device group for (var i in sortedusers) { - var trash = '', r = sortedusers[i].rights, rights = makeDeviceGroupRightsString(r), icon = 2; + var trash = '', r = sortedusers[i].rights, rights = makeDeviceGroupRightsString(r), icon = 'fa-user'; if ((sortedusers[i].id != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) { if ((meshrights == 0xFFFFFFFF) || (currentMesh.links[sortedusers[i].id].rights != 0xFFFFFFFF)) { - trash = ''; + trash = ''; } - rights = '' + rights + ' '; + rights = '' + rights + ' '; } - if (sortedusers[i].id.startsWith('ugrp/')) { icon = 4; } + if (sortedusers[i].id.startsWith('ugrp/')) { icon = 'fa-users'; } var username = EscapeHtml(decodeURIComponent(sortedusers[i].name)); if ((usergroups != null) && sortedusers[i].id.startsWith('ugrp/')) { username = '' + username + ''; } if ((users != null) && sortedusers[i].id.startsWith('user/')) { username = '' + username + ''; } - x += ''; + x += ''; ++count; } @@ -14872,7 +14861,7 @@ // Show device shares if ((deviceShares != null) && (deviceSharesNode == currentMesh._id) && (deviceShares.length > 0)) { - x += '

' + "User Authorizations" + '
 ' + username + '
' + trash + '
' + rights + '
 ' + username + '
' + trash + '
' + rights + '
'; + x += '

' + "Active Device Sharing" + '
'; count = 1; for (var i = 0; i < deviceShares.length; i++) { var dshare = deviceShares[i], trash = ''; @@ -14924,7 +14913,7 @@ if ((features & 1) == 0) { dllist += ' '; } // Show import only in LAN or Hybrid mode } - var y = '
' + "Active Device Sharing" + '
'; + var y = '
' + "Devices" + '' + dllist + '
'; for (var i in nodes) { var node = nodes[i], gray = ((node.conn > 0) ? '' : ' gray'); if (currentMesh._id != node.meshid) continue; @@ -15940,7 +15929,7 @@ // Add device group name var meshrights = GetMeshRights(currentMesh), mname = EscapeHtml(currentMesh.name); if (mname.length == 0) { mname = '' + "None" + ''; } - if ((meshrights & 1) != 0) { mname = '' + mname + ' '; } + if ((meshrights & 1) != 0) { mname = '' + mname + ' '; } QH('p21meshName', mname); // Update charts @@ -15998,7 +15987,7 @@ var xpowerStates = []; for (var i in powerStates) { xpowerStates.push([powerStatetable[i], powerStates[i]]); } xpowerStates.sort(function (a, b) { return -(a[1] - b[1]) }); - x += '
' + "Devices" + '' + dllist + '
'; + x += '
' + "Power States" + '
'; for (var i in xpowerStates) { x += ''; } x += '
' + "Power States" + '
' + xpowerStates[i][1] + ' ' + xpowerStates[i][0] + '
'; } @@ -16008,7 +15997,7 @@ var xagentTypes = []; for (var i in agentTypes) { xagentTypes.push([xagentsStr[i], agentTypes[i]]); } xagentTypes.sort(function (a, b) { return -(a[1] - b[1]) }); - x += ''; + x += '
' + "Agent Types" + '
'; for (var i in xagentTypes) { x += ''; } x += '
' + "Agent Types" + '
' + xagentTypes[i][1] + ' ' + xagentTypes[i][0] + '
'; } @@ -16018,7 +16007,7 @@ var xconnectivityStates = []; for (var i = 0; i < 4; i++) { xconnectivityStates.push([["Not Connected", "Agent", "Intel® AMT", "Agent + Intel® AMT"][i], connectivityStates[i]]); } xconnectivityStates.sort(function (a, b) { return -(a[1] - b[1]) }); - x += ''; + x += '
' + "Connectivity" + '
'; for (var i = 0; i < 4; i++) { if (xconnectivityStates[i][1] > 0) { x += ''; } } x += '
' + "Connectivity" + '
' + xconnectivityStates[i][1] + ' ' + xconnectivityStates[i][0] + '
'; } @@ -16036,7 +16025,7 @@ ][i], securityStates[i]]); } xsecurityStates.sort(function (a, b) { return -(a[1] - b[1]) }); - x += ''; + x += '
' + "Security" + '
'; for (var i = 0; i < 4; i++) { if (xsecurityStates[i][1] > 0) { x += ''; } } x += '
' + "Security" + '
' + xsecurityStates[i][1] + ' ' + xsecurityStates[i][0] + '
'; }