@theotherwillembotha/node-red-plugincore 0.0.50 → 0.0.52

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.
Files changed (92) hide show
  1. package/README.md +155 -23
  2. package/build/GenerateNodes.js +3 -0
  3. package/build/Nodes.html +174 -250
  4. package/build/Nodes.js +2 -0
  5. package/build/core/NodeConstructor.d.ts +4 -2
  6. package/build/core/NodeConstructor.d.ts.map +1 -1
  7. package/build/core/NodeConstructor.js +5 -3
  8. package/build/core/NodeGenerator.js +8 -8
  9. package/build/core/logger/node/ConsoleLoggerConfigNode.html +20 -61
  10. package/build/core/logger/node/LokiLoggerConfigNode.d.ts +1 -1
  11. package/build/core/logger/node/LokiLoggerConfigNode.html +37 -73
  12. package/build/core/logger/node/LokiLoggerConfigNode.js +1 -1
  13. package/build/core/logger/node/RestLoggerConfigNode.html +51 -77
  14. package/build/core/logger/node/RestLoggerConfigNode.js +1 -1
  15. package/build/core/logger/service/LoggerService.d.ts +1 -1
  16. package/build/core/logger/service/LoggerService.d.ts.map +1 -1
  17. package/build/core/logger/service/LoggerService.js +2 -3
  18. package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
  19. package/build/core/logger/template/LoggerTemplate.html +15 -12
  20. package/build/core/logger/template/LoggerTemplate.js +1 -2
  21. package/build/core/metrics/MetricsDecorator.js +2 -2
  22. package/build/core/metrics/node/CounterMetricConfigNode.html +2 -2
  23. package/build/core/metrics/node/GaugeMetricConfigNode.html +2 -2
  24. package/build/core/metrics/node/GaugeMetricConfigNode.js +2 -2
  25. package/build/core/metrics/node/MetricsConfigNode.html +1 -1
  26. package/build/core/metrics/node/TimerMetricConfigNode.html +13 -13
  27. package/build/core/metrics/service/MetricsService.d.ts +1 -1
  28. package/build/core/metrics/service/MetricsService.js +6 -6
  29. package/build/core/metrics/template/CounterMetricTemplate.html +1 -1
  30. package/build/core/metrics/template/GaugeMetricTemplate.html +1 -1
  31. package/build/core/metrics/template/TimerMetricTemplate.html +1 -1
  32. package/build/core/other/node/DelegatedConfigReferenceNode.d.ts +57 -0
  33. package/build/core/other/node/DelegatedConfigReferenceNode.d.ts.map +1 -0
  34. package/build/core/other/node/DelegatedConfigReferenceNode.html +1 -0
  35. package/build/core/other/node/DelegatedConfigReferenceNode.js +79 -0
  36. package/build/core/tagging/NodeDescriptionDecorator.js +1 -1
  37. package/build/core/tagging/service/NodeTypeService.js +1 -1
  38. package/build/core/ui/template/UIHelperTemplate.d.ts +5 -0
  39. package/build/core/ui/template/UIHelperTemplate.d.ts.map +1 -0
  40. package/build/core/ui/template/UIHelperTemplate.html +229 -0
  41. package/build/core/ui/template/UIHelperTemplate.js +11 -0
  42. package/build/core/webhook/node/WebhookServerConfigNode.html +5 -5
  43. package/build/core/webhook/template/WebhookTemplate.html +18 -10
  44. package/build/index.d.ts +2 -1
  45. package/build/index.d.ts.map +1 -1
  46. package/build/index.js +3 -1
  47. package/documentation/ConsoleLoggerConfigNode.png +0 -0
  48. package/documentation/CounterMetricConfigNode.png +0 -0
  49. package/documentation/GaugeMetricConfigNode.png +0 -0
  50. package/documentation/LokiLoggerConfigNode.png +0 -0
  51. package/documentation/MetricsConfigNode.png +0 -0
  52. package/documentation/RestLoggerConfigNode.png +0 -0
  53. package/documentation/TimerMetricConfigNode.png +0 -0
  54. package/documentation/WebhookNode.png +0 -0
  55. package/package.json +20 -8
  56. package/src/GenerateNodes.ts +5 -2
  57. package/src/core/NodeConstructor.ts +7 -4
  58. package/src/core/NodeGenerator.ts +8 -8
  59. package/src/core/logger/node/ConsoleLoggerConfigNode.html +20 -61
  60. package/src/core/logger/node/LokiLoggerConfigNode.html +37 -73
  61. package/src/core/logger/node/LokiLoggerConfigNode.ts +2 -2
  62. package/src/core/logger/node/RestLoggerConfigNode.html +51 -77
  63. package/src/core/logger/node/RestLoggerConfigNode.ts +1 -1
  64. package/src/core/logger/service/LoggerService.ts +3 -4
  65. package/src/core/logger/template/LoggerTemplate.html +15 -12
  66. package/src/core/logger/template/LoggerTemplate.ts +1 -2
  67. package/src/core/metrics/MetricsDecorator.ts +2 -2
  68. package/src/core/metrics/node/CounterMetricConfigNode.html +2 -2
  69. package/src/core/metrics/node/GaugeMetricConfigNode.html +2 -2
  70. package/src/core/metrics/node/GaugeMetricConfigNode.ts +2 -2
  71. package/src/core/metrics/node/MetricsConfigNode.html +1 -1
  72. package/src/core/metrics/node/MetricsConfigNode.ts +1 -1
  73. package/src/core/metrics/node/TimerMetricConfigNode.html +13 -13
  74. package/src/core/metrics/service/MetricsService.ts +6 -6
  75. package/src/core/metrics/template/CounterMetricTemplate.html +1 -1
  76. package/src/core/metrics/template/GaugeMetricTemplate.html +1 -1
  77. package/src/core/metrics/template/TimerMetricTemplate.html +1 -1
  78. package/src/core/other/node/DelegatedConfigReferenceNode.html +1 -0
  79. package/src/core/other/node/DelegatedConfigReferenceNode.ts +70 -0
  80. package/src/core/tagging/NodeDescriptionDecorator.ts +1 -1
  81. package/src/core/tagging/service/NodeTypeService.ts +1 -1
  82. package/src/core/ui/template/UIHelperTemplate.html +229 -0
  83. package/src/core/ui/template/UIHelperTemplate.ts +14 -0
  84. package/src/core/webhook/node/WebhookServerConfigNode.html +5 -5
  85. package/src/core/webhook/template/WebhookTemplate.html +18 -10
  86. package/src/index.ts +3 -1
  87. package/build/core/logger/node/LoggerConfigNode.d.ts +0 -30
  88. package/build/core/logger/node/LoggerConfigNode.d.ts.map +0 -1
  89. package/build/core/logger/node/LoggerConfigNode.html +0 -307
  90. package/build/core/logger/node/LoggerConfigNode.js +0 -60
  91. package/src/core/logger/node/LoggerConfigNode.html +0 -307
  92. package/src/core/logger/node/LoggerConfigNode.ts +0 -95
@@ -6,8 +6,8 @@
6
6
  .addDefault("level", {value:"info", required:true})
7
7
 
8
8
  // platform rest:
9
- .addDefault("est_url", {})
10
- .addDefault("est_ignoresslerror", {})
9
+ .addDefault("rest_url", {})
10
+ .addDefault("rest_ignoresslerror", {})
11
11
  .addDefault("rest_auth_type", {})
12
12
  .addDefault("rest_auth_basic_username", {})
13
13
  .addDefault("rest_auth_basic_password", {})
@@ -88,122 +88,96 @@
88
88
  <script type="text/html" template-section="onIncludeEditForm">
89
89
  <div id="LoggerConfig">
90
90
  <div class="form-row">
91
- <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
91
+ <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
92
92
  <input type="text" id="node-config-input-name" />
93
93
  </div>
94
94
 
95
95
  <div class="form-row">
96
- <label for="node-config-input-level"><i class="fa fa-tag"></i> Level</label>
96
+ <label class="towb_editorlabel" for="node-config-input-level"><i class="fa fa-signal"></i> Level</label>
97
97
  <input type="text" id="node-config-input-level" />
98
98
  </div>
99
99
 
100
100
  <div class="platform platform-rest">
101
101
  <div class="form-row">
102
- <label for="node-config-input-rest_url"><i class="fa fa-tag"></i> URL</label>
102
+ <label class="towb_editorlabel" for="node-config-input-rest_url"><i class="fa fa-link"></i> URL</label>
103
103
  <input class="platform-rest-input required" type="text" id="node-config-input-rest_url" />
104
104
  </div>
105
105
  <div class="form-row">
106
- <label></label>
106
+ <label class="towb_editorlabel"></label>
107
107
  <input type="checkbox" id="node-config-input-rest_ignoresslerror" style="width:20px; margin-right:5px;" />
108
108
  <label style="width:auto" for="node-config-input-rest_ignoresslerror"><span>Ignore Invalid SSL certificates</span></label>
109
109
  </div>
110
110
  <div class="form-row">
111
- <label for="node-config-input-rest_auth_type"><i class="fa fa-tag"></i> Authentication</label>
111
+ <label class="towb_editorlabel" for="node-config-input-rest_auth_type"><i class="fa fa-lock"></i> Authentication</label>
112
112
  <input class="platform-rest-input required" type="text" id="node-config-input-rest_auth_type" />
113
113
  </div>
114
114
  <div class="form-row platform-rest-auth auth-basic">
115
- <label for="node-config-input-rest_auth_basic_username"><i class="fa fa-tag"></i> Username</label>
115
+ <label class="towb_editorlabel" for="node-config-input-rest_auth_basic_username"><i class="fa fa-user"></i> Username</label>
116
116
  <input class="platform-rest-input" type="text" id="node-config-input-rest_auth_basic_username" />
