forked from Techsystech/web
[ADD] support_branding
parent
b81959e97e
commit
5817531f0b
|
@ -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,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",
|
||||
"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',
|
||||
],
|
||||
'active': True,
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<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>
|
|
@ -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..."
|
||||
|
|
@ -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 ""
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,5 @@
|
|||
.support-branding-submit-form
|
||||
{
|
||||
display: inline;
|
||||
margin: 0px;
|
||||
}
|
|
@ -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'));
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
|
@ -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>
|
|
@ -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…
Reference in New Issue