diff options
Diffstat (limited to 'addons/mail/static/src/js/composer.js')
| -rw-r--r-- | addons/mail/static/src/js/composer.js | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/addons/mail/static/src/js/composer.js b/addons/mail/static/src/js/composer.js index a02a3966333..5d6de2bad50 100644 --- a/addons/mail/static/src/js/composer.js +++ b/addons/mail/static/src/js/composer.js @@ -315,7 +315,7 @@ var BasicComposer = Widget.extend({ template: "mail.ChatComposer", events: { - "keydown .o_composer_input": "on_keydown", + "keydown .o_composer_input textarea": "on_keydown", "keyup .o_composer_input": "on_keyup", "change input.o_form_input_file": "on_attachment_change", "click .o_composer_button_send": "send_message", @@ -331,6 +331,7 @@ var BasicComposer = Widget.extend({ input_max_height: 150, input_min_height: 28, mention_fetch_limit: 8, + mention_partners_restricted: false, // set to true to only suggest prefetched partners send_text: _('Send'), }); this.context = this.options.context; @@ -354,6 +355,10 @@ var BasicComposer = Widget.extend({ model: 'mail.channel', redirect_classname: 'o_channel_redirect', }); + + // Emojis + this.emoji_container_classname = 'o_composer_emoji'; + this.PartnerModel = new Model('res.partner'); this.ChannelModel = new Model('mail.channel'); }, @@ -363,7 +368,7 @@ var BasicComposer = Widget.extend({ this.$attachment_button = this.$(".o_composer_button_add_attachment"); this.$attachments_list = this.$('.o_composer_attachments_list'); - this.$input = this.$('.o_composer_input'); + this.$input = this.$('.o_composer_input textarea'); this.$input.focus(function () { self.trigger('input_focused'); }); @@ -386,7 +391,7 @@ var BasicComposer = Widget.extend({ return self.$emojis; }, html: true, - container: '.o_composer_emoji', + container: '.' + self.emoji_container_classname, trigger: 'focus', }); @@ -443,8 +448,8 @@ var BasicComposer = Widget.extend({ /** * Send the message on ENTER, but go to new line on SHIFT+ENTER */ - prevent_send: function (event) { - return event.shiftKey; + should_send: function (event) { + return !event.shiftKey; }, on_keydown: function (event) { @@ -465,9 +470,12 @@ var BasicComposer = Widget.extend({ case $.ui.keyCode.ENTER: if (this.mention_manager.is_open()) { event.preventDefault(); - } else if (!this.prevent_send(event)) { - event.preventDefault(); - this.send_message(); + } else { + var send_message = event.ctrlKey || this.should_send(event); + if (send_message) { + event.preventDefault(); + this.send_message(); + } } break; } @@ -613,7 +621,7 @@ var BasicComposer = Widget.extend({ } } }); - if (!suggestions.length) { + if (!suggestions.length && !self.options.mention_partners_restricted) { // no result found among prefetched partners, fetch other suggestions var kwargs = { limit: limit, @@ -648,8 +656,9 @@ var ExtendedComposer = BasicComposer.extend({ options = _.defaults(options || {}, { input_min_height: 120, }); + this._super(parent, options); this.extended = true; - return this._super(parent, options); + this.emoji_container_classname = 'o_extended_composer_emoji'; }, start: function () { @@ -667,8 +676,8 @@ var ExtendedComposer = BasicComposer.extend({ }); }, - prevent_send: function () { - return true; + should_send: function () { + return false; }, }); |