117
117
  </div>
118
118
  <div class="form-row platform-rest-auth auth-basic">
119
- <label for="node-config-input-rest_auth_basic_password"><i class="fa fa-tag"></i> Password</label>
119
+ <label class="towb_editorlabel" for="node-config-input-rest_auth_basic_password"><i class="fa fa-key"></i> Password</label>
120
120
  <input class="platform-rest-input" type="password" id="node-config-input-rest_auth_basic_password" />
121
121
  </div>
122
122
  <div class="form-row platform-rest-auth auth-apikey">
123
- <label for="node-config-input-rest_auth_apikey_mechanism"><i class="fa fa-tag"></i> Mechanism</label>
123
+ <label class="towb_editorlabel" for="node-config-input-rest_auth_apikey_mechanism"><i class="fa fa-exchange"></i> Mechanism</label>
124
124
  <input class="platform-rest-input" type="text" id="node-config-input-rest_auth_apikey_mechanism" />
125
125
  </div>
126
126
  <div class="form-row platform-rest-auth auth-apikey">
127
- <label for="node-config-input-rest_auth_apikey_name"><i class="fa fa-tag"></i> APIKey name</label>
127
+ <label class="towb_editorlabel" for="node-config-input-rest_auth_apikey_name"><i class="fa fa-id-badge"></i> APIKey name</label>
128
128
  <input class="platform-rest-input" type="text" id="node-config-input-rest_auth_apikey_name" />
129
129
  </div>
130
130
  <div class="form-row platform-rest-auth auth-apikey">
131
- <label for="node-config-input-rest_auth_apikey_value"><i class="fa fa-tag"></i> APIKey value</label>
131
+ <label class="towb_editorlabel" for="node-config-input-rest_auth_apikey_value"><i class="fa fa-lock"></i> APIKey value</label>
132
132
  <input class="platform-rest-input" type="text" id="node-config-input-rest_auth_apikey_value" />
133
133
  </div>
134
134
  </div>
135
135
 
136
136
  <div class="form-row">
137
- <label for="node-config-input-templateEditor"><i class="fa fa-tag"></i> Template</label>
137
+ <label class="towb_editorlabel" for="node-config-input-templateEditor"><i class="fa fa-code"></i> Template</label>
138
138
  <div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-config-input-templateEditor"></div>
139
139
  </div>
140
140
  </div>
141
141
  </script>
142
142
 
143
143
  <script type="text/markdown" template-section="onIncludeDocumentation">
