Remove configuration for nodes disconnected age from UI and related functions, streamlining the node status display and tooltip information.
This commit is contained in:
parent
f690bb65a7
commit
57c10383e2
1 changed files with 1 additions and 67 deletions
|
|
@ -1303,29 +1303,6 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- configNodesDisconnectedAgeInSeconds -->
|
|
||||||
<div class="p-2">
|
|
||||||
<label class="block text-sm font-medium text-gray-900">Nodes Disconnected Age</label>
|
|
||||||
<div class="text-xs text-gray-600 mb-2">Nodes that have not uplinked to MQTT in this time will show as blue icons. Reload to update map.</div>
|
|
||||||
<select v-model="configNodesDisconnectedAgeInSeconds" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
|
|
||||||
<option value="900">15 minutes</option>
|
|
||||||
<option value="1800">30 minutes</option>
|
|
||||||
<option value="2700">45 minutes</option>
|
|
||||||
<option value="3600">1 hour</option>
|
|
||||||
<option value="7200">2 hours</option>
|
|
||||||
<option value="10800">3 hours</option>
|
|
||||||
<option value="21600">6 hours</option>
|
|
||||||
<option value="43200">12 hours</option>
|
|
||||||
<option value="86400">24 hours</option>
|
|
||||||
<option value="172800">2 days</option>
|
|
||||||
<option value="259200">3 days</option>
|
|
||||||
<option value="345600">4 days</option>
|
|
||||||
<option value="432000">5 days</option>
|
|
||||||
<option value="518400">6 days</option>
|
|
||||||
<option value="604800">7 days</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- configNodesOfflineAgeInSeconds -->
|
<!-- configNodesOfflineAgeInSeconds -->
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<label class="block text-sm font-medium text-gray-900">Nodes Offline Age</label>
|
<label class="block text-sm font-medium text-gray-900">Nodes Offline Age</label>
|
||||||
|
|
@ -1657,20 +1634,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getConfigNodesDisconnectedAgeInSeconds() {
|
|
||||||
// default to showing nodes as recently uplinked if heard in the last 30 minutes
|
|
||||||
const value = localStorage.getItem("config_nodes_disconnected_age_in_seconds");
|
|
||||||
return value != null ? parseInt(value) : 1800;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setConfigNodesDisconnectedAgeInSeconds(value) {
|
|
||||||
if(value != null){
|
|
||||||
return localStorage.setItem("config_nodes_disconnected_age_in_seconds", value);
|
|
||||||
} else {
|
|
||||||
return localStorage.removeItem("config_nodes_disconnected_age_in_seconds");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getConfigNodesOfflineAgeInSeconds() {
|
function getConfigNodesOfflineAgeInSeconds() {
|
||||||
const value = localStorage.getItem("config_nodes_offline_age_in_seconds");
|
const value = localStorage.getItem("config_nodes_offline_age_in_seconds");
|
||||||
return value != null ? parseInt(value) : null;
|
return value != null ? parseInt(value) : null;
|
||||||
|
|
@ -1754,7 +1717,6 @@
|
||||||
isShowingAnnouncement: this.shouldShowAnnouncement(),
|
isShowingAnnouncement: this.shouldShowAnnouncement(),
|
||||||
|
|
||||||
configNodesMaxAgeInSeconds: window.getConfigNodesMaxAgeInSeconds(),
|
configNodesMaxAgeInSeconds: window.getConfigNodesMaxAgeInSeconds(),
|
||||||
configNodesDisconnectedAgeInSeconds: window.getConfigNodesDisconnectedAgeInSeconds(),
|
|
||||||
configNodesOfflineAgeInSeconds: window.getConfigNodesOfflineAgeInSeconds(),
|
configNodesOfflineAgeInSeconds: window.getConfigNodesOfflineAgeInSeconds(),
|
||||||
configWaypointsMaxAgeInSeconds: window.getConfigWaypointsMaxAgeInSeconds(),
|
configWaypointsMaxAgeInSeconds: window.getConfigWaypointsMaxAgeInSeconds(),
|
||||||
configConnectionsMaxDistanceInMeters: window.getConfigConnectionsMaxDistanceInMeters(),
|
configConnectionsMaxDistanceInMeters: window.getConfigConnectionsMaxDistanceInMeters(),
|
||||||
|
|
@ -2654,9 +2616,6 @@
|
||||||
configNodesMaxAgeInSeconds() {
|
configNodesMaxAgeInSeconds() {
|
||||||
window.setConfigNodesMaxAgeInSeconds(this.configNodesMaxAgeInSeconds);
|
window.setConfigNodesMaxAgeInSeconds(this.configNodesMaxAgeInSeconds);
|
||||||
},
|
},
|
||||||
configNodesDisconnectedAgeInSeconds() {
|
|
||||||
window.setConfigNodesDisconnectedAgeInSeconds(this.configNodesDisconnectedAgeInSeconds);
|
|
||||||
},
|
|
||||||
configNodesOfflineAgeInSeconds() {
|
configNodesOfflineAgeInSeconds() {
|
||||||
window.setConfigNodesOfflineAgeInSeconds(this.configNodesOfflineAgeInSeconds);
|
window.setConfigNodesOfflineAgeInSeconds(this.configNodesOfflineAgeInSeconds);
|
||||||
},
|
},
|
||||||
|
|
@ -3340,13 +3299,6 @@
|
||||||
return string.replace(/</g, "<").replace(/>/g, ">");
|
return string.replace(/</g, "<").replace(/>/g, ">");
|
||||||
}
|
}
|
||||||
|
|
||||||
// determine if node was recently heard uplinking packets to mqtt
|
|
||||||
function hasNodeUplinkedToMqttRecently(node) {
|
|
||||||
const now = moment();
|
|
||||||
const configNodesDisconnectedAgeInSeconds = getConfigNodesDisconnectedAgeInSeconds();
|
|
||||||
const millisecondsSinceNodeLastUplinkedToMqtt = now.diff(moment(node.mqtt_connection_state_updated_at));
|
|
||||||
return millisecondsSinceNodeLastUplinkedToMqtt < configNodesDisconnectedAgeInSeconds * 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onNodesUpdated(updatedNodes) {
|
function onNodesUpdated(updatedNodes) {
|
||||||
|
|
||||||
|
|
@ -3416,12 +3368,6 @@
|
||||||
zIndexOffset = -1000;
|
zIndexOffset = -1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
// determine if node was recently heard uplinking packets to mqtt
|
|
||||||
//const nodeHasUplinkedToMqttRecently = hasNodeUplinkedToMqttRecently(node);
|
|
||||||
//if(nodeHasUplinkedToMqttRecently){
|
|
||||||
// icon = iconMqttConnected;
|
|
||||||
//}
|
|
||||||
|
|
||||||
// To not have overlapping nodes.
|
// To not have overlapping nodes.
|
||||||
var latJitter = 0;
|
var latJitter = 0;
|
||||||
var lonJitter = 0;
|
var lonJitter = 0;
|
||||||
|
|
@ -3967,24 +3913,11 @@
|
||||||
|
|
||||||
function getTooltipContentForNode(node) {
|
function getTooltipContentForNode(node) {
|
||||||
|
|
||||||
// determine if node was recently heard uplinking packets to mqtt
|
|
||||||
const nodeHasUplinkedToMqttRecently = hasNodeUplinkedToMqttRecently(node);
|
|
||||||
var mqttStatus = `<span class="text-blue-700">Disconnected</span>`;
|
|
||||||
if(node.mqtt_connection_state_updated_at){
|
|
||||||
var mqttStatusUpdatedAt = moment(new Date(node.mqtt_connection_state_updated_at)).fromNow();
|
|
||||||
if(nodeHasUplinkedToMqttRecently){
|
|
||||||
mqttStatus = `<span><span class="text-green-700">Connected</span> (${mqttStatusUpdatedAt})</span>`;
|
|
||||||
} else {
|
|
||||||
mqttStatus = `<span><span class="text-blue-700">Disconnected</span> (${mqttStatusUpdatedAt})</span>`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var loraFrequencyRange = getRegionFrequencyRange(node.region_name);
|
var loraFrequencyRange = getRegionFrequencyRange(node.region_name);
|
||||||
|
|
||||||
var tooltip = `<img class="mb-4 w-40 mx-auto" src="/images/devices/${node.hardware_model_name}.png" onerror="this.classList.add('hidden')"/>` +
|
var tooltip = `<img class="mb-4 w-40 mx-auto" src="/images/devices/${node.hardware_model_name}.png" onerror="this.classList.add('hidden')"/>` +
|
||||||
`<b>${escapeString(node.long_name)}</b>` +
|
`<b>${escapeString(node.long_name)}</b>` +
|
||||||
`<br/>Short Name: ${escapeString(node.short_name)}` +
|
`<br/>Short Name: ${escapeString(node.short_name)}` +
|
||||||
`<br/>MQTT: ${mqttStatus}` +
|
|
||||||
(node.num_online_local_nodes != null ? `<br/>Local Nodes Online: ${node.num_online_local_nodes}` : '') +
|
(node.num_online_local_nodes != null ? `<br/>Local Nodes Online: ${node.num_online_local_nodes}` : '') +
|
||||||
(node.position_precision != null && node.position_precision !== 32 ? `<br/>Position Precision: ${formatPositionPrecision(node.position_precision)}` : '') +
|
(node.position_precision != null && node.position_precision !== 32 ? `<br/>Position Precision: ${formatPositionPrecision(node.position_precision)}` : '') +
|
||||||
`<br/><br/>Role: ${node.role_name}` +
|
`<br/><br/>Role: ${node.role_name}` +
|
||||||
|
|
@ -4021,6 +3954,7 @@
|
||||||
tooltip += `<br/><br/>ID: ${node.node_id}`;
|
tooltip += `<br/><br/>ID: ${node.node_id}`;
|
||||||
tooltip += `<br/>Hex ID: ${node.node_id_hex}`;
|
tooltip += `<br/>Hex ID: ${node.node_id_hex}`;
|
||||||
tooltip += `<br/>Updated: ${moment(new Date(node.updated_at)).fromNow()}`;
|
tooltip += `<br/>Updated: ${moment(new Date(node.updated_at)).fromNow()}`;
|
||||||
|
tooltip += (node.mqtt_connection_state_updated_at ? `<br/>MQTT Updated: ${moment(new Date(node.mqtt_connection_state_updated_at)).fromNow()}` : '');
|
||||||
tooltip += (node.neighbours_updated_at ? `<br/>Neighbours Updated: ${moment(new Date(node.neighbours_updated_at)).fromNow()}` : '');
|
tooltip += (node.neighbours_updated_at ? `<br/>Neighbours Updated: ${moment(new Date(node.neighbours_updated_at)).fromNow()}` : '');
|
||||||
tooltip += (node.position_updated_at ? `<br/>Position Updated: ${moment(new Date(node.position_updated_at)).fromNow()}` : '');
|
tooltip += (node.position_updated_at ? `<br/>Position Updated: ${moment(new Date(node.position_updated_at)).fromNow()}` : '');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue