From c5c689a21c3ddeb200aeb6087e244ebcbbb0ae35 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 14 Sep 2011 12:15:31 +0200 Subject: [PATCH] [IMP] when hiding a given menu tip, hide for the length of the web client session bzr revid: xmo@openerp.com-20110914101531-ci5c8z7rearvycyh --- addons/web/static/src/js/views.js | 25 +++++++++++++++++-------- addons/web/static/src/xml/base.xml | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 5ecf462870b..5048f18d4c2 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -327,6 +327,12 @@ openerp.web.ViewManagerAction = openerp.web.ViewManager.extend(/** @lends oepner // buttons, sidebar, ...) displaying this.flags.search_view = this.flags.pager = this.flags.sidebar = this.flags.action_buttons = false; } + + // setup storage for session-wise menu hiding + if (this.session.hidden_menutips) { + return; + } + this.session.hidden_menutips = {} }, /** * Initializes the ViewManagerAction: sets up the searchview (if the @@ -370,7 +376,7 @@ openerp.web.ViewManagerAction = openerp.web.ViewManager.extend(/** @lends oepner 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 () { + header.delegate('blockquote button', 'click', function () { var $this = $(this); //noinspection FallthroughInSwitchStatementJS switch($this.attr('name')) { @@ -378,15 +384,18 @@ openerp.web.ViewManagerAction = openerp.web.ViewManager.extend(/** @lends oepner Users.write(self.session.uid, {menu_tips: false}); case 'hide': $this.closest('blockquote').hide(); + self.session.hidden_menutips[self.action.id] = true; } }); - 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); - }); + if (!(self.action.id in self.session.hidden_menutips)) { + 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; diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 9007955b056..69ead1d2c32 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -445,7 +445,7 @@ -
+