From a45785d2f872a76b9b3becd403706a4091f9d0fa Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 26 Oct 2011 14:49:28 +0200 Subject: [PATCH] [IMP] propagate click events from labels to the corresponding nodes in order to avoid implementing all handlers twice bzr revid: xmo@openerp.com-20111026124928-a5yq78p1cejg2uzx --- addons/web_diagram/static/src/js/diagram.js | 26 ++++++++++----------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 3e426dc946f..24da19a952f 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -121,26 +121,23 @@ openerp.web.DiagramView = openerp.web.View.extend({ //Custom logic var self = this; var renderer = function(r, n) { - var node; - var set; var shape = n.node.shape; if(shape == 'rectangle') shape = 'rect'; - node = r[shape](n.node.x, n.node.y).attr({ + var node = r[shape](n.node.x, n.node.y).attr({ "fill": n.node.color }).dblclick(function() { self.add_edit_node(n.node.id, self.node); }); - set = r.set() - .push(node) - .push( - r.text(n.node.x, n.node.y, (n.label || n.id)) - .attr({"cursor":"pointer"}) - .dblclick(function() { - self.add_edit_node(n.node.id, self.node); - }) - ); - node.attr({cursor: "pointer"}); + + var propagate_to_previous_sibling = function (e) { + $(this).prev().trigger(e.type); + }; + var nodes = r.set() + .push(node, r.text(n.node.x, n.node.y, (n.label || n.id)) + .click(propagate_to_previous_sibling) + .dblclick(propagate_to_previous_sibling) + ).attr("cursor", "pointer"); if(shape == "ellipse") node.attr({rx: "40", ry: "20"}); @@ -148,7 +145,8 @@ openerp.web.DiagramView = openerp.web.View.extend({ node.attr({width: "60", height: "44"}); node.next.attr({"text-anchor": "middle", x: n.node.x + 20, y: n.node.y + 20}); } - return set; + + return nodes; }; _.each(res_nodes, function(res_node) {