41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
const datastore = require('../store/data.js')
|
|
|
|
module.exports = function (RED) {
|
|
function TableNode (config) {
|
|
const node = this
|
|
|
|
// create node in Node-RED
|
|
RED.nodes.createNode(this, config)
|
|
|
|
// which group are we rendering this widget
|
|
const group = RED.nodes.getNode(config.group)
|
|
|
|
config.maxrows = parseInt(config.maxrows) || 0
|
|
|
|
if (config.columns) {
|
|
config.columns.map((col) => {
|
|
// map older data where 'label' was used.
|
|
return {
|
|
title: col.title || col.label,
|
|
key: col.key,
|
|
type: col.type,
|
|
width: col.width,
|
|
align: col.align
|
|
}
|
|
})
|
|
}
|
|
|
|
// inform the dashboard UI that we are adding this node
|
|
group.register(node, config, {
|
|
onAction: true,
|
|
onInput: function (msg) {
|
|
// store the latest msg passed to node
|
|
datastore.save(group.getBase(), node, msg)
|
|
// do nothing else - do not pass the message on
|
|
}
|
|
})
|
|
}
|
|
|
|
RED.nodes.registerType('ui-table', TableNode)
|
|
}
|