From b0081b023364bbba4aa0954a2dcdaba45873920a Mon Sep 17 00:00:00 2001 From: Brieuc-brd Date: Mon, 2 May 2022 12:01:24 +0000 Subject: [PATCH] [REF] mail: `NotificationListItem`, review and simplify mixins Part of the overall v16 SCSS optimization/restyle, task-2704984 task-2838625 Part-of: odoo/odoo#90476 --- .../notification_group.scss | 84 +--------- .../notification_group/notification_group.xml | 24 +-- .../notification_list/notification_list.xml | 6 +- .../notification_list_item.scss | 144 +++--------------- .../notification_request.scss | 69 --------- .../notification_request.xml | 20 +-- .../thread_needaction_preview.scss | 93 ----------- .../thread_needaction_preview.xml | 27 ++-- .../thread_preview/thread_preview.scss | 98 +----------- .../thread_preview/thread_preview.xml | 27 ++-- 10 files changed, 80 insertions(+), 512 deletions(-) delete mode 100644 addons/mail/static/src/components/notification_request/notification_request.scss delete mode 100644 addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.scss diff --git a/addons/mail/static/src/components/notification_group/notification_group.scss b/addons/mail/static/src/components/notification_group/notification_group.scss index e47d62e9fca..f520f106407 100644 --- a/addons/mail/static/src/components/notification_group/notification_group.scss +++ b/addons/mail/static/src/components/notification_group/notification_group.scss @@ -2,84 +2,8 @@ // Layout // ------------------------------------------------------------------ -.o_NotificationGroup { - @include o-mail-notification-list-item-layout(); - - &:hover .o_NotificationGroup_markAsRead { - // TODO also mixin this - // task-2258605 - opacity: 1; - } -} - -.o_NotificationGroup_content { - @include o-mail-notification-list-item-content-layout(); -} - -.o_NotificationGroup_coreItem { - @include o-mail-notification-list-item-core-item-layout(); -} - -.o_NotificationGroup_counter { - @include o-mail-notification-list-item-counter-layout(); -} - -.o_NotificationGroup_date { - @include o-mail-notification-list-item-date-layout(); -} - -.o_NotificationGroup_header { - @include o-mail-notification-list-item-header-layout(); -} - -.o_NotificationGroup_image { - @include o-mail-notification-list-item-image-layout(); -} - -.o_NotificationGroup_imageContainer { - @include o-mail-notification-list-item-image-container-layout(); -} - -.o_NotificationGroup_inlineText { - @include o-mail-notification-list-item-inline-text-layout(); -} - -.o_NotificationGroup_markAsRead { - @include o-mail-notification-list-item-mark-as-read-layout(); -} - -.o_NotificationGroup_name { - @include o-mail-notification-list-item-name-layout(); -} - -.o_NotificationGroup_sidebar { - @include o-mail-notification-list-item-sidebar-layout(); -} - -// ------------------------------------------------------------------ -// Style -// ------------------------------------------------------------------ - -.o_NotificationGroup { - @include o-mail-notification-list-item-style(); -} - -.o_NotificationGroup_counter { - @include o-mail-notification-list-item-bold-style(); -} - -.o_NotificationGroup_date { - @include o-mail-notification-list-item-date-style(); -} - -.o_NotificationGroup_image { - @include o-mail-notification-list-item-image-style(); -} - -.o_NotificationGroup_markAsRead { - @include o-mail-notification-list-item-mark-as-read-style(); -} - -.o_NotificationGroup_name { - @include o-mail-notification-list-item-bold-style(); +.o_NotificationGroup:hover .o_NotificationGroup_markAsRead { + // TODO also mixin this + // task-2258605 + opacity: 1; } diff --git a/addons/mail/static/src/components/notification_group/notification_group.xml b/addons/mail/static/src/components/notification_group/notification_group.xml index 9f0a0132fc4..4c5a92c73ee 100644 --- a/addons/mail/static/src/components/notification_group/notification_group.xml +++ b/addons/mail/static/src/components/notification_group/notification_group.xml @@ -3,37 +3,37 @@ -
-
-
- Message delivery failure image +
+
+
+ Message delivery failure image
-
-
- +
+
+ - + () - + - +
- + An error occurred when sending an email. - +
diff --git a/addons/mail/static/src/components/notification_list/notification_list.xml b/addons/mail/static/src/components/notification_list/notification_list.xml index d17ffb75981..72770ef85ed 100644 --- a/addons/mail/static/src/components/notification_list/notification_list.xml +++ b/addons/mail/static/src/components/notification_list/notification_list.xml @@ -14,14 +14,14 @@ @@ -34,7 +34,7 @@ diff --git a/addons/mail/static/src/components/notification_list/notification_list_item.scss b/addons/mail/static/src/components/notification_list/notification_list_item.scss index 2d73de9770d..5910231e343 100644 --- a/addons/mail/static/src/components/notification_list/notification_list_item.scss +++ b/addons/mail/static/src/components/notification_list/notification_list_item.scss @@ -1,109 +1,21 @@ -// ----------------------------------------------------------------------------- -// Layout -// ----------------------------------------------------------------------------- - -@mixin o-mail-notification-list-item-layout { - display: flex; - flex: 0 0 auto; // Without this, Safari shrinks parent regardless of child content - align-items: center; - padding: map-get($spacers, 1); - - &.o-isDeviceSmall { - padding: map-get($spacers, 2); - } -} - -@mixin o-mail-notification-list-item-content-layout { - display: flex; - flex-flow: column; - flex: 1 1 auto; - align-self: flex-start; - min-width: 0; // needed for flex to work correctly - margin: map-get($spacers, 2); -} - -@mixin o-mail-notification-list-item-core-item-layout { - margin: map-get($spacers, 0) map-get($spacers, 2); - - &:first-child { - margin-inline-start: map-get($spacers, 0); - } - - &:last-child { - margin-inline-end: map-get($spacers, 0); - } -} - -@mixin o-mail-notification-list-item-counter-layout() { - margin: map-get($spacers, 0) map-get($spacers, 1); -} - -@mixin o-mail-notification-list-item-date-layout() { - flex: 0 0 auto; -} - -@mixin o-mail-notification-list-item-header-layout { - display: flex; -} - -@mixin o-mail-notification-list-item-image-layout { - width: map-get($sizes, 100); - height: map-get($sizes, 100); -} - -@mixin o-mail-notification-list-item-image-container-layout { - position: relative; - width: 40px; - height: 40px; -} - -@mixin o-mail-notification-list-item-inline-text-layout { - &.o-empty::before { - content: '\00a0'; // keep line-height as if it had content - } -} - -@mixin o-mail-notification-list-item-mark-as-read-layout() { - display: flex; - flex: 0 0 auto; -} - -@mixin o-mail-notification-list-item-name-layout { - &.o-isDeviceSmall { - font-size: 1.1em; - } -} - -@mixin o-mail-notification-list-item-partner-im-status-icon-layout { - @include o-position-absolute($bottom: 0, $right: 0); - display: flex; - align-items: center; - justify-content: center; -} - -@mixin o-mail-notification-list-item-sidebar-layout { - margin: map-get($spacers, 1); -} - -// ----------------------------------------------------------------------------- -// Style -// ----------------------------------------------------------------------------- - $o-mail-notification-list-item-background-color: $white !default; $o-mail-notification-list-item-hover-background-color: darken($o-mail-notification-list-item-background-color, 7%) !default; -$o-mail-notification-list-item-muted-background-color: gray('100') !default; +$o-mail-notification-list-item-muted-background-color: $gray-100 !default; $o-mail-notification-list-item-muted-hover-background-color: darken($o-mail-notification-list-item-muted-background-color, 7%) !default; -@mixin o-mail-notification-list-item-style { - cursor: pointer; +.o_NotificationListItem { user-select: none; background-color: $o-mail-notification-list-item-background-color; &:hover { background-color: $o-mail-notification-list-item-hover-background-color; + + .o_NotificationListItem_partnerImStatusIcon { + color: $o-mail-notification-list-item-hover-background-color; + } } &.o-muted { @@ -111,50 +23,36 @@ $o-mail-notification-list-item-muted-hover-background-color: &:hover { background-color: $o-mail-notification-list-item-muted-hover-background-color; + + .o_NotificationListItem_partnerImStatusIcon { + color: $o-mail-notification-list-item-muted-hover-background-color; + } } } } -@mixin o-mail-notification-list-item-bold-style { - font-weight: $font-weight-bold; - - &.o-muted { - color: gray('600'); - } +.o_NotificationListItem_content { + min-width: 0; // needed for flex to work correctly } -@mixin o-mail-notification-list-item-date-style() { - font-size: $font-size-sm; - color: gray('500'); -} - -@mixin o-mail-notification-list-item-image-style { +.o_NotificationListItem_image { object-fit: cover; } -@mixin o-mail-notification-list-item-mark-as-read-style() { - color: gray('300'); +.o_NotificationListItem_imageContainer { + width: 40px; + height: 40px; +} - &:hover { - color: gray('600'); +.o_NotificationListItem_inlineText { + &.o-empty::before { + content: '\00a0'; // keep line-height as if it had content } } -@mixin o-mail-notification-list-item-hover-partner-im-status-icon-style { - color: $o-mail-notification-list-item-hover-background-color; -} - -@mixin o-mail-notification-list-item-muted-hover-partner-im-status-icon-style { - color: $o-mail-notification-list-item-muted-hover-background-color; -} - -@mixin o-mail-notification-list-item-partner-im-status-icon-style { +.o_NotificationListItem_partnerImStatusIcon { color: $o-mail-notification-list-item-background-color; - &:not(.o-isDeviceSmall) { - font-size: x-small; - } - &.o-muted { color: $o-mail-notification-list-item-muted-background-color; } diff --git a/addons/mail/static/src/components/notification_request/notification_request.scss b/addons/mail/static/src/components/notification_request/notification_request.scss deleted file mode 100644 index 7ef8a2cd424..00000000000 --- a/addons/mail/static/src/components/notification_request/notification_request.scss +++ /dev/null @@ -1,69 +0,0 @@ -// ------------------------------------------------------------------ -// Layout -// ------------------------------------------------------------------ - -.o_NotificationRequest { - @include o-mail-notification-list-item-layout(); -} - -.o_NotificationRequest_content { - @include o-mail-notification-list-item-content-layout(); -} - -.o_NotificationRequest_coreItem { - @include o-mail-notification-list-item-core-item-layout(); -} - -.o_NotificationRequest_header { - @include o-mail-notification-list-item-header-layout(); -} - -.o_NotificationRequest_image { - @include o-mail-notification-list-item-image-layout(); -} - -.o_NotificationRequest_imageContainer { - @include o-mail-notification-list-item-image-container-layout(); -} - -.o_NotificationRequest_inlineText { - @include o-mail-notification-list-item-inline-text-layout(); -} - -.o_NotificationRequest_name { - @include o-mail-notification-list-item-name-layout(); -} - -.o_NotificationRequest_partnerImStatusIcon { - @include o-mail-notification-list-item-partner-im-status-icon-layout(); -} - -.o_NotificationRequest_sidebar { - @include o-mail-notification-list-item-sidebar-layout(); -} - -// ------------------------------------------------------------------ -// Style -// ------------------------------------------------------------------ - -.o_NotificationRequest { - @include o-mail-notification-list-item-style(); - - &:hover { - .o_NotificationRequest_partnerImStatusIcon { - @include o-mail-notification-list-item-hover-partner-im-status-icon-style(); - } - } -} - -.o_NotificationRequest_image { - @include o-mail-notification-list-item-image-style(); -} - -.o_NotificationRequest_name { - @include o-mail-notification-list-item-bold-style(); -} - -.o_NotificationRequest_partnerImStatusIcon { - @include o-mail-notification-list-item-partner-im-status-icon-style(); -} diff --git a/addons/mail/static/src/components/notification_request/notification_request.xml b/addons/mail/static/src/components/notification_request/notification_request.xml index 75f742a05c4..7ee86e0c5b1 100644 --- a/addons/mail/static/src/components/notification_request/notification_request.xml +++ b/addons/mail/static/src/components/notification_request/notification_request.xml @@ -3,25 +3,25 @@ -
-
-
- Avatar of OdooBot +
+
+
+ Avatar of OdooBot
-
-
- +
+
+
- + Enable desktop notifications to chat.
diff --git a/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.scss b/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.scss deleted file mode 100644 index a6791ee9b13..00000000000 --- a/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.scss +++ /dev/null @@ -1,93 +0,0 @@ -// ------------------------------------------------------------------ -// Layout -// ------------------------------------------------------------------ - -.o_ThreadNeedactionPreview { - @include o-mail-notification-list-item-layout(); -} - -.o_ThreadNeedactionPreview_content { - @include o-mail-notification-list-item-content-layout(); -} - -.o_ThreadNeedactionPreview_coreItem { - @include o-mail-notification-list-item-core-item-layout(); -} - -.o_ThreadNeedactionPreview_counter { - @include o-mail-notification-list-item-counter-layout(); -} - -.o_ThreadNeedactionPreview_date { - @include o-mail-notification-list-item-date-layout(); -} - -.o_ThreadNeedactionPreview_header { - @include o-mail-notification-list-item-header-layout(); -} - -.o_ThreadNeedactionPreview_image { - @include o-mail-notification-list-item-image-layout(); -} - -.o_ThreadNeedactionPreview_imageContainer { - @include o-mail-notification-list-item-image-container-layout(); -} - -.o_ThreadNeedactionPreview_inlineText { - @include o-mail-notification-list-item-inline-text-layout(); -} - -.o_ThreadNeedactionPreview_markAsRead { - @include o-mail-notification-list-item-mark-as-read-layout(); -} - -.o_ThreadNeedactionPreview_name { - @include o-mail-notification-list-item-name-layout(); -} - -.o_ThreadNeedactionPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-partner-im-status-icon-layout(); -} - -.o_ThreadNeedactionPreview_sidebar { - @include o-mail-notification-list-item-sidebar-layout(); -} - -// ------------------------------------------------------------------ -// Style -// ------------------------------------------------------------------ - -.o_ThreadNeedactionPreview { - @include o-mail-notification-list-item-style(); - - &:hover { - .o_ThreadNeedactionPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-hover-partner-im-status-icon-style(); - } - } -} - -.o_ThreadNeedactionPreview_counter { - @include o-mail-notification-list-item-bold-style(); -} - -.o_ThreadNeedactionPreview_date { - @include o-mail-notification-list-item-date-style(); -} - -.o_ThreadNeedactionPreview_image { - @include o-mail-notification-list-item-image-style(); -} - -.o_ThreadNeedactionPreview_markAsRead { - @include o-mail-notification-list-item-mark-as-read-style(); -} - -.o_ThreadNeedactionPreview_name { - @include o-mail-notification-list-item-bold-style(); -} - -.o_ThreadNeedactionPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-partner-im-status-icon-style(); -} diff --git a/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.xml b/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.xml index add788dd4fd..571293f2852 100644 --- a/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.xml +++ b/addons/mail/static/src/components/thread_needaction_preview/thread_needaction_preview.xml @@ -7,47 +7,48 @@ The preview template is used by the discuss in mobile, and by the systray menu in order to show preview of threads. --> -
-
-
- Thread Image +
+
+
+ Thread Image
-
-
- +
+
+ - + () - + - +
- + - +
diff --git a/addons/mail/static/src/components/thread_preview/thread_preview.scss b/addons/mail/static/src/components/thread_preview/thread_preview.scss index d0f4fc49b86..831aa2662fd 100644 --- a/addons/mail/static/src/components/thread_preview/thread_preview.scss +++ b/addons/mail/static/src/components/thread_preview/thread_preview.scss @@ -2,108 +2,14 @@ // Layout // ------------------------------------------------------------------ -.o_ThreadPreview { - @include o-mail-notification-list-item-layout(); - - &:hover .o_ThreadPreview_markAsRead { - opacity: 1; - } -} - -.o_ThreadPreview_content { - @include o-mail-notification-list-item-content-layout(); -} - -.o_ThreadPreview_coreItem { - @include o-mail-notification-list-item-core-item-layout(); -} - -.o_ThreadPreview_counter { - @include o-mail-notification-list-item-counter-layout(); -} - -.o_ThreadPreview_date { - @include o-mail-notification-list-item-date-layout(); -} - -.o_ThreadPreview_header { - @include o-mail-notification-list-item-header-layout(); -} - -.o_ThreadPreview_image { - @include o-mail-notification-list-item-image-layout(); -} - -.o_ThreadPreview_imageContainer { - @include o-mail-notification-list-item-image-container-layout(); -} - -.o_ThreadPreview_inlineText { - @include o-mail-notification-list-item-inline-text-layout(); -} - -.o_ThreadPreview_markAsRead { - @include o-mail-notification-list-item-mark-as-read-layout(); -} - -.o_ThreadPreview_name { - @include o-mail-notification-list-item-name-layout(); -} - -.o_ThreadPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-partner-im-status-icon-layout(); -} - -.o_ThreadPreview_sidebar { - @include o-mail-notification-list-item-sidebar-layout(); +.o_ThreadPreview:hover .o_ThreadPreview_markAsRead { + opacity: 1; } // ------------------------------------------------------------------ // Style // ------------------------------------------------------------------ -.o_ThreadPreview { - @include o-mail-notification-list-item-style(); - - &:hover { - .o_ThreadPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-hover-partner-im-status-icon-style(); - } - } - - &.o-muted { - &:hover { - .o_ThreadPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-muted-hover-partner-im-status-icon-style(); - } - } - } -} - .o_ThreadPreview_callIndicator.o-isCalling { color: red; } - -.o_ThreadPreview_counter { - @include o-mail-notification-list-item-bold-style(); -} - -.o_ThreadPreview_date { - @include o-mail-notification-list-item-date-style(); -} - -.o_ThreadPreview_image { - @include o-mail-notification-list-item-image-style(); -} - -.o_ThreadPreview_markAsRead { - @include o-mail-notification-list-item-mark-as-read-style(); -} - -.o_ThreadPreview_name { - @include o-mail-notification-list-item-bold-style(); -} - -.o_ThreadPreview_partnerImStatusIcon { - @include o-mail-notification-list-item-partner-im-status-icon-style(); -} diff --git a/addons/mail/static/src/components/thread_preview/thread_preview.xml b/addons/mail/static/src/components/thread_preview/thread_preview.xml index 70ce654278d..f847bfc96f4 100644 --- a/addons/mail/static/src/components/thread_preview/thread_preview.xml +++ b/addons/mail/static/src/components/thread_preview/thread_preview.xml @@ -7,15 +7,16 @@ The preview template is used by the discuss in mobile, and by the systray menu in order to show preview of threads. --> -
-
-
- Thread Image +
+
+
+ Thread Image
-
-
- +
+
+ - + () @@ -38,13 +39,13 @@ - + - +
- + @@ -52,7 +53,7 @@ - +