Browse Source

MIG 9.0 support_branding

pull/469/head
Angel Moya 8 years ago
committed by Holger Brunn
parent
commit
1ba1b92669
No known key found for this signature in database GPG Key ID: 1C9760FECA3AE18
  1. 19
      support_branding/README.rst
  2. 28
      support_branding/__openerp__.py
  3. 119
      support_branding/static/src/js/support_branding.js

19
support_branding/README.rst

@ -1,6 +1,8 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
================
Support branding
================
@ -52,6 +54,20 @@ add the following XML::
Note that the email button is only visible if you configure an email address,
the default is empty!
Usage
=====
To use this module, you need to:
#. On developer mode go to Settings > Technical > Paremeters > System Parameters
#. Configure parameters related with support branding
#. Support branding is showed on left menu and when raises an exception
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/162/9.0
Bug Tracker
===========
@ -69,6 +85,7 @@ Contributors
* Holger Brunn <hbrunn@therp.nl>
* Stefan Rijnhart <srijnhart@therp.nl>
* Angel Moya <odoo@tecnativa.com>
Icon
----

28
support_branding/__openerp__.py

@ -1,30 +1,14 @@
# -*- 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/>.
#
##############################################################################
# Copyright 2012-2015 Therp BV (<http://therp.nl>)
# Copyright 2016 - Tecnativa - Angel Moya <odoo@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Support branding",
"summary": "Adds your branding to an Odoo instance",
"category": "Dependecy/Hidden",
"version": "8.0.2.0.0",
"version": "9.0.2.0.0",
"license": "AGPL-3",
"author": "Therp BV,Odoo Community Association (OCA)",
"author": "Therp BV,Tecnativa,Odoo Community Association (OCA)",
"website": 'http://therp.nl',
"depends": [
'web',
@ -36,5 +20,5 @@
"data/ir_config_parameter.xml",
'views/qweb.xml',
],
'installable': False,
'installable': True,
}

119
support_branding/static/src/js/support_branding.js

@ -1,109 +1,86 @@
/*
/* Copyright 2012-2015 Therp
* Copyright 2016 - Tecnativa - Angel Moya <odoo@tecnativa.com>
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
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()
{
odoo.define('web.support_branding', function(require) {
var CrashManager = require('web.CrashManager');
var core = require('web.core');
var Model = require('web.Model')
var _t = core._t;
CrashManager.extend({
init: function() {
var self = this,
ir_config_parameter = new openerp.web.Model('ir.config_parameter');
ir_config_parameter = new Model('ir.config_parameter');
ir_config_parameter.call(
'get_param', ['support_branding.support_email']).then(
function(email)
{
function(email) {
self.support_branding_support_email = email;
});
ir_config_parameter.call(
'get_param', ['support_branding.company_name']).then(
function(name)
{
function(name) {
self.support_branding_company_name = name;
});
return this._super(this, arguments);
},
show_error: function(error)
{
show_error: function(error) {
var self = this;
this._super.apply(this, arguments);
jQuery('.support-branding-submit-form').each(function()
{
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)
{
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())
{
$button.click(function(ev) {
var mail_mail = new Model('mail.mail');
if (!$description.val()) {
$description.parent().addClass('oe_form_invalid');
ev.preventDefault();
return;
}
mail_mail.call(
'create',
[{
state: 'outgoing',
auto_delete: true,
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');
});
'create', [{
state: 'outgoing',
auto_delete: true,
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
{
} else {
$description.hide();
$button.hide();
}
if(self.support_branding_company_name)
{
if (self.support_branding_company_name) {
$button.text(
_.str.sprintf(
openerp.web._t('Email to %s'),
_t('Email to %s'),
self.support_branding_company_name));
}
$form.prependTo(
@ -111,4 +88,4 @@ openerp.support_branding = function(instance) {
});
}
});
};
});
Loading…
Cancel
Save