node-red-contrib-mobius-flow-base 2.5.86-beta.79 → 2.5.86-beta.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -193,6 +193,42 @@ module.exports = function (RED) {
193
193
  });
194
194
  };
195
195
 
196
+ /**
197
+ * Update a given node's node status based on last active time
198
+ * @param {Object} mobiusNode - The node whos status is to be updated
199
+ */
200
+ node.updateNodeStatus = function (mobiusNode) {
201
+ node.users[mobiusNode.id] = mobiusNode;
202
+ const timeSinceLastActive = Date.now() - node.users[mobiusNode.id].lastActiveTime;
203
+ let statusText = '';
204
+ let statusColour = 'green';
205
+ if (timeSinceLastActive < 15 * 60000) {
206
+ statusText = 'Active less than 15 minutes ago';
207
+ }
208
+ if (timeSinceLastActive >= 15 * 60000 && timeSinceLastActive < 3 * 60 * 60000) {
209
+ statusText = 'Active less than 3 hours ago';
210
+ }
211
+ if (timeSinceLastActive >= 3 * 60 * 60000 && timeSinceLastActive < 12 * 60 * 60000) {
212
+ statusText = 'Active less than 12 hours ago';
213
+ }
214
+ if (timeSinceLastActive >= 12 * 60 * 60000 && timeSinceLastActive < 24 * 60 * 60000) {
215
+ statusText = 'Active less than 24 hours ago';
216
+ }
217
+ if (timeSinceLastActive > 24 * 60 * 60000 && node.users[mobiusNode.id].lastActiveTime > 0) {
218
+ statusColour = 'grey';
219
+ statusText = 'Active more than 24 hours ago';
220
+ }
221
+ if (node.users[mobiusNode.id].lastActiveTime === 0) {
222
+ statusColour = 'grey';
223
+ statusText = 'Never Active';
224
+ }
225
+ node.users[mobiusNode.id].status({
226
+ fill: statusColour,
227
+ shape: 'dot',
228
+ text: statusText,
229
+ });
230
+ };
231
+
196
232
  /**
197
233
  * Register a new Mobius node with this config node
198
234
  * @param {Object} mobiusNode - The new node to register
@@ -208,54 +244,15 @@ module.exports = function (RED) {
208
244
  }
209
245
  node.users[mobiusNode.id].lastActiveTime = 0;
210
246
  node.users[mobiusNode.id].on('send', () => {
247
+ console.log('lalala');
248
+ console.log(Date.now());
211
249
  node.users[mobiusNode.id].lastActiveTime = Date.now();
250
+ node.updateNodeStatus(mobiusNode);
251
+ console.log(node.users[mobiusNode.id].lastActiveTime);
212
252
  });
213
253
  node.users[mobiusNode.id].statusCheckLoop = setInterval(() => {
214
- console.log('loop');
215
- const timeSinceLastActive = Date.now() - node.users[mobiusNode.id].lastActiveTime;
216
- if (timeSinceLastActive < 15 * 60000) {
217
- node.users[mobiusNode.id].status({
218
- fill: 'green',
219
- shape: 'dot',
220
- text: 'Active less than 15 minutes ago',
221
- });
222
- }
223
- if (timeSinceLastActive >= 15 * 60000 && timeSinceLastActive < 3 * 60 * 60000) {
224
- node.users[mobiusNode.id].status({
225
- fill: 'green',
226
- shape: 'dot',
227
- text: 'Active less than 3 hours ago',
228
- });
229
- }
230
- if (timeSinceLastActive >= 3 * 60 * 60000 && timeSinceLastActive < 12 * 60 * 60000) {
231
- node.users[mobiusNode.id].status({
232
- fill: 'green',
233
- shape: 'dot',
234
- text: 'Active less than 12 hours ago',
235
- });
236
- }
237
- if (timeSinceLastActive >= 12 * 60 * 60000 && timeSinceLastActive < 24 * 60 * 60000) {
238
- node.users[mobiusNode.id].status({
239
- fill: 'green',
240
- shape: 'dot',
241
- text: 'Active less than 24 hours ago',
242
- });
243
- }
244
- if (timeSinceLastActive > 24 * 60 * 60000 && node.users[mobiusNode.id].lastActiveTime > 0) {
245
- node.users[mobiusNode.id].status({
246
- fill: 'grey',
247
- shape: 'dot',
248
- text: 'Active more than 24 hours ago',
249
- });
250
- }
251
- if (node.users[mobiusNode.id].lastActiveTime === 0) {
252
- node.users[mobiusNode.id].status({
253
- fill: 'grey',
254
- shape: 'dot',
255
- text: 'Never Active',
256
- });
257
- }
258
- }, 5000);
254
+ node.updateNodeStatus(mobiusNode);
255
+ }, 60000);
259
256
  };
260
257
 
261
258
  /**
@@ -68,12 +68,10 @@ module.exports = function (RED) {
68
68
  ]);
69
69
  } else {
70
70
  node.send({ topic: response.uri, payload: allResources });
71
- console.log(node.lastActiveTime);
72
71
  }
73
72
  });
74
73
 
75
74
  node.serviceConn.register(node);
76
- console.log(node.statusCheckLoop);
77
75
 
78
76
  node.on('close', function (done) {
79
77
  node.serviceConn.deregister(node, done);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red-contrib-mobius-flow-base",
3
- "version": "2.5.86-beta.79",
3
+ "version": "2.5.86-beta.82",
4
4
  "description": "Node-RED base nodes for Mobius Flow",
5
5
  "main": "index.js",
6
6
  "types": "dist/index.d.ts",