diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index dc599874909..433cdd2e638 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -989,6 +989,7 @@ label.error { width: 100%; } .openerp .oe-view-manager-header blockquote { + display: none; font-size: 85%; margin: 0; background: #fff; @@ -1000,6 +1001,19 @@ label.error { margin: 0; padding: 6px 1px 4px; } +.openerp .oe-view-manager-header blockquote div { + text-align: right; +} +.openerp .oe-view-manager-header blockquote div button { + border: none; + background: none; + padding: 0 4px; + margin: 0; + display: inline; + text-decoration: underline; + color: inherit; +} + .openerp .view-manager-main-sidebar { width: 180px; padding: 0; diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index 1eb57241fa6..e5d323c8a96 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -356,7 +356,7 @@ openerp.web.DataSet = openerp.web.Widget.extend( /** @lends openerp.web.DataSet * @returns {$.Deferred} */ write: function (id, data, options, callback, error_callback) { - var options = options || {}; + options = options || {}; return this.rpc('/web/dataset/save', { model: this.model, id: id, diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index c8b7b69a577..5ecf462870b 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -336,12 +336,6 @@ openerp.web.ViewManagerAction = openerp.web.ViewManager.extend(/** @lends oepner */ start: function() { var self = this; - this.$element.find('.oe_get_xml_view').click(function () { - // TODO: add search view? - $('
').text(openerp.web.json_node_to_xml(
-                self.views[self.active_view].controller.fields_view.arch, true))
-                    .dialog({ width: '95%'});
-        });
 
         var searchview_loaded;
         if (this.flags.search_view !== false) {
@@ -366,6 +360,35 @@ openerp.web.ViewManagerAction = openerp.web.ViewManager.extend(/** @lends oepner
             // schedule auto_search
             manager_ready.then(this.searchview.do_search);
         }
+
+        this.$element.find('.oe_get_xml_view').click(function () {
+            // TODO: add search view?
+            $('
').text(openerp.web.json_node_to_xml(
+                self.views[self.active_view].controller.fields_view.arch, true))
+                    .dialog({ width: '95%'});
+        });
+        if (this.action.help) {
+            var Users = new openerp.web.DataSet(self, 'res.users'),
+                header = this.$element.find('.oe-view-manager-header');
+            header.delegate(' blockquote button', 'click', function () {
+                var $this = $(this);
+                //noinspection FallthroughInSwitchStatementJS
+                switch($this.attr('name')) {
+                case 'disable':
+                    Users.write(self.session.uid, {menu_tips: false});
+                case 'hide':
+                    $this.closest('blockquote').hide();
+                }
+            });
+            Users.read_ids([this.session.uid], ['menu_tips'], function (users) {
+                var user = users[0];
+                if (!(user && user.id === self.session.uid)) {
+                    return;
+                }
+                header.find('blockquote').toggle(user.menu_tips);
+            });
+        }
+
         return manager_ready;
     },
     on_mode_switch: function (view_type) {
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 750a42451a8..9007955b056 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -445,9 +445,13 @@
 
 
     
-        

- -

+
+

+
+ + +
+