1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Merge pull request #2845 from node-red/subflow-delete-prompt

Add confirm dialog when deleting subflow with instances in use
This commit is contained in:
Nick O'Leary 2021-01-29 10:57:11 +00:00 committed by GitHub
commit a03edf3d58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 5 deletions

View File

@ -338,6 +338,7 @@
"output": "outputs:", "output": "outputs:",
"status": "status node", "status": "status node",
"deleteSubflow": "delete subflow", "deleteSubflow": "delete subflow",
"confirmDelete": "Are you sure you want to delete this subflow?",
"info": "Description", "info": "Description",
"category": "Category", "category": "Category",
"module": "Module", "module": "Module",

View File

@ -464,12 +464,43 @@ RED.subflow = (function() {
$("#red-ui-subflow-delete").on("click", function(event) { $("#red-ui-subflow-delete").on("click", function(event) {
event.preventDefault(); event.preventDefault();
var startDirty = RED.nodes.dirty(); var subflow = RED.nodes.subflow(RED.workspaces.active());
var historyEvent = removeSubflow(RED.workspaces.active()); if (subflow.instances.length > 0) {
historyEvent.t = 'delete'; var msg = $('<div>')
historyEvent.dirty = startDirty; $('<p>').text(RED._("subflow.subflowInstances",{count: subflow.instances.length})).appendTo(msg);
$('<p>').text(RED._("subflow.confirmDelete")).appendTo(msg);
var confirmDeleteNotification = RED.notify(msg, {
modal: true,
fixed: true,
buttons: [
{
text: RED._('common.label.cancel'),
click: function() {
confirmDeleteNotification.close();
}
},
{
text: RED._('workspace.confirmDelete'),
class: "primary",
click: function() {
confirmDeleteNotification.close();
completeDelete();
}
}
]
});
RED.history.push(historyEvent); return;
} else {
completeDelete();
}
function completeDelete() {
var startDirty = RED.nodes.dirty();
var historyEvent = removeSubflow(RED.workspaces.active());
historyEvent.t = 'delete';
historyEvent.dirty = startDirty;
RED.history.push(historyEvent);
}
}); });