diff options
| author | Christophe Simonis <chs@openerp.com> | 2011-09-30 17:07:06 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@openerp.com> | 2011-09-30 17:07:06 +0200 |
| commit | c71520ea0dbfa6a3bdacb5a2bafbaaf96acfeb11 (patch) | |
| tree | 31bb4b1fdd02fd37bc3d878be36570ab0870ec79 | |
| parent | 32cdec2c720481364bbc78ee87c437d05ff9835f (diff) | |
[IMP] web_livechat: convert to 6.1 web module
bzr revid: chs@openerp.com-20110930150706-84xo4e21l58j9esw
| -rw-r--r-- | addons/web_livechat/LICENSE | 2 | ||||
| -rw-r--r-- | addons/web_livechat/__openerp__.py | 12 | ||||
| -rw-r--r-- | addons/web_livechat/publisher_warranty.py | 2 | ||||
| -rw-r--r-- | addons/web_livechat/static/src/css/lc.css (renamed from addons/web_livechat/web/static/css/lc.css) | 4 | ||||
| -rw-r--r-- | addons/web_livechat/static/src/img/available.png | bin | 0 -> 1153 bytes | |||
| -rw-r--r-- | addons/web_livechat/static/src/img/away.png | bin | 0 -> 1398 bytes | |||
| -rw-r--r-- | addons/web_livechat/static/src/img/busy.png | bin | 0 -> 1145 bytes | |||
| -rw-r--r-- | addons/web_livechat/static/src/js/web_livechat.js | 100 | ||||
| -rw-r--r-- | addons/web_livechat/static/src/xml/web_livechat.xml | 8 | ||||
| -rw-r--r-- | addons/web_livechat/web/__init__.py | 5 | ||||
| -rw-r--r-- | addons/web_livechat/web/editors.py | 93 |
11 files changed, 121 insertions, 105 deletions
diff --git a/addons/web_livechat/LICENSE b/addons/web_livechat/LICENSE index 27a1a4cf453..ff64be448e9 100644 --- a/addons/web_livechat/LICENSE +++ b/addons/web_livechat/LICENSE @@ -1,5 +1,5 @@ OpenERP, Open Source Management Solution -Copyright © 2010 OpenERP SA (<http://openerp.com>). +Copyright © 2010-2011 OpenERP SA (<http://openerp.com>). This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/addons/web_livechat/__openerp__.py b/addons/web_livechat/__openerp__.py index cea342ef05e..642600a75ef 100644 --- a/addons/web_livechat/__openerp__.py +++ b/addons/web_livechat/__openerp__.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2010 OpenERP s.a. (<http://openerp.com>). +# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -20,7 +20,7 @@ ############################################################################## { 'name': 'Live Chat Support', - 'version': '1.1', + 'version': '2.0', 'category': 'Tools', 'complexity': "easy", 'description': """ @@ -33,9 +33,15 @@ Add "Support" button in header from where you can access OpenERP Support. 'website': 'http://openerp.com', 'depends': ['base'], 'update_xml': [], + 'js' : [ + 'static/src/js/web_livechat.js', + ], + 'css' : [ + 'static/src/css/lc.css', + ], 'installable': True, 'active': True, 'web': True, 'certificate': '0013762192410413', - 'images': ['images/web_livechat_support.jpeg'], + 'images': ['static/src/img/web_livechat_support.jpeg'], } diff --git a/addons/web_livechat/publisher_warranty.py b/addons/web_livechat/publisher_warranty.py index ab83bc58c32..132e78d013e 100644 --- a/addons/web_livechat/publisher_warranty.py +++ b/addons/web_livechat/publisher_warranty.py @@ -44,7 +44,7 @@ class publisher_warranty_contract(osv.osv): @cache(skiparg=3) def get_default_livechat_text(self, cr, uid): - return '<a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank"><img src="/web_livechat/static/images/busy.png"/>Support</a>' + return '<a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank"><img src="/web_livechat/static/src/img/busy.png"/>Support</a>' publisher_warranty_contract() diff --git a/addons/web_livechat/web/static/css/lc.css b/addons/web_livechat/static/src/css/lc.css index e6892857ddd..7f1876a2793 100644 --- a/addons/web_livechat/web/static/css/lc.css +++ b/addons/web_livechat/static/src/css/lc.css @@ -1,7 +1,7 @@ -#livechat_status a.online { +.livechat span.online { text-shadow: 0 0 0.2em #9a0404, 0 0 0.2em #9a0404, 0 0 0.2em #9a0404, 0 0 0.2em #9a0404; } -#livechat_status img { +.livechat img { vertical-align: middle; margin-right: 0.5em; } diff --git a/addons/web_livechat/static/src/img/available.png b/addons/web_livechat/static/src/img/available.png Binary files differnew file mode 100644 index 00000000000..e9eea88ae5f --- /dev/null +++ b/addons/web_livechat/static/src/img/available.png diff --git a/addons/web_livechat/static/src/img/away.png b/addons/web_livechat/static/src/img/away.png Binary files differnew file mode 100644 index 00000000000..f0a0847059f --- /dev/null +++ b/addons/web_livechat/static/src/img/away.png diff --git a/addons/web_livechat/static/src/img/busy.png b/addons/web_livechat/static/src/img/busy.png Binary files differnew file mode 100644 index 00000000000..ddb24377f0f --- /dev/null +++ b/addons/web_livechat/static/src/img/busy.png diff --git a/addons/web_livechat/static/src/js/web_livechat.js b/addons/web_livechat/static/src/js/web_livechat.js new file mode 100644 index 00000000000..6fed859449c --- /dev/null +++ b/addons/web_livechat/static/src/js/web_livechat.js @@ -0,0 +1,100 @@ +/*############################################################################ +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################*/ + +var __lc_buttons = []; + +openerp.web_livechat = function (openerp) { + +var QWeb = openerp.web.qweb; +QWeb.add_template('/web_livechat/static/src/xml/web_livechat.xml'); + + +// tracking code from LiveChat +var license = '1035052', + params = '', + lang = 'en', + skill = '0'; +__lc_load = function (p) { if (typeof __lc_loaded != 'function') + if (p) { var d = document, l = d.createElement('script'), s = + d.getElementsByTagName('script')[0], a = unescape('%26'), + h = ('https:' == d.location.protocol ? 'https://' : 'http://'); l.type = 'text/javascript'; l.async = true; + l.src = h + 'gis' + p +'.livechatinc.com/gis.cgi?serverType=control'+a+'licenseID='+license+a+'jsonp=__lc_load'; + if (!(typeof p['server'] !== 'string' || typeof __lc_serv === 'string')) { + l.src = h + (__lc_serv = p['server']) + '/licence/'+license+'/script.cgi?lang='+lang+a+'groups='+skill; + l.src += (params == '') ? '' : a+'params='+encodeURIComponent(encodeURIComponent(params)); s.parentNode.insertBefore(l, s); + } else setTimeout(__lc_load, 1000); if(typeof __lc_serv != 'string'){ s.parentNode.insertBefore(l, s);} + } else __lc_load(Math.ceil(Math.random()*5)); } +__lc_load(); + + + +openerp.web_livechat.Livechat = openerp.web.Widget.extend({ + template: 'Header-LiveChat', + + start: function() { + this._super(); + if (!this.session) + return; + var self = this; + var pwc = new openerp.web.Model(self.session, "publisher_warranty.contract"); + pwc.get_func('get_default_livechat_text')().then(function(text) { + self.$element.html(text); + self.do_update(); + }); + + openerp.webclient.header.do_update.add_last(this.do_update); + }, + + do_update: function() { + var self = this; + if (!this.session) { + self.$element.remove(); + return; + } + + var lc_id = _.uniqueId('livechat_'); + this.$element.attr('id', lc_id); + + var pwc = new openerp.web.Model(self.session, "publisher_warranty.contract"); + + pwc.get_func('is_livechat_enable')().then(function(res) { + console.log('res', res); + if(!res) { + //return; + } + + __lc_buttons.push({ + elementId: lc_id, //'livechat_status', + language: 'en', + skill: '0', + type: 'text', + labels: { + online: '<img src="/web_livechat/static/src/img/available.png"/>Support', + offline: '<img src="/web_livechat/static/src/img/away.png"/>Support', + } + }); + }); + } +}); + +openerp.webclient.livechat = new openerp.web_livechat.Livechat(openerp.webclient); +openerp.webclient.livechat.prependTo('div.header_corner'); + +}; diff --git a/addons/web_livechat/static/src/xml/web_livechat.xml b/addons/web_livechat/static/src/xml/web_livechat.xml new file mode 100644 index 00000000000..b5e2db515b0 --- /dev/null +++ b/addons/web_livechat/static/src/xml/web_livechat.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- vim:fdl=1: +--> +<templates id="template" xml:space="preserve"> + <t t-name="Header-LiveChat"> + <div class="livechat block logout"></div> + </t> +</templates> diff --git a/addons/web_livechat/web/__init__.py b/addons/web_livechat/web/__init__.py deleted file mode 100644 index ec026b194f1..00000000000 --- a/addons/web_livechat/web/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -############################################################################## -# This file is part of the "web-livechatinc-odoo" OpenERP module. -# See LICENCE file at the root of the module folder. -############################################################################## -import editors diff --git a/addons/web_livechat/web/editors.py b/addons/web_livechat/web/editors.py deleted file mode 100644 index bb3dd3da354..00000000000 --- a/addons/web_livechat/web/editors.py +++ /dev/null @@ -1,93 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## - -import openobject.templating - -class BaseTemplateEditor(openobject.templating.TemplateEditor): - templates = ['/openobject/controllers/templates/base.mako'] - - def edit(self, template, template_text): - output = super(BaseTemplateEditor, self).edit(template, template_text) - - end_head = output.index('</head>') - - output = output[:end_head] + """ - <link rel="stylesheet" type="text/css" href="/web_livechat/static/css/lc.css"/> - <% - cp.session['livechat'] = rpc.RPCProxy('publisher_warranty.contract').is_livechat_enable() - %> - % if cp.session['livechat']: -<script type="text/javascript"> - - (function() { - var lc_params = ''; - var lc_lang = 'en'; - var lc_skill = '0'; - - var lc = document.createElement('script'); lc.type = 'text/javascript'; lc.async = true; - var lc_src = ('https:' == document.location.protocol ? 'https://' : 'http://'); - lc_src += 'chat.livechatinc.net/licence/1035052/script.cgi?lang='+lc_lang+unescape('%26')+'groups='+lc_skill; - lc_src += ((lc_params == '') ? '' : unescape('%26')+'params='+encodeURIComponent(encodeURIComponent(lc_params))); lc.src = lc_src; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(lc, s); - })(); - -</script> - % endif - """ + output[end_head:] - - return output - - -class HeaderTemplateEditor(openobject.templating.TemplateEditor): - templates = ['/openerp/controllers/templates/header.mako'] - - - def edit(self, template, template_text): - output = super(HeaderTemplateEditor, self).edit(template, template_text) - - PATTERN = '<div id="corner">' - corner = output.index(PATTERN) + len(PATTERN) - - - output = output[:corner] + """ - <p id="livechat_status" class="logout"> - ${ rpc.RPCProxy('publisher_warranty.contract').get_default_livechat_text() | n} - </p> - % if cp.session['livechat']: - - <script type="text/javascript"> - var __lc_buttons = __lc_buttons || []; - __lc_buttons.push({ - elementId: 'livechat_status', - language: 'en', - skill: '0', - type: 'text', - labels: { - online: '<img src="/web_livechat/static/images/available.png"/>Support', - offline: '<img src="/web_livechat/static/images/away.png"/>Support' - } - }); - </script> - - % endif - """ + output[corner:] - return output - |
