[FIX] add option to avoid actions to be pushed as state. Used for login and action extracted from hash. Full state of client actions is pushed.
bzr revid: chs@openerp.com-20121012125418-jbw3iut85riepz47
This commit is contained in:
parent
db64cf7097
commit
e70d879acc
|
@ -1021,15 +1021,13 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
|
||||
var state = $.bbq.getState(true);
|
||||
var action = {
|
||||
'type': 'ir.actions.client',
|
||||
'tag': 'login',
|
||||
'params': state
|
||||
type: 'ir.actions.client',
|
||||
tag: 'login',
|
||||
_push_me: false,
|
||||
};
|
||||
|
||||
this.action_manager.do_action(action);
|
||||
this.action_manager.inner_widget.on('login_successful', this, function() {
|
||||
this.do_push_state(state);
|
||||
this._current_state = null; // ensure the state will be loaded
|
||||
this.show_application(); // will load the state we just pushed
|
||||
});
|
||||
},
|
||||
|
@ -1105,6 +1103,7 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
});
|
||||
});
|
||||
} else {
|
||||
state._push_me = false; // no need to push state back...
|
||||
this.action_manager.do_load_state(state, !!this._current_state);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -164,6 +164,10 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
state = state || {};
|
||||
if (this.getParent() && this.getParent().do_push_state) {
|
||||
if (this.inner_action) {
|
||||
if (this.inner_action._push_me === false) {
|
||||
// this action has been explicitly marked as not pushable
|
||||
return;
|
||||
}
|
||||
state['title'] = this.inner_action.name;
|
||||
if(this.inner_action.type == 'ir.actions.act_window') {
|
||||
state['model'] = this.inner_action.res_model;
|
||||
|
@ -172,7 +176,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
state['action'] = this.inner_action.id;
|
||||
} else if (this.inner_action.type == 'ir.actions.client') {
|
||||
state['action'] = this.inner_action.tag;
|
||||
//state = _.extend(this.inner_action.params || {}, state);
|
||||
state = _.extend(this.inner_action.params || {}, state);
|
||||
}
|
||||
}
|
||||
if(!this.dialog) {
|
||||
|
|
Loading…
Reference in New Issue