diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 1f437fb2b81..41b3c4844db 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -193,10 +193,9 @@ openerp.web.DiagramView = openerp.web.View.extend({ var i = 0; CuteNode.destruction_callback = function(cutenode){ if(!confirm(_t("Deleting this node cannot be undone.\nIt will also delete all connected transitions.\n\nAre you sure ?"))){ - return false; + return $.Deferred().reject().promise(); } - new openerp.web.DataSet(self,self.node).unlink([cutenode.id]); - return true; + return new openerp.web.DataSet(self,self.node).unlink([cutenode.id]); }; CuteEdge.double_click_callback = function(cuteedge){ self.edit_connector(cuteedge.id); @@ -212,10 +211,9 @@ openerp.web.DiagramView = openerp.web.View.extend({ }; CuteEdge.destruction_callback = function(cuteedge){ if(!confirm(_t("Deleting this transition cannot be undone.\n\nAre you sure ?"))){ - return false; + return $.Deferred().reject().promise(); } - new openerp.web.DataSet(self,self.connector).unlink([cuteedge.id]); - return true; + return new openerp.web.DataSet(self,self.connector).unlink([cuteedge.id]); }; }, diff --git a/addons/web_diagram/static/src/js/graph.js b/addons/web_diagram/static/src/js/graph.js index d0e79b12952..b61b2bf7a6b 100644 --- a/addons/web_diagram/static/src/js/graph.js +++ b/addons/web_diagram/static/src/js/graph.js @@ -85,15 +85,15 @@ dummy_circle.animate({'r': close_button_radius }, 400, 'linear'); if(entity_type == "node"){ - if(GraphNode.destruction_callback(entity)){ + $.when(GraphNode.destruction_callback(entity)).then(function () { //console.log("remove node",entity); entity.remove(); - } + }); }else if(entity_type == "edge"){ - if(GraphEdge.destruction_callback(entity)){ + $.when(GraphEdge.destruction_callback(entity)).then(function () { //console.log("remove edge",entity); entity.remove(); - } + }); } } dummy_circle.click(click_action);