|
| 1 | +--- |
| 2 | +layout: docs-api |
| 3 | +toc: toc-api-ui.html |
| 4 | +title: RED.events |
| 5 | +slug: |
| 6 | + - url: "/docs/api/ui" |
| 7 | + label: "ui" |
| 8 | + - 'events' |
| 9 | +--- |
| 10 | + |
| 11 | + |
| 12 | +The editor emits events that components can listen for so they can react as needed. |
| 13 | + |
| 14 | +*Note: any events not on this list should be considered private, subject to change without notification and not for general use.* |
| 15 | + |
| 16 | + - [`RED.events` API](#redevents-api) |
| 17 | + - [`RED.events.on( eventName, handlerFunction )`](#methods-on) |
| 18 | + - [`RED.events.off( eventName, handlerFunction )`](#methods-off) |
| 19 | + - [Available events](#available-events) |
| 20 | + - [Workspace events](#workspace-events) |
| 21 | + - [Flow configuration events](#flow-configuration-events) |
| 22 | + - [Palette events](#palette-events) |
| 23 | + |
| 24 | + |
| 25 | +### `RED.events` API |
| 26 | + |
| 27 | +#### <a href="#methods-on" name="methods-on">RED.events.on( eventName, handlerFunction )</a> |
| 28 | + |
| 29 | +Register a new handler for the given event. |
| 30 | + |
| 31 | + |
| 32 | +```javascript |
| 33 | +RED.events.on("nodes:add", function(node) { |
| 34 | + console.log("A node has been added to the workspace!") |
| 35 | +}) |
| 36 | +``` |
| 37 | + |
| 38 | +#### <a href="#methods-off" name="methods-off">RED.events.off(eventName, handlerFunction)</a> |
| 39 | + |
| 40 | +Remove a previously registered event handler. |
| 41 | + |
| 42 | +### Available events |
| 43 | + |
| 44 | +#### Workspace events |
| 45 | + |
| 46 | +Event | Payload | Description |
| 47 | +------|---------|----- |
| 48 | +`deploy` | | A new flow has been deployed |
| 49 | +`login` | `"username"` | A user has logged into the editor. If `adminAuth` is not configured, this event is never emitted |
| 50 | +`view:selection-changed` | `{<selection object>}` | The current selection in the workspace has changed |
| 51 | +`workspace:change`| `{ old: "<previous-workspace-id>", workspace: "<new-workspace-id>" }`|The workspace has switched to a different tab |
| 52 | +`workspace:clear` | | The workspace has been cleared - this happens when switching projects. |
| 53 | +`workspace:dirty` | `{ dirty:<boolean> }` | The dirty state of the editor has changed. 'Dirty' means there are undeployed changes. |
| 54 | +`workspace:hide` | `{ workspace: <workspace-id> }` | A tab has been hidden |
| 55 | +`workspace:show` | `{ workspace: <workspace-id> }` | A previously hidden tab has been shown |
| 56 | + |
| 57 | +#### Flow configuration events |
| 58 | + |
| 59 | +Event | Payload | Description |
| 60 | +------|---------|----- |
| 61 | +`flows:add` | `{<flow object>}` | A new flow has been added |
| 62 | +`flows:change` | `{<flow object>}` | A flow's properties have been changed |
| 63 | +`flows:remove` | `{<flow object>}` | A flow has been removed |
| 64 | +`flows:reorder`| `[<Array of flow ids]` | The flows have been reordered |
| 65 | +`groups:add` | `{<group object>}` | A new group has been added |
| 66 | +`groups:change` | `{<group object>}` | A group's properties have been changed |
| 67 | +`groups:remove` | `{<group object>}` | A group has been removed |
| 68 | +`links:add` | `{<link object>}` | A new link has been added |
| 69 | +`links:remove` | `{<link object>}` | A link has been removed |
| 70 | +`nodes:add` | `{<node object>}` | A new node has been added |
| 71 | +`nodes:change` | `{<node object>}` | A node's properties have been changed |
| 72 | +`nodes:remove` | `{<node object>}` | A node has been removed |
| 73 | +`nodes:reorder`| `{z:"<flow-id>", nodes:[<Array of node ids>]}`| Nodes have been reordered on a flow |
| 74 | +`subflows:add` | `{<subflow object>}` | A new subflow has been added |
| 75 | +`subflows:change` | `{<subflow object>}` | A subflow's properties have been changed |
| 76 | +`subflows:remove` | `{<subflow object>}` | A subflow has been removed |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | +#### Palette events |
| 81 | + |
| 82 | +Event | Payload | Description |
| 83 | +------|---------|----- |
| 84 | +`registry:module-updated`|`{module:"<module-name>", version:"<module-version>"}`|A module has updated to a new version |
| 85 | +`registry:node-set-added`|`{<node-set object>}`| A new Node-Set has been added to the palette |
| 86 | +`registry:node-set-disabled`|`{<node-set object>}`|A Node-Set has been disabled |
| 87 | +`registry:node-set-enabled`|`{<node-set object>}`| A Node-Set has been enabled |
| 88 | +`registry:node-set-removed`|`{<node-set object>}`| A Node-Set has been removed |
| 89 | +`registry:node-type-added`|`"node-type"`| A new Node has been added to the palette |
| 90 | +`registry:node-type-removed`|`"node-type"`| A Node has been removed from the palette |
| 91 | +`registry:plugin-added`|`"plugin-id"`| A Plugin has been added |
0 commit comments