mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Add more consistent events in the editor
This introduces a much more consistent set of events within the editor for whenever a element is added, removed or modified. The events emited on the `RED.events` event system. The event names take the form: `"<thing>:<action>"`. `<thing>` can be one of: - nodes - flows - subflows - groups - links `<action>` can be one of: - add - remove - change The payload of the events is the object in question. There is also: - flows:reorder - when tabs are reordered. Payload is array of flow ids. - workspace:clear - when the workspace is emptied - part of switching projects The `nodes:change` event was already used by RED.nodes.dirty() to cause the Deploy button to become active. This renames that event to: - workspace:dirty - Payload is boolean flag for the dirty state This commit also updates the Palette to use the subflows:change event to only redraw subflows that have actually changed rather than refresh them all whenever one of them *might* have changed. This removes a noticable flicker of the icon which was needlessly being redrawn.
This commit is contained in:
@@ -32,11 +32,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
function emit(evt,arg) {
|
||||
function emit() {
|
||||
var evt = arguments[0]
|
||||
var args = Array.prototype.slice.call(arguments,1);
|
||||
if (RED.events.DEBUG) {
|
||||
console.log(evt,args);
|
||||
}
|
||||
if (handlers[evt]) {
|
||||
for (var i=0;i<handlers[evt].length;i++) {
|
||||
try {
|
||||
handlers[evt][i](arg);
|
||||
handlers[evt][i].apply(null, args);
|
||||
} catch(err) {
|
||||
console.log("RED.events.emit error: ["+evt+"] "+(err.toString()));
|
||||
console.log(err);
|
||||
|
Reference in New Issue
Block a user