144
- Configuration node for the Logger Integration
145
-
146
- ## Inputs
147
- : *name* (string) : The common name for the logger Configuration
148
- : *level* (level) : The logging level - debug, info, warning, error
149
- : *platform*(string) : The common name for the logger Configuration
150
- : *template*(mustache) : A template for the log messages.
151
-
152
- ## Logger platform
153
- Currently supported logging platforms
154
-
155
- ### Console
156
- The log message will be printed out to stdio
157
-
158
- ### Http / Https
159
- Publish the message to an http endpoint using a http / https POST command.
160
-
161
- : *url* (url) : The endpoint for the url where requests are to be posted to.
162
- : *ignore ssl errors* (boolean) : If enabled, the invalid ssl certificates will be ignored.
163
- : *authentication* (auth method) : what auth method should be used for the http request. (none, basic, api key)
164
-
165
- #### Authentication
166
- ##### Basic
167
- Provides basic authentication using the Authorization header
168
-
169
- : *username* (string) : the username used for basic authentication
170
- : *password* (string) : the password used for basic authentication
171
-
172
- ##### APIKey
173
- Provides authentication using a matrix parameter, header or query parameter and an apikey
174
-
175
- : *mechanism* (mechanism) : the mechanism that will be used for transmitting the key (header, queryparam, matrixparam)
176
- : *apikey name* (string) : the name of the key used for api authentication. (path variable or query param name)
177
- : *apikey value*(string) : the value of the api key that will be transmitted. (beware of special characters)
178
-
179
- ### Loki
180
- Publish the message to a loki endpoint.
181
-
182
- : *host* (string) : the host and port\ of the loki instance that it being logged to
183
- : *tenant* (string) : the tenant id that will be used to log to
184
- : *username* (string) : the username for the loki instance.
185
- : *authtoken* (string) : the authtoken for the loki instance.
186
-
187
- # Mustache Templating
188
- Mustache / Handlebars are used for building up the logged message payloads that are sent to the logging backend.
189
- The resultant message will be interpreted as a string, meaning care should be taken in the event that a string representation of a json object is built.
190
-
191
- ### Provided Properties
192
- A couple of values are provided to the logging context by default.
193
-
194
- : *msg* (object) : an object containing the payload or message that should be parsed through the template.
195
- : *currentTime* (object) : a string containing the current time in ISO8601 format
196
-
197
- ### Mustache Helpers
198
- In addition to the provided properties, some "helpers" have also been provided to assist in serialization.
199
-
200
- : *json* (helper) : converts a json object to a string using the JSON.stringify method.
201
-
202
- ## Examples
203
- - {{{json msg}}} - serializes the the msg object to json format.
204
-
205
- # References
206
- - [Mustache - Wikipedia](https://en.wikipedia.org/wiki/Mustache_(template_system))
207
- - [Mustache - Playground](https://jgonggrijp.gitlab.io/wontache/playground.html)
144
+ Posts log messages to an HTTP or HTTPS endpoint as a JSON payload.
145
+
146
+ ### Properties
147
+ : *name* (string) : A descriptive name for this logger configuration.
148
+ : *level* (level) : The minimum log level. Messages below this threshold are suppressed. Options: DEBUG, INFO, WARNING, ERROR.
149
+ : *url* (url) : The endpoint that log messages will be POSTed to.
150
+ : *ignore SSL errors* (boolean) : When enabled, invalid SSL certificates are accepted.
151
+ : *authentication* (select) : The authentication strategy applied to each request. Options: None, Basic, ApiKey.
152
+ : *template* (mustache) : A Mustache/Handlebars template that formats the log message body.
153
+
154
+ ### Authentication
155
+ #### Basic
156
+ Authenticates using the HTTP `Authorization` header (RFC 7617).
157
+ : *username* (string) : The username credential.
158
+ : *password* (string) : The password credential.
159
+
160
+ #### ApiKey
161
+ Authenticates by injecting a key/value pair into the request.
162
+ : *mechanism* (select) : Where the key is injected Header, Query Param, or Matrix Param.
163
+ : *APIKey name* (string) : The name of the key (e.g. `x-api-key`).
164
+ : *APIKey value* (string) : The value of the key.
165
+
166
+ ### Mustache Templating
167
+ Mustache/Handlebars templates build the message string POSTed to the endpoint.
168
+
169
+ #### Provided Properties
170
+ : *msg* (object) : The Node-RED message object passed through the node.
171
+ : *currentTime* (string) : The current time in ISO 8601 format.
172
+
173
+ #### Helpers
174
+ : *json* (helper) : Serialises an object to a JSON string using `JSON.stringify`.
175
+
176
+ #### Examples
177
+ - `{{{json msg}}}` serialises the full message object as JSON.
178
+
179
+ #### References
180
+ - [Mustache Wikipedia](https://en.wikipedia.org/wiki/Mustache_(template_system))
181
+ - [Mustache — Playground](https://jgonggrijp.gitlab.io/wontache/playground.html)
208
182
  </script>
209
183
 
@@ -24,7 +24,7 @@ interface RestLoggerConfigNodeConfig extends ConfigNodeConfig {
24
24
 
25
25
  @NodeDescription({
26
26
  id:"RestLoggerConfigNode",
27
- name:"Console Logger",
27
+ name:"Rest Endpoint Logger",
28
28
  group:"config",
29
29
  sourceFile:SourceUtility.getSourcePath("/build/", "/src/") + "RestLoggerConfigNode.html",
30
30
  package: "@theotherwillembotha/node-red-plugincore",
@@ -5,7 +5,6 @@ import Handlebars from "handlebars";
5
5
  import { createLogger, format, transports } from "winston";
6
6
  import LokiTransport from "winston-loki";
7
7
  import { URLRecord, parseURL } from 'whatwg-url';
8
- import { LoggerConfigNode } from "../node/LoggerConfigNode";
9
8
  import { LoggerTemplate } from "../template/LoggerTemplate";
10
9
  var network = require('network');
11
10
  import deepEqual from "deep-equal";
@@ -137,7 +136,7 @@ export interface LokiLoggerConfig extends BaseLoggerConfig{
137
136
  host:string;
138
137
  userid?:string;
139
138
  authtoken?:string;
140
- tenantID?:string;
139
+ tenantid?:string;
141
140
  }
142
141
 
143
142
  class LokiLogger extends NewLogger<LokiLoggerConfig>{
@@ -151,7 +150,7 @@ class LokiLogger extends NewLogger<LokiLoggerConfig>{
151
150
  json: true,
152
151
  format: format.json(),
153
152
  headers: {
154
- "X-Scope-OrgID": (config.tenantID) ? config.tenantID : undefined
153
+ "X-Scope-OrgID": (config.tenantid) ? config.tenantid : undefined
155
154
  },
156
155
  replaceTimestamp: true,
157
156
  onConnectionError: (err:unknown) => console.error(err),
@@ -301,7 +300,7 @@ export class LoggerService extends BaseService {
301
300
  "services-plugin",
302
301
  "@theotherwillembotha/node-red-plugincore",
303
302
  LoggerService,
304
- [LoggerConfigNode, LoggerTemplate]
303
+ [LoggerTemplate]
305
304
  );
306
305
  }
307
306
  }
@@ -102,7 +102,7 @@
102
102
  <script type="text/javascript" template-section="onCompose">
103
103
  node
104
104
  .addDefault("logEnabled", { value:false, required:true})
105
- .addDefault("logger", { required:false})
105
+ .addDefault("logger", { required:false, value:'', type:"DelegatedConfigReferenceNode"})
106
106
  .addDefault("logTemplateOverrideEnabled", {value:false})
107
107
  .addDefault("logTemplateOverride", {value:"message:{{msg}}"})
108
108
  </script>
@@ -186,7 +186,7 @@
186
186
  value: node.logTemplateOverride
187
187
  });
188
188
 
189
- let loggerSelector = $("#{{defaults.logger}}");
189
+ let loggerSelector = $("#logger-selector");
190
190
  let loggerEditButton = $("#logger-edit-btn");
191
191
  let loggerAddButton = $("#logger-add-btn");
192
192
 
@@ -199,7 +199,7 @@
199
199
 
200
200
  // figure out what type of logger this is.
201
201
  let selectedLogger = (await getLoggers()).find(logger => logger.id === loggerSelector.val());
202
- RED.editor.editConfig("#{{defaults.logger}}", selectedLogger.type, selectedLogger.id);
202
+ RED.editor.editConfig("#logger-selector", selectedLogger.type, selectedLogger.id);
203
203
  });
204
204
 
205
205
  loggerAddButton.on('click', function(event) {
@@ -223,14 +223,14 @@
223
223
  .appendTo($dropdown);
224
224
  });
225
225
 
226
- // Position it near the button
226
+ // Append first so outerWidth() is measurable, then position so the
227
+ // right edge of the dropdown aligns with the right edge of the button.
228
+ $('body').append($dropdown);
227
229
  $dropdown.css({
228
- top: $btn.offset().top + $btn.height(),
229
- left: $btn.offset().left
230
+ top: $btn.offset().top + $btn.outerHeight(),
231
+ left: $btn.offset().left + $btn.outerWidth() - $dropdown.outerWidth()
230
232
  });
231
233
 
232
- $('body').append($dropdown);
233
-
234
234
  $(document).on('mousedown.dropdown', function(e) {
235
235
  if (!$(e.target).closest('.loggertype-dropdown').length) {
236
236
  $dropdown.remove();
@@ -247,7 +247,7 @@
247
247
  // Do whatever you need with the selection
248
248
  console.log('Selected:', selectedValue, selectedText);
249
249
  $dropdown.remove();
250
- RED.editor.editConfig("#{{defaults.logger}}", selectedValue, "_ADD_");
250
+ RED.editor.editConfig("#logger-selector", selectedValue, "_ADD_");
251
251
  });
252
252
  })
253
253
  });
