[IMP] use deferred for node and edge destruction callbacks, so the node or edge is not removed if the unlink call fails
bzr revid: xmo@openerp.com-20120305102516-3u14hvxs81qzgxd8
This commit is contained in:
parent
6ffffdc4de
commit
df25517f09
|
@ -193,10 +193,9 @@ openerp.web.DiagramView = openerp.web.View.extend({
|
||||||
var i = 0;
|
var i = 0;
|
||||||
CuteNode.destruction_callback = function(cutenode){
|
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 ?"))){
|
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 new openerp.web.DataSet(self,self.node).unlink([cutenode.id]);
|
||||||
return true;
|
|
||||||
};
|
};
|
||||||
CuteEdge.double_click_callback = function(cuteedge){
|
CuteEdge.double_click_callback = function(cuteedge){
|
||||||
self.edit_connector(cuteedge.id);
|
self.edit_connector(cuteedge.id);
|
||||||
|
@ -212,10 +211,9 @@ openerp.web.DiagramView = openerp.web.View.extend({
|
||||||
};
|
};
|
||||||
CuteEdge.destruction_callback = function(cuteedge){
|
CuteEdge.destruction_callback = function(cuteedge){
|
||||||
if(!confirm(_t("Deleting this transition cannot be undone.\n\nAre you sure ?"))){
|
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 new openerp.web.DataSet(self,self.connector).unlink([cuteedge.id]);
|
||||||
return true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
@ -85,15 +85,15 @@
|
||||||
dummy_circle.animate({'r': close_button_radius }, 400, 'linear');
|
dummy_circle.animate({'r': close_button_radius }, 400, 'linear');
|
||||||
|
|
||||||
if(entity_type == "node"){
|
if(entity_type == "node"){
|
||||||
if(GraphNode.destruction_callback(entity)){
|
$.when(GraphNode.destruction_callback(entity)).then(function () {
|
||||||
//console.log("remove node",entity);
|
//console.log("remove node",entity);
|
||||||
entity.remove();
|
entity.remove();
|
||||||
}
|
});
|
||||||
}else if(entity_type == "edge"){
|
}else if(entity_type == "edge"){
|
||||||
if(GraphEdge.destruction_callback(entity)){
|
$.when(GraphEdge.destruction_callback(entity)).then(function () {
|
||||||
//console.log("remove edge",entity);
|
//console.log("remove edge",entity);
|
||||||
entity.remove();
|
entity.remove();
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dummy_circle.click(click_action);
|
dummy_circle.click(click_action);
|
||||||
|
|
Loading…
Reference in New Issue