[IMP] mail: allow emojis support in chat fields through new field widget

PURPOSE

Allow to use the text field with integrated emojis support in other apps
notably mass mailing

SPECIFICATIONS

Currently there is one emojis enabled widget which is based on text widget.
It is therefore limited to ``<textarea/>``.

In this commit we propose to support emojis in char fields, aka using an
``<input/>``.

We therefore move most of the code within a ``FieldEmojiCommon`` and then
creates two widgets based on it

  *  ``text_emojis`` inherits from ``FieldText``
  *  ``char_emojis`` inherits from ``FieldChar``

LINKS

Task #2117238
PR #40045
Enterprise PR odoo/enterprise#6630
This commit is contained in:
Debauche Stéphane
2019-12-13 10:24:35 +00:00
committed by Thibault Delavallée
parent e870ccf9ab
commit 2e2e945a0b
2 changed files with 18 additions and 4 deletions
@@ -9,7 +9,10 @@ var MailEmojisMixin = require('mail.emoji_mixin');
var _onEmojiClickMixin = MailEmojisMixin._onEmojiClick;
var QWeb = core.qweb;
var FieldTextEmojis = basicFields.FieldText.extend(MailEmojisMixin, {
/*
* Common code for FieldText and FieldChar
*/
var FieldEmojiCommon = {
/**
* @override
* @private
@@ -122,8 +125,19 @@ var FieldTextEmojis = basicFields.FieldText.extend(MailEmojisMixin, {
}
};
registry.add('text_emojis', FieldTextEmojis);
/**
* Extension of the FieldText that will add emojis support
*/
var FieldTextEmojis = basicFields.FieldText.extend(MailEmojisMixin, FieldEmojiCommon);
return FieldTextEmojis;
/**
* Extension of the FieldChar that will add emojis support
*/
var FieldCharEmojis = basicFields.FieldChar.extend(MailEmojisMixin, FieldEmojiCommon);
registry.add('text_emojis', FieldTextEmojis);
registry.add('char_emojis', FieldCharEmojis);
return {FieldTextEmojis: FieldTextEmojis, FieldCharEmojis: FieldCharEmojis};
});
+1 -1
View File
@@ -84,7 +84,7 @@
<!-- Emojis -->
<script type="text/javascript" src="/mail/static/src/js/emojis.js"></script>
<script type="text/javascript" src="/mail/static/src/js/emojis_mixin.js"/>
<script type="text/javascript" src="/mail/static/src/js/text_emojis_field.js"/>
<script type="text/javascript" src="/mail/static/src/js/text_emojis_fields.js"/>
<link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/emojis.scss"/>
<!-- Others -->
<link rel="stylesheet" type="text/scss" href="/mail/static/src/scss/announcement.scss"/>