mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
fix debug undo/redo by introducing a sideEffectCallback in history object
This commit is contained in:
parent
a69db4d572
commit
a6a781f67c
@ -452,6 +452,11 @@ RED.history = (function() {
|
||||
}
|
||||
}
|
||||
|
||||
if(ev.sideEffectCallback && typeof ev.sideEffectCallback === 'function') {
|
||||
inverseEv.sideEffectCallback = ev.sideEffectCallback;
|
||||
ev.sideEffectCallback(ev);
|
||||
}
|
||||
|
||||
Object.keys(modifiedTabs).forEach(function(id) {
|
||||
var subflow = RED.nodes.subflow(id);
|
||||
if (subflow) {
|
||||
|
@ -36,6 +36,25 @@
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var subWindow = null;
|
||||
|
||||
function activateAjaxCall(node, active, successCallback) {
|
||||
$.ajax({
|
||||
url: "debug/"+node.id+"/"+(active?"enable":"disable"),
|
||||
type: "POST",
|
||||
success: successCallback,
|
||||
error: function(jqXHR,textStatus,errorThrown) {
|
||||
if (jqXHR.status == 404) {
|
||||
RED.notify(node._("common.notification.error", {message: node._("common.notification.errors.not-deployed")}),"error");
|
||||
} else if (jqXHR.status === 0) {
|
||||
RED.notify(node._("common.notification.error", {message: node._("common.notification.errors.no-response")}),"error");
|
||||
} else {
|
||||
// TODO where is the err.status comming from?
|
||||
RED.notify(node._("common.notification.error",{message:node._("common.notification.errors.unexpected",{status:err.status,message:err.response})}),"error");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
RED.nodes.registerType('debug',{
|
||||
category: 'common',
|
||||
defaults: {
|
||||
@ -73,38 +92,28 @@
|
||||
onclick: function() {
|
||||
var label = this.name||"debug";
|
||||
var node = this;
|
||||
$.ajax({
|
||||
url: "debug/"+this.id+"/"+(this.active?"enable":"disable"),
|
||||
type: "POST",
|
||||
success: function(resp, textStatus, xhr) {
|
||||
var historyEvent = {
|
||||
t:'edit',
|
||||
node:node,
|
||||
changes:{
|
||||
active:!node.active
|
||||
},
|
||||
dirty:node.dirty,
|
||||
changed:node.changed
|
||||
};
|
||||
node.changed = true;
|
||||
node.dirty = true;
|
||||
RED.nodes.dirty(true);
|
||||
RED.history.push(historyEvent);
|
||||
RED.view.redraw();
|
||||
if (xhr.status == 200) {
|
||||
RED.notify(node._("debug.notification.activated",{label:label}),"success");
|
||||
} else if (xhr.status == 201) {
|
||||
RED.notify(node._("debug.notification.deactivated",{label:label}),"success");
|
||||
}
|
||||
},
|
||||
error: function(jqXHR,textStatus,errorThrown) {
|
||||
if (jqXHR.status == 404) {
|
||||
RED.notify(node._("common.notification.error", {message: node._("common.notification.errors.not-deployed")}),"error");
|
||||
} else if (jqXHR.status === 0) {
|
||||
RED.notify(node._("common.notification.error", {message: node._("common.notification.errors.no-response")}),"error");
|
||||
} else {
|
||||
RED.notify(node._("common.notification.error",{message:node._("common.notification.errors.unexpected",{status:err.status,message:err.response})}),"error");
|
||||
activateAjaxCall(node, node.active, function(resp, textStatus, xhr) {
|
||||
var historyEvent = {
|
||||
t:'edit',
|
||||
node:node,
|
||||
changes:{
|
||||
active:!node.active
|
||||
},
|
||||
dirty:node.dirty,
|
||||
changed:node.changed,
|
||||
sideEffectCallback: function(ev) {
|
||||
activateAjaxCall(ev.node, ev.node.active);
|
||||
}
|
||||
};
|
||||
node.changed = true;
|
||||
node.dirty = true;
|
||||
RED.nodes.dirty(true);
|
||||
RED.history.push(historyEvent);
|
||||
RED.view.redraw();
|
||||
if (xhr.status == 200) {
|
||||
RED.notify(node._("debug.notification.activated",{label:label}),"success");
|
||||
} else if (xhr.status == 201) {
|
||||
RED.notify(node._("debug.notification.deactivated",{label:label}),"success");
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -281,11 +290,15 @@
|
||||
changed: n.changed,
|
||||
changes: {
|
||||
active: n.active
|
||||
},
|
||||
sideEffectCallback: function() {
|
||||
activateAjaxCall(n, n.active);
|
||||
}
|
||||
});
|
||||
n.active = false;
|
||||
n.changed = true;
|
||||
n.dirty = true;
|
||||
activateAjaxCall(n, n.active);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user