@@ -265,12 +265,15 @@
265
265
  // lastly, make sure that we set the correct value on the logger selector.
266
266
  updateLoggerSelectorList().then(() => {
267
267
  loggerSelector.val(node.logger);
268
+ loggerSelector.trigger('change');
268
269
  });
269
270
 
270
271
  </script>
271
272
 
272
273
  <script type="text/javascript" template-section="onIncludeEditSave">
273
274
  node = this;
275
+ var selectedLogger = $("#logger-selector").val();
276
+ node.logger = (selectedLogger && selectedLogger !== "_ADD_") ? selectedLogger : '';
274
277
  node.logTemplateOverride = node.logTemplateOverrideEditor.getValue();
275
278
  node.logTemplateOverrideEditor.destroy();
276
279
  delete node.logTemplateOverrideEditor;
@@ -289,9 +292,9 @@
289
292
 
290
293
  <div id="section_logEnabled">
291
294
  <div class="form-row nomargin">
292
- <label for="{{defaults.logger}}">Logger</label>
295
+ <label for="logger-selector">Logger</label>
293
296
  <div style="width: 70%; display: inline-flex;">
294
- <select id="{{defaults.logger}}" style="flex-grow: 1;" class="">
297
+ <select id="logger-selector" style="flex-grow: 1;" class="">
295
298
  <option value="_ADD_">none</option>
296
299
  </select>
297
300
  <a id="logger-edit-btn" class="red-ui-button disabled" style="margin-left: 10px;">
@@ -310,7 +313,7 @@
310
313
 
311
314
  <div id="section_logTemplateOverrideEnabled">
312
315
  <div class="form-row">
313
- <label for="node-input-logTemplateOverrideEditor"><i class="fa fa-tag"></i> Template</label>
316
+ <label class="towb_editorlabel" for="node-input-logTemplateOverrideEditor"><i class="fa fa-code"></i> Template</label>
314
317
  <div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-input-logTemplateOverrideEditor"></div>
315
318
  </div>
316
319
  </div>
