adjust ui timing check for ui_worldmap

pull/180/head
Dave Conway-Jones 3 years ago
parent 086ce2116a
commit 5eb3985ad1
No known key found for this signature in database
GPG Key ID: 88BA2B8A411BE9FF

@ -1,5 +1,6 @@
### Change Log for Node-RED Worldmap
- v2.15.8 - Adjust ui check timing for UI worldmap.
- v2.15.7 - Tidy up geoJson handling a bit more.
- v2.15.5 - Fix SIDC icons to accept unicoded icons as labels.
- v2.15.4 - Let clear heatmap command do what it says.

@ -11,6 +11,7 @@ map web page for plotting "things" on.
### Updates
- v2.15.8 - Adjust ui check timing for UI worldmap.
- v2.15.7 - Tidy up geoJson handling a bit more.
- v2.15.5 - Fix SIDC icons to accept unicoded icons as labels.
- v2.15.4 - Let clear heatmap command do what it says.

@ -1,6 +1,6 @@
{
"name": "node-red-contrib-web-worldmap",
"version": "2.15.7",
"version": "2.15.8",
"description": "A Node-RED node to provide a web page of a world map for plotting things on.",
"dependencies": {
"cgi": "0.3.1",

@ -31,13 +31,12 @@ module.exports = function(RED) {
function worldMap(node, n) {
RED.nodes.createNode(node,n);
node.lat = n.lat || "";
node.lon = n.lon || "";
node.zoom = n.zoom || "";
node.lat = n.lat ?? "";
node.lon = n.lon ?? "";
node.zoom = n.zoom ?? "";
node.layer = n.layer || "";
node.cluster = n.cluster || "";
node.maxage = n.maxage || "";
if (n.maxage == 0) { node.maxage = "0"; }
node.maxage = n.maxage ?? "";
node.showmenu = n.usermenu || "show";
node.layers = n.layers || "show";
node.panlock = n.panlock || "false";
@ -127,7 +126,6 @@ module.exports = function(RED) {
});
sockets[node.path].on('connection', callback);
}
var WorldMap = function(n) {
worldMap(this, n);
}
@ -161,54 +159,54 @@ module.exports = function(RED) {
}
var ui = undefined;
try {
ui = RED.require("node-red-dashboard")(RED);
}
catch(e) {
RED.log.info("Node-RED Dashboard not found - ui_worldmap not installed.");
}
setTimeout( function() {
try {
ui = RED.require("node-red-dashboard")(RED);
if (ui) {
function UIWorldMap(config) {
try {
var node = this;
worldMap(node, config);
var done = null;
if (checkConfig(node, config)) {
var html = HTML(ui, config);
done = ui.addWidget({
node: node,
order: config.order,
group: config.group,
width: config.width,
height: config.height,
format: html,
templateScope: "local",
emitOnlyNewValues: false,
forwardInputMessages: false,
storeFrontEndInputAsState: false,
convertBack: function (value) {
return value;
},
beforeEmit: function(msg, value) {
return { msg: { items: value } };
},
beforeSend: function (msg, orig) {
if (orig) { return orig.msg; }
},
initController: function($scope, events) {
}
});
}
}
catch (e) {
console.log(e);
if (ui) {
function UIWorldMap(config) {
try {
var node = this;
worldMap(node, config);
var done = null;
if (checkConfig(node, config)) {
var html = HTML(ui, config);
done = ui.addWidget({
node: node,
order: config.order,
group: config.group,
width: config.width,
height: config.height,
format: html,
templateScope: "local",
emitOnlyNewValues: false,
forwardInputMessages: false,
storeFrontEndInputAsState: false,
convertBack: function (value) {
return value;
},
beforeEmit: function(msg, value) {
return { msg: { items: value } };
},
beforeSend: function (msg, orig) {
if (orig) { return orig.msg; }
},
initController: function($scope, events) {
}
});
}
node.on("close", function() {
if (done) { done(); }
});
}
setImmediate(function() { RED.nodes.registerType("ui_worldmap", UIWorldMap) });
catch (e) {
console.log(e);
}
node.on("close", function() {
if (done) { done(); }
});
}
}
catch(e) {
RED.log.info("Node-RED Dashboard not found - ui_worldmap not installed.");
setImmediate(function() { RED.nodes.registerType("ui_worldmap", UIWorldMap) });
}
}, 250);
@ -280,7 +278,7 @@ module.exports = function(RED) {
var bezierSpline = require("@turf/bezier-spline").default;
var doTrack = function(msg) {
if (msg.hasOwnProperty("payload") && msg.payload.hasOwnProperty("name")) {
if (msg?.payload.hasOwnProperty("name")) {
var newmsg = RED.util.cloneMessage(msg);
if (msg.payload.deleted) {
if (msg.payload.name.substr(-1) === '_') {
@ -359,7 +357,7 @@ module.exports = function(RED) {
node.send(newmsg); // send the track
}
}
if (msg.hasOwnProperty("payload") && msg.payload.hasOwnProperty("command") && msg.payload.command.hasOwnProperty("clear")) {
if (msg?.payload?.command.hasOwnProperty("clear")) {
for (var p in node.pointsarray) {
if (node.pointsarray.hasOwnProperty(p)) {
if (node.pointsarray[p][0].layer === msg.payload.command.clear) {
@ -427,7 +425,7 @@ module.exports = function(RED) {
}
var doHull = function(msg) {
if (msg.hasOwnProperty("payload") && msg.payload.hasOwnProperty("name")) {
if (msg?.payload.hasOwnProperty("name")) {
var newmsg = RED.util.cloneMessage(msg);
newmsg.payload = {};
newmsg.payload[node.prop] = msg.payload[node.prop] || "unknown";
@ -503,7 +501,6 @@ module.exports = function(RED) {
}
RED.nodes.registerType("worldmap-hull",WorldMapHull);
RED.httpNode.get("/.ui-worldmap", function(req, res) {
res.send(ui ? "true": "false");
});

Loading…
Cancel
Save