diff options
| author | Rohan Patel <rop@odoo.com> | 2017-06-30 12:41:09 +0530 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2017-09-11 12:20:49 +0200 |
| commit | 8c1f6a7cc6aea43aa9ef99b7b7ae70f5abbe3d92 (patch) | |
| tree | 1f96835762a6c57fadc6ba4f11409b5406856b5d /addons | |
| parent | a58fb415fc6465b1a150d7cc295c260b6ac0b9d5 (diff) | |
[IMP] mail,*: replace emojis by unicode in chat messages
*im_livechat,rating.
Emojis are now encoded in unicode characters in messages. This
allows to copy/paste messages including emojis, ensures that
emojis are properly displayed in mail interfaces (at least those
that support unicode, e.g. GMAIL, counter-example: outlook), and
allows the user to directly use emojis of its smartphone in mobile.
This commit also adds several new emojis.
PR #11095
Diffstat (limited to 'addons')
27 files changed, 187 insertions, 124 deletions
diff --git a/addons/im_livechat/data/im_livechat_channel_data.xml b/addons/im_livechat/data/im_livechat_channel_data.xml index e0cfea7ddba..7d48a8f5f1d 100644 --- a/addons/im_livechat/data/im_livechat_channel_data.xml +++ b/addons/im_livechat/data/im_livechat_channel_data.xml @@ -3,29 +3,29 @@ <data> <!-- Smiley for rating to be displayed in the conversation --> <record id="mail_shortcode_rating_0" model="mail.shortcode"> - <field name="source">:rating_0</field> - <field name="substitution"><img src='/rating/static/src/img/rating_0.png'/></field> + <field name="source">:rating_0</field> <!-- unicode of this image is not found --> + <field name="substitution"><img src='/rating/static/src/img/rating_0.png' alt=':rating_0'/></field> <field name="description">Rating Empty Smiley</field> <field name="shortcode_type">image</field> </record> <record id="mail_shortcode_rating_1" model="mail.shortcode"> - <field name="source">:rating_1</field> - <field name="substitution"><img src='/rating/static/src/img/rating_1.png'/></field> + <field name="source">:rating_1</field> <!-- unicode of this image is not found --> + <field name="substitution"><img src='/rating/static/src/img/rating_1.png' alt=':rating_1'/></field> <field name="description">Rating Smiley Bad</field> <field name="shortcode_type">image</field> </record> <record id="mail_shortcode_rating_5" model="mail.shortcode"> - <field name="source">:rating_5</field> - <field name="substitution"><img src='/rating/static/src/img/rating_5.png'/></field> + <field name="source">:rating_5</field> <!-- unicode of this image is not found --> + <field name="substitution"><img src='/rating/static/src/img/rating_5.png' alt=':rating_5'/></field> <field name="description">Rating Smiley Okay</field> <field name="shortcode_type">image</field> </record> <record id="mail_shorcode_rating_10" model="mail.shortcode"> - <field name="source">:rating_10</field> - <field name="substitution"><img src='/rating/static/src/img/rating_10.png'/></field> + <field name="source">:rating_10</field> <!-- unicode of this image is not found --> + <field name="substitution"><img src='/rating/static/src/img/rating_10.png' alt=':rating_10'/></field> <field name="description">Rating Smiley Good</field> <field name="shortcode_type">image</field> </record> diff --git a/addons/mail/controllers/main.py b/addons/mail/controllers/main.py index ef1f09c8edc..f2568685da0 100644 --- a/addons/mail/controllers/main.py +++ b/addons/mail/controllers/main.py @@ -267,7 +267,7 @@ class MailController(http.Controller): 'channel_slots': request.env['mail.channel'].channel_fetch_slot(), 'commands': request.env['mail.channel'].get_mention_commands(), 'mention_partner_suggestions': request.env['res.partner'].get_static_mention_suggestions(), - 'shortcodes': request.env['mail.shortcode'].sudo().search_read([], ['shortcode_type', 'source', 'substitution', 'description']), + 'shortcodes': request.env['mail.shortcode'].sudo().search_read([], ['shortcode_type', 'source', 'unicode_source', 'substitution', 'description']), 'menu_id': request.env['ir.model.data'].xmlid_to_res_id('mail.mail_channel_menu_root_chat'), } return values diff --git a/addons/mail/data/mail_shortcode_data.xml b/addons/mail/data/mail_shortcode_data.xml index 2fa9d940466..64f1aa7129f 100644 --- a/addons/mail/data/mail_shortcode_data.xml +++ b/addons/mail/data/mail_shortcode_data.xml @@ -3,179 +3,228 @@ <data> <!-- Smileys --> - <record id="mail_smiley_smile" model="mail.shortcode"> + <record id="mail_smiley_normal_smile" model="mail.shortcode"> <field name="source">:)</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/smile.png'/></field> - <field name="description">Emoji Smile</field> + <field name="unicode_source">😊</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/normal_smile.png' alt='😊'/></field> + <field name="description">Smile</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_sad" model="mail.shortcode"> - <field name="source">:(</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/sad.png'/></field> - <field name="description">Emoji Sad</field> + <record id="mail_smiley_smile" model="mail.shortcode"> + <field name="source">:D</field> + <field name="unicode_source">😄</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/smile.png' alt='😄'/></field> + <field name="description">Smile with open mouth</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_laugh" model="mail.shortcode"> - <field name="source">:D</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/laugh.png'/></field> - <field name="description">Emoji Laugh</field> + <field name="source">xD</field> + <field name="unicode_source">😆</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/laugh.png' alt='😆'/></field> + <field name="description">Laugh</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_tears_of_joy" model="mail.shortcode"> + <field name="source">:-)</field> + <field name="unicode_source">😂</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/tears_of_joy.png' alt='😂'/></field> + <field name="description">Tears of joy</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_wink" model="mail.shortcode"> <field name="source">;)</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/wink.png'/></field> - <field name="description">Emoji Wink</field> + <field name="unicode_source">😉</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/wink.png' alt='😉'/></field> + <field name="description">Wink</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_sunglass" model="mail.shortcode"> + <field name="source">B)</field> + <field name="unicode_source">😎</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/sunglass.png' alt='😎'/></field> + <field name="description">Face with sunglass</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_stuck" model="mail.shortcode"> - <field name="source">O_0</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/stuck_out_tongue.png'/></field> - <field name="description">Emoji Stuck Out Tongue Winking Eye</field> + <field name="source">;p</field> + <field name="unicode_source">😜</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/stuck_out_tongue.png' alt='😜'/></field> + <field name="description">Stuck Out Tongue Winking Eye</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_scream" model="mail.shortcode"> - <field name="source">:@</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/scream.png'/></field> - <field name="description">Emoji Scream</field> + <record id="mail_smiley_cheeky" model="mail.shortcode"> + <field name="source">:p</field> + <field name="unicode_source">😋</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/yum.png' alt='😋'/></field> + <field name="description">Cheeky</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_neutral" model="mail.shortcode"> - <field name="source">:|</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/neutral.png'/></field> - <field name="description">Emoji Speechless/Neutral face</field> + <record id="mail_smiley_flushed" model="mail.shortcode"> + <field name="source">o_o</field> + <field name="unicode_source">😳</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/flushed.png' alt='😳'/></field> + <field name="description">Flushed face</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_cheeky" model="mail.shortcode"> - <field name="source">:p</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/yum.png'/></field> - <field name="description">Emoji Cheeky</field> + <record id="mail_smiley_neutral" model="mail.shortcode"> + <field name="source">:|</field> + <field name="unicode_source">😐</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/neutral.png' alt='😐'/></field> + <field name="description">Speechless/Neutral face</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_confused" model="mail.shortcode"> <field name="source">:/</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/confused.png'/></field> - <field name="description">Emoji Confused</field> + <field name="unicode_source">😕</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/confused.png' alt='😕'/></field> + <field name="description">Confused</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_sad" model="mail.shortcode"> + <field name="source">:(</field> + <field name="unicode_source">😞</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/sad.png' alt='😞'/></field> + <field name="description">Sad</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_scream" model="mail.shortcode"> + <field name="source">:@</field> + <field name="unicode_source">😱</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/scream.png' alt='😱'/></field> + <field name="description">Scream</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_open_mouth" model="mail.shortcode"> <field name="source">:O</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/open_mouth.png'/></field> - <field name="description">Emoji Open Mouth</field> + <field name="unicode_source">😮</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/open_mouth.png' alt='😮'/></field> + <field name="description">Open Mouth</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_heart" model="mail.shortcode"> - <field name="source"><3</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/heart.png'/></field> - <field name="description">Emoji Heart</field> + <record id="mail_smiley_angry" model="mail.shortcode"> + <field name="source">3:(</field> + <field name="unicode_source">😈</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/angry.png' alt='😈'/></field> + <field name="description">Angry</field> <field name="shortcode_type">image</field> </record> - - <!-- Other images --> - <record id="mail_smiley_thumbsup" model="mail.shortcode"> - <field name="source">:+1</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/thumbsup.png'/></field> - <field name="description">Emoji Thumbs Up</field> + <record id="mail_smiley_evil" model="mail.shortcode"> + <field name="source">3:)</field> + <field name="unicode_source">😈</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/evil.png' alt='😈'/></field> + <field name="description">Face with evil</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_thumbsdown" model="mail.shortcode"> - <field name="source">:-1</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/thumbsdown.png'/></field> - <field name="description">Emoji Thumbs Down</field> + <record id="mail_smiley_monkey_see" model="mail.shortcode"> + <field name="source">:no_see</field> + <field name="unicode_source">🙈</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/monkey_eye.png' alt='🙈'/></field> + <field name="description">No see</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_kitten" model="mail.shortcode"> - <field name="source">:kitten</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/cat.png'/></field> - <field name="description">Emoji Kitten</field> + <record id="mail_smiley_monkey_hear" model="mail.shortcode"> + <field name="source">:no_hear</field> + <field name="unicode_source">🙉</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/monkey_hear.png' alt='🙉'/></field> + <field name="description">No hear</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_pinky" model="mail.shortcode"> - <field name="source">:pinky</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/pinky.png'/></field> - <field name="description">Emoji Pinky</field> + <record id="mail_smiley_monkey_speak" model="mail.shortcode"> + <field name="source">:no_speak</field> + <field name="unicode_source">🙊</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/monkey_speak.png' alt='🙊'/></field> + <field name="description">No speak</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_musti" model="mail.shortcode"> - <field name="source">:musti</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/musti.png'/></field> - <field name="description">Emoji Musti</field> + <record id="mail_smiley_bug" model="mail.shortcode"> + <field name="source">:bug</field> + <field name="unicode_source">🐞</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/bug.png' alt='🐞'/></field> + <field name="description">Bug</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_man_with_turban" model="mail.shortcode"> - <field name="source">:turban</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/man_with_turban.png'/></field> - <field name="description">Emoji Man With Turban</field> + <record id="mail_smiley_kitten" model="mail.shortcode"> + <field name="source">:kitten</field> + <field name="unicode_source">😸</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/cat.png' alt='😸'/></field> + <field name="description">Kitten</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_troll" model="mail.shortcode"> - <field name="source">:troll</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/trollface.png'/></field> - <field name="description">Emoji Troll Face</field> + <record id="mail_smiley_heart" model="mail.shortcode"> + <field name="source"><3</field> + <field name="unicode_source">❤</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/heart.png' alt='❤'/></field> + <field name="description">Heart</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_boar" model="mail.shortcode"> - <field name="source">:boar</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/boar.png'/></field> - <field name="description">Emoji Boar</field> + <record id="mail_smiley_thumbsup" model="mail.shortcode"> + <field name="source">:+1</field> + <field name="unicode_source">👍</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/thumbsup.png' alt='👍'/></field> + <field name="description">Thumbs Up</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_thumbsdown" model="mail.shortcode"> + <field name="source">:-1</field> + <field name="unicode_source">👎</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/thumbsdown.png' alt='👎'/></field> + <field name="description">Thumbs Down</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_poop" model="mail.shortcode"> <field name="source">:poop</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/poop.png'/></field> - <field name="description">Emoji Poop</field> + <field name="unicode_source">💩</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/poop.png' alt='💩'/></field> + <field name="description">Poop</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_ghost" model="mail.shortcode"> + <field name="source">:ghost</field> + <field name="unicode_source">👻</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/ghost.png' alt='👻'/></field> + <field name="description">Ghost</field> <field name="shortcode_type">image</field> </record> - <record id="mail_smiley_cookie" model="mail.shortcode"> <field name="source">:cookie</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/cookie.png'/></field> - <field name="description">Emoji Cookie</field> + <field name="unicode_source">🍪</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/cookie.png' alt='🍪'/></field> + <field name="description">Cookie</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_postal_horn" model="mail.shortcode"> - <field name="source">:postal_horn</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/postal_horn.png'/></field> - <field name="description">Emoji Postal Horn</field> + <record id="mail_smiley_beer" model="mail.shortcode"> + <field name="source">:beer</field> + <field name="unicode_source">🍺</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/beer.png' alt='🍺'/></field> + <field name="description">Beer</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_ghost" model="mail.shortcode"> - <field name="source">:ghost</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/ghost.png'/></field> - <field name="description">Emoji Ghost</field> + <record id="mail_smiley_coffee" model="mail.shortcode"> + <field name="source">:coffee</field> + <field name="unicode_source">☕</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/coffee.png' alt='☕'/></field> + <field name="description">Coffee</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_beer" model="mail.shortcode"> - <field name="source">:beer</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/beer.png'/></field> - <field name="description">Emoji Beer</field> + <record id="mail_smiley_cake" model="mail.shortcode"> + <field name="source">:cake</field> + <field name="unicode_source">🎂</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/cake.png' alt='🎂'/></field> + <field name="description">Cake</field> <field name="shortcode_type">image</field> </record> - - <record id="mail_smiley_man" model="mail.shortcode"> - <field name="source">:man</field> - <field name="substitution"><img src='/mail/static/src/img/smiley/man.png'/></field> - <field name="description">Emoji Man</field> + <record id="mail_smiley_party" model="mail.shortcode"> + <field name="source">:party</field> + <field name="unicode_source">🎉</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/party.png' alt='🎉'/></field> + <field name="description">Party</field> + <field name="shortcode_type">image</field> + </record> + <record id="mail_smiley_trophy" model="mail.shortcode"> + <field name="source">:trophy</field> + <field name="unicode_source">🏆</field> + <field name="substitution"><img src='/mail/static/src/img/smiley/trophy.png' alt='🏆'/></field> + <field name="description">Trophy</field> <field name="shortcode_type">image</field> </record> diff --git a/addons/mail/models/mail_shortcode.py b/addons/mail/models/mail_shortcode.py index 780a5a746c8..119e9d88234 100644 --- a/addons/mail/models/mail_shortcode.py +++ b/addons/mail/models/mail_shortcode.py @@ -15,6 +15,7 @@ class MailShortcode(models.Model): _description = 'Canned Response / Shortcode' source = fields.Char('Shortcut', required=True, index=True, help="The shortcut which must be replaced in the Chat Messages") + unicode_source = fields.Char(string='Unicode Character', help="The source is replaced by this unicode character in the Chat Messages") substitution = fields.Text('Substitution', required=True, index=True, help="The escaped html code replacing the shortcut") description = fields.Char('Description') shortcode_type = fields.Selection([('image', 'Smiley'), ('text', 'Canned Response')], required=True, default='text', diff --git a/addons/mail/static/src/img/smiley/angry.png b/addons/mail/static/src/img/smiley/angry.png Binary files differnew file mode 100644 index 00000000000..c65ddff552a --- /dev/null +++ b/addons/mail/static/src/img/smiley/angry.png diff --git a/addons/mail/static/src/img/smiley/boar.png b/addons/mail/static/src/img/smiley/boar.png Binary files differdeleted file mode 100644 index 3ef50325016..00000000000 --- a/addons/mail/static/src/img/smiley/boar.png +++ /dev/null diff --git a/addons/mail/static/src/img/smiley/bug.png b/addons/mail/static/src/img/smiley/bug.png Binary files differnew file mode 100644 index 00000000000..222577ca7ea --- /dev/null +++ b/addons/mail/static/src/img/smiley/bug.png diff --git a/addons/mail/static/src/img/smiley/cake.png b/addons/mail/static/src/img/smiley/cake.png Binary files differnew file mode 100644 index 00000000000..36e8edcbec4 --- /dev/null +++ b/addons/mail/static/src/img/smiley/cake.png diff --git a/addons/mail/static/src/img/smiley/cat.png b/addons/mail/static/src/img/smiley/cat.png Binary files differindex dbf1b0276ab..09b9ef79a7d 100644 --- a/addons/mail/static/src/img/smiley/cat.png +++ b/addons/mail/static/src/img/smiley/cat.png diff --git a/addons/mail/static/src/img/smiley/coffee.png b/addons/mail/static/src/img/smiley/coffee.png Binary files differnew file mode 100644 index 00000000000..57e1adcb04a --- /dev/null +++ b/addons/mail/static/src/img/smiley/coffee.png diff --git a/addons/mail/static/src/img/smiley/evil.png b/addons/mail/static/src/img/smiley/evil.png Binary files differnew file mode 100644 index 00000000000..d904049309c --- /dev/null +++ b/addons/mail/static/src/img/smiley/evil.png diff --git a/addons/mail/static/src/img/smiley/flushed.png b/addons/mail/static/src/img/smiley/flushed.png Binary files differnew file mode 100644 index 00000000000..6e3a0a7d038 --- /dev/null +++ b/addons/mail/static/src/img/smiley/flushed.png diff --git a/addons/mail/static/src/img/smiley/man.png b/addons/mail/static/src/img/smiley/man.png Binary files differdeleted file mode 100644 index c4a4217f4d4..00000000000 --- a/addons/mail/static/src/img/smiley/man.png +++ /dev/null diff --git a/addons/mail/static/src/img/smiley/man_with_turban.png b/addons/mail/static/src/img/smiley/man_with_turban.png Binary files differdeleted file mode 100644 index 8a0bda1ca77..00000000000 --- a/addons/mail/static/src/img/smiley/man_with_turban.png +++ /dev/null diff --git a/addons/mail/static/src/img/smiley/monkey_eye.png b/addons/mail/static/src/img/smiley/monkey_eye.png Binary files differnew file mode 100644 index 00000000000..0890a622279 --- /dev/null +++ b/addons/mail/static/src/img/smiley/monkey_eye.png diff --git a/addons/mail/static/src/img/smiley/monkey_hear.png b/addons/mail/static/src/img/smiley/monkey_hear.png Binary files differnew file mode 100644 index 00000000000..f97a1f9a090 --- /dev/null +++ b/addons/mail/static/src/img/smiley/monkey_hear.png diff --git a/addons/mail/static/src/img/smiley/monkey_speak.png b/addons/mail/static/src/img/smiley/monkey_speak.png Binary files differnew file mode 100644 index 00000000000..87944c4de54 --- /dev/null +++ b/addons/mail/static/src/img/smiley/monkey_speak.png diff --git a/addons/mail/static/src/img/smiley/musti.png b/addons/mail/static/src/img/smiley/musti.png Binary files differdeleted file mode 100644 index f6843ddf95c..00000000000 --- a/addons/mail/static/src/img/smiley/musti.png +++ /dev/null diff --git a/addons/mail/static/src/img/smiley/normal_smile.png b/addons/mail/static/src/img/smiley/normal_smile.png Binary files differnew file mode 100644 index 00000000000..1e9021cb6fe --- /dev/null +++ b/addons/mail/static/src/img/smiley/normal_smile.png diff --git a/addons/mail/static/src/img/smiley/party.png b/addons/mail/static/src/img/smiley/party.png Binary files differnew file mode 100644 index 00000000000..7411b5266a0 --- /dev/null +++ b/addons/mail/static/src/img/smiley/party.png diff --git a/addons/mail/static/src/img/smiley/pinky.png b/addons/mail/static/src/img/smiley/pinky.png Binary files differdeleted file mode 100644 index 4466946601c..00000000000 --- a/addons/mail/static/src/img/smiley/pinky.png +++ /dev/null diff --git a/addons/mail/static/src/img/smiley/postal_horn.png b/addons/mail/static/src/img/smiley/postal_horn.png Binary files differdeleted file mode 100644 index 5b7ed85d4fc..00000000000 --- a/addons/mail/static/src/img/smiley/postal_horn.png +++ /dev/null diff --git a/addons/mail/static/src/img/smiley/sunglass.png b/addons/mail/static/src/img/smiley/sunglass.png Binary files differnew file mode 100644 index 00000000000..1c468a1c91e --- /dev/null +++ b/addons/mail/static/src/img/smiley/sunglass.png diff --git a/addons/mail/static/src/img/smiley/tears_of_joy.png b/addons/mail/static/src/img/smiley/tears_of_joy.png Binary files differnew file mode 100644 index 00000000000..47df693d424 --- /dev/null +++ b/addons/mail/static/src/img/smiley/tears_of_joy.png diff --git a/addons/mail/static/src/img/smiley/trophy.png b/addons/mail/static/src/img/smiley/trophy.png Binary files differnew file mode 100644 index 00000000000..95d3b63f524 --- /dev/null +++ b/addons/mail/static/src/img/smiley/trophy.png diff --git a/addons/mail/static/src/js/chat_manager.js b/addons/mail/static/src/js/chat_manager.js index d0c41ad67b3..807d5352180 100644 --- a/addons/mail/static/src/js/chat_manager.js +++ b/addons/mail/static/src/js/chat_manager.js @@ -29,6 +29,7 @@ var chat_unread_counter = 0; var unread_conversation_counter = 0; var emojis = []; var emoji_substitutions = {}; +var emoji_unicodes = {}; var needaction_counter = 0; var starred_counter = 0; var mention_partner_suggestions = []; @@ -670,8 +671,12 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, { if (s.shortcode_type === 'text') { canned_responses.push(_.pick(s, ['id', 'source', 'substitution'])); } else { - emojis.push(_.pick(s, ['id', 'source', 'substitution', 'description'])); + emojis.push(_.pick(s, ['id', 'source', 'unicode_source', 'substitution', 'description'])); emoji_substitutions[_.escape(s.source)] = s.substitution; + if (s.unicode_source) { + emoji_substitutions[_.escape(s.unicode_source)] = s.substitution; + emoji_unicodes[_.escape(s.source)] = s.unicode_source; + } } }); bus.start_polling(); @@ -760,6 +765,14 @@ var ChatManager = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, { body: body, attachment_ids: data.attachment_ids, }; + + // Replace emojis by their unicode character + _.each(_.keys(emoji_unicodes), function (key) { + var escaped_key = String(key).replace(/([.*+?=^!:${}()|[\]\/\\])/g, '\\$1'); + var regexp = new RegExp("(\\s|^)(" + escaped_key + ")(?=\\s|$)", "g"); + msg.body = msg.body.replace(regexp, "$1" + emoji_unicodes[key]); + }); + if ('subject' in data) { msg.subject = data.subject; } diff --git a/addons/rating/models/rating.py b/addons/rating/models/rating.py index f4bd17b48f3..5825c284ca1 100644 --- a/addons/rating/models/rating.py +++ b/addons/rating/models/rating.py @@ -240,8 +240,8 @@ class RatingMixin(models.AbstractModel): if hasattr(self, 'message_post'): feedback = tools.plaintext2html(feedback or '') self.message_post( - body="<img src='/rating/static/src/img/rating_%s.png' style='width:20px;height:20px;float:left;margin-right: 5px;'/>%s" - % (rate, feedback), + body="<img src='/rating/static/src/img/rating_%s.png' alt=':rating_%s' style='width:20px;height:20px;float:left;margin-right: 5px;'/>%s" + % (rate, rate, feedback), subtype=subtype or "mail.mt_comment", author_id=rating.partner_id and rating.partner_id.id or None # None will set the default author in mail_thread.py ) |