@@ -1,6 +1,5 @@
1
1
  import { SourceUtility } from "../../NodeGenerator";
2
2
  import { BaseNodeConfig, Template, TemplateDescriptor } from "../../NodeConstructor"
3
- import { LoggerConfigNode } from "../node/LoggerConfigNode";
4
3
 
5
4
  export interface LoggerTemplateConfig extends BaseNodeConfig{
6
5
  logEnabled:boolean,
@@ -17,7 +16,7 @@ export class LoggerTemplate extends Template {
17
16
  "logger",
18
17
  LoggerTemplate,
19
18
  SourceUtility.getSourcePath("/build/", "/src/") + "LoggerTemplate.html",
20
- [LoggerConfigNode],
19
+ [],
21
20
  )
22
21
  }
23
22
  }
@@ -100,7 +100,7 @@ export function Metrics(metricsConfig: MetricsConfig):Function {
100
100
  metricdescription:metricsConfig.description,
101
101
  node:nde
102
102
  };
103
- this[valueSymbol] = _metrics.guage(gaugeConfig);
103
+ this[valueSymbol] = _metrics.gauge(gaugeConfig);
104
104
  return this[valueSymbol];
105
105
  }
106
106
 
@@ -183,7 +183,7 @@ export function Metrics(metricsConfig: MetricsConfig):Function {
183
183
  metricdescription:metricsConfig.description,
184
184
  node:nde
185
185
  };
186
- this[valueSymbol] = _metrics.guage(gaugeConfig);
186
+ this[valueSymbol] = _metrics.gauge(gaugeConfig);
187
187
  return this[valueSymbol];
188
188
  }
189
189
 
@@ -20,12 +20,12 @@
20
20
  <script type="text/html" template-section="onIncludeEditForm">
21
21
  <div id="MetricsConfig">
22
22
  <div class="form-row">
23
- <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
23
+ <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
24
24
  <input type="text" id="node-config-input-name" />
25
25
  </div>
26
26
 
27
27
  <div class="form-row">
28
- <label for="node-config-input-description"><i class="fa fa-tag"></i> Description</label>
28
+ <label class="towb_editorlabel" for="node-config-input-description"><i class="fa fa-info-circle"></i> Description</label>
29
29
  <input type="text" id="node-config-input-description" />
30
30
  </div>
31
31
 
@@ -20,12 +20,12 @@
20
20
  <script type="text/html" template-section="onIncludeEditForm">
21
21
  <div id="MetricsConfig">
22
22
  <div class="form-row">
23
- <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
23
+ <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
24
24
  <input type="text" id="node-config-input-name">
25
25
  </div>
26
26
 
27
27
  <div class="form-row">
28
- <label for="node-config-input-description"><i class="fa fa-tag"></i> Description</label>
28
+ <label class="towb_editorlabel" for="node-config-input-description"><i class="fa fa-info-circle"></i> Description</label>
29
29
  <input type="text" id="node-config-input-description">
30
30
  </div>
31
31
 
@@ -14,7 +14,7 @@ interface GaugeMetricConfigNodeConfig extends ConfigNodeConfig, GaugeMetricConfi
14
14
 
15
15
  @NodeDescription({
16
16
  id:"GaugeMetricConfigNode",
17
- name:"Guage Metric Config Node",
17
+ name:"Gauge Metric Config Node",
18
18
  group:"config",
19
19
  sourceFile:SourceUtility.getSourcePath("/build/", "/src/") + "GaugeMetricConfigNode.html",
20
20
  package: "@theotherwillembotha/node-red-plugincore",
@@ -45,7 +45,7 @@ export class GaugeMetricConfigNode extends ConfigNode<GaugeMetricConfigNodeConfi
45
45
  }
46
46
  };
47
47
 
48
- this._gauge = this._metrics.guage(gaugeConfig);
48
+ this._gauge = this._metrics.gauge(gaugeConfig);
49
49
 
