From eba79e46a53f0977b08af108c1fb2f0ad5421ee9 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 2 Dec 2013 12:45:16 +0100 Subject: [PATCH] [FIX] mail: correct announcement bar bzr revid: chs@openerp.com-20131202114516-u0u44l3xbkk1zcbx --- addons/mail/__openerp__.py | 1 + addons/mail/static/src/css/announcement.css | 3 + addons/mail/static/src/js/announcement.js | 65 +++++++++++++++------ addons/mail/static/src/xml/announcement.xml | 22 +++---- 4 files changed, 62 insertions(+), 29 deletions(-) create mode 100644 addons/mail/static/src/css/announcement.css diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index 2939f9a8bb4..47a77e0d9cb 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -81,6 +81,7 @@ Main Features 'css': [ 'static/src/css/mail.css', 'static/src/css/mail_group.css', + 'static/src/css/announcement.css', ], 'js': [ 'static/lib/jquery.expander/jquery.expander.js', diff --git a/addons/mail/static/src/css/announcement.css b/addons/mail/static/src/css/announcement.css new file mode 100644 index 00000000000..5d2a0ecba44 --- /dev/null +++ b/addons/mail/static/src/css/announcement.css @@ -0,0 +1,3 @@ +.openerp .annoucement_bar { + display: none; +} diff --git a/addons/mail/static/src/js/announcement.js b/addons/mail/static/src/js/announcement.js index 7d16a4a1621..e05d959dede 100644 --- a/addons/mail/static/src/js/announcement.js +++ b/addons/mail/static/src/js/announcement.js @@ -1,21 +1,50 @@ openerp_announcement = function(instance) { - var _t = instance.web._t; - instance.web.WebClient.include({ - show_application: function() { - var self = this; - this._super(); - var config_parameter = new instance.web.Model('ir.config_parameter'); - return config_parameter.call('get_param', ['database.uuid', false]).then(function(result) { - var head = $('head'); - head.append($('') - .attr({ - rel : 'stylesheet', - type: 'text/css', - href: 'http://127.0.0.1.xip.io:8369/openerp_enterprise/'+result+'.css', - media: 'all', - }) - ); - }); + instance.web.WebClient.include({ + show_application: function() { + return $.when(this._super.apply(this, arguments)).then(this.proxy('show_annoucement_bar')); }, + _ab_location: function(dbuuid) { + return _.str.sprintf('https://services.openerp.com/openerp-enterprise/ab/css/%s.css', dbuuid); + }, + show_annoucement_bar: function() { + if (this.session.get_cookie('ab') === 'c') { + return; + } + var self = this; + var config_parameter = new instance.web.Model('ir.config_parameter'); + var $bar = this.$el.find('.announcement_bar'); + return config_parameter.call('get_param', ['database.uuid', false]).then(function(dbuuid) { + if (!dbuuid) { + return; + } + var $css = $('').attr({ + rel : 'stylesheet', + type: 'text/css', + media: 'all', + href: self._ab_location(dbuuid) + }); + $css.on('load', function() { + var close = function() { + var data = window.getComputedStyle($bar.find('.data')[0], ':before').content || "'{}'"; + var delim = data[0]; + data = data.slice(1, data.length - 1).replace(new RegExp('\\\\'+delim, 'g'), delim); + try { + data = JSON.parse(data); + } catch(_e) { + data = {}; + } + var ttl = data.close_ttl || 24*60*60; + self.session.set_cookie('ab', 'c', ttl); + + $bar.slideUp('slow'); + }; + $bar.on('dblclick', close); + $bar.find('.close').on('click', close); + self.trigger('ab_loaded', $bar); + }); + + $('head').append($css); + }); + } }); -}; \ No newline at end of file +}; diff --git a/addons/mail/static/src/xml/announcement.xml b/addons/mail/static/src/xml/announcement.xml index cda0569d7ee..1eabb5ebc6b 100644 --- a/addons/mail/static/src/xml/announcement.xml +++ b/addons/mail/static/src/xml/announcement.xml @@ -1,13 +1,13 @@ - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + +