odoo.define('snailmail.widget.Thread', function (require) { "use strict"; var ThreadWidget = require('mail.widget.Thread'); var Dialog = require('web.Dialog'); var core = require('web.core'); var QWeb = core.qweb; var _t = core._t; ThreadWidget.include({ dependencies: ['bus_service'], events: _.extend({}, ThreadWidget.prototype.events, { 'click .o_thread_message_snailmail_missing_required_fields': '_onClickMissingRequiredFields', 'click .o_thread_message_snailmail_credit_error': '_onClickCreditError', 'click .o_thread_message_snailmail_trial_error': '_onClickTrialError', 'click .o_thread_message_snailmail_no_price_available': '_onClickNoPriceAvailable', 'click .o_thread_message_snailmail_format_error': '_onClickFormatError', 'click .o_thread_message_snailmail_unknown_error': '_onClickUnknownError', }), /** * @override */ init: function () { this._super.apply(this, arguments); this._enabledOptions = _.defaults(this._enabledOptions, { displaySnailmailIcons: true, }); this._disabledOptions = _.defaults(this._disabledOptions, { displaySnailmailIcons: false, }); }, /** * @override */ render: function (thread, options) { this._super.apply(this, arguments); var messages = _.clone(thread.getMessages({ domain: options.domain || [] })); this._messages = messages; this._renderMessageSnailmailPopover(); }, //-------------------------------------------------------------------------- // Private //-------------------------------------------------------------------------- /** * @private * @param {integer} messageID * @param {string} content */ _openCreditErrorDialog: function (messageID, content) { var message = _.find(this._messages, function (message) { return message.getID() === messageID; }); new Dialog(this, { size: 'medium', title: _t("Failed letter"), $content: $('
The letter could not be sent due to insufficient credits on your IAP account.
' + 'The country to which you want to send the letter is not supported by our service.
'); this._openGenericErrorDialog(messageID, content); }, /** * @private * @param {MouseEvent} event */ _onClickTrialError: function (ev) { var self = this; var messageID = $(ev.currentTarget).data('message-id'); this._rpc({ model: 'iap.account', method: 'get_credits_url', args: ['snailmail', '', 0, true], }).then(function (link) { var content = _.str.sprintf(_t( 'You need credits on your IAP account to send a letter.
' + 'An unknown error occured. Please contact our support for further assistance.
'); this._openGenericErrorDialog(messageID, content); }, }); });