mirror of
https://github.com/BetterCorp/BetterFrame.git
synced 2026-05-26 23:26:34 +00:00
Trigger nodes now self-contained inputs (inputs:0): - Each registers POST /api/internal/<topic> on RED.httpNode - Angie returns 404 for any /api/* not whitelisted (kiosk/pair/admin) so external requests cannot trigger BF nodes - Server bridge POSTs direct to nodered container (bypasses Angie) - nodered-bridge.ts updated to use /api/internal/<topic> - 6 trigger nodes converted: display-power, layout-changed, kiosk-changed, camera-changed, status, kiosk-camera-event - Optional per-node filters (display_id, kiosk_id, camera_id) - close handler removes only this node's route layer
43 lines
1.7 KiB
HTML
43 lines
1.7 KiB
HTML
<script type="text/javascript">
|
|
RED.nodes.registerType("bf-trigger-display-power", {
|
|
category: "BetterFrame Triggers",
|
|
color: "#a6d4ff",
|
|
defaults: {
|
|
name: { value: "" },
|
|
display_id: { value: "" },
|
|
},
|
|
inputs: 0,
|
|
outputs: 1,
|
|
icon: "betterframe.svg",
|
|
label: function () {
|
|
return this.name || "display power";
|
|
},
|
|
paletteLabel: "Display Power Trigger",
|
|
});
|
|
</script>
|
|
|
|
<script type="text/html" data-template-name="bf-trigger-display-power">
|
|
<div class="form-row">
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
<input type="text" id="node-input-name" placeholder="(optional)" />
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-input-display_id"><i class="fa fa-desktop"></i> Display ID</label>
|
|
<input type="number" id="node-input-display_id" placeholder="(blank = all displays)" />
|
|
</div>
|
|
<div class="form-tips">
|
|
Fires on <code>display.power.changed</code> (wake/standby).
|
|
Listens on <code>POST /in/display.power.changed</code> internally — no upstream
|
|
<code>http in</code> node required.
|
|
Emits <code>msg.payload = {display_id, kiosk_id, state}</code>.
|
|
Leave Display ID blank to receive events from all displays.
|
|
</div>
|
|
</script>
|
|
|
|
<script type="text/html" data-help-name="bf-trigger-display-power">
|
|
<p>Fires when a display's power state changes (admin wake/standby command).</p>
|
|
<p>Listens on <code>POST /in/display.power.changed</code> internally — no upstream
|
|
<code>http in</code> node needed. The BetterFrame server's nodered-bridge POSTs
|
|
events to that path directly.</p>
|
|
<p>Optional <b>Display ID</b> filter limits this node to a single display.</p>
|
|
</script>
|