From 37f76411bb49ef7811f38a3113650eed94375a37 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 5 Jan 2012 16:46:52 +0530 Subject: [PATCH] [IMP] better Workflow popup. bzr revid: vda@tinyerp.com-20120105111652-az2x6pylbg9g5ext --- addons/web_diagram/__openerp__.py | 2 +- addons/web_diagram/static/src/js/diagram.js | 64 +++++++++++---------- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/addons/web_diagram/__openerp__.py b/addons/web_diagram/__openerp__.py index b301b149923..f46b17614b4 100644 --- a/addons/web_diagram/__openerp__.py +++ b/addons/web_diagram/__openerp__.py @@ -3,7 +3,7 @@ "category" : "Hidden", "description":'Openerp web Diagram view', "version" : "2.0", - "depends" : ["base"], + "depends" : ["web"], "js": [ 'static/lib/js/raphael-min.js', 'static/lib/js/dracula_graffle.js', diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index a92eb8c2895..3fe59733b20 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -202,38 +202,40 @@ openerp.web.DiagramView = openerp.web.View.extend({ model = self.node; if(id) id = parseInt(id, 10); - var action_manager = new openerp.web.ActionManager(this); - var dialog = new openerp.web.Dialog(this, { - width: 850, - buttons : [ - {text: _t("Cancel"), click: function() { $(this).dialog('destroy'); }}, - {text: _t("Save"), click: function() { - var form_view = action_manager.inner_viewmanager.views.form.controller; - - form_view.do_save(function() { - self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded); - }); - $(this).dialog('destroy'); - } + + var pop, + title = model == self.node ? _t('Activity') : _t('Transition'); + if(!id) { + pop = new openerp.web.form.SelectCreatePopup(this); + pop.select_element( + model, + { + title: _t("Create:") + title, + initial_view: 'form', + disable_multiple_selection: true + }, + this.dataset.domain, + this.context || this.dataset.context + ); + pop.on_select_elements.add_last(function(element_ids) { + self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded); + }); + } else { + pop = new openerp.web.form.FormOpenPopup(this); + pop.show_element( + model, + id, + this.context || this.dataset.context, + { + title: _t("Open: ") + title } - ] - }).start().open(); - action_manager.appendTo(dialog.$element); - action_manager.do_action({ - res_model : model, - res_id: id, - views : [[false, 'form']], - type : 'ir.actions.act_window', - flags : { - search_view: false, - sidebar : false, - views_switcher : false, - action_buttons : false, - pager: false - } - }); + ); + pop.on_write.add(function() { + self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded); + }); + } - var form_controller = action_manager.inner_viewmanager.views.form.controller; + var form_controller = pop.view_form; var form_fields; @@ -270,6 +272,8 @@ openerp.web.DiagramView = openerp.web.View.extend({ }); }); } + + }, on_pager_action: function(action) {