[IMP] client action 'reload': optionally open a given menu_id
authorRaphael Collet <rco@openerp.com>
Tue, 15 May 2012 13:35:23 +0000 (15:35 +0200)
committerRaphael Collet <rco@openerp.com>
Tue, 15 May 2012 13:35:23 +0000 (15:35 +0200)
bzr revid: rco@openerp.com-20120515133523-78amsdjhtbzr6akj

addons/web/static/src/js/views.js

index 5501be5..e38f242 100644 (file)
@@ -1319,13 +1319,24 @@ instance.web.str_to_xml = function(s) {
 instance.web.client_actions = new instance.web.Registry();
 
 /**
- * Client action to reload the whole interface; refreshes the menu and reloads the current view
+ * 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() {
-        window.location.reload();
+        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();
+        }
     }
 });