summaryrefslogtreecommitdiff
path: root/addons/mail/static
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/static')
-rw-r--r--addons/mail/static/src/js/activity.js5
-rw-r--r--addons/mail/static/src/js/views/activity/activity_view.js2
-rw-r--r--addons/mail/static/src/scss/composer.scss11
-rw-r--r--addons/mail/static/src/scss/discuss.scss6
-rw-r--r--addons/mail/static/src/scss/followers.scss2
-rw-r--r--addons/mail/static/src/scss/mail_activity.scss9
-rw-r--r--addons/mail/static/src/scss/systray.scss5
-rw-r--r--addons/mail/static/src/scss/thread.scss4
-rw-r--r--addons/mail/static/src/scss/thread_window.scss4
-rw-r--r--addons/mail/static/src/xml/abstract_thread_window.xml4
-rw-r--r--addons/mail/static/src/xml/activity.xml4
-rw-r--r--addons/mail/static/src/xml/activity_view.xml2
-rw-r--r--addons/mail/static/src/xml/chatter.xml4
-rw-r--r--addons/mail/static/src/xml/composer.xml4
-rw-r--r--addons/mail/static/src/xml/discuss.xml18
-rw-r--r--addons/mail/static/src/xml/followers.xml10
-rw-r--r--addons/mail/static/src/xml/systray.xml10
-rw-r--r--addons/mail/static/src/xml/thread.xml22
-rw-r--r--addons/mail/static/src/xml/thread_window.xml2
-rw-r--r--addons/mail/static/src/xml/web_kanban_activity.xml12
-rw-r--r--addons/mail/static/tests/chatter_tests.js22
-rw-r--r--addons/mail/static/tests/systray/systray_activity_menu_tests.js8
22 files changed, 93 insertions, 77 deletions
diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js
index 5596e407c09..7e73233d4a6 100644
--- a/addons/mail/static/src/js/activity.js
+++ b/addons/mail/static/src/js/activity.js
@@ -691,13 +691,14 @@ var KanbanActivity = BasicActivity.extend({
_render: function () {
// span classes need to be updated manually because the template cannot
// be re-rendered eaasily (because of the dropdown state)
- const spanClasses = ['fa', 'fa-lg', 'fa-fw'];
+ const spanClasses = ['fa-fw'];
spanClasses.push('o_activity_color_' + (this.activityState || 'default'));
if (this.recordData.activity_exception_decoration) {
spanClasses.push('text-' + this.recordData.activity_exception_decoration);
spanClasses.push(this.recordData.activity_exception_icon);
} else {
- spanClasses.push('fa-clock-o');
+ spanClasses.push('far');
+ spanClasses.push('fa-clock');
}
this.$('.o_activity_btn > span').removeClass().addClass(spanClasses.join(' '));
diff --git a/addons/mail/static/src/js/views/activity/activity_view.js b/addons/mail/static/src/js/views/activity/activity_view.js
index b21a68215d1..98a941c5b2f 100644
--- a/addons/mail/static/src/js/views/activity/activity_view.js
+++ b/addons/mail/static/src/js/views/activity/activity_view.js
@@ -13,7 +13,7 @@ var _lt = core._lt;
var ActivityView = BasicView.extend({
accesskey: "a",
display_name: _lt('Activity'),
- icon: 'fa-clock-o',
+ icon: 'far fa-clock',
config: _.extend({}, BasicView.prototype.config, {
Controller: ActivityController,
Model: ActivityModel,
diff --git a/addons/mail/static/src/scss/composer.scss b/addons/mail/static/src/scss/composer.scss
index ad3338fb794..9ca1e0773bb 100644
--- a/addons/mail/static/src/scss/composer.scss
+++ b/addons/mail/static/src/scss/composer.scss
@@ -54,14 +54,21 @@
font-style: italic;
color: gray;
}
- .fa {
+ .fa,
+ .far,
+ .fas {
+ font-size: 0.8em;
font-size: 0.8em;
}
}
textarea {
resize: none;
}
- .btn.fa {
+ .btn.fa,
+ .btn.far,
+ .btn.fas {
+ @include o-hover-opacity($default-opacity: 0.8, $hover-opacity: 1);
+ @include o-hover-opacity($default-opacity: 0.8, $hover-opacity: 1);
@include o-hover-opacity($default-opacity: 0.8, $hover-opacity: 1);
border: none;
}
diff --git a/addons/mail/static/src/scss/discuss.scss b/addons/mail/static/src/scss/discuss.scss
index 4a35ef55ade..1c94a232e2e 100644
--- a/addons/mail/static/src/scss/discuss.scss
+++ b/addons/mail/static/src/scss/discuss.scss
@@ -78,7 +78,7 @@
.o_mail_partner_unpin, .o_mail_channel_settings {
padding: 2px 6px;
}
- i.fa-envelope-o {
+ i.fa-envelope {
margin-left: 3px;
}
@@ -488,7 +488,9 @@
font-weight: 500;
font-size: 10px;
- &.fa {
+ &.fa,
+ &.far,
+ &.fas {
padding-bottom: $o-mail-chatter-mobile-gap*2;
font-size: 1.3em;
}
diff --git a/addons/mail/static/src/scss/followers.scss b/addons/mail/static/src/scss/followers.scss
index 031affb6e52..4bc011fccbe 100644
--- a/addons/mail/static/src/scss/followers.scss
+++ b/addons/mail/static/src/scss/followers.scss
@@ -41,7 +41,7 @@
display: initial;
}
- .fa {
+ .fa, .far, .fas {
&.fa-times {
color: theme-color('warning');
}
diff --git a/addons/mail/static/src/scss/mail_activity.scss b/addons/mail/static/src/scss/mail_activity.scss
index 9f2a9f7002b..fd8581c8a94 100644
--- a/addons/mail/static/src/scss/mail_activity.scss
+++ b/addons/mail/static/src/scss/mail_activity.scss
@@ -155,10 +155,13 @@
.o_kanban_record, .o_view_controller{
.o_mail_activity {
.o_activity_btn {
- span.fa {
+ span.fa,
+ span.far,
+ span.fas {
overflow: visible;
line-height: 1;
vertical-align: middle;
+ font-size: 15px;
}
}
@@ -178,6 +181,10 @@
.o_activity_title_entry {
display: flex;
align-items: baseline;
+
+ .fa, .far, .fas, .fab {
+ font-size: unset;
+ }
}
.o_edit_button {
diff --git a/addons/mail/static/src/scss/systray.scss b/addons/mail/static/src/scss/systray.scss
index 8330906c737..2699f023435 100644
--- a/addons/mail/static/src/scss/systray.scss
+++ b/addons/mail/static/src/scss/systray.scss
@@ -2,9 +2,6 @@
.o_mail_systray_item {
> a {
opacity: 1;
- > i {
- font-size: larger;
- }
}
&.o_no_notification > a {
opacity: 0.5;
@@ -77,7 +74,7 @@
height: 40px;
object-fit: cover;
- .fa-circle-o {
+ .fa-circle {
display: none;
}
}
diff --git a/addons/mail/static/src/scss/thread.scss b/addons/mail/static/src/scss/thread.scss
index c64b3f6aefd..0331548a8ed 100644
--- a/addons/mail/static/src/scss/thread.scss
+++ b/addons/mail/static/src/scss/thread.scss
@@ -90,7 +90,7 @@
bottom: 0;
right: 0;
- &.fa-circle-o {
+ &.fa-circle {
display: none;
}
}
@@ -126,7 +126,7 @@
.o_thread_icon {
cursor: pointer;
opacity: 0;
- &.fa-star {
+ &.fas.fa-star {
opacity: $o-mail-thread-icon-opacity;
color: gold;
}
diff --git a/addons/mail/static/src/scss/thread_window.scss b/addons/mail/static/src/scss/thread_window.scss
index abc8ff2846d..053229c55f2 100644
--- a/addons/mail/static/src/scss/thread_window.scss
+++ b/addons/mail/static/src/scss/thread_window.scss
@@ -50,7 +50,9 @@
@include media-breakpoint-down(sm) {
padding: 13px;
}
- &.btn.fa {
+ &.btn.fa,
+ &.btn.far,
+ &.btn.fas {
font-size: 1.3em;
}
}
diff --git a/addons/mail/static/src/xml/abstract_thread_window.xml b/addons/mail/static/src/xml/abstract_thread_window.xml
index 9bc83b79242..36f5bc9e8e5 100644
--- a/addons/mail/static/src/xml/abstract_thread_window.xml
+++ b/addons/mail/static/src/xml/abstract_thread_window.xml
@@ -34,7 +34,7 @@
<t t-name="mail.HiddenThreadWindowsDropdown">
<div t-attf-class="o_thread_window o_in_home_menu o_thread_window_dropdown dropup #{open ? 'open' : ''}">
<span role="alert" class="o_thread_window_dropdown_toggler dropdown-toggle" data-toggle="dropdown" title="Unread messages">
- <i class="fa fa-comments-o" role="img" aria-label="Messages"/> <t t-esc="threadWindows.length"/>
+ <i class="fas fa-comments" role="img" aria-label="Messages"/> <t t-esc="threadWindows.length"/>
<span class="o_total_unread_counter">
<t t-if="unreadCounter"><t t-esc="unreadCounter"/></t>
</span>
@@ -75,7 +75,7 @@
<t t-if="thread and thread.hasTypingNotification() and thread.isSomeoneTyping()" t-call="mail.ThreadTypingIcon"/>
</span>
<span t-if="!widget.isMobile()" class="o_thread_window_buttons">
- <a href="#" class="o_thread_window_close fa fa-close"/>
+ <a href="#" class="o_thread_window_close fas fa-times"/>
</span>
</t>
diff --git a/addons/mail/static/src/xml/activity.xml b/addons/mail/static/src/xml/activity.xml
index 8d41c15093b..488f1434c62 100644
--- a/addons/mail/static/src/xml/activity.xml
+++ b/addons/mail/static/src/xml/activity.xml
@@ -65,7 +65,7 @@
<div class="mt16" t-att-data-activity-id="activity.id" t-att-data-previous-activity-type-id="activity.activity_type_id[0]">
<t t-foreach="activity.mail_template_ids" t-as="mail_template">
<div>
- <i class="fa fa-envelope-o" aria-label="Mail" title="Mail" role="img"></i>
+ <i class="far fa-envelope" aria-label="Mail" title="Mail" role="img"></i>
<span t-esc="mail_template.name"/>:
<span class="o_activity_template_preview" t-att-data-template-id="mail_template.id">Preview</span>
<span class="text-muted">or</span>
@@ -101,7 +101,7 @@
</t>
</span>
<a role="button" href="#" class="btn btn-link btn-secondary text-muted o_edit_activity o_activity_link" t-att-data-activity-id="activity.id">
- <i class="fa fa-pencil"/> Edit
+ <i class="fas fa-pencil-alt"/> Edit
</a>
<a role="button" href="#" class="btn btn-link btn-danger text-muted o_unlink_activity o_activity_link" t-att-data-activity-id="activity.id">
<i class="fa fa-times"/> Cancel
diff --git a/addons/mail/static/src/xml/activity_view.xml b/addons/mail/static/src/xml/activity_view.xml
index 2db197373b7..ca47ec4361a 100644
--- a/addons/mail/static/src/xml/activity_view.xml
+++ b/addons/mail/static/src/xml/activity_view.xml
@@ -12,7 +12,7 @@
<i class="fa fa-ellipsis-v fa-fw" data-toggle="dropdown"/>
<div class="dropdown-menu">
<div t-foreach="type[2]" t-as="template" title="This action will send an email." class="o_template_element o_send_mail_template" t-att-data-template-id="template.id">
- <i class="fa fa-envelope fa-fw"/> <t t-esc="template.name"/>
+ <i class="far fa-envelope fa-fw"/> <t t-esc="template.name"/>
</div>
</div>
</span>
diff --git a/addons/mail/static/src/xml/chatter.xml b/addons/mail/static/src/xml/chatter.xml
index 715157fa43b..337a7ae53f3 100644
--- a/addons/mail/static/src/xml/chatter.xml
+++ b/addons/mail/static/src/xml/chatter.xml
@@ -92,7 +92,7 @@
<!-- Add a button to open the full composer dialog -->
<t t-jquery=".o_composer_button_add_attachment" t-operation="after">
- <button tabindex="6" class="btn btn-secondary fa fa-expand o_composer_button_full_composer" type="button" title="Full composer" aria-label="Full composer"/>
+ <button tabindex="6" class="btn btn-secondary fa fa-expand-arrows-alt o_composer_button_full_composer" type="button" title="Full composer" aria-label="Full composer"/>
</t>
</t>
@@ -112,7 +112,7 @@
Log note
</button>
<button t-if="scheduleActivityButton" class="btn btn-link o_chatter_button_schedule_activity" title="Log or schedule an activity" disabled="disabled">
- <i class="fa fa-clock-o" role="img" aria-label="Dates" title="Dates"/> <t t-if="isMobile">Activity</t><t t-else="">Schedule activity</t>
+ <i class="far fa-clock" role="img" aria-label="Dates" title="Dates"/> <t t-if="isMobile">Activity</t><t t-else="">Schedule activity</t>
</button>
<t t-if="!disableAttachmentBox">
<t t-call="mail.chatter.Attachment.Button">
diff --git a/addons/mail/static/src/xml/composer.xml b/addons/mail/static/src/xml/composer.xml
index 071a8023e83..f0eb400e561 100644
--- a/addons/mail/static/src/xml/composer.xml
+++ b/addons/mail/static/src/xml/composer.xml
@@ -17,9 +17,9 @@
<div class="o_composer_input">
<textarea class="o_input o_composer_text_field" tabindex="2" placeholder="Write something..."/>
<div class="o_chatter_composer_tools">
- <button tabindex="4" class="btn btn-secondary fa fa-smile-o o_composer_button_emoji" type="button" data-toggle="popover" title="Emojis" aria-label="Emojis"/>
+ <button tabindex="4" class="btn btn-secondary far fa-smile o_composer_button_emoji" type="button" data-toggle="popover" title="Emojis" aria-label="Emojis"/>
<button tabindex="5" class="btn btn-secondary fa fa-paperclip o_composer_button_add_attachment" type="button" aria-label="Add attachment" title="Add attachment"/>
- <button t-if="widget.options.isMobile" tabindex="3" t-attf-class="btn #{widget.isMini ? 'btn-primary' : 'btn-secondary'} fa fa-paper-plane-o o_composer_button_send" type="button" title="Send" aria-label="Send"/>
+ <button t-if="widget.options.isMobile" tabindex="3" t-attf-class="btn #{widget.isMini ? 'btn-primary' : 'btn-secondary'} far fa-paper-plane o_composer_button_send" type="button" title="Send" aria-label="Send"/>
</div>
</div>
</div>
diff --git a/addons/mail/static/src/xml/discuss.xml b/addons/mail/static/src/xml/discuss.xml
index 3b21d7f230a..429ee691806 100644
--- a/addons/mail/static/src/xml/discuss.xml
+++ b/addons/mail/static/src/xml/discuss.xml
@@ -63,7 +63,7 @@
</div>
<div t-attf-class="o_mail_discuss_title_main o_mail_mailbox_title_starred o_mail_discuss_item #{(activeThreadID === 'mailbox_starred') ? 'o_active': ''}"
data-thread-id="mailbox_starred">
- <span class="o_thread_name"><i class="fa fa-star-o mr8"/>Starred</span>
+ <span class="o_thread_name"><i class="far fa-star mr8"/>Starred</span>
<t t-set="counter" t-value="starred.getMailboxCounter()"/>
<t t-call="mail.discuss.SidebarCounter"/>
</div>
@@ -73,7 +73,7 @@
</div>
<div t-if="isMyselfModerator" t-attf-class="o_mail_discuss_title_main o_mail_discuss_item #{(activeThreadID == 'mailbox_moderation') ? 'o_active': ''}"
data-thread-id="mailbox_moderation">
- <span class="o_thread_name"> <i class="fa fa-envelope mr8"/>Moderation Queue</span>
+ <span class="o_thread_name"> <i class="far fa-envelope mr8"/>Moderation Queue</span>
<t t-set="counter" t-value="moderation.getMailboxCounter()"/>
<t t-call="mail.discuss.SidebarCounter"/>
</div>
@@ -171,7 +171,7 @@
<span t-if="displayHash" class="o_mail_hash">#</span>
<i t-if="channel.getType() === 'multi_user_channel' and !channel.isPublic()" class="fa fa-lock" title="Private channel" role="img" aria-label="Private channel"/>
<t t-esc="_.unescape(channel.getName())"/>
- <i t-if="channel.isMassMailing()" class="fa fa-envelope-o" title="Sends messages by email" role="img" aria-label="Send by mail"/>
+ <i t-if="channel.isMassMailing()" class="far fa-envelope" title="Sends messages by email" role="img" aria-label="Send by mail"/>
</span>
<t t-if="channel.hasTypingNotification() and channel.isSomeoneTyping()">
<t t-set="thread" t-value="channel"/>
@@ -192,9 +192,9 @@
-->
<t t-name="mail.UserStatus">
<span t-att-class="partnerID ? 'o_updatable_im_status' : ''" t-att-data-partner-id="partnerID">
- <i t-if="status == 'online'" class="o_mail_user_status o_user_online fa fa-circle" title="Online" role="img" aria-label="User is online"/>
- <i t-if="status == 'away'" class="o_mail_user_status o_user_idle fa fa-circle" title="Idle" role="img" aria-label="User is idle"/>
- <i t-if="status == 'offline'" class="o_mail_user_status fa fa-circle-o" title="Offline" role="img" aria-label="User is offline"/>
+ <i t-if="status == 'online'" class="o_mail_user_status o_user_online far fa-circle" title="Online" role="img" aria-label="User is online"/>
+ <i t-if="status == 'away'" class="o_mail_user_status o_user_idle far fa-circle" title="Idle" role="img" aria-label="User is idle"/>
+ <i t-if="status == 'offline'" class="o_mail_user_status far fa-circle" title="Offline" role="img" aria-label="User is offline"/>
</span>
</t>
@@ -264,7 +264,7 @@
<span class="o_tab_title">Inbox</span>
</div>
<div class="o_mail_mobile_tab" data-type="dm_chat">
- <span class="fa fa-user"/>
+ <span class="fas fa-user"/>
<span class="o_tab_title">Chat</span>
</div>
<div class="o_mail_mobile_tab" data-type="multi_user_channel">
@@ -330,13 +330,13 @@
<span class="o_preview_counter">
<t t-if="preview.unreadCounter &gt; 0">&amp;nbsp;(<t t-esc="preview.unreadCounter"/>)</t>
</span>
- <span t-if="preview.isLinkedToDocumentThread" class="o_discuss_icon o_thread_window_expand fa fa-expand"/>
+ <span t-if="preview.isLinkedToDocumentThread" class="o_discuss_icon o_thread_window_expand fa fa-expand-arrows-alt"/>
<span class="o_last_message_date ml-auto mr-2"> <t t-esc="preview.date ? preview.date.fromNow() : ''"/> </span>
</div>
<div class="o_last_message_preview">
<t t-if="preview.body">
<t t-if="preview.isMyselfAuthor">
- <span class="fa fa-mail-reply" role="img" aria-label="Reply"/> You:
+ <span class="fas fa-reply" role="img" aria-label="Reply"/> You:
</t>
<t t-elif="preview.author">
<t t-esc="preview.author"/>:
diff --git a/addons/mail/static/src/xml/followers.xml b/addons/mail/static/src/xml/followers.xml
index 8a0914737a2..5d4bf89d6e2 100644
--- a/addons/mail/static/src/xml/followers.xml
+++ b/addons/mail/static/src/xml/followers.xml
@@ -9,7 +9,7 @@
<div class="o_followers_title_box btn-group">
<button class="btn btn-link" title="Dropdown menu - Followers"
data-toggle="dropdown" aria-expanded="false">
- <i class="fa fa-user" role="img" aria-label="Dropdown menu - Followers"></i>
+ <i class="fas fa-user" role="img" aria-label="Dropdown menu - Followers"></i>
<span class="o_followers_count"/>
</button>
<div class="dropdown-menu dropdown-menu-right o_followers_list" role="menu"/>
@@ -40,7 +40,7 @@
<t t-esc="record.name"/>
</a>
<button t-if="record.is_editable"
- class="btn btn-icon fa fa-pencil o_edit_subtype d-none"
+ class="btn btn-icon fas fa-pencil-alt o_edit_subtype d-none"
title="Edit subscription"
aria-label="Edit subscription"
role="img"
@@ -48,7 +48,7 @@
t-att-data-oe-id="record.res_id"
t-att-data-oe-model="record.res_model"/>
<button t-if="widget.isEditable"
- class="btn btn-icon fa fa-remove o_remove_follower"
+ class="btn btn-icon fas fa-times o_remove_follower"
aria-label="Remove this follower"
role="img"
title="Remove this follower"/>
@@ -83,12 +83,12 @@
<t t-esc="record.name"/>
</label>
</div>
- <i t-if="display_warning" class="fa fa-warning text-warning" role="img" aria-label="Warning" title="Warning"/>
+ <i t-if="display_warning" class="fas fa-exclamation-triangle text-warning" role="img" aria-label="Warning" title="Warning"/>
</div>
</t>
<t t-name="mail.Followers.subtypes.warning">
<span class="text-warning">
- <i class="fa fa-warning"/> Be careful with channels following internal notifications
+ <i class="fas fa-exclamation-triangle"/> Be careful with channels following internal notifications
</span>
</t>
diff --git a/addons/mail/static/src/xml/systray.xml b/addons/mail/static/src/xml/systray.xml
index dc275079e28..b506fa571ca 100644
--- a/addons/mail/static/src/xml/systray.xml
+++ b/addons/mail/static/src/xml/systray.xml
@@ -7,7 +7,7 @@
<t t-name="mail.systray.MessagingMenu">
<li class="o_mail_systray_item">
<a class="dropdown-toggle o-no-caret" data-toggle="dropdown" data-display="static" aria-expanded="false" title="Conversations" href="#" role="button">
- <i class="o_mail_messaging_menu_icon fa fa-comments fa-spinner fa-spin" role="img" aria-label="Messages"/> <span class="o_notification_counter badge badge-pill"/>
+ <i class="o_mail_messaging_menu_icon fas fa-comments fa-spinner fa-spin" role="img" aria-label="Messages"/> <span class="o_notification_counter badge badge-pill"/>
</a>
<div class="o_mail_systray_dropdown dropdown-menu dropdown-menu-right" role="menu">
<t t-if="widget.isMobile()">
@@ -27,11 +27,11 @@
<t t-if="widget.isMobile()">
<div class="o_mail_mobile_tabs">
<div class="o_mail_mobile_tab o_filter_button active" role="tab">
- <span class="fa fa-envelope"/>
+ <span class="far fa-envelope"/>
<span class="o_tab_title">All</span>
</div>
<div class="o_mail_mobile_tab o_filter_button" data-filter='chat' role="tab">
- <span class="fa fa-user"/>
+ <span class="fas fa-user"/>
<span class="o_tab_title">Chat</span>
</div>
<div class="o_mail_mobile_tab o_filter_button" data-filter='channels' role="tab">
@@ -84,7 +84,7 @@
<t t-foreach="activity.actions" t-as="action">
<button type="button"
t-att-title="action.name"
- t-att-class="'o_mail_activity_action btn btn-link fa ' + action.icon"
+ t-att-class="'o_mail_activity_action btn btn-link far ' + action.icon"
t-att-data-action_xmlid="action.action_xmlid"
t-att-data-res_model="activity.model"
t-att-data-model_name="activity.name">
@@ -108,7 +108,7 @@
<t t-name="mail.systray.ActivityMenu">
<li class="o_mail_systray_item">
<a class="dropdown-toggle o-no-caret" data-toggle="dropdown" data-display="static" aria-expanded="false" title="Activities" href="#" role="button">
- <i class="fa fa-clock-o" role="img" aria-label="Activities"/> <span class="o_notification_counter badge badge-pill"/>
+ <i class="far fa-clock" role="img" aria-label="Activities"/> <span class="o_notification_counter badge badge-pill"/>
</a>
<div class="o_mail_systray_dropdown dropdown-menu dropdown-menu-right" role="menu">
<div class="o_mail_systray_dropdown_items"/>
diff --git a/addons/mail/static/src/xml/thread.xml b/addons/mail/static/src/xml/thread.xml
index 31614cf4f4f..caebd8c4e8c 100644
--- a/addons/mail/static/src/xml/thread.xml
+++ b/addons/mail/static/src/xml/thread.xml
@@ -44,9 +44,9 @@
<t t-set="model" t-value="widget.modelName"/>
<div class="o_viewer-header">
<span class="o_image_caption">
- <i class="fa fa-picture-o mr8" t-if="widget.activeAttachment.fileType == 'image'" role="img" aria-label="Image" title="Image"/>
- <i class="fa fa-file-text mr8" t-if="widget.activeAttachment.fileType == 'application/pdf'" role="img" aria-label="PDF file" title="PDF file"/>
- <i class="fa fa-video-camera mr8" t-if="widget.activeAttachment.fileType == 'video'" role="img" aria-label="Video" title="Video"/>
+ <i class="far fa-image mr8" t-if="widget.activeAttachment.fileType == 'image'" role="img" aria-label="Image" title="Image"/>
+ <i class="fas fa-file-alt mr8" t-if="widget.activeAttachment.fileType == 'application/pdf'" role="img" aria-label="PDF file" title="PDF file"/>
+ <i class="fas fa-video mr8" t-if="widget.activeAttachment.fileType == 'video'" role="img" aria-label="Video" title="Video"/>
<t t-esc="widget.activeAttachment.name"/>
<a role="button" href="#" class="o_download_btn ml8 small" data-toggle="tooltip" data-placement="right" title="Download"><i class="fa fa-fw fa-download" role="img" aria-label="Download"/></a>
</span>
@@ -55,7 +55,7 @@
<div class="o_viewer_img_wrapper">
<div class="o_viewer_zoomer">
<div t-if="widget.activeAttachment.fileType == 'image'" class="o_loading_img text-center">
- <i class="fa fa-circle-o-notch fa-spin text-gray-light fa-3x fa-fw" role="img" aria-label="Loading" title="Loading"/>
+ <i class="fas fa-circle-notch fa-spin text-gray-light fa-3x fa-fw" role="img" aria-label="Loading" title="Loading"/>
</div>
<img t-if="widget.activeAttachment.fileType === 'image'" class="o_viewer_img" t-attf-src="/web/image/#{widget.activeAttachment.id}?unique=1&amp;signature=#{widget.activeAttachment.checksum}&amp;model=#{model}" alt="Viewer"/>
<iframe t-if="widget.activeAttachment.fileType == 'application/pdf'" class="mt32 o_viewer_pdf" t-attf-src="/web/static/lib/pdfjs/web/viewer.html?file=/web/content/#{widget.activeAttachment.id}?model%3D#{model}" />
@@ -73,7 +73,7 @@
<a role="button" href="#" class="o_viewer_toolbar_btn btn o_zoom_out disabled" data-toggle="tooltip" title="Zoom Out"><i class="fa fa-fw fa-minus" role="img" aria-label="Zoom Out"/></a>
</div>
<div class="btn-group" role="group">
- <a role="button" href="#" class="o_viewer_toolbar_btn btn o_rotate" data-toggle="tooltip" title="Rotate"><i class="fa fa-fw fa-repeat" role="img" aria-label="Rotate"/></a>
+ <a role="button" href="#" class="o_viewer_toolbar_btn btn o_rotate" data-toggle="tooltip" title="Rotate"><i class="fas fa-fw fa-redo" role="img" aria-label="Rotate"/></a>
</div>
<div class="btn-group" role="group">
<a role="button" href="#" class="o_viewer_toolbar_btn btn o_print_btn" data-toggle="tooltip" title="Print"><i class="fa fa-fw fa-print" role="img" aria-label="Print"/></a>
@@ -292,7 +292,7 @@
<t t-esc="message.getDate().format('hh:mm')"/>
</span>
<i t-if="!displayAuthorMessages[message.getID()] and options.displayStars and message.getType() !== 'notification'"
- t-att-class="'fa o_thread_message_star o_thread_icon ' + (message.isStarred() ? 'fa-star' : 'fa-star-o')"
+ t-att-class="'o_thread_message_star o_thread_icon ' + (message.isStarred() ? 'fas fa-star' : 'far fa-star')"
t-att-data-message-id="message.getID()" title="Mark as Todo" role="img" aria-label="Mark as todo"/>
<t t-if="!displayAuthorMessages[message.getID()] and thread.hasSeenFeature()" t-call="mail.widget.Thread.Message.SeenIcon"/>
</div>
@@ -330,12 +330,12 @@
<t t-if="message.getCustomerEmailStatus() === 'sent' or message.getCustomerEmailStatus() === 'ready'">
<t t-set="fatype" t-value="'-o'"/>
</t>
- <i t-att-class="'o_thread_tooltip o_thread_message_email o_thread_message_email_' + message.getCustomerEmailStatus() + ' fa fa-envelope'" t-att-data-message-id="message.getID()"/>
+ <i t-att-class="'o_thread_tooltip o_thread_message_email o_thread_message_email_' + message.getCustomerEmailStatus() + ' far fa-envelope'" t-att-data-message-id="message.getID()"/>
</span>
<span t-attf-class="o_thread_icons">
<t t-if="thread.hasSeenFeature()" t-call="mail.widget.Thread.Message.SeenIcon"/>
<i t-if="options.displayStars and !message.isSystemNotification() and !message.needsModeration()"
- t-att-class="'fa fa-lg o_thread_icon o_thread_message_star ' + (message.isStarred() ? 'fa-star' : 'fa-star-o')"
+ t-att-class="'o_thread_icon o_thread_message_star ' + (message.isStarred() ? 'fas fa-star' : 'far fa-star')"
t-att-data-message-id="message.getID()" title="Mark as Todo" role="img" aria-label="Mark as Todo"/>
<i t-if="message.isLinkedToDocumentThread() and options.displayReplyIcons"
class="fa fa-reply o_thread_icon o_thread_message_reply"
@@ -457,8 +457,8 @@
<i t-if="customerEmailData[2] === 'sent'" class='fa fa-check' title="Sent" role="img" aria-label="Sent"/>
<i t-if="customerEmailData[2] === 'bounce'" class='fa fa-exclamation text-danger' title="Bounced" role="img" aria-label="Bounced"/>
<i t-if="customerEmailData[2] === 'exception'" class='fa fa-exclamation text-danger' title="Error" role="img" aria-label="Error"/>
- <i t-if="customerEmailData[2] === 'ready'" class='fa fa-send-o' title="Ready" role="img" aria-label="Ready"/>
- <i t-if="customerEmailData[2] === 'canceled'" class='fa fa-trash-o' title="Canceled" role="img" aria-label="Canceled"/>
+ <i t-if="customerEmailData[2] === 'ready'" class='far fa-paper-plane' title="Ready" role="img" aria-label="Ready"/>
+ <i t-if="customerEmailData[2] === 'canceled'" class='far fa-trash-alt' title="Canceled" role="img" aria-label="Canceled"/>
</span>
<span t-esc="customerEmailData[1]"/>
</div>
@@ -509,7 +509,7 @@
<t t-esc="value.changed_field"/>:
<t t-if="value.old_value">
<span> <t t-esc="value.old_value || ((value.field_type !== 'boolean') and '')"/> </span>
- <span t-if="value.old_value !== value.new_value" class="fa fa-long-arrow-right" role="img" aria-label="Changed" title="Changed"/>
+ <span t-if="value.old_value !== value.new_value" class="fas fa-long-arrow-alt-right" role="img" aria-label="Changed" title="Changed"/>
</t>
<span t-if="value.old_value !== value.new_value">
<t t-esc="value.new_value || ((value.field_type !== 'boolean') and '')"/>
diff --git a/addons/mail/static/src/xml/thread_window.xml b/addons/mail/static/src/xml/thread_window.xml
index a9e2131cbdb..3b2cd46f6f5 100644
--- a/addons/mail/static/src/xml/thread_window.xml
+++ b/addons/mail/static/src/xml/thread_window.xml
@@ -30,7 +30,7 @@
-->
<t t-extend="mail.AbstractThreadWindow.HeaderContent">
<t t-jquery=".o_thread_window_buttons" t-operation="prepend">
- <a href="#" class="o_thread_window_expand fa fa-expand" t-att-title="expandTitle" t-att-aria-label="expandTitle"/>
+ <a href="#" class="o_thread_window_expand fa fa-expand-arrows-alt" t-att-title="expandTitle" t-att-aria-label="expandTitle"/>
</t>
</t>
diff --git a/addons/mail/static/src/xml/web_kanban_activity.xml b/addons/mail/static/src/xml/web_kanban_activity.xml
index 2c5574c826c..b95b47a97b5 100644
--- a/addons/mail/static/src/xml/web_kanban_activity.xml
+++ b/addons/mail/static/src/xml/web_kanban_activity.xml
@@ -56,17 +56,17 @@
<li t-attf-class="list-group-item o_log_activity d-flex #{log_last ? 'border-bottom' : ''}" role="menuitem">
<div t-attf-class="o_activity_title o_log_activity #{edit_class}" t-att-data-activity-id="log.id">
<div t-attf-class="o_activity_title_entry {{! log.force_next ? 'align-items-center' : 'mb-1'}}">
- <span t-attf-class="fa #{log.icon ? log.icon : 'fa-bell' } fa-fw mr-2 text-center text-muted" role="img" aria-label="Log" title="Log"/>
+ <span t-attf-class="#{log.icon ? log.icon : 'far fa-bell' } fa-fw mr-2 text-center text-muted" role="img" aria-label="Log" title="Log"/>
<strong class="text-dark"><t t-esc="log.title_action or log.activity_type_id[1]"/></strong>
- <button t-if="! log.force_next and log.can_write" class="btn btn-sm btn-link py-0 o_edit_button"><i class="fa fa-pencil"/></button>
+ <button t-if="! log.force_next and log.can_write" class="btn btn-sm btn-link py-0 o_edit_button"><i class="fas fa-pencil-alt"/></button>
</div>
<div class="o_activity_title_entry mt-1" t-if="log.state != 'today'">
- <span class="fa fa-clock-o fa-fw mr-2 text-center text-muted" role="img" aria-label="Deadline" title="Deadline"/>
+ <span class="far fa-clock fa-fw mr-2 text-center text-muted" role="img" aria-label="Deadline" title="Deadline"/>
<small t-att-title="log.date_deadline"><t t-esc="log.label_delay" /></small>
</div>
<t t-if="log.mail_template_ids">
<div t-foreach="log.mail_template_ids" t-as="mail_template" class="o_activity_title_entry mt-2" t-att-data-activity-id="log.id" t-att-data-force-next-activity="log.force_next" t-att-data-previous-activity-type-id="log.activity_type_id[0]">
- <i class="fa fa-envelope-o fa-fw mr-2 text-center text-muted" aria-label="Mail" title="Mail" role="img"></i>
+ <i class="far fa-envelope fa-fw mr-2 text-center text-muted" aria-label="Mail" title="Mail" role="img"></i>
<small>
<div class="mb-1" t-esc="mail_template.name + ':'"/>
<a class="o_activity_template_preview" t-att-data-template-id="mail_template.id" href="#"><b>Preview</b></a>
@@ -76,7 +76,7 @@
</div>
</t>
<div t-if="log.user_id[0] != session.uid and log.mail_template_ids" class="o_activity_title_entry">
- <span class="fa fa-user fa-fw mr-2 text-center text-muted" role="img" aria-label="User" title="User"/>
+ <span class="fas fa-user fa-fw mr-2 text-center text-muted" role="img" aria-label="User" title="User"/>
<span><t t-esc="log.user_id[1]" /></span>
</div>
</div>
@@ -101,7 +101,7 @@
t-att-data-previous-activity-type-id="log.activity_type_id[0]"
t-att-data-activity-id="log.id"
t-attf-href="#o_mark_done_form{{log.id}}"
- class="o_mark_as_done o_activity_link o_activity_link_kanban fa fa-check-circle"
+ class="o_mark_as_done o_activity_link o_activity_link_kanban fas fa-check-circle"
data-toggle="collapse" title="Mark as done" role="img" aria-label="Mark as done"/>
</t>
</div>
diff --git a/addons/mail/static/tests/chatter_tests.js b/addons/mail/static/tests/chatter_tests.js
index 81742d8d2c2..d39be2af342 100644
--- a/addons/mail/static/tests/chatter_tests.js
+++ b/addons/mail/static/tests/chatter_tests.js
@@ -126,7 +126,7 @@ QUnit.module('Chatter', {
{ id: 1, name: "Type 1" },
{ id: 2, name: "Type 2" },
{ id: 3, name: "Type 3", category: 'upload_file' },
- { id: 4, name: "Exception", decoration_type: "warning", icon: "fa-warning"}
+ { id: 4, name: "Exception", decoration_type: "warning", icon: "fa-exclamation-triangle"}
],
},
'mail.message': {
@@ -754,7 +754,7 @@ QUnit.test('kanban activity widget with an activity', async function (assert) {
this.data.partner.records[0].activity_ids = [1, 2];
this.data.partner.records[0].activity_state = 'today';
this.data.partner.records[0].activity_exception_decoration = 'warning';
- this.data.partner.records[0].activity_exception_icon = 'fa-warning';
+ this.data.partner.records[0].activity_exception_icon = 'fa-exclamation-triangle';
this.data['mail.activity'].records = [{
id: 1,
display_name: "An activity",
@@ -805,8 +805,8 @@ QUnit.test('kanban activity widget with an activity', async function (assert) {
"activity widget should have been rendered correctly");
assert.strictEqual(rpcCount, 1, '1 RPC (search_read) should have been done');
- // Check exception activity icon fa-warning
- assert.hasClass($record.find('.o_activity_btn span'), "fa-warning", "should display correct exception activity icon");
+ // Check exception activity icon fa-exclamation-triangle
+ assert.hasClass($record.find('.o_activity_btn span'), "fa-exclamation-triangle", "should display correct exception activity icon");
// click on the activity button
await testUtils.dom.click($record.find('.o_activity_btn'));
assert.strictEqual(rpcCount, 2, 'a read should have been done to fetch the activity details');
@@ -829,7 +829,7 @@ QUnit.test('kanban activity widget with an activity', async function (assert) {
$record = kanban.$('.o_kanban_record').first(); // the record widget has been reset
// check activity icon replaced with fa-clock
- assert.hasClass($record.find('.o_activity_btn span'), "fa-clock-o", "should display correct activity icon");
+ assert.hasClass($record.find('.o_activity_btn span'), "fa-clock", "should display correct activity icon");
// mark activity as done
await testUtils.dom.click($record.find('.o_mark_as_done'));
@@ -916,7 +916,7 @@ QUnit.test('list activity exception widget with activity', async function (asser
message_ids: [],
activity_ids: [2],
activity_exception_decoration: 'warning',
- activity_exception_icon: 'fa-warning',
+ activity_exception_icon: 'fas fa-exclamation-triangle',
});
this.data['mail.activity'].records = [{
id: 1,
@@ -949,9 +949,9 @@ QUnit.test('list activity exception widget with activity', async function (asser
});
assert.containsN(list, '.o_data_row', 2, "should have two records");
- assert.doesNotHaveClass(list.$('.o_data_row:eq(0) .o_activity_exception_cell div'), 'fa-warning',
+ assert.doesNotHaveClass(list.$('.o_data_row:eq(0) .o_activity_exception_cell div'), 'fa-exclamation-triangle',
"there is no any exception activity on record");
- assert.hasClass(list.$('.o_data_row:eq(1) .o_activity_exception_cell div'), 'fa-warning',
+ assert.hasClass(list.$('.o_data_row:eq(1) .o_activity_exception_cell div'), 'fa-exclamation-triangle',
"there is an exception on a record");
list.destroy();
@@ -1080,7 +1080,7 @@ QUnit.test('chatter: post, receive and star messages', async function (assert) {
"the message's author should be correct");
// star message 2
- assert.ok(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star.fa-star-o').length,
+ assert.ok(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star.far.fa-star').length,
"message 2 should not be starred");
await testUtils.dom.click(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star'));
assert.ok(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star.fa-star').length,
@@ -1088,7 +1088,7 @@ QUnit.test('chatter: post, receive and star messages', async function (assert) {
// unstar message 2
await testUtils.dom.click(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star'));
- assert.ok(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star.fa-star-o').length,
+ assert.ok(form.$('.o_thread_message[data-message-id=2] .o_thread_message_star.far.fa-star').length,
"message 2 should not be starred");
// very basic test of mention
@@ -2858,7 +2858,7 @@ QUnit.test('chatter: do not duplicate messages on (un)star message', async funct
assert.containsOnce(form, '.o_thread_message',
"there should be a single message in the chatter");
- assert.ok(form.$('.o_thread_message .o_thread_message_star.fa-star-o').length,
+ assert.ok(form.$('.o_thread_message .o_thread_message_star.far.fa-star').length,
"message should not be starred");
// star message
diff --git a/addons/mail/static/tests/systray/systray_activity_menu_tests.js b/addons/mail/static/tests/systray/systray_activity_menu_tests.js
index a256267fd9c..830a86f05fa 100644
--- a/addons/mail/static/tests/systray/systray_activity_menu_tests.js
+++ b/addons/mail/static/tests/systray/systray_activity_menu_tests.js
@@ -53,7 +53,7 @@ QUnit.module('ActivityMenu', {
overdue_count: 1,
total_count: 3,
actions : [{
- icon: "fa-clock-o",
+ icon: "fa-clock",
name: "summary",
}],
},
@@ -66,7 +66,7 @@ QUnit.module('ActivityMenu', {
overdue_count: 1,
total_count: 3,
actions: [{
- icon: "fa-clock-o",
+ icon: "fa-clock",
name: "summary",
action_xmlid: "mail.mail_activity_type_view_tree",
}],
@@ -178,11 +178,11 @@ QUnit.test('activity menu widget: activity view icon', async function (assert) {
var $second = activityMenu.$('.o_mail_activity_action').eq(1);
assert.strictEqual($first.data('model_name'), "Issue",
"first activity action should link to 'Issue'");
- assert.hasClass($first,'fa-clock-o', "should display the activity action icon");
+ assert.hasClass($first,'fa-clock', "should display the activity action icon");
assert.strictEqual($second.data('model_name'), "Note",
"Second activity action should link to 'Note'");
- assert.hasClass($second,'fa-clock-o', "should display the activity action icon");
+ assert.hasClass($second,'fa-clock', "should display the activity action icon");
testUtils.mock.intercept(activityMenu, 'do_action', function (ev) {
if (ev.data.action.name) {