diff options
| author | Fabien Meghazi <fme@openerp.com> | 2013-02-20 10:12:26 +0100 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2013-02-20 10:12:26 +0100 |
| commit | ee4bc76f147a4af0f32d888c6f58b11c73e54d42 (patch) | |
| tree | c1465ba010e864697d6aef28a95df307c465cc37 /addons/web/static/src | |
| parent | 364ea001f9e22bfc9c112359a76ff1d8aaa724e3 (diff) | |
[IMP] Do not push active_ids in state if active_ids == [active_id]
bzr revid: fme@openerp.com-20130220091226-akczbmurjvn5jzjl
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views.js | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 47986f1da47..a2fd997cf68 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -191,10 +191,14 @@ instance.web.ActionManager = instance.web.Widget.extend({ state = _.extend(params || {}, state); } if (this.inner_action.context) { - if (this.inner_action.context.active_id) { - state["active_id"] = this.inner_action.context.active_id; + var active_id = this.inner_action.context.active_id; + if (active_id) { + state["active_id"] = active_id; } - if (this.inner_action.context.active_ids) { + var active_ids = this.inner_action.context.active_ids; + if (active_ids && !(active_ids.length === 1 && active_ids[0] === active_id)) { + // We don't push active_ids if it's a single element array containing the active_id + // This makes the url shorter in most cases. state["active_ids"] = this.inner_action.context.active_ids.join(','); } } @@ -231,6 +235,8 @@ instance.web.ActionManager = instance.web.Widget.extend({ add_context.active_ids = state.active_ids.toString().split(',').map(function(id) { return parseInt(id, 10) || id; }); + } else if (state.active_id) { + add_context.active_ids = [state.active_id]; } this.null_action(); action_loaded = this.do_action(state.action, { additional_context: add_context }); |
