summaryrefslogtreecommitdiff
path: root/addons/snailmail/static/src/js/thread_widget.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/snailmail/static/src/js/thread_widget.js')
-rw-r--r--addons/snailmail/static/src/js/thread_widget.js130
1 files changed, 59 insertions, 71 deletions
diff --git a/addons/snailmail/static/src/js/thread_widget.js b/addons/snailmail/static/src/js/thread_widget.js
index 84cc2a3b2dc..84ab7f9a877 100644
--- a/addons/snailmail/static/src/js/thread_widget.js
+++ b/addons/snailmail/static/src/js/thread_widget.js
@@ -5,39 +5,17 @@ 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();
+ this._messages = messages;
},
//--------------------------------------------------------------------------
@@ -46,8 +24,8 @@ ThreadWidget.include({
/**
* @private
- * @param {integer} messageID
- * @param {string} content
+ * @param {integer} messageID
+ * @param {string} content
*/
_openCreditErrorDialog: function (messageID, content) {
var message = _.find(this._messages, function (message) {
@@ -57,17 +35,25 @@ ThreadWidget.include({
size: 'medium',
title: _t("Failed letter"),
$content: $('<div>').html(content),
- buttons: [
- {text: _t("Re-send letter"), classes: 'btn-primary', close: true, click: _.bind(message.resendLetter, message)},
- {text: _t("Cancel letter"), close: true, click: _.bind(message.cancelLetter, message)},
- {text: _t("Close"), close: true},
- ],
+ buttons: [{
+ text: _t("Re-send letter"),
+ classes: 'btn-primary',
+ close: true,
+ click: (...args) => message.resendLetter(...args),
+ }, {
+ text: _t("Cancel letter"),
+ close: true,
+ click: (...args) => message.cancelLetter(...args),
+ }, {
+ text: _t("Close"),
+ close: true,
+ }],
}).open();
},
/**
* @private
- * @param {integer} messageID
- * @param {string} content
+ * @param {integer} messageID
+ * @param {string} content
*/
_openGenericErrorDialog: function (messageID, content) {
var message = _.find(this._messages, function (message) {
@@ -77,46 +63,17 @@ ThreadWidget.include({
size: 'medium',
title: _t("Failed letter"),
$content: $('<div>').html(content),
- buttons: [
- {text: _t("Cancel letter"), classes: 'btn-primary', close: true, click: _.bind(message.cancelLetter, message)},
- {text: _t("Close"), close: true},
- ],
+ buttons: [{
+ text: _t("Cancel letter"),
+ classes: 'btn-primary',
+ close: true,
+ click: (...args) => message.cancelLetter(...args),
+ }, {
+ text: _t("Close"),
+ close: true,
+ }],
}).open();
},
- /**
- * Render the popover when mouse-hovering on the mail icon of a message
- * in the thread. There is at most one such popover at any given time.
- *
- * @private
- * @param {mail.model.AbstractMessage[]} messages list of messages in the
- * rendered thread, for which popover on mouseover interaction is
- * permitted.
- */
- _renderMessageSnailmailPopover: function () {
- var self = this;
- if (this._messageSnailmailPopover) {
- this._messageSnailmailPopover.popover('hide');
- }
- if (!this.$('.o_thread_snailmail_tooltip').length) {
- return;
- }
- this._messageSnailmailPopover = this.$('.o_thread_snailmail_tooltip').popover({
- html: true,
- boundary: 'viewport',
- placement: 'auto',
- trigger: 'hover',
- offset: '0, 1',
- content: function () {
- var messageID = $(this).data('message-id');
- var message = _.find(self._messages, function (message) {
- return message.getID() === messageID;
- });
- return QWeb.render('snailmail.widget.Thread.Message.SnailmailTooltip', {
- status: message.getSnailmailStatus()
- });
- },
- });
- },
//--------------------------------------------------------------------------
// Handlers
@@ -158,6 +115,37 @@ ThreadWidget.include({
});
},
/**
+ * Discards the generic error handler since more specific handlers are
+ * defined here.
+ *
+ * @override
+ */
+ _onClickMessageNotificationError(ev) {
+ const $target = $(ev.currentTarget);
+ if ($target.data('message-type') === 'snailmail') {
+ if ($target.data('failure-type') === 'sn_fields') {
+ this._onClickMissingRequiredFields(ev);
+ }
+ if ($target.data('failure-type') === 'sn_credit') {
+ this._onClickCreditError(ev);
+ }
+ if ($target.data('failure-type') === 'sn_trial') {
+ this._onClickTrialError(ev);
+ }
+ if ($target.data('failure-type') === 'sn_price') {
+ this._onClickNoPriceAvailable(ev);
+ }
+ if ($target.data('failure-type') === 'sn_format') {
+ this._onClickFormatError(ev);
+ }
+ if ($target.data('failure-type') === 'sn_error') {
+ this._onClickUnknownError(ev);
+ }
+ } else {
+ this._super(...arguments);
+ }
+ },
+ /**
* @private
* @param {MouseEvent} event
*/