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 @@- +-
- ++
+ + ++