summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views.js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2013-02-20 18:44:55 +0100
committerChristophe Simonis <chs@openerp.com>2013-02-20 18:44:55 +0100
commit544c8f2dd7fe9ee2030773f2aaad404b7f4b0d20 (patch)
tree99202aef2ee3aa1f8cc77e981019135d7e6382aa /addons/web/static/src/js/views.js
parent919690a41747834a6cf9eaba89280c6586554d0f (diff)
parentee4bc76f147a4af0f32d888c6f58b11c73e54d42 (diff)
[MERGE] correct hashchange check of current_state to do not coerce values. only push active_ids in state if relevant
bzr revid: chs@openerp.com-20130220174455-gsobu19naslo1h73
Diffstat (limited to 'addons/web/static/src/js/views.js')
-rw-r--r--addons/web/static/src/js/views.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 63c1b88dff6..31f3df4a746 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -191,11 +191,15 @@ 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) {
- //state["active_ids"] = this.inner_action.context.active_ids.join(',');
+ 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 });