@isaac-platform/isaac-node-red
Version:
Set of Node-RED nodes to communicate with an ISAAC system
72 lines (67 loc) • 2.22 kB
HTML
<script type="text/javascript">
// isaac prefix ensures that node appears when filtering by "isaac"
RED.nodes.registerType('isaac messages', {
category: 'ISAAC',
color: '#C0C0C0',
icon: 'isaac.svg',
inputs: 0,
outputs: 1,
paletteLabel: 'messages',
label: function () {
if (this.name) {
return this.name;
}
return this.paletteLabel;
},
defaults: {
isaacConnection: { type: 'isaac-connection', required: true },
name: { value: '' },
},
oneditprepare: function () {
const updateApiLink = () => {
const configNodeId = $('#node-input-isaacConnection').val();
if (!configNodeId) {
return;
}
const configNode = RED.nodes.node(configNodeId);
if (!configNode || !configNode.ipAddress) {
const links = document.querySelectorAll('.isaac-workspace-link, .isaac-doc-link');
links.forEach((link) => {
link.style.display = 'none';
});
return;
}
const docLink = document.querySelector('.isaac-doc-link');
if (docLink) {
docLink.style.display = docLink.classList.contains('isaac-full-width') ? 'block' : 'inline';
docLink.href = `${configNode.ipAddress}/docs/v1/?urls.primaryName=Subsystems`;
}
};
updateApiLink();
$('#node-input-isaacConnection').change(updateApiLink);
},
});
</script>
<script type="text/html" data-template-name="isaac messages">
<div class="form-row">
<label for="node-input-isaacConnection"><i class="fa fa-server"></i> Connection</label>
<input type="text" id="node-input-isaacConnection" />
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Node Name</label>
<input type="text" id="node-input-name" />
</div>
<div style="margin-top:12px">
<a href="" target="_blank" class="isaac-doc-link isaac-full-width" style="text-decoration:underline">
<i class="fa fa-book" style="margin-right:8px"></i>API Documentation: Subsystems
</a>
</div>
</script>
<script type="text/html" data-help-name="isaac messages">
<p>Incoming messages from ISAAC for processing</p>
<h3>Outputs</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">array</span></dt>
<dd>The messages returned</dd>
</dl>
</script>