Browse Source

Merge pull request #161 from hbrunn/8.0-support_branding

[ADD] support_branding
pull/186/head
Stefan Rijnhart (Therp) 9 years ago
parent
commit
fe7dcd855e
  1. 94
      support_branding/README.rst
  2. 0
      support_branding/__init__.py
  3. 39
      support_branding/__openerp__.py
  4. 25
      support_branding/data/ir_config_parameter.xml
  5. 48
      support_branding/i18n/nl.po
  6. 48
      support_branding/i18n/support_branding.pot
  7. BIN
      support_branding/static/description/icon.png
  8. 5
      support_branding/static/src/css/support_branding.css
  9. 114
      support_branding/static/src/js/support_branding.js
  10. 17
      support_branding/static/src/xml/base.xml
  11. 17
      support_branding/views/qweb.xml

94
support_branding/README.rst

@ -0,0 +1,94 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
Support branding
================
If you run an Odoo support company and you support customers without an OPW,
you can brand the Odoo instance accordingly using this module. This module will
add a line `Supported by $yourcompany` in the menu footer and add a button to
mail exception messages to your support email address.
Configuration
=============
This module is controlled by config parameters:
support_branding.company_name
Your company's name
support_branding.company_url
Your company's website
support_branding.company_color
The color to show your company's name in (CSS syntax)
support_branding.support_email
The (optional) mailaddress to contact for support
support_branding.release
The (optional) version number of your deployment
You probably want to depend on this module in your customer specific module and
add the following XML::
<record id="support_branding.config_parameter_company_name" model="ir.config_parameter">
<field name="value">Your company</field>
</record>
<record id="support_branding.config_parameter_company_url" model="ir.config_parameter">
<field name="value">https://yourwebsite.com</field>
</record>
<record id="support_branding.config_parameter_company_color" model="ir.config_parameter">
<field name="value">#000</field>
</record>
<record id="support_branding.config_parameter_support_email" model="ir.config_parameter">
<field name="value">support@yourwebsite.com</field>
</record>
<record id="support_branding.config_parameter_support_email" model="ir.config_parameter">
<field name="value">support@yourwebsite.com</field>
</record>
<record id="config_parameter_release" model="ir.config_parameter">
<field name="value">42</field>
</record>Configuration
Note that the email button is only visible if you configure an email address,
the default is empty!
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback
`here <https://github.com/OCA/web/issues/new?body=module:%20support_branding%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Holger Brunn <hbrunn@therp.nl>
* Stefan Rijnhart <srijnhart@therp.nl>
Icon
----
* https://commons.wikimedia.org/wiki/File:Crystal_Clear_app_khelpcenter.png
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit http://odoo-community.org.

0
support_branding/__init__.py

39
support_branding/__openerp__.py

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2012-2015 Therp BV (<http://therp.nl>).
#
# 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/>.
#
##############################################################################
{
"name": "Support branding",
"summary": "Adds your branding to an Odoo instance",
"category": "Dependecy/Hidden",
"version": "2.0",
"license": "AGPL-3",
"author": "Therp BV,Odoo Community Association (OCA)",
"website": 'http://therp.nl',
"depends": [
'web',
],
"qweb": [
'static/src/xml/base.xml',
],
"data": [
"data/ir_config_parameter.xml",
'views/qweb.xml',
],
}

25
support_branding/data/ir_config_parameter.xml

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="0">
<record id="config_parameter_company_name" model="ir.config_parameter">
<field name="key">support_branding.company_name</field>
<field name="value">Odoo Community Association (OCA)</field>
</record>
<record id="config_parameter_company_url" model="ir.config_parameter">
<field name="key">support_branding.company_url</field>
<field name="value">https://odoo-community.org</field>
</record>
<record id="config_parameter_company_color" model="ir.config_parameter">
<field name="key">support_branding.company_color</field>
<field name="value">#b163a3</field>
</record>
<record id="config_parameter_support_email" model="ir.config_parameter">
<field name="key">support_branding.support_email</field>
<field name="value" eval="''"/>
</record>
<record id="config_parameter_release" model="ir.config_parameter">
<field name="key">support_branding.release</field>
<field name="value" eval="''"/>
</record>
</data>
</openerp>

48
support_branding/i18n/nl.po

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * support_branding
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-30 10:05+0000\n"
"PO-Revision-Date: 2015-01-30 10:05+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: support_branding
#: view:website:web.menu_secondary
msgid "Version "
msgstr "Versie "
#. module: support_branding
#: view:website:web.menu_secondary
msgid ", supported by"
msgstr ", ondersteund door"
#. module: support_branding
#. openerp-web
#: code:addons/support_branding/static/src/js/support_branding.js:39
#, python-format
msgid "Email to %s"
msgstr "E-mail naar %s"
#. module: support_branding
#. openerp-web
#: code:addons/support_branding/static/src/xml/base.xml:9
#, python-format
msgid "Email to support company"
msgstr "E-mail naar ondersteunend bedrijf"
#. module: support_branding
#. openerp-web
#: code:addons/support_branding/static/src/xml/base.xml:9
#, python-format
msgid "Please fill in how you produced this error..."
msgstr "Beschrijft u alstublieft de stappen om deze fout te reproduceren..."

48
support_branding/i18n/support_branding.pot

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * support_branding
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-30 10:05+0000\n"
"PO-Revision-Date: 2015-01-30 10:05+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: support_branding
#: view:website:web.menu_secondary
msgid "Version "
msgstr ""
#. module: support_branding
#: view:website:web.menu_secondary
msgid ", supported by"
msgstr ""
#. module: support_branding
#. openerp-web
#: code:addons/support_branding/static/src/js/support_branding.js:39
#, python-format
msgid "Email to %s"
msgstr ""
#. module: support_branding
#. openerp-web
#: code:addons/support_branding/static/src/xml/base.xml:9
#, python-format
msgid "Email to Company"
msgstr ""
#. module: support_branding
#. openerp-web
#: code:addons/support_branding/static/src/xml/base.xml:9
#, python-format
msgid "Please fill in how you produced this error..."
msgstr ""

BIN
support_branding/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 13 KiB

5
support_branding/static/src/css/support_branding.css

@ -0,0 +1,5 @@
.support-branding-submit-form
{
display: inline;
margin: 0px;
}

114
support_branding/static/src/js/support_branding.js

@ -0,0 +1,114 @@
/*
Copyright (C) 2012-2015 Therp BV
License: GNU AFFERO GENERAL PUBLIC LICENSE
Version 3 or any later version
Usage: if you run an OpenERP support company and you support
customers without an OPW, you can brand the OpenERP instance
accordingly using this module. Please enter the two variables
in the code below, 'support_name' and 'support_link'. They will
replace the unfriendly message about the OpenERP instance not
being supported.
*/
openerp.support_branding = function(instance) {
var QWeb = instance.web.qweb,
_t = instance.web._t;
instance.web.CrashManager.include({
init: function()
{
var self = this,
ir_config_parameter = new openerp.web.Model('ir.config_parameter');
ir_config_parameter.call(
'get_param', ['support_branding.support_email']).then(
function(email)
{
self.support_branding_support_email = email;
});
ir_config_parameter.call(
'get_param', ['support_branding.company_name']).then(
function(name)
{
self.support_branding_company_name = name;
});
return this._super(this, arguments);
},
show_error: function(error)
{
var self = this;
this._super.apply(this, arguments);
jQuery('.support-branding-submit-form').each(function()
{
var $form = jQuery(this),
$button = $form.find('button'),
$description = $form.find('textarea[name="description"]'),
$subject = $form.find('input[name="subject"]'),
$body = $form.find('input[name="body"]');
if(self.support_branding_support_email)
{
$form.attr(
'action',
'mailto:' + self.support_branding_support_email);
$form.parents('.modal').find('.modal-body')
.css('max-height', '70vh');
$button.click(function(ev)
{
var mail_mail = new instance.web.Model('mail.mail');
if(!$description.val())
{
$description.parent().addClass('oe_form_invalid');
ev.preventDefault();
return;
}
mail_mail.call(
'create',
[{
state: 'outgoing',
auto_delete: false,
email_to: self.support_branding_support_email,
subject: $subject.val(),
body_html: jQuery('<div/>').append(
jQuery('<div/>').text($description.val()),
jQuery('<pre/>').text($body.val())
).html(),
}])
.then(function(mail_id)
{
return mail_mail.call('send', [[mail_id]]);
}, function()
{
// if the call failed, fire the mailto link
// hoping there is a properly configured email
// client
$body.val($description.val() + '\n' + $body.val())
$button.unbind('click');
$button.click();
})
.then(function()
{
$form.parents('.modal').modal('hide');
});
ev.preventDefault();
});
}
else
{
$description.hide();
$button.hide();
}
if(self.support_branding_company_name)
{
$button.text(
_.str.sprintf(
openerp.web._t('Email to %s'),
self.support_branding_company_name));
}
$form.prependTo(
$form.parents('.modal-dialog').find('.modal-footer'));
});
}
});
};

17
support_branding/static/src/xml/base.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates>
<t t-extend="CrashManager.error">
<t t-jquery="div" t-operation="after">
<div>
<form class="support-branding-submit-form oe_form" action="mailto:" enctype="text/plain" method="get">
<input type="hidden" name="subject" t-attf-value="#{session.username}@#{session.db} [#{session.server}]: #{error.message}" />
<input type="hidden" name="body" t-attf-value="#{error.data.debug}" />
<div class="oe_form_field_text oe_form_required">
<textarea name="description" placeholder="Please fill in how you produced this error..." class="" />
</div>
<button class="oe_highlight">Email to support company</button>
</form>
</div>
</t>
</t>
</templates>

17
support_branding/views/qweb.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<template id="support_branding_assets" name="support_branding assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/support_branding/static/src/js/support_branding.js"></script>
<link rel="stylesheet" href="/support_branding/static/src/css/support_branding.css" />
</xpath>
</template>
<template id="menu_secondary" inherit_id="web.menu_secondary">
<xpath expr="//div[@class='oe_footer']" position="inside">
<span>, supported by <a target="_new" t-att-href="request.env['ir.config_parameter'].get_param('support_branding.company_url')" t-att-style="'color: ' + request.env['ir.config_parameter'].get_param('support_branding.company_color')"><t t-esc="request.env['ir.config_parameter'].get_param('support_branding.company_name')" /></a></span>
<div t-if="request.env['ir.config_parameter'].get_param('support_branding.release')">Version <t t-esc="request.env['ir.config_parameter'].get_param('support_branding.release')" /></div>
</xpath>
</template>
</data>
</openerp>
Loading…
Cancel
Save