diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-04-08 17:25:08 +0200 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-04-08 17:25:08 +0200 |
| commit | 29ed9f9be3053e62aae0fb12275500a8368d68b9 (patch) | |
| tree | 1c39a1c45e18c2798c14f21de01c43b6de3eaefc /addons/base/static/src | |
| parent | 887ec82f205bbf417c3ecaa66c79f06e6c24f7d1 (diff) | |
[IMP] Action wip - popup is working.
bzr revid: nicolas.vanhoren@openerp.com-20110408152508-5mes2key0yzq9avq
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/js/views.js | 46 | ||||
| -rw-r--r-- | addons/base/static/src/xml/base.xml | 2 |
2 files changed, 32 insertions, 16 deletions
diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 1707a4db54a..2828b832afd 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -159,10 +159,13 @@ openerp.base.ViewManagerAction = openerp.base.ViewManager.extend({ search_defaults[match[1]] = value; } }); - var searchview_loaded = this.setup_search_view(view_id,search_defaults); + var searchview_loaded = null; + if (view_id) { + searchview_loaded = this.setup_search_view(view_id,search_defaults); + } // schedule auto_search - if (this.action['auto_search']) { + if (searchview_loaded != null && this.action['auto_search']) { $.when(searchview_loaded, inital_view_loaded) .then(this.searchview.do_search); } @@ -291,9 +294,10 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({ this.$element.find("a").click(function(e) { $this = jQuery(this); var i = $this.attr("data-i"); - var j = $this.attr("data-i"); + var j = $this.attr("data-j"); var action = self.sections[i].elements[j]; - openerp.base.handle_action(self.view_manager.session, action); + (new openerp.base.ExternalActionManager(self.view_manager.session, null)) + .handle_action(action); e.stopPropagation(); e.preventDefault(); }); @@ -304,19 +308,31 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({ } }); -openerp.base.handle_action = function(session, action) { - if(action.type=="ir.actions.act_window") { - if(action.target=="new") { - var element_id = _.uniqueId("act_window_dialog"); - var dialog = $('<div id="'+element_id+'"></div>'); - dialog.dialog({ - title: action.name - }); - var viewmanager = new openerp.base.ViewManagerAction(session,element_id, action, false); - viewmanager.start(); +openerp.base.ExternalActionManager = openerp.base.Controller.extend({ + handle_action: function(action) { + if(action.type=="ir.actions.act_window") { + if(action.target=="new") { + var element_id = _.uniqueId("act_window_dialog"); + var dialog = $('<div id="'+element_id+'"></div>'); + dialog.dialog({ + title: action.name + }); + var viewmanager = new openerp.base.ViewManagerAction(this.session + ,element_id, action, false); + viewmanager.start(); + } else if (action.target == "current") { + this.rpc("/base/session/save_session_action", {the_action:action}, function(key) { + debugger; + var url = window.location.href; + //window.open(); + }); + } } + // TODO: show an error like "not implemented" here + // since we don't currently have any way to handle errors do you have any better idea + // than using todos? } -}; +}); openerp.base.views.add('calendar', 'openerp.base.CalendarView'); openerp.base.CalendarView = openerp.base.Controller.extend({ diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 0b3fb9b050a..e96c639769f 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -492,7 +492,7 @@ <t t-set="j" t-value="0"/> <t t-foreach="section.elements" t-as="element"> <li><a t-att-data-i="i" t-att-data-j="j" href="#"><t t-esc="element.name"/></a></li> - <t t-set="j+1" t-value="0"/> + <t t-set="j" t-value="j+1"/> </t> </ul> </t> |
