[MIG] support_branding migration to 10

This commit is contained in:
robert rottermann
2017-05-31 16:24:15 +02:00
committed by KKamaa
parent b2998d6be4
commit f0673e698c
4 changed files with 75 additions and 97 deletions

View File

@@ -1,109 +1,88 @@
/*
Copyright (C) 2012-2015 Therp BV
License: GNU AFFERO GENERAL PUBLIC LICENSE
Version 3 or any later version
/* Copyright 2012-2015 Therp
* Copyright 2016 - Tecnativa - Angel Moya <odoo@tecnativa.com>
* Copyright 2017 - redO2oo - Robert Rottermann <robert@redO2oo.ch>
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
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.include({
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: 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');
});
'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 +90,6 @@ openerp.support_branding = function(instance) {
});
}
});
};
// this is already instantiated, so we need to call init manually
require('web.crash_manager').init();
});