50
50
  if(config.reset){
51
51
  _this._gauge.reset();
@@ -8,7 +8,7 @@
8
8
  <script type="text/html" template-section="onIncludeEditForm">
9
9
  <div id="MetricsConfig">
10
10
  <div class="form-row">
11
- <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
11
+ <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
12
12
  <input type="text" id="node-config-input-name" />
13
13
  </div>
14
14
  </div>
@@ -16,7 +16,7 @@ The metrics / repositories are menanaged by the plugin and triggered when the fl
16
16
 
17
17
  The reasoning for this is that the Metrics exist outside of the flow, but is configured using the flow.
18
18
  Basically, if the metrics arent changed, we dont have to redeploy the metrics, which means that
19
- stuff like coutners, guages and timers are not reset.
19
+ stuff like coutners, gauges and timers are not reset.
20
20
  */
21
21
  interface MetricsConfigNodeConfig extends ConfigNodeConfig, WebhookTemplateConfig {
22
22
  }
@@ -88,23 +88,23 @@
88
88
  <script type="text/html" template-section="onIncludeEditForm">
89
89
  <div id="TimerMetricConfig">
90
90
  <div class="form-row">
91
- <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
91
+ <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
92
92
  <input type="text" id="node-config-input-name" />
93
93
  </div>
94
94
 
95
95
  <div class="form-row">
96
- <label class="towb_editorlabel" for="node-config-input-description"><i class="fa fa-tag"></i> Description</label>
96
+ <label class="towb_editorlabel" for="node-config-input-description"><i class="fa fa-info-circle"></i> Description</label>
97
97
  <input type="text" id="node-config-input-description" />
98
98
  </div>
99
99
 
100
100
  <div class="form-row">
101
- <label class="towb_editorlabel" for="node-config-input-metricType"><i class="fa fa-tag"></i> Type</label>
101
+ <label class="towb_editorlabel" for="node-config-input-metricType"><i class="fa fa-bar-chart"></i> Type</label>
102
102
  <input class="towb_editorfield" type="text" id="node-config-input-metricType" />
103
103
  </div>
104
104
 
105
105
  <div class="metrictype metrictype_histogram">
106
106
  <div class="form-row">
107
- <label class="towb_editorlabel" for="node-config-input-buckettype"><i class="fa fa-tag"></i> Bucket Type</label>
107
+ <label class="towb_editorlabel" for="node-config-input-buckettype"><i class="fa fa-sliders"></i> Bucket Type</label>
108
108
  <input class="towb_editorfield" type="text" id="node-config-input-buckettype" />
109
109
  </div>
110
110
 
@@ -114,37 +114,37 @@
114
114
 
115
115
  <div class="metricsconfig_buckets metricsconfig_buckets_manual">
116
116
  <div class="form-row">
117
- <label class="towb_editorlabel" for="node-config-input-buckettype_manual_intervals"><i class="fa fa-tag"></i> Buckets</label>
117
+ <label class="towb_editorlabel" for="node-config-input-buckettype_manual_intervals"><i class="fa fa-sliders"></i> Buckets</label>
118
118
  <input type="text" id="node-config-input-buckettype_manual_intervals" placeholder="0.001, 0.01, 0.1, 1, 2, 5", value="0.001, 0.01, 0.1, 1, 2, 5"/>
119
119
  </div>
120
120
  </div>
121
121
 
122
122
  <div class="metricsconfig_buckets metricsconfig_buckets_linear">
123
123
  <div class="form-row">
124
- <label class="towb_editorlabel" for="node-config-input-buckettype_linear_start"><i class="fa fa-tag"></i> Start</label>
124
+ <label class="towb_editorlabel" for="node-config-input-buckettype_linear_start"><i class="fa fa-sliders"></i> Start</label>
125
125
  <input class="towb_editorfield_short" type="text" id="node-config-input-buckettype_linear_start" placeholder="0.000", value="0.000"/>
126
126
  </div>
127
127
  <div class="form-row">
128
- <label class="towb_editorlabel" for="node-config-input-buckettype_linear_inteval"><i class="fa fa-tag"></i> Interval</label>
128
+ <label class="towb_editorlabel" for="node-config-input-buckettype_linear_interval"><i class="fa fa-sliders"></i> Interval</label>
129
129
  <input class="towb_editorfield_short" type="text" id="node-config-input-buckettype_linear_interval" placeholder="10", value="10"/>
130
130
  </div>
131
131
  <div class="form-row">
132
- <label class="towb_editorlabel" for="node-config-input-buckettype_linear_count"><i class="fa fa-tag"></i> Count</label>
132
+ <label class="towb_editorlabel" for="node-config-input-buckettype_linear_count"><i class="fa fa-sliders"></i> Count</label>
133
133
  <input class="towb_editorfield_short" type="text" id="node-config-input-buckettype_linear_count" placeholder="10", value="10"/>
134
134
  </div>
135
135
  </div>
136
136
 
137
137
  <div class="metricsconfig_buckets metricsconfig_buckets_exponential">
138
138
  <div class="form-row">
139
- <label class="towb_editorlabel" for="node-config-input-buckettype_exponential_start"><i class="fa fa-tag"></i> Start</label>
139
+ <label class="towb_editorlabel" for="node-config-input-buckettype_exponential_start"><i class="fa fa-sliders"></i> Start</label>
140
140
  <input class="towb_editorfield_short" type="text" id="node-config-input-buckettype_exponential_start" placeholder="1", value="1"/>
141
141
  </div>
142
142
  <div class="form-row">
143
- <label class="towb_editorlabel" for="node-config-input-buckettype_exponential_factor"><i class="fa fa-tag"></i> Factor</label>
143
+ <label class="towb_editorlabel" for="node-config-input-buckettype_exponential_factor"><i class="fa fa-sliders"></i> Factor</label>
144
144
  <input class="towb_editorfield_short" type="text" id="node-config-input-buckettype_exponential_factor" placeholder="2", value="2"/>
145
145
  </div>
146
146
  <div class="form-row">
147
- <label class="towb_editorlabel" for="node-config-input-buckettype_exponential_count"><i class="fa fa-tag"></i> Count</label>
147
+ <label class="towb_editorlabel" for="node-config-input-buckettype_exponential_count"><i class="fa fa-sliders"></i> Count</label>
148
148
  <input class="towb_editorfield_short" type="text" id="node-config-input-buckettype_exponential_count" placeholder="10", value="10"/>
149
149
  </div>
150
150
  </div>
@@ -152,7 +152,7 @@
152
152
 
153
153
  <div class="metrictype metrictype_summary">
154
154
  <div class="form-row">
155
- <label class="towb_editorlabel" for="node-config-input-percentiletype"><i class="fa fa-tag"></i> Percentile Type</label>
155
+ <label class="towb_editorlabel" for="node-config-input-percentiletype"><i class="fa fa-sliders"></i> Percentile Type</label>
156
156
  <input type="text" id="node-config-input-percentiletype" />
157
157
  </div>
158
158
 
@@ -162,7 +162,7 @@
162
162
 
163
163
  <div class="metricsconfig_percentiles metricsconfig_percentiles_manual">
164
164
  <div class="form-row">
165
- <label class="towb_editorlabel" for="node-config-input-percentiletype_manual_intervals"><i class="fa fa-tag"></i> Percentiles</label>
165
+ <label class="towb_editorlabel" for="node-config-input-percentiletype_manual_intervals"><i class="fa fa-sliders"></i> Percentiles</label>
166
166
  <input class="towb_editorfield" type="text" id="node-config-input-percentiletype_manual_intervals" placeholder="0.01, 0.1, 0.9, 0.99", value="0.01, 0.1, 0.9, 0.99"/>
167
167
  </div>
168
168
  </div>
@@ -415,18 +415,18 @@ export class MetricsContainer {
415
415
  return counter;
416
416
  }
417
417
 
418
- public guage(config: GaugeMetricConfig): GaugeMetric {
419
- var guageId = `gauge_${config.node.id}`;
420
- var gauge:GaugeMetric = this.gauges[guageId];
418
+ public gauge(config: GaugeMetricConfig): GaugeMetric {
419
+ var gaugeId = `gauge_${config.node.id}`;
420
+ var gauge:GaugeMetric = this.gauges[gaugeId];
421
421
  if(gauge){
422
422
  // check if the config has changed much.
423
423
  if(!deepEqual(gauge.config(), config)){
424
- this._registry.removeSingleMetric(guageId);
425
- this.gauges[guageId] = (gauge = new GaugeMetric(guageId, config, this._registry));
424
+ this._registry.removeSingleMetric(gaugeId);
425
+ this.gauges[gaugeId] = (gauge = new GaugeMetric(gaugeId, config, this._registry));
426
426
  }
427
427
  }
428
428
  else{
429
- this.gauges[guageId] = (gauge = new GaugeMetric(guageId, config, this._registry));
429
+ this.gauges[gaugeId] = (gauge = new GaugeMetric(gaugeId, config, this._registry));
430
430
  }
431
431
  return gauge;
432
432
  }
@@ -28,7 +28,7 @@
28
28
  <!-- CounterMetric -->
29
29
  <div id="section_countermetricconfig">
30
30
  <div class="form-row">
31
- <label for="node-input-counterConfig"><i class="fa fa-tag"></i> Counter</label>
31
+ <label class="towb_editorlabel" for="node-input-counterConfig"><i class="fa fa-bar-chart"></i> Counter</label>
32
32
  <input type="text" id="node-input-counterConfig" />
33
33
  </div>
34
34
  </div>
@@ -27,7 +27,7 @@
27
27
  <!-- GaugeMetric -->
28
28
  <div id="section_gaugemetricconfig">
29
29
  <div class="form-row">
30
- <label for="node-input-gaugeConfig"><i class="fa fa-tag"></i> Gauge</label>
30
+ <label class="towb_editorlabel" for="node-input-gaugeConfig"><i class="fa fa-bar-chart"></i> Gauge</label>
31
31
  <input type="text" id="node-input-gaugeConfig" />
32
32
  </div>
33
33
  </div>
@@ -27,7 +27,7 @@
27
27
 
28
28
  <div id="section_timermetricconfig">
29
29
  <div class="form-row">
30
- <label for="node-input-timerConfig"><i class="fa fa-tag"></i> Timer</label>
30
+ <label class="towb_editorlabel" for="node-input-timerConfig"><i class="fa fa-clock-o"></i> Timer</label>
31
31
  <input type="text" id="node-input-timerConfig" />
32
32
  </div>
33
33
  </div>
@@ -0,0 +1 @@
1
+ <!-- This section is intentionally left blank -->