forked from f00d4tehg0dz/MMM-TeslaFi
-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
DataItemProvider.js
37 lines (29 loc) · 1.13 KB
/
DataItemProvider.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* This is the base class for any extension that provides a data item
*/
var DataItemProvider = Class.extend({
icon: null,
field: null,
value: null,
config: null, // Copy of the module configuration
context: null, // Reference to the module itself, for any function access
display: true, // Whether or not to display this row (for instance, missing data)
// Called when this provider is loaded, provides a copy of the configuration of the module
init: function (context) {
this.config = context.config;
this.context = context;
},
// Called when the main module is started
start: function () {},
// Called when we get new data from TeslaFi
// We should use this to update the icon, field and value variables
// This should be overridden in any sub-classes
onDataUpdate: function (data) {}
});
// Collection of all DataItemProviders that are registered with the module
DataItemProvider.providers = [];
// Register a new DataItemProvider with the module
DataItemProvider.register = function (identifier, details) {
DataItemProvider.providers[identifier.toLowerCase()] =
DataItemProvider.extend(details);
};