From e21d4b3e42cb66abf93595e406909d3f9fb6bdee Mon Sep 17 00:00:00 2001 From: "Yogesh (OpenERP)" Date: Tue, 13 Sep 2011 14:24:34 +0530 Subject: [ADD] add basic structure of web_process module. bzr revid: ysa@tinyerp.com-20110913085434-z2a2615i2jpwdhmy --- addons/web_process/static/src/js/process.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 addons/web_process/static/src/js/process.js (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js new file mode 100644 index 00000000000..f872fc05a61 --- /dev/null +++ b/addons/web_process/static/src/js/process.js @@ -0,0 +1,22 @@ + +openerp.web_process = function (openerp) { +var QWeb = openerp.web.qweb; +QWeb.add_template('/web_process/static/src/xml/web_process.xml'); +openerp.web.SearchView = openerp.web.SearchView.extend({ + init: function(parent, element_id, dataset, view_id, defaults) { + this._super(parent, element_id, dataset, view_id, defaults); + }, + on_loaded: function(data) { + var self = this; + this._super(data); + this.$element.find("#ProcessView").click(function() { + self.on_click(); + }); + }, + on_click: function() { + this.widget_parent.$element.replaceWith(QWeb.render("ProcessView")); + }, +}); +}; + +// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: -- cgit v1.2.3 From 6c17995fb7145e3b555e7004dc6fd5d7f1b8f4d9 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Mon, 19 Sep 2011 15:27:30 +0530 Subject: [FIX] Extend with ViewManager. bzr revid: vda@tinyerp.com-20110919095730-toavlykgeokcg4d0 --- addons/web_process/static/src/js/process.js | 99 +++++++++++++---------------- 1 file changed, 45 insertions(+), 54 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 40f4663c08a..b1665e44a7a 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -2,77 +2,69 @@ openerp.web_process = function (openerp) { var QWeb = openerp.web.qweb; QWeb.add_template('/web_process/static/src/xml/web_process.xml'); - openerp.web.ViewManagerAction.include({ - on_mode_switch: function (view_type) { + openerp.web.ViewManager.include({ + start: function() { + this._super(); var self = this; + + this.process_check(); + }, + process_check: function() { + var self = this, + grandparent = this.widget_parent && this.widget_parent.widget_parent, + view = this.views[this.views_src[0].view_type], + $process_view = this.$element.find('.oe-process-view'); + this.process_model = this.model; - return $.when( - this._super(view_type), - this.process_check(this.views[view_type])).then(function () { - }); - }, - process_check: function(view) { - var self = this; - var grandparent = this.widget_parent && this.widget_parent.widget_parent; - // display shortcuts if on the first view for the action - var $process_toggle = this.$element.find('.oe-process-toggle'); - if (!(grandparent instanceof openerp.web.WebClient) || + if (!(grandparent instanceof openerp.web.WebClient) || !(view.view_type === this.views_src[0].view_type && view.view_id === this.views_src[0].view_id)) { - $process_toggle.hide(); + $process_view.hide(); return; } - $process_toggle.show(); - $process_toggle - .unbind("click") - .click(function(){ - $.when(self.load_process()).then(self.get_process_id()); - }); - }, - - load_process: function() { -// this.widget_parent.$element.html(QWeb.render("ProcessView",this)); - this.$element.html(QWeb.render("ProcessView",this)); - }, - - get_process_id: function() { - var self = this; - this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); - this.process_dataset - .call( - "search_by_model", - [self.process_model,self.session.context], - function(res) { - self.renderer(res); - } - ); - }, - - renderer: function(res) { + $process_view.click(function() { + $.when(self.load_process()).then(self.get_process_id()); + }); + }, + + load_process: function() { + this.$element.html(QWeb.render("ProcessView",this)); + }, + + get_process_id: function() { + var self = this; + this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); + this.process_dataset + .call( + "search_by_model", + [self.process_model,self.session.context], + function(res) {self.process_renderer(res)} + ); + }, + + process_renderer: function(res) { var self = this; if(!res.length) { this.process_model = false; this.get_process_id(); } else { - if(res.length > 1) { this.selection = res; - $.when(this.load_process()).then(function() { - self.widget_parent.$element.find('#change_process').click(function(){ - - self.p_id = self.widget_parent.$element.find('#select_process').val(); - $.when(self.load_process()).then(self.render_process_view()); - + $.when(this.load_process()) + .then(function(){ + var $parent = self.widget_parent.$element; + $parent.find('#change_process').click(function() { + self.selection = false; + self.p_id = $parent.find('#select_process').val(); + $.when(self.load_process()).then(self.render_process_view()); + }); }); - }); - } - else { + } else { this.p_id = res[0][0]; $.when(this.load_process()).then(this.render_process_view()); } } }, - render_process_view: function() { var self = this; this.p_id = parseInt(this.p_id, 10); @@ -150,7 +142,7 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); .push(process_node) .push(process_node_text) .push(process_node_desc); - process_node.mousedown(function(){ + process_node.mousedown(function() { return false; }) return process_set; @@ -189,7 +181,6 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); } ); } - }); }; -- cgit v1.2.3 From 8ab9a5ecf946d87a0bf6673de7ead6438c1aa879 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Tue, 20 Sep 2011 22:43:15 +0530 Subject: [FIX] typo. bzr revid: vda@tinyerp.com-20110920171315-k1aambijdl9ih04n --- addons/web_process/static/src/js/process.js | 1 + 1 file changed, 1 insertion(+) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index b1665e44a7a..a9cd506bc57 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -83,6 +83,7 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); }, draw_process_graph: function(res) { + var self = this; var process_graph = new Graph(); var process_renderer = function(r, n) { -- cgit v1.2.3 From d05651bebe85660224b97c05c70c6e215651cde8 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Tue, 20 Sep 2011 23:00:31 +0530 Subject: [FIX] Does not allowed drag&drop. bzr revid: vda@tinyerp.com-20110920173031-ialtmcpub2c24k04 --- addons/web_process/static/src/js/process.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index a9cd506bc57..b6642a7980b 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -105,7 +105,11 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); bg = n.node.gray ? bg + "-gray" : bg; img_src = '/web_process/static/src/img/'+ bg + '.png'; - r['image'](img_src, n.node.x, n.node.y,150, 100).attr({"clip-rect": clip_rect}); + r['image'](img_src, n.node.x, n.node.y,150, 100) + .attr({"clip-rect": clip_rect}) + .mousedown(function(){ + return false; + }); //Node process_node = r['rect'](n.node.x, n.node.y, 150, 100); @@ -143,9 +147,9 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); .push(process_node) .push(process_node_text) .push(process_node_desc); - process_node.mousedown(function() { + process_set.mousedown(function() { return false; - }) + }); return process_set; }; -- cgit v1.2.3 From e070274115ad2c87a16353c08e2d3d3725476bd3 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 21 Sep 2011 12:16:40 +0530 Subject: [FIX] subflow id. bzr revid: vda@tinyerp.com-20110921064640-0j7ikcpvuaivicc7 --- addons/web_process/static/src/js/process.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index b6642a7980b..67bb8791441 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -120,7 +120,7 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); if(n.node.subflow) { process_node_text.click(function() { - self.p_id = n.node.id; + self.p_id = n.node.subflow[0]; $.when(self.load_process()).then(self.render_process_view()); }); } -- cgit v1.2.3 From 1aa8f369002c762441d409839581d94817ca2015 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 21 Sep 2011 13:07:29 +0530 Subject: [FIX] do not show border on rect.background image.desc node does not need to add in set. bzr revid: vda@tinyerp.com-20110921073729-zqjijfseuz4ipc1h --- addons/web_process/static/src/js/process.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 67bb8791441..11b44e87d93 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -112,7 +112,7 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); }); //Node - process_node = r['rect'](n.node.x, n.node.y, 150, 100); + process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"}); // Node text process_node_text = r.text(text_position_x, n.node.y+10, (n.node.name)) @@ -128,7 +128,6 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); //Node Description process_node_desc = r.text(n.node.x+75, n.node.y+50, (n.node.notes)); - r['image']('/web/static/src/img/icons/gtk-info.png', n.node.x+20, n.node.y+70, 16, 16) .attr({"cursor": "pointer", "title": "Help"}) .click(function(){ @@ -139,14 +138,13 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); r['image']('/web/static/src/img/icons/gtk-jump-to.png', n.node.x+115, n.node.y+70, 16, 16) .attr({"cursor": "pointer", "title": n.node.menu.name}) .click(function() { - self.jump_to_view(n.node.res_model, n.node.menu.id) + self.jump_to_view(n.node.res_model, n.node.menu.id); }); } process_set = r.set() .push(process_node) - .push(process_node_text) - .push(process_node_desc); + .push(process_node_text); process_set.mousedown(function() { return false; }); -- cgit v1.2.3 From 6ca5e79d89e8e56b15955c4795f1f955a3673315 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 21 Sep 2011 13:34:18 +0530 Subject: [FIX] node text not in set. bzr revid: vda@tinyerp.com-20110921080418-vlfezcpkcrj84tbe --- addons/web_process/static/src/js/process.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 11b44e87d93..362bbd8e108 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -116,7 +116,7 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); // Node text process_node_text = r.text(text_position_x, n.node.y+10, (n.node.name)) - .attr({"fill": "#fff", "font-weight": "bold"}); + .attr({"fill": "#fff", "font-weight": "bold", "cursor": "pointer"}); if(n.node.subflow) { process_node_text.click(function() { @@ -144,7 +144,6 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); process_set = r.set() .push(process_node) - .push(process_node_text); process_set.mousedown(function() { return false; }); -- cgit v1.2.3 From a7a256454283f4b6a1241abd9df335a23ef16785 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 21 Sep 2011 15:18:23 +0530 Subject: [FIX] Load subflow actions. bzr revid: vda@tinyerp.com-20110921094823-4rrqbdov4s0csk0t --- addons/web_process/static/src/js/process.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 362bbd8e108..67c62efbcd4 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -176,10 +176,16 @@ QWeb.add_template('/web_process/static/src/xml/web_process.xml'); .call('get', ['action', 'tree_but_open',[['ir.ui.menu', id]], dataset.context], function(res) { + self.$element.empty(); var action = res[0][res[0].length - 1]; - var action_manager = new openerp.web.ActionManager(self); - action_manager.appendTo(self.widget_parent.$element); - action_manager.do_action(action); + self.rpc("/web/action/load", { + action_id: action.id, + context: dataset.context + }, function(result) { + var action_manager = new openerp.web.ActionManager(self); + action_manager.appendTo(self.widget_parent.$element); + action_manager.do_action(result.result); + }); } ); } -- cgit v1.2.3 From 78eb1e13e5a5284854a17cd90d14174b5702be79 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 28 Sep 2011 14:17:39 +0530 Subject: [FIX] Indentation.Show help. bzr revid: vda@tinyerp.com-20110928084739-cd0tnajmulohp0k8 --- addons/web_process/static/src/js/process.js | 387 ++++++++++++++-------------- 1 file changed, 200 insertions(+), 187 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 67c62efbcd4..d8d178ae63d 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -1,195 +1,208 @@ - openerp.web_process = function (openerp) { -var QWeb = openerp.web.qweb; -QWeb.add_template('/web_process/static/src/xml/web_process.xml'); - openerp.web.ViewManager.include({ - start: function() { - this._super(); - var self = this; - - this.process_check(); - }, - process_check: function() { - var self = this, - grandparent = this.widget_parent && this.widget_parent.widget_parent, - view = this.views[this.views_src[0].view_type], - $process_view = this.$element.find('.oe-process-view'); - - this.process_model = this.model; - if (!(grandparent instanceof openerp.web.WebClient) || + var QWeb = openerp.web.qweb; + QWeb.add_template('/web_process/static/src/xml/web_process.xml'); + openerp.web.ViewManager.include({ + start: function() { + this._super(); + var self = this; + this.process_check(); + this.process_help = this.action.help || 'Help: Not Defined'; + }, + process_check: function() { + var self = this, + grandparent = this.widget_parent && this.widget_parent.widget_parent, + view = this.views[this.views_src[0].view_type], + $process_view = this.$element.find('.oe-process-view'); + + this.process_model = this.model; + if (!(grandparent instanceof openerp.web.WebClient) || !(view.view_type === this.views_src[0].view_type && view.view_id === this.views_src[0].view_id)) { - $process_view.hide(); - return; + $process_view.hide(); + return; + } + $process_view.click(function() { + $.when(self.load_process()).then(self.get_process_id()); + }); + }, + + process_subflow : function() { + var self = this; + new openerp.web.DataSetSearch(this, + "ir.actions.act_window",this.session.context,[]) + .read_slice(['help'], + { domain: + [ + ['res_model','=',this.process_action_model], + ['name','ilike', this.process_action_name] + ] + }, + function(res) { + if (res.length) { + self.process_help = res[0]['help'] || 'Help: Not Defined'; + } + $.when(self.load_process()).then(self.render_process_view()); + + }); + }, + + load_process: function() { + this.$element.html(QWeb.render("ProcessView", this)); + }, + + get_process_id: function() { + var self = this; + this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); + this.process_dataset.call("search_by_model", + [self.process_model,self.session.context], + function(res) {self.process_renderer(res)}); + }, + process_renderer: function(res) { + var self = this; + if(!res.length) { + this.process_model = false; + this.get_process_id(); + } else { + if(res.length > 1) { + this.selection = res; + $.when(this.load_process()).then(function() { + var $parent = self.widget_parent.$element; + $parent.find('#change_process').click(function() { + self.selection = false; + self.p_id = $parent.find('#select_process').val(); + $.when(self.load_process()).then(self.render_process_view()); + }); + }); + } else { + this.p_id = res[0][0]; + $.when(this.load_process()).then(this.render_process_view()); + } } - $process_view.click(function() { - $.when(self.load_process()).then(self.get_process_id()); - }); - }, - - load_process: function() { - this.$element.html(QWeb.render("ProcessView",this)); - }, - - get_process_id: function() { - var self = this; - this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); - this.process_dataset - .call( - "search_by_model", - [self.process_model,self.session.context], - function(res) {self.process_renderer(res)} - ); - }, - - process_renderer: function(res) { - var self = this; - if(!res.length) { - this.process_model = false; - this.get_process_id(); - } else { - if(res.length > 1) { - this.selection = res; - $.when(this.load_process()) - .then(function(){ - var $parent = self.widget_parent.$element; - $parent.find('#change_process').click(function() { - self.selection = false; - self.p_id = $parent.find('#select_process').val(); - $.when(self.load_process()).then(self.render_process_view()); - }); - }); - } else { - this.p_id = res[0][0]; - $.when(this.load_process()).then(this.render_process_view()); - } - } - }, - render_process_view: function() { - var self = this; - this.p_id = parseInt(this.p_id, 10); - this.process_dataset - .call( - "graph_get", - [self.p_id, self.model, false, [80,80,150,100]], - function(res) { - res['title'] = res.resource ? res.resource : res.name; - self.process_dataset.call("search_by_model",[self.model,self.session.context],function(r){ - res['related'] = r; - }); - self.draw_process_graph(res); - } - ); - }, - - draw_process_graph: function(res) { - var self = this; - var process_graph = new Graph(); - - var process_renderer = function(r, n) { - var process_node, - process_node_text, - process_node_desc, - process_set; - - var node_button, - node_menu, - img_src; - - var bg = "node"; - var clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"); - var text_position_x = n.node.kind == "subflow" ? n.node.x+88 : n.node.x+75; - - //Image part - bg = n.node.kind == "subflow" ? "node-subflow" : "node"; - bg = n.node.gray ? bg + "-gray" : bg; - img_src = '/web_process/static/src/img/'+ bg + '.png'; - - r['image'](img_src, n.node.x, n.node.y,150, 100) - .attr({"clip-rect": clip_rect}) - .mousedown(function(){ - return false; - }); - - //Node - process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"}); - - // Node text - process_node_text = r.text(text_position_x, n.node.y+10, (n.node.name)) - .attr({"fill": "#fff", "font-weight": "bold", "cursor": "pointer"}); - - if(n.node.subflow) { - process_node_text.click(function() { - self.p_id = n.node.subflow[0]; - $.when(self.load_process()).then(self.render_process_view()); - }); - } - - //Node Description - process_node_desc = r.text(n.node.x+75, n.node.y+50, (n.node.notes)); - - r['image']('/web/static/src/img/icons/gtk-info.png', n.node.x+20, n.node.y+70, 16, 16) - .attr({"cursor": "pointer", "title": "Help"}) - .click(function(){ - window.open(n.node.url || "http://doc.openerp.com/v6.0/index.php?model=" + n.node.model); - }); - - if(n.node.menu) { - r['image']('/web/static/src/img/icons/gtk-jump-to.png', n.node.x+115, n.node.y+70, 16, 16) - .attr({"cursor": "pointer", "title": n.node.menu.name}) - .click(function() { - self.jump_to_view(n.node.res_model, n.node.menu.id); - }); - } - - process_set = r.set() - .push(process_node) + }, + + render_process_view: function() { + var self = this; + this.p_id = parseInt(this.p_id, 10); + this.process_dataset.call("graph_get", + [self.p_id, self.model, false, [80,80,150,100]], + function(res) { + res['title'] = res.resource ? res.resource : res.name; + self.process_dataset.call("search_by_model", + [self.model,self.session.context], + function(r) { + res['related'] = r; + }); + self.draw_process_graph(res); + } + ); + }, + + draw_process_graph: function(res) { + var self = this; + var process_graph = new Graph(); + + var process_renderer = function(r, n) { + var process_node, + process_node_text, + process_node_desc, + process_set; + + var node_button, + node_menu, + img_src; + + var bg = "node", + clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"), +// text_position_x = n.node.x + (n.node.y/2) + + //Image part + bg = n.node.kind == "subflow" ? "node-subflow" : "node"; + bg = n.node.gray ? bg + "-gray" : bg; + img_src = '/web_process/static/src/img/'+ bg + '.png'; + + r['image'](img_src, n.node.x, n.node.y,150, 100) + .attr({"clip-rect": clip_rect}) + .mousedown(function(){ + return false; + }); + + //Node + process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"}); + // Node text + process_node_text = r.text(n.node.x, n.node.y, (n.node.name)) + .attr({"fill": "#fff", "font-weight": "bold", "cursor": "pointer"}); + process_node_text.translate(n.node.x / 2, 10) + if(n.node.subflow) { + process_node_text.click(function() { + self.p_id = n.node.subflow[0]; + self.process_action_model = n.node.model; + self.process_action_name = n.node.name; + self.process_subflow(); + }); + } + + //Node Description + process_node_desc = r.text(n.node.x+75, n.node.y+50, (n.node.notes)); + + r['image']('/web/static/src/img/icons/gtk-info.png', n.node.x+20, n.node.y+70, 16, 16) + .attr({"cursor": "pointer", "title": "Help"}) + .click(function() { + window.open(n.node.url || "http://doc.openerp.com/v6.0/index.php?model=" + n.node.model); + }); + + if(n.node.menu) { + r['image']('/web/static/src/img/icons/gtk-jump-to.png', n.node.x+115, n.node.y+70, 16, 16) + .attr({"cursor": "pointer", "title": n.node.menu.name}) + .click(function() { + self.jump_to_view(n.node.res_model, n.node.menu.id); + }); + } + + process_set = r.set().push(process_node); process_set.mousedown(function() { - return false; - }); - return process_set; - }; - - _.each(res['nodes'],function(node, node_id) { - node['res_model'] = self.model, - node['res_id'] = false, - node['id'] = node_id; - process_graph.addNode(node['name'], {node: node,render: process_renderer}); - }); - - _.each(res['transitions'], function(transitions) { - - var src = res['nodes'][transitions['source']]; - var dst = res['nodes'][transitions['target']]; - // make active - transitions['active'] = src.active && !dst.gray; - process_graph.addEdge(src['name'], dst['name'], {directed : true, label: transitions['name']}) - }); - var layouter = new Graph.Layout.Ordered(process_graph); - var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); - }, - - jump_to_view: function(model, id) { - var self = this; - var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); - dataset - .call('get', - ['action', 'tree_but_open',[['ir.ui.menu', id]], dataset.context], - function(res) { - self.$element.empty(); - var action = res[0][res[0].length - 1]; - self.rpc("/web/action/load", { - action_id: action.id, - context: dataset.context - }, function(result) { - var action_manager = new openerp.web.ActionManager(self); - action_manager.appendTo(self.widget_parent.$element); - action_manager.do_action(result.result); - }); - } - ); - } - }); + return false; + }); + return process_set; + }; + + _.each(res['nodes'],function(node, node_id) { + node['res_model'] = self.model, + node['res_id'] = false, + node['id'] = node_id; + process_graph.addNode(node['name'], {node: node,render: process_renderer}); + }); + + _.each(res['transitions'], function(transitions) { + var src = res['nodes'][transitions['source']]; + var dst = res['nodes'][transitions['target']]; + // make active + transitions['active'] = src.active && !dst.gray; + process_graph.addEdge(src['name'], dst['name'], {directed : true}); + }); + + var layouter = new Graph.Layout.Ordered(process_graph); + var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); + }, + + jump_to_view: function(model, id) { + var self = this; + var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); + dataset.call('get', + ['action', 'tree_but_open',[['ir.ui.menu', id]], dataset.context], + function(res) { + self.$element.empty(); + var action = res[0][res[0].length - 1]; + self.rpc("/web/action/load", { + action_id: action.id, + context: dataset.context + }, function(result) { + var action_manager = new openerp.web.ActionManager(self); + action_manager.appendTo(self.widget_parent.$element); + action_manager.do_action(result.result); + }); + }); + } + }); }; -- cgit v1.2.3 From c029638da64a180827a75b47455c047a85a5193d Mon Sep 17 00:00:00 2001 From: "Yogesh (OpenERP)" Date: Wed, 28 Sep 2011 17:53:10 +0530 Subject: [IMP] process :- string display in node. bzr revid: ysa@tinyerp.com-20110928122310-dnijca5crg53tx0g --- addons/web_process/static/src/js/process.js | 63 +++++++++++++++++------------ 1 file changed, 38 insertions(+), 25 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index d8d178ae63d..26beeb81d25 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -13,7 +13,7 @@ openerp.web_process = function (openerp) { grandparent = this.widget_parent && this.widget_parent.widget_parent, view = this.views[this.views_src[0].view_type], $process_view = this.$element.find('.oe-process-view'); - + this.process_model = this.model; if (!(grandparent instanceof openerp.web.WebClient) || !(view.view_type === this.views_src[0].view_type @@ -25,13 +25,13 @@ openerp.web_process = function (openerp) { $.when(self.load_process()).then(self.get_process_id()); }); }, - + process_subflow : function() { var self = this; - new openerp.web.DataSetSearch(this, + new openerp.web.DataSetSearch(this, "ir.actions.act_window",this.session.context,[]) - .read_slice(['help'], - { domain: + .read_slice(['help'], + { domain: [ ['res_model','=',this.process_action_model], ['name','ilike', this.process_action_name] @@ -42,14 +42,14 @@ openerp.web_process = function (openerp) { self.process_help = res[0]['help'] || 'Help: Not Defined'; } $.when(self.load_process()).then(self.render_process_view()); - + }); }, - + load_process: function() { this.$element.html(QWeb.render("ProcessView", this)); }, - + get_process_id: function() { var self = this; this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); @@ -79,7 +79,7 @@ openerp.web_process = function (openerp) { } } }, - + render_process_view: function() { var self = this; this.p_id = parseInt(this.p_id, 10); @@ -96,36 +96,35 @@ openerp.web_process = function (openerp) { } ); }, - draw_process_graph: function(res) { var self = this; var process_graph = new Graph(); - + var process_renderer = function(r, n) { var process_node, process_node_text, process_node_desc, process_set; - + var node_button, node_menu, img_src; - + var bg = "node", clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"), // text_position_x = n.node.x + (n.node.y/2) - + //Image part bg = n.node.kind == "subflow" ? "node-subflow" : "node"; bg = n.node.gray ? bg + "-gray" : bg; img_src = '/web_process/static/src/img/'+ bg + '.png'; - + r['image'](img_src, n.node.x, n.node.y,150, 100) .attr({"clip-rect": clip_rect}) .mousedown(function(){ return false; }); - + //Node process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"}); // Node text @@ -140,16 +139,30 @@ openerp.web_process = function (openerp) { self.process_subflow(); }); } - + //Node Description - process_node_desc = r.text(n.node.x+75, n.node.y+50, (n.node.notes)); - + new_notes = n.node.notes; + if(n.node.notes.length > 25) { + var new_notes= temp_str = ''; + var from = to = 0; + while (1){ + from = 25; + temp_str = n.node.notes.substr(to ,25); + if (temp_str.lastIndexOf(" ") < 25 && temp_str.length >= 25) { + from = temp_str.lastIndexOf(" "); + } + new_notes += "\n" + n.node.notes.substr(to , from); + if(new_notes.length > n.node.notes.length) break; + to += from; + } + } + process_node_desc = r.text(n.node.x+85, n.node.y+50, (new_notes)); r['image']('/web/static/src/img/icons/gtk-info.png', n.node.x+20, n.node.y+70, 16, 16) .attr({"cursor": "pointer", "title": "Help"}) .click(function() { window.open(n.node.url || "http://doc.openerp.com/v6.0/index.php?model=" + n.node.model); }); - + if(n.node.menu) { r['image']('/web/static/src/img/icons/gtk-jump-to.png', n.node.x+115, n.node.y+70, 16, 16) .attr({"cursor": "pointer", "title": n.node.menu.name}) @@ -157,21 +170,21 @@ openerp.web_process = function (openerp) { self.jump_to_view(n.node.res_model, n.node.menu.id); }); } - + process_set = r.set().push(process_node); process_set.mousedown(function() { return false; }); return process_set; }; - + _.each(res['nodes'],function(node, node_id) { node['res_model'] = self.model, node['res_id'] = false, node['id'] = node_id; process_graph.addNode(node['name'], {node: node,render: process_renderer}); }); - + _.each(res['transitions'], function(transitions) { var src = res['nodes'][transitions['source']]; var dst = res['nodes'][transitions['target']]; @@ -179,11 +192,11 @@ openerp.web_process = function (openerp) { transitions['active'] = src.active && !dst.gray; process_graph.addEdge(src['name'], dst['name'], {directed : true}); }); - + var layouter = new Graph.Layout.Ordered(process_graph); var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); }, - + jump_to_view: function(model, id) { var self = this; var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); -- cgit v1.2.3 From da60b9cf776016ce822d349661cca771ab774582 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 29 Sep 2011 11:45:53 +0530 Subject: [ADD] Edit Process. bzr revid: vda@tinyerp.com-20110929061553-0gk3v3j2cuva0jpb --- addons/web_process/static/src/js/process.js | 54 +++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 6 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 26beeb81d25..67b75bee03d 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -6,7 +6,7 @@ openerp.web_process = function (openerp) { this._super(); var self = this; this.process_check(); - this.process_help = this.action.help || 'Help: Not Defined'; + this.process_help = this.action ? this.action.help : 'Help: Not Defined'; }, process_check: function() { var self = this, @@ -47,7 +47,49 @@ openerp.web_process = function (openerp) { }, load_process: function() { + var self = this; this.$element.html(QWeb.render("ProcessView", this)); + this.$element.find('#edit_process').click(function() { + self.edit_process_view(); + }); + }, + + edit_process_view: function() { + var self = this; + var action_manager = new openerp.web.ActionManager(this); + var dialog = new openerp.web.Dialog(this, { + width: 800, + height: 600, + buttons : { + Cancel : function() { + $(this).dialog('destroy'); + }, + Save : function() { + var form_view = action_manager.inner_viewmanager.views.form.controller; + + form_view.do_save(function() { + self.process_renderer([[self.process_id]]); + }); + $(this).dialog('destroy'); + } + } + }).start().open(); + + action_manager.appendTo(dialog.$element); + action_manager.do_action({ + res_model : 'process.process', + res_id: self.process_id, + views : [[false, 'form']], + type : 'ir.actions.act_window', + auto_search : false, + flags : { + search_view: false, + sidebar : false, + views_switcher : false, + action_buttons : false, + pager: false + } + }); }, get_process_id: function() { @@ -69,12 +111,12 @@ openerp.web_process = function (openerp) { var $parent = self.widget_parent.$element; $parent.find('#change_process').click(function() { self.selection = false; - self.p_id = $parent.find('#select_process').val(); + self.process_id = $parent.find('#select_process').val(); $.when(self.load_process()).then(self.render_process_view()); }); }); } else { - this.p_id = res[0][0]; + this.process_id = res[0][0]; $.when(this.load_process()).then(this.render_process_view()); } } @@ -82,9 +124,9 @@ openerp.web_process = function (openerp) { render_process_view: function() { var self = this; - this.p_id = parseInt(this.p_id, 10); + this.process_id = parseInt(this.process_id, 10); this.process_dataset.call("graph_get", - [self.p_id, self.model, false, [80,80,150,100]], + [self.process_id, self.model, false, [80,80,150,100]], function(res) { res['title'] = res.resource ? res.resource : res.name; self.process_dataset.call("search_by_model", @@ -133,7 +175,7 @@ openerp.web_process = function (openerp) { process_node_text.translate(n.node.x / 2, 10) if(n.node.subflow) { process_node_text.click(function() { - self.p_id = n.node.subflow[0]; + self.process_id = n.node.subflow[0]; self.process_action_model = n.node.model; self.process_action_name = n.node.name; self.process_subflow(); -- cgit v1.2.3 From f516936e1c4976fc44e7c6b108ffbf2398ca8833 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 29 Sep 2011 12:44:48 +0530 Subject: [FIX] Changed images for node text align. bzr revid: vda@tinyerp.com-20110929071448-119c8glmi4q6ol3z --- addons/web_process/static/src/js/process.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 67b75bee03d..9fd6606fdc6 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -153,7 +153,7 @@ openerp.web_process = function (openerp) { img_src; var bg = "node", - clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"), + clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"); // text_position_x = n.node.x + (n.node.y/2) //Image part @@ -172,7 +172,7 @@ openerp.web_process = function (openerp) { // Node text process_node_text = r.text(n.node.x, n.node.y, (n.node.name)) .attr({"fill": "#fff", "font-weight": "bold", "cursor": "pointer"}); - process_node_text.translate(n.node.x / 2, 10) + process_node_text.translate((process_node.getBBox().width/ 2) + 5, 10) if(n.node.subflow) { process_node_text.click(function() { self.process_id = n.node.subflow[0]; -- cgit v1.2.3 From 69238240cdf56fc7986d7054a46f697d4f74dd43 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 29 Sep 2011 16:31:45 +0530 Subject: [IMP] show Fields.Changed Mechanism. bzr revid: vda@tinyerp.com-20110929110145-z5fgyg84acx3nuyl --- addons/web_process/static/src/js/process.js | 280 +++++++++++++++++----------- 1 file changed, 166 insertions(+), 114 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 9fd6606fdc6..faff7d7bb8e 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -7,141 +7,156 @@ openerp.web_process = function (openerp) { var self = this; this.process_check(); this.process_help = this.action ? this.action.help : 'Help: Not Defined'; + this.process_model = this.model; }, process_check: function() { var self = this, grandparent = this.widget_parent && this.widget_parent.widget_parent, view = this.views[this.views_src[0].view_type], $process_view = this.$element.find('.oe-process-view'); - - this.process_model = this.model; + if (!(grandparent instanceof openerp.web.WebClient) || !(view.view_type === this.views_src[0].view_type && view.view_id === this.views_src[0].view_id)) { $process_view.hide(); return; } + $process_view.click(function() { - $.when(self.load_process()).then(self.get_process_id()); + self.initialize_process_view(); }); + }, - - process_subflow : function() { + + initialize_process_view: function() { var self = this; - new openerp.web.DataSetSearch(this, - "ir.actions.act_window",this.session.context,[]) - .read_slice(['help'], - { domain: - [ - ['res_model','=',this.process_action_model], - ['name','ilike', this.process_action_name] - ] - }, - function(res) { - if (res.length) { - self.process_help = res[0]['help'] || 'Help: Not Defined'; + var is_ready = $.Deferred(); + $.when(this.fields_get(), this.help(), this.get_process_object()).pipe(function(fields, help, process) { + self.process_fields = fields; + self.process_help = help; + if(process && process.length) { + if(process.length > 1) { + self.process_selection = process; + } else { + self.process_id = process[0][0]; } - $.when(self.load_process()).then(self.render_process_view()); - - }); - }, - - load_process: function() { - var self = this; - this.$element.html(QWeb.render("ProcessView", this)); - this.$element.find('#edit_process').click(function() { - self.edit_process_view(); + } + return $.Deferred().resolve(); + }).done(function() { + self.render_process_view(); + }).done(function() { + if(self.process_id) { + self.graph_get().done(function(res) { + self.draw_process_graph(res); + }); + } }); + }, - edit_process_view: function() { + graph_get: function() { var self = this; - var action_manager = new openerp.web.ActionManager(this); - var dialog = new openerp.web.Dialog(this, { - width: 800, - height: 600, - buttons : { - Cancel : function() { - $(this).dialog('destroy'); - }, - Save : function() { - var form_view = action_manager.inner_viewmanager.views.form.controller; - - form_view.do_save(function() { - self.process_renderer([[self.process_id]]); - }); - $(this).dialog('destroy'); - } - } - }).start().open(); + var def = $.Deferred(); + this.process_id = parseInt(this.process_id, 10); - action_manager.appendTo(dialog.$element); - action_manager.do_action({ - res_model : 'process.process', - res_id: self.process_id, - views : [[false, 'form']], - type : 'ir.actions.act_window', - auto_search : false, - flags : { - search_view: false, - sidebar : false, - views_switcher : false, - action_buttons : false, - pager: false - } + this.process_dataset + .call("graph_get",[this.process_id, this.model, false, [80,80,150,100]]) + .done(function(res) { + self.process_dataset + .call("search_by_model",[self.model,self.session.context]) + .done( + function(r) { + res['related'] = r; + def.resolve(res); + }); + }); + return def.promise(); }, - - get_process_id: function() { - var self = this; - this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); - this.process_dataset.call("search_by_model", - [self.process_model,self.session.context], - function(res) {self.process_renderer(res)}); + + fields_get : function() { + var self = this, + def = $.Deferred(), + dataset = new openerp.web.DataSetStatic(this, this.model, this.session.context); + + dataset + .call('fields_get',[]) + .done(function(fields) { + def.resolve(fields); + }).fail(def.reject); + return def.promise(); }, - process_renderer: function(res) { - var self = this; - if(!res.length) { - this.process_model = false; - this.get_process_id(); + + help : function() { + var self = this, + def = $.Deferred(); + if(!this.subflow_model) { + def.resolve(this.action ? this.action.help : 'Help: Not Defined'); } else { - if(res.length > 1) { - this.selection = res; - $.when(this.load_process()).then(function() { - var $parent = self.widget_parent.$element; - $parent.find('#change_process').click(function() { - self.selection = false; - self.process_id = $parent.find('#select_process').val(); - $.when(self.load_process()).then(self.render_process_view()); - }); + var dataset = new openerp.web.DataSetSearch(this, "ir.actions.act_window", this.session.context, []); + dataset + .read_slice(['help'], + { + domain: [ + ['res_model', '=', this.subflow_model], + ['name', 'ilike', this.subflow_name] + ] + } + ).done(function(res) { + def.resolve(res && res.records.length ? res.records[0].help : 'Help: Not Defined'); }); - } else { - this.process_id = res[0][0]; - $.when(this.load_process()).then(this.render_process_view()); - } + } + return def.promise(); }, - - render_process_view: function() { - var self = this; - this.process_id = parseInt(this.process_id, 10); - this.process_dataset.call("graph_get", - [self.process_id, self.model, false, [80,80,150,100]], - function(res) { - res['title'] = res.resource ? res.resource : res.name; - self.process_dataset.call("search_by_model", - [self.model,self.session.context], - function(r) { - res['related'] = r; - }); - self.draw_process_graph(res); - } - ); + + get_process_object : function() { + var self = this, + def = $.Deferred(); + if(this.process_id) + return def.resolve().promise(); + this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); + this.process_dataset + .call("search_by_model", [self.process_model,self.session.context]) + .done(function(res) { + if (!res.length) { + self.process_model = false; + self.get_process_object().done(def.resolve); + } + else { + def.resolve(res); + } + }) + .fail(def.reject); + return def.promise(); }, - draw_process_graph: function(res) { + + render_process_view : function() { + this.$element.html(QWeb.render("ProcessView", this)); var self = this; - var process_graph = new Graph(); - + this.$element.find('#edit_process').click(function() { + self.edit_process_view(); + }); + + var $parent = this.widget_parent.$element; + $parent.find('#change_process').click(function() { + self.process_selection = false; + self.process_id = $parent.find('#select_process').val(); + self.initialize_process_view(); + }); + + + this.$element.find(".toggle_fields").click(function() { + $(this).children().toggle(); + self.$element.find('.process_fields').toggle(); + + }) + }, + + draw_process_graph : function(res) { + var self = this, + process_graph = new Graph(); + var process_renderer = function(r, n) { var process_node, process_node_text, @@ -154,7 +169,6 @@ openerp.web_process = function (openerp) { var bg = "node", clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"); -// text_position_x = n.node.x + (n.node.y/2) //Image part bg = n.node.kind == "subflow" ? "node-subflow" : "node"; @@ -163,7 +177,7 @@ openerp.web_process = function (openerp) { r['image'](img_src, n.node.x, n.node.y,150, 100) .attr({"clip-rect": clip_rect}) - .mousedown(function(){ + .mousedown(function() { return false; }); @@ -176,9 +190,9 @@ openerp.web_process = function (openerp) { if(n.node.subflow) { process_node_text.click(function() { self.process_id = n.node.subflow[0]; - self.process_action_model = n.node.model; - self.process_action_name = n.node.name; - self.process_subflow(); + self.subflow_model = n.node.model; + self.subflow_name = n.node.name; + self.initialize_process_view(); }); } @@ -187,7 +201,7 @@ openerp.web_process = function (openerp) { if(n.node.notes.length > 25) { var new_notes= temp_str = ''; var from = to = 0; - while (1){ + while (1) { from = 25; temp_str = n.node.notes.substr(to ,25); if (temp_str.lastIndexOf(" ") < 25 && temp_str.length >= 25) { @@ -214,12 +228,12 @@ openerp.web_process = function (openerp) { } process_set = r.set().push(process_node); - process_set.mousedown(function() { + process_set.mousedown(function() { return false; }); return process_set; }; - + _.each(res['nodes'],function(node, node_id) { node['res_model'] = self.model, node['res_id'] = false, @@ -238,7 +252,7 @@ openerp.web_process = function (openerp) { var layouter = new Graph.Layout.Ordered(process_graph); var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); }, - + jump_to_view: function(model, id) { var self = this; var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); @@ -256,7 +270,45 @@ openerp.web_process = function (openerp) { action_manager.do_action(result.result); }); }); - } + }, + + edit_process_view: function() { + var self = this; + var action_manager = new openerp.web.ActionManager(this); + var dialog = new openerp.web.Dialog(this, { + width: 800, + height: 600, + buttons : { + Cancel : function() { + $(this).dialog('destroy'); + }, + Save : function() { + var form_view = action_manager.inner_viewmanager.views.form.controller; + + form_view.do_save(function() { + self.initialize_process_view(); + }); + $(this).dialog('destroy'); + } + } + }).start().open(); + + action_manager.appendTo(dialog.$element); + action_manager.do_action({ + res_model : 'process.process', + res_id: self.process_id, + views : [[false, 'form']], + type : 'ir.actions.act_window', + auto_search : false, + flags : { + search_view: false, + sidebar : false, + views_switcher : false, + action_buttons : false, + pager: false + } + }); + }, }); }; -- cgit v1.2.3 From 02adb9251953c410aa75be45dad2b8eaae096681 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Fri, 30 Sep 2011 13:30:00 +0530 Subject: [ADD] Summary Information. Fixed fields information look. bzr revid: vda@tinyerp.com-20110930080000-7vuomze8cbun17oh --- addons/web_process/static/src/js/process.js | 38 +++++++++++++++++++---------- 1 file changed, 25 insertions(+), 13 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index faff7d7bb8e..6ce27dcadb8 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -30,7 +30,6 @@ openerp.web_process = function (openerp) { initialize_process_view: function() { var self = this; - var is_ready = $.Deferred(); $.when(this.fields_get(), this.help(), this.get_process_object()).pipe(function(fields, help, process) { self.process_fields = fields; self.process_help = help; @@ -38,20 +37,29 @@ openerp.web_process = function (openerp) { if(process.length > 1) { self.process_selection = process; } else { - self.process_id = process[0][0]; + self.process_id = process[0][0], + self.process_title = process[0][1]; } } return $.Deferred().resolve(); - }).done(function() { - self.render_process_view(); - }).done(function() { + }).pipe(function() { + var def = $.Deferred(); if(self.process_id) { self.graph_get().done(function(res) { - self.draw_process_graph(res); + self.process_notes = res.notes; + self.process_subflows = _.filter(res.nodes, function(x) { + return x.subflow != false; + }); + self.process_related = res.related; + def.resolve(res); }); - } + } else def.resolve(); + return def.promise(); + }).done(function(res) { + $.when(self.render_process_view()).done(function() { + if(res) self.draw_process_graph(res); + }); }); - }, graph_get: function() { @@ -140,17 +148,21 @@ openerp.web_process = function (openerp) { var $parent = this.widget_parent.$element; $parent.find('#change_process').click(function() { - self.process_selection = false; - self.process_id = $parent.find('#select_process').val(); + self.process_selection = false, + self.process_id = $parent.find('#select_process').val(), + self.process_title = $.trim($parent.find('#select_process option:selected').text()); self.initialize_process_view(); }); - this.$element.find(".toggle_fields").click(function() { $(this).children().toggle(); self.$element.find('.process_fields').toggle(); - - }) + }); + + this.$element.find(".process_subflow").click(function() { + self.process_id = this.id; + self.initialize_process_view(); + }); }, draw_process_graph : function(res) { -- cgit v1.2.3 From 59f655f6503f90b340ad65617fd6dbdc9e46dc9f Mon Sep 17 00:00:00 2001 From: "Kunal Chavda (OpenERP)" Date: Wed, 16 Nov 2011 19:04:58 +0530 Subject: [FIX]Fixed code for passing model. bzr revid: kch@tinyerp.com-20111116133458-vivv0elu15mj3iiw --- addons/web_process/static/src/js/process.js | 62 ++++++++++++++--------------- 1 file changed, 30 insertions(+), 32 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 6ce27dcadb8..c8a46199c3f 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -7,27 +7,28 @@ openerp.web_process = function (openerp) { var self = this; this.process_check(); this.process_help = this.action ? this.action.help : 'Help: Not Defined'; - this.process_model = this.model; + if(this.model) this.process_model = this.model; + else if(this.action) this.process_model = this.action.res_model; + else this.process_model = this.dataset.model; }, process_check: function() { var self = this, grandparent = this.widget_parent && this.widget_parent.widget_parent, view = this.views[this.views_src[0].view_type], $process_view = this.$element.find('.oe-process-view'); - if (!(grandparent instanceof openerp.web.WebClient) || !(view.view_type === this.views_src[0].view_type && view.view_id === this.views_src[0].view_id)) { $process_view.hide(); return; } - + $process_view.click(function() { self.initialize_process_view(); }); - + }, - + initialize_process_view: function() { var self = this; $.when(this.fields_get(), this.help(), this.get_process_object()).pipe(function(fields, help, process) { @@ -61,32 +62,31 @@ openerp.web_process = function (openerp) { }); }); }, - + graph_get: function() { var self = this; var def = $.Deferred(); this.process_id = parseInt(this.process_id, 10); - + this.process_dataset - .call("graph_get",[this.process_id, this.model, false, [80,80,150,100]]) + .call("graph_get",[this.process_id, this.model || this.dataset.model, false, [80,80,150,100]]) .done(function(res) { self.process_dataset - .call("search_by_model",[self.model,self.session.context]) + .call("search_by_model",[self.model || self.dataset.model,self.session.context]) .done( function(r) { res['related'] = r; def.resolve(res); }); - + }); return def.promise(); }, - + fields_get : function() { var self = this, def = $.Deferred(), - dataset = new openerp.web.DataSetStatic(this, this.model, this.session.context); - + dataset = new openerp.web.DataSetStatic(this, this.model || this.dataset.model, this.session.context); dataset .call('fields_get',[]) .done(function(fields) { @@ -94,7 +94,7 @@ openerp.web_process = function (openerp) { }).fail(def.reject); return def.promise(); }, - + help : function() { var self = this, def = $.Deferred(); @@ -106,23 +106,24 @@ openerp.web_process = function (openerp) { .read_slice(['help'], { domain: [ - ['res_model', '=', this.subflow_model], + ['res_model', '=', this.subflow_model], ['name', 'ilike', this.subflow_name] ] } ).done(function(res) { - def.resolve(res && res.records.length ? res.records[0].help : 'Help: Not Defined'); + def.resolve(res.help || 'Help: Not Defined'); }); - + } return def.promise(); }, - + get_process_object : function() { var self = this, def = $.Deferred(); if(this.process_id) return def.resolve().promise(); + this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); this.process_dataset .call("search_by_model", [self.process_model,self.session.context]) @@ -138,14 +139,13 @@ openerp.web_process = function (openerp) { .fail(def.reject); return def.promise(); }, - + render_process_view : function() { this.$element.html(QWeb.render("ProcessView", this)); var self = this; this.$element.find('#edit_process').click(function() { self.edit_process_view(); }); - var $parent = this.widget_parent.$element; $parent.find('#change_process').click(function() { self.process_selection = false, @@ -153,22 +153,22 @@ openerp.web_process = function (openerp) { self.process_title = $.trim($parent.find('#select_process option:selected').text()); self.initialize_process_view(); }); - + this.$element.find(".toggle_fields").click(function() { $(this).children().toggle(); self.$element.find('.process_fields').toggle(); }); - + this.$element.find(".process_subflow").click(function() { self.process_id = this.id; self.initialize_process_view(); }); }, - + draw_process_graph : function(res) { var self = this, process_graph = new Graph(); - + var process_renderer = function(r, n) { var process_node, process_node_text, @@ -245,7 +245,7 @@ openerp.web_process = function (openerp) { }); return process_set; }; - + _.each(res['nodes'],function(node, node_id) { node['res_model'] = self.model, node['res_id'] = false, @@ -264,7 +264,7 @@ openerp.web_process = function (openerp) { var layouter = new Graph.Layout.Ordered(process_graph); var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); }, - + jump_to_view: function(model, id) { var self = this; var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); @@ -283,7 +283,7 @@ openerp.web_process = function (openerp) { }); }); }, - + edit_process_view: function() { var self = this; var action_manager = new openerp.web.ActionManager(this); @@ -296,7 +296,7 @@ openerp.web_process = function (openerp) { }, Save : function() { var form_view = action_manager.inner_viewmanager.views.form.controller; - + form_view.do_save(function() { self.initialize_process_view(); }); @@ -304,7 +304,7 @@ openerp.web_process = function (openerp) { } } }).start().open(); - + action_manager.appendTo(dialog.$element); action_manager.do_action({ res_model : 'process.process', @@ -323,6 +323,4 @@ openerp.web_process = function (openerp) { }, }); }; - - -// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: +// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: \ No newline at end of file -- cgit v1.2.3 From b3ef9f916238c4c52fe14e13a86943c97b9d088a Mon Sep 17 00:00:00 2001 From: "Kunal Chavda (OpenERP)" Date: Thu, 17 Nov 2011 10:49:10 +0530 Subject: [IMP]Improved code by formatting. bzr revid: kch@tinyerp.com-20111117051910-kb4r9mzojtu0roeb --- addons/web_process/static/src/js/process.js | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index c8a46199c3f..2ee04185432 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -22,13 +22,10 @@ openerp.web_process = function (openerp) { $process_view.hide(); return; } - $process_view.click(function() { self.initialize_process_view(); }); - }, - initialize_process_view: function() { var self = this; $.when(this.fields_get(), this.help(), this.get_process_object()).pipe(function(fields, help, process) { @@ -62,7 +59,6 @@ openerp.web_process = function (openerp) { }); }); }, - graph_get: function() { var self = this; var def = $.Deferred(); @@ -78,11 +74,9 @@ openerp.web_process = function (openerp) { res['related'] = r; def.resolve(res); }); - }); return def.promise(); }, - fields_get : function() { var self = this, def = $.Deferred(), @@ -94,7 +88,6 @@ openerp.web_process = function (openerp) { }).fail(def.reject); return def.promise(); }, - help : function() { var self = this, def = $.Deferred(); @@ -113,11 +106,9 @@ openerp.web_process = function (openerp) { ).done(function(res) { def.resolve(res.help || 'Help: Not Defined'); }); - } return def.promise(); }, - get_process_object : function() { var self = this, def = $.Deferred(); @@ -139,7 +130,6 @@ openerp.web_process = function (openerp) { .fail(def.reject); return def.promise(); }, - render_process_view : function() { this.$element.html(QWeb.render("ProcessView", this)); var self = this; @@ -164,11 +154,9 @@ openerp.web_process = function (openerp) { self.initialize_process_view(); }); }, - draw_process_graph : function(res) { var self = this, process_graph = new Graph(); - var process_renderer = function(r, n) { var process_node, process_node_text, @@ -192,7 +180,6 @@ openerp.web_process = function (openerp) { .mousedown(function() { return false; }); - //Node process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"}); // Node text @@ -207,7 +194,6 @@ openerp.web_process = function (openerp) { self.initialize_process_view(); }); } - //Node Description new_notes = n.node.notes; if(n.node.notes.length > 25) { @@ -264,7 +250,6 @@ openerp.web_process = function (openerp) { var layouter = new Graph.Layout.Ordered(process_graph); var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); }, - jump_to_view: function(model, id) { var self = this; var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); @@ -283,7 +268,6 @@ openerp.web_process = function (openerp) { }); }); }, - edit_process_view: function() { var self = this; var action_manager = new openerp.web.ActionManager(this); @@ -323,4 +307,4 @@ openerp.web_process = function (openerp) { }, }); }; -// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: \ No newline at end of file +// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: -- cgit v1.2.3 From 9cf9849c4b9764784b8fc72748d7983072a7017e Mon Sep 17 00:00:00 2001 From: "Kunal Chavda (OpenERP)" Date: Thu, 17 Nov 2011 12:29:53 +0530 Subject: [FIX]Fixed code for showing model name in title of process view. bzr revid: kch@tinyerp.com-20111117065953-pqse8i6mxyptw6g5 --- addons/web_process/static/src/js/process.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 2ee04185432..75da78867cf 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -7,9 +7,9 @@ openerp.web_process = function (openerp) { var self = this; this.process_check(); this.process_help = this.action ? this.action.help : 'Help: Not Defined'; - if(this.model) this.process_model = this.model; - else if(this.action) this.process_model = this.action.res_model; - else this.process_model = this.dataset.model; + this.model = this.dataset.model; + if(this.action) this.process_model = this.action.res_model; + else this.process_model = this.model; }, process_check: function() { var self = this, -- cgit v1.2.3 From 223c3a7b8b29a703c738a53fc00c66314e6109aa Mon Sep 17 00:00:00 2001 From: vishmita Date: Thu, 17 Nov 2011 12:44:52 +0530 Subject: [FIX]Fixed code for if help is false. bzr revid: vja@vja-desktop-20111117071452-0n1pxy6zwbwgo3dg --- addons/web_process/static/src/js/process.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 75da78867cf..ab5384340f3 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -92,7 +92,7 @@ openerp.web_process = function (openerp) { var self = this, def = $.Deferred(); if(!this.subflow_model) { - def.resolve(this.action ? this.action.help : 'Help: Not Defined'); + def.resolve(this.action ? (this.action.help!=false ? this.action.help : 'Help: Not Defined') : 'Help: Not Defined'); } else { var dataset = new openerp.web.DataSetSearch(this, "ir.actions.act_window", this.session.context, []); dataset -- cgit v1.2.3 From d673d7325caaaccaf804804083eccee8174bbfe5 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 17 Nov 2011 14:02:37 +0100 Subject: [FIX] web_process: qweb template loading bzr revid: chs@openerp.com-20111117130237-wqiqdrleiv2mwyf8 --- addons/web_process/static/src/js/process.js | 1 - 1 file changed, 1 deletion(-) (limited to 'addons/web_process/static/src/js/process.js') diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index ab5384340f3..f7497773645 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -1,6 +1,5 @@ openerp.web_process = function (openerp) { var QWeb = openerp.web.qweb; - QWeb.add_template('/web_process/static/src/xml/web_process.xml'); openerp.web.ViewManager.include({ start: function() { this._super(); -- cgit v1.2.3