[FIX] #menu_id loading, move client_actions registry

bzr revid: al@openerp.com-20120515153423-bj6vgiuwq26cyq5o
This commit is contained in:
Antony Lesuisse 2012-05-15 17:34:23 +02:00
parent 6a198b9099
commit 33f28d3d6b
3 changed files with 30 additions and 28 deletions

View File

@ -966,7 +966,9 @@ instance.web.WebClient = instance.web.Widget.extend({
if (!_.isEqual(this._current_state, state)) {
if(state.action_id === undefined && state.menu_id) {
self.menu.has_been_loaded.then(function() {
self.menu.menu_click(state.menu_id);
self.menu.do_reload().then(function() {
self.menu.menu_click(state.menu_id)
});
});
} else {
this.action_manager.do_load_state(state, !!this._current_state);

View File

@ -579,6 +579,33 @@ $.async_when = function() {
return old_async_when.apply(this, arguments);
};
/**
* Registry for all the client actions key: tag value: widget
*/
instance.web.client_actions = new instance.web.Registry();
/**
* Client action to reload the whole interface.
* If params has an entry 'menu_id', it opens the given menu entry.
*/
instance.web.client_actions.add("reload", "instance.web.Reload");
instance.web.Reload = instance.web.Widget.extend({
init: function(parent, params) {
this._super(parent);
this.menu_id = (params && params.menu_id) || false;
},
start: function() {
if (this.menu_id) {
// open the given menu id
var url_without_fragment = window.location.toString().split("#", 1)[0];
window.location = url_without_fragment + "#menu_id=" + this.menu_id;
} else {
window.location.reload();
}
}
});
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:

View File

@ -1261,33 +1261,6 @@ instance.web.str_to_xml = function(s) {
return xDoc;
}
/**
* Registry for all the client actions key: tag value: widget
*/
instance.web.client_actions = new instance.web.Registry();
/**
* Client action to reload the whole interface.
* If params has an entry 'menu_id', it opens the given menu entry.
*/
instance.web.client_actions.add("reload", "instance.web.Reload");
instance.web.Reload = instance.web.Widget.extend({
init: function(parent, params) {
this._super(parent);
this.menu_id = (params && params.menu_id) || false;
},
start: function() {
if (this.menu_id) {
// open the given menu id
var url_without_fragment = window.location.toString().split("#", 1)[0];
window.location = url_without_fragment + "#menu_id=" + this.menu_id;
} else {
window.location.reload();
}
}
});
/**
* Registry for all the main views
*/