MDL-64703 core_message: 2 column message index page
authorBas Brands <bas@moodle.com>
Wed, 13 Mar 2019 16:24:30 +0000 (17:24 +0100)
committerBas Brands <bas@moodle.com>
Mon, 8 Apr 2019 09:05:08 +0000 (11:05 +0200)
32 files changed:
message/amd/build/message_drawer.min.js
message/amd/build/message_drawer_router.min.js
message/amd/build/message_drawer_view_conversation_renderer.min.js
message/amd/build/message_drawer_view_overview.min.js
message/amd/build/message_drawer_view_overview_section.min.js
message/amd/build/message_drawer_view_search.min.js
message/amd/src/message_drawer.js
message/amd/src/message_drawer_router.js
message/amd/src/message_drawer_view_conversation_renderer.js
message/amd/src/message_drawer_view_overview.js
message/amd/src/message_drawer_view_overview_section.js
message/amd/src/message_drawer_view_search.js
message/classes/helper.php
message/index.php
message/templates/message_drawer_contacts_list.mustache
message/templates/message_drawer_icon_back.mustache
message/templates/message_drawer_messages_list.mustache
message/templates/message_drawer_non_contacts_list.mustache
message/templates/message_drawer_view_contacts_header.mustache
message/templates/message_drawer_view_conversation_header_content_type_private.mustache
message/templates/message_drawer_view_conversation_header_content_type_private_no_controls.mustache
message/templates/message_drawer_view_conversation_header_content_type_public.mustache
message/templates/message_drawer_view_conversation_header_placeholder.mustache
message/templates/message_drawer_view_overview_body.mustache
message/templates/message_drawer_view_overview_header.mustache
message/templates/message_drawer_view_search_body.mustache
message/templates/message_drawer_view_search_header.mustache
message/templates/message_drawer_view_settings_header.mustache
message/templates/message_index.mustache
theme/boost/scss/moodle/message.scss
theme/boost/style/moodle.css
theme/classic/style/moodle.css

index 453da2f..9f89d03 100644 (file)
Binary files a/message/amd/build/message_drawer.min.js and b/message/amd/build/message_drawer.min.js differ
index ef9875e..a135ac2 100644 (file)
Binary files a/message/amd/build/message_drawer_router.min.js and b/message/amd/build/message_drawer_router.min.js differ
index b23ddc6..32215c3 100644 (file)
Binary files a/message/amd/build/message_drawer_view_conversation_renderer.min.js and b/message/amd/build/message_drawer_view_conversation_renderer.min.js differ
index 7ce1ee6..ce4c25d 100644 (file)
Binary files a/message/amd/build/message_drawer_view_overview.min.js and b/message/amd/build/message_drawer_view_overview.min.js differ
index 42e5adf..eae6289 100644 (file)
Binary files a/message/amd/build/message_drawer_view_overview_section.min.js and b/message/amd/build/message_drawer_view_overview_section.min.js differ
index 2f3881e..071d79e 100644 (file)
Binary files a/message/amd/build/message_drawer_view_search.min.js and b/message/amd/build/message_drawer_view_search.min.js differ
index 8823ac0..9a800c5 100644 (file)
@@ -53,6 +53,8 @@ function(
 ) {
 
     var SELECTORS = {
+        PANEL_BODY_CONTAINER: '[data-region="panel-body-container"]',
+        PANEL_HEADER_CONTAINER: '[data-region="panel-header-container"]',
         VIEW_CONTACT: '[data-region="view-contact"]',
         VIEW_CONTACTS: '[data-region="view-contacts"]',
         VIEW_CONVERSATION: '[data-region="view-conversation"]',
@@ -77,10 +79,16 @@ function(
      * @return {array} elements Found route container objects.
     */
     var getParametersForRoute = function(namespace, root, selector) {
-        var candidates = root.children();
-        var header = candidates.filter(SELECTORS.HEADER_CONTAINER).find(selector);
-        var body = candidates.filter(SELECTORS.BODY_CONTAINER).find(selector);
-        var footer = candidates.filter(SELECTORS.FOOTER_CONTAINER).find(selector);
+
+        var header = root.find(SELECTORS.HEADER_CONTAINER).find(selector);
+        if (!header.length) {
+            header = root.find(SELECTORS.PANEL_HEADER_CONTAINER).find(selector);
+        }
+        var body = root.find(SELECTORS.BODY_CONTAINER).find(selector);
+        if (!body.length) {
+            body = root.find(SELECTORS.PANEL_BODY_CONTAINER).find(selector);
+        }
+        var footer = root.find(SELECTORS.FOOTER_CONTAINER).find(selector);
 
         return [
             namespace,
@@ -193,6 +201,7 @@ function(
             var params = paramAttributes.map(function(attribute) {
                 return attribute.nodeValue;
             });
+
             var routeParams = [namespace, route].concat(params);
 
             Router.go.apply(null, routeParams);
index 5134ee6..a03b86c 100644 (file)
@@ -80,6 +80,9 @@ function(
      */
     var changeRoute = function(namespace, newRoute) {
         var newConfig;
+
+        // Check of the Route change call is made from an element in the app panel.
+        var fromPanel = [].slice.call(arguments).includes('frompanel');
         // Get the rest of the arguments, if any.
         var args = [].slice.call(arguments, 2);
         var renderPromise = $.Deferred().resolve().promise();
@@ -99,13 +102,24 @@ function(
                 }
 
                 element.removeClass('previous');
+                element.attr('data-from-panel', false);
 
                 if (isMatch) {
+                    if (fromPanel) {
+                        // Set this attribute to let the conversation renderer know not to show a back button.
+                        element.attr('data-from-panel', true);
+                    }
                     element.removeClass('hidden');
                     element.attr('aria-hidden', false);
                 } else {
-                    element.addClass('hidden');
-                    element.attr('aria-hidden', true);
+                    // For the message index page elements in the left panel should not be hidden.
+                    if (!element.attr('data-in-panel')) {
+                        element.addClass('hidden');
+                        element.attr('aria-hidden', true);
+                    } else if (newRoute == 'view-search' || newRoute == 'view-overview') {
+                        element.addClass('hidden');
+                        element.attr('aria-hidden', true);
+                    }
                 }
             });
         });
@@ -163,7 +177,8 @@ function(
      */
     var go = function(namespace) {
         var currentFocusElement = $(document.activeElement);
-        var record = changeRoute.apply(null, arguments);
+
+        var record = changeRoute.apply(namespace, arguments);
         var inHistory = false;
 
         if (!history[namespace]) {
@@ -222,7 +237,6 @@ function(
                                 if (typeof element !== 'object' || !element) {
                                     return;
                                 }
-
                                 // Update the aria label for the back button.
                                 element.find(SELECTORS.ROUTES_BACK).attr('aria-label', label);
                             });
index d0b67f2..af0c886 100644 (file)
@@ -780,7 +780,7 @@ function(
     var renderHeader = function(header, body, footer, data) {
         var headerContainer = getHeaderContent(header);
         var template = TEMPLATES.HEADER_PUBLIC;
-
+        data.context.showrouteback = (header.attr('data-from-panel') === "false");
         if (data.type == CONVERSATION_TYPES.PRIVATE) {
             template = data.showControls ? TEMPLATES.HEADER_PRIVATE : TEMPLATES.HEADER_PRIVATE_NO_CONTROLS;
         }
index 74f4d71..1cc474f 100644 (file)
@@ -219,6 +219,7 @@ function(
             registerEventListeners(namespace, header);
             header.attr('data-init', true);
         }
+        var fromPanel = header.attr('data-in-panel') ? 'frompanel' : null;
 
         getSearchInput(header).val('');
         var loggedInUserId = getLoggedInUserId(body);
@@ -245,7 +246,7 @@ function(
             });
 
             Section.show(namespace, null, sectionRoot, null, sectionType, includeFavourites,
-                totalCountPromise, unreadCountPromise);
+                totalCountPromise, unreadCountPromise, fromPanel);
         });
 
         return allCounts.then(function(result) {
index 01dba3e..cb60ee0 100644 (file)
@@ -525,8 +525,9 @@ function(
      * @param {Function} loadCallback The callback to load items.
      * @param {Number} type The conversation type for this section
      * @param {bool} includeFavourites If this section includes favourites
+     * @param {String} fromPanel Routing argument to send if the section is loaded in message index left panel.
      */
-    var registerEventListeners = function(namespace, root, loadCallback, type, includeFavourites) {
+    var registerEventListeners = function(namespace, root, loadCallback, type, includeFavourites, fromPanel) {
         var listRoot = LazyLoadList.getRoot(root);
 
         // Set the minimum height of the section to the height of the toggle. This
@@ -641,7 +642,7 @@ function(
             var conversationElement = $(e.target).closest(SELECTORS.CONVERSATION);
             var conversationId = conversationElement.attr('data-conversation-id');
             var conversation = loadedConversationsById[conversationId];
-            MessageDrawerRouter.go(namespace, MessageDrawerRoutes.VIEW_CONVERSATION, conversation);
+            MessageDrawerRouter.go(namespace, MessageDrawerRoutes.VIEW_CONVERSATION, conversation, fromPanel);
 
             data.originalEvent.preventDefault();
         });
@@ -658,13 +659,15 @@ function(
      * @param {bool} includeFavourites If this section includes favourites
      * @param {Object} totalCountPromise Resolves wth the total conversations count
      * @param {Object} unreadCountPromise Resolves wth the unread conversations count
+     * @param {bool} overview shown in message app panel.
      */
-    var show = function(namespace, header, body, footer, type, includeFavourites, totalCountPromise, unreadCountPromise) {
+    var show = function(namespace, header, body, footer, type, includeFavourites, totalCountPromise, unreadCountPromise,
+        fromPanel) {
         var root = $(body);
 
         if (!root.attr('data-init')) {
             var loadCallback = getLoadCallback(type, includeFavourites, 0);
-            registerEventListeners(namespace, root, loadCallback, type, includeFavourites);
+            registerEventListeners(namespace, root, loadCallback, type, includeFavourites, fromPanel);
 
             if (isVisible(root)) {
                 setExpanded(root);
index 8db0aa7..8113f99 100644 (file)
@@ -621,9 +621,10 @@ function(
      */
     var renderContacts = function(root, contacts) {
         var container = getContactsContainer(root);
+        var frompanel = root.attr('data-in-panel');
         var list = container.find(SELECTORS.LIST);
 
-        return Templates.render(TEMPLATES.CONTACTS_LIST, {contacts: contacts})
+        return Templates.render(TEMPLATES.CONTACTS_LIST, {contacts: contacts, frompanel: frompanel})
             .then(function(html) {
                 list.append(html);
                 return html;
@@ -639,9 +640,10 @@ function(
      */
     var renderNonContacts = function(root, nonContacts) {
         var container = getNonContactsContainer(root);
+        var frompanel = root.attr('data-in-panel');
         var list = container.find(SELECTORS.LIST);
 
-        return Templates.render(TEMPLATES.NON_CONTACTS_LIST, {noncontacts: nonContacts})
+        return Templates.render(TEMPLATES.NON_CONTACTS_LIST, {noncontacts: nonContacts, frompanel: frompanel})
             .then(function(html) {
                 list.append(html);
                 return html;
@@ -657,9 +659,10 @@ function(
      */
     var renderMessages = function(root, messages) {
         var container = getMessagesContainer(root);
+        var frompanel = root.attr('data-in-panel');
         var list = container.find(SELECTORS.LIST);
 
-        return Templates.render(TEMPLATES.MESSAGES_LIST, {messages: messages})
+        return Templates.render(TEMPLATES.MESSAGES_LIST, {messages: messages, frompanel: frompanel})
             .then(function(html) {
                 list.append(html);
                 return html;
@@ -945,7 +948,6 @@ function(
             registerEventListeners(header, body);
             body.attr('data-init', true);
         }
-
         var searchInput = getSearchInput(header);
         searchInput.focus();
 
@@ -959,6 +961,9 @@ function(
      * @return {Object} jQuery promise
      */
     var description = function(header) {
+        if (typeof header !== 'object') {
+            return Str.get_string('messagedrawerviewsearch', 'core_message');
+        }
         var searchInput = getSearchInput(header);
         var searchText = searchInput.val().trim();
         return Str.get_string('messagedrawerviewsearch', 'core_message', searchText);
index 80727c3..36787bd 100644 (file)
@@ -756,7 +756,8 @@ class helper {
                 'notification' => $notification
             ],
             'sendtouser' => false,
-            'conversationid' => false
+            'conversationid' => false,
+            'isdrawer' => $isdrawer
         ];
 
         if ($sendtouser) {
index 5883633..949685d 100644 (file)
@@ -59,7 +59,7 @@ if ($userid) {
 }
 $PAGE->set_url($url);
 $PAGE->set_context(context_user::instance($USER->id));
-$PAGE->set_pagelayout('standard');
+$PAGE->set_pagelayout('mydashboard');
 
 $strmessages = get_string('messages', 'message');
 
@@ -86,6 +86,5 @@ if (!get_user_preferences('core_message_migrate_data', false)) {
         \core\output\notification::NOTIFY_WARNING);
     echo $OUTPUT->render($notify);
 }
-echo $OUTPUT->heading(get_string('messages', 'message'));
 echo \core_message\helper::render_messaging_widget(false, $userid, $conversationid);
 echo $OUTPUT->footer();
index 8d24769..a9d96f5 100644 (file)
         data-route="view-conversation"
         {{#conversationid}}
             data-route-param-1="{{.}}"
+            {{#frompanel}}
+                data-route-param-2="frompanel"
+            {{/frompanel}}
         {{/conversationid}}
         {{^conversationid}}
             data-route-param-1="false"
             data-route-param-2="create"
             data-route-param-3="{{id}}"
+            {{#frompanel}}
+                data-route-param-4="frompanel"
+            {{/frompanel}}
         {{/conversationid}}
         data-contact-user-id="{{id}}"
         data-region="contact"
index d921970..3c533f1 100644 (file)
     {}
 
 }}
-<span class="dir-rtl-hide">{{#pix}} i/previous, core {{/pix}}</span>
-<span class="dir-ltr-hide">{{#pix}} i/next, core {{/pix}}</span>
\ No newline at end of file
+<div class="icon-back-in-drawer">
+    <span class="dir-rtl-hide">{{#pix}} i/previous, core {{/pix}}</span>
+    <span class="dir-ltr-hide">{{#pix}} i/next, core {{/pix}}</span>
+</div>
+<div class="icon-back-in-app">
+    <span class="dir-rtl-hide">{{#pix}} e/cancel, core {{/pix}}</span>
+</div>
\ No newline at end of file
index 97332f7..f623631 100644 (file)
         data-route="view-conversation"
         {{#conversationid}}
             data-route-param-1="{{.}}"
+            {{#frompanel}}
+                data-route-param-2="frompanel"
+            {{/frompanel}}
         {{/conversationid}}
         {{^conversationid}}
             data-route-param-1="false"
             data-route-param-2="create"
             data-route-param-3="{{userid}}"
+            {{#frompanel}}
+                data-route-param-4="frompanel"
+            {{/frompanel}}
         {{/conversationid}}
         data-conversation-id="{{conversationid}}"
         role="button"
index ae5c9a9..3573979 100644 (file)
         data-route="view-conversation"
         {{#conversationid}}
             data-route-param-1="{{.}}"
+            {{#frompanel}}
+                data-route-param-2="frompanel"
+            {{/frompanel}}
         {{/conversationid}}
         {{^conversationid}}
             data-route-param-1="false"
             data-route-param-2="create"
             data-route-param-3="{{id}}"
+            {{#frompanel}}
+                data-route-param-4="frompanel"
+            {{/frompanel}}
         {{/conversationid}}
         role="button"
     >
index 6c816bf..cef660d 100644 (file)
 }}
 <div class="hidden border-bottom px-2 py-3" aria-hidden="true" data-region="view-contacts">
     <div class="d-flex align-items-center">
+        {{#isdrawer}}
         <div class="align-self-stretch">
             <a class="h-100 d-flex align-items-center mr-2" href="#" data-route-back role="button">
                 {{> core_message/message_drawer_icon_back }}
             </a>
         </div>
+        {{/isdrawer}}
         <div>
             {{#str}} contacts, core_message {{/str}}
         </div>
index e28b29a..9f63c26 100644 (file)
 }}
 
 <div class="d-flex align-items-center">
-    <div class="align-self-stretch" >
-        <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
-            {{> core_message/message_drawer_icon_back }}
-        </a>
-    </div>
+    {{#showrouteback}}
+        <div class="align-self-stretch" >
+            <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
+                {{> core_message/message_drawer_icon_back }}
+            </a>
+        </div>
+    {{/showrouteback}}
     <div class="d-flex text-truncate">
         <a class="d-flex text-truncate text-decoration-none" href="#" data-action="view-contact" role="button">
             {{#imageurl}}
index d35d686..7a9a0f2 100644 (file)
 }}
 
 <div class="d-flex align-items-center">
-    <div class="align-self-stretch" >
-        <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
-            {{> core_message/message_drawer_icon_back }}
-        </a>
-    </div>
+    {{#showrouteback}}
+        <div class="align-self-stretch" >
+            <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
+                {{> core_message/message_drawer_icon_back }}
+            </a>
+        </div>
+    {{/showrouteback}}
     <div class="d-flex text-truncate">
         {{#imageurl}}
             <div class="d-flex align-items-center">
index 7423faa..bda9db7 100644 (file)
 
 <div class="d-flex flex-column">
     <div class="d-flex align-items-center">
-        <div class="align-self-stretch" >
-            <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
-                {{> core_message/message_drawer_icon_back }}
-            </a>
-        </div>
+        {{#showrouteback}}
+            <div class="align-self-stretch" >
+                <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
+                    {{> core_message/message_drawer_icon_back }}
+                </a>
+            </div>
+        {{/showrouteback}}
         <div class="d-flex text-truncate">
             <a class="d-flex text-truncate text-decoration-none" href="#" data-action="view-group-info" role="button">
                 {{#imageurl}}
index 1cbdbda..c5f8d74 100644 (file)
 
 }}
 <div class="d-flex">
+    {{#showrouteback}}
     <div class="align-self-stretch" >
         <a class="h-100 mr-2 d-flex align-items-center" href="#" data-route-back role="button">
             {{> core_message/message_drawer_icon_back }}
         </a>
     </div>
+    {{/showrouteback}}
     <div
         class="ml-2 rounded-circle bg-pulse-grey align-self-center"
         style="height: 38px; width: 38px"
index 9ea7637..edfce42 100644 (file)
@@ -33,7 +33,7 @@
     {}
 
 }}
-<div class="h-100 view-overview-body" aria-hidden="false" data-region="view-overview" data-user-id="{{loggedinuser.id}}">
+<div class="h-100 view-overview-body" aria-hidden="false" data-region="view-overview" {{^isdrawer}}data-in-panel="true"{{/isdrawer}} data-user-id="{{loggedinuser.id}}">
     <div id="message-drawer-view-overview-container-{{uniqid}}" class="d-flex flex-column h-100" style="overflow-y: auto">
             {{> core_message/message_drawer_view_overview_section_favourites }}
             {{> core_message/message_drawer_view_overview_section_group_messages }}
index f0546de..69c30fe 100644 (file)
@@ -33,7 +33,7 @@
     {}
 
 }}
-<div class="border-bottom px-2 py-3" aria-hidden="false" data-region="view-overview">
+<div class="border-bottom px-2 py-3" aria-hidden="false" {{^isdrawer}}data-in-panel="true"{{/isdrawer}} data-region="view-overview">
     <div class="d-flex align-items-center">
         <div class="input-group">
             <div class="input-group-prepend">
index 20bab18..8be4e42 100644 (file)
@@ -42,6 +42,7 @@
     data-users-offset="0"
     data-messages-offset="0"
     style="overflow-y: auto"
+    {{^isdrawer}}data-in-panel="true"{{/isdrawer}}
 >
     <div class="hidden" data-region="search-results-container" style="overflow-y: auto">
         {{> core_message/message_drawer_view_search_results_content }}
index 627bc24..b39202c 100644 (file)
@@ -34,7 +34,7 @@
 
 }}
 
-<div class="hidden border-bottom px-2 py-3 view-search" aria-hidden="true" data-region="view-search">
+<div class="hidden border-bottom px-2 py-3 view-search" {{^isdrawer}}data-in-panel="true"{{/isdrawer}} aria-hidden="true" data-region="view-search">
     <div class="d-flex align-items-center">
         <a
             class="mr-2 align-self-stretch d-flex align-items-center"
index 9ac89fb..a9f717e 100644 (file)
 
 <div class="hidden border-bottom px-2 py-3" aria-hidden="true" data-region="view-settings">
     <div class="d-flex align-items-center">
+        {{#isdrawer}}
         <div class="align-self-stretch" >
             <a class="h-100 d-flex mr-2 align-items-center" href="#" data-route-back role="button">
                 {{> core_message/message_drawer_icon_back }}
             </a>
         </div>
+        {{/isdrawer}}
         <div>
             {{#str}} settings, core {{/str}}
         </div>
index 4c98838..52fc66c 100644 (file)
 }}
 <div
         id="message-index-{{uniqid}}"
-        class="message-app main bg-light border"
+        class="message-app main bg-light border flex-row"
         aria-expanded="false"
         aria-hidden="true"
         data-region="message-index"
         role="region"
 >
-    <div class="header-container position-relative" data-region="header-container">
-        {{> core_message/message_drawer_view_contacts_header }}
-        {{> core_message/message_drawer_view_conversation_header }}
-        {{> core_message/message_drawer_view_overview_header }}
-        {{> core_message/message_drawer_view_search_header }}
-        {{> core_message/message_drawer_view_settings_header }}
-    </div>
-    <div class="body-container position-relative" data-region="body-container">
-        {{> core_message/message_drawer_view_contact_body }}
-        {{> core_message/message_drawer_view_contacts_body }}
-        {{> core_message/message_drawer_view_conversation_body }}
-        {{> core_message/message_drawer_view_group_info_body }}
-        {{> core_message/message_drawer_view_overview_body }}
-        {{> core_message/message_drawer_view_search_body }}
-        {{> core_message/message_drawer_view_settings_body }}
-    </div>
-    <div class="footer-container position-relative" data-region="footer-container">
-        {{> core_message/message_drawer_view_conversation_footer }}
-        {{> core_message/message_drawer_view_overview_footer }}
+    <div class="container-fluid">
+        <div class="row-fluid h-100 no-gutters">
+            <div class="col-4 d-flex flex-column">
+                <div class="border-right h-100">
+                    <div class="panel-header-container" data-region="panel-header-container">
+                        {{> core_message/message_drawer_view_overview_header }}
+                        {{> core_message/message_drawer_view_search_header }}
+                    </div>
+                    <div class="panel-body-container" data-region="panel-body-container">
+                        {{> core_message/message_drawer_view_overview_body }}
+                        {{> core_message/message_drawer_view_search_body }}
+                    </div>
+                </div>
+            </div>
+            <div class="col-8 d-flex flex-column">
+                <div class="header-container position-relative" data-region="header-container">
+                    {{> core_message/message_drawer_view_contacts_header }}
+                    {{> core_message/message_drawer_view_conversation_header }}
+                    {{> core_message/message_drawer_view_settings_header }}
+                </div>
+                <div class="body-container position-relative" data-region="body-container">
+                    {{> core_message/message_drawer_view_contact_body }}
+                    {{> core_message/message_drawer_view_contacts_body }}
+                    {{> core_message/message_drawer_view_conversation_body }}
+                    {{> core_message/message_drawer_view_group_info_body }}
+                    {{> core_message/message_drawer_view_settings_body }}
+                </div>
+                <div class="footer-container position-relative" data-region="footer-container">
+                    {{> core_message/message_drawer_view_conversation_footer }}
+                    {{> core_message/message_drawer_view_overview_footer }}
+                </div>
+            </div>
+        </div>
     </div>
 </div>
 {{#js}}
index 164121a..dc0f375 100644 (file)
@@ -425,6 +425,10 @@ $message-drawer-width: 320px;
     flex-direction: column;
     @include transition();
 
+    .icon-back-in-drawer {
+        display: none;
+    }
+
     &.drawer {
         z-index: $zindex-sticky;
         position: fixed;
@@ -433,16 +437,16 @@ $message-drawer-width: 320px;
         height: calc(100% - #{$navbar-height});
         width: $message-drawer-width;
         box-shadow: -2px 2px 4px rgba(0, 0, 0, .08);
-
-        .body-container {
-            & > * {
-                position: absolute;
-            }
+        .icon-back-in-app {
+            display: none;
+        }
+        .icon-back-in-drawer {
+            display: inherit;
         }
     }
 
     &.main {
-        height: 768px;
+        min-height: 400px;
     }
 
     &.hidden {
@@ -459,6 +463,7 @@ $message-drawer-width: 320px;
         overflow: hidden;
 
         & > * {
+            position: absolute;
             right: 0;
             left: 0;
             top: 0;
@@ -600,7 +605,18 @@ $message-drawer-width: 320px;
         overflow-y: auto;
     }
 }
-
+#page-message-index #region-main {
+    height: 100%;
+    div[role="main"] {
+        height: 100%;
+        #maincontent {
+            margin-top: -1px;
+        }
+        .message-app.main {
+            height: 100%;
+        }
+    }
+}
 .dir-rtl {
     .message-drawer {
         box-shadow: 2px 2px 4px rgba(0, 0, 0, .08);
index d18668f..ea07f68 100644 (file)
@@ -13643,6 +13643,8 @@ a.ygtvspacer:hover {
   display: flex;
   flex-direction: column;
   transition: all 0.2s ease-in-out; }
+  .message-app .icon-back-in-drawer {
+    display: none; }
   .message-app.drawer {
     z-index: 1020;
     position: fixed;
@@ -13651,10 +13653,12 @@ a.ygtvspacer:hover {
     height: calc(100% - 50px);
     width: 320px;
     box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.08); }
-    .message-app.drawer .body-container > * {
-      position: absolute; }
+    .message-app.drawer .icon-back-in-app {
+      display: none; }
+    .message-app.drawer .icon-back-in-drawer {
+      display: inherit; }
   .message-app.main {
-    height: 768px; }
+    min-height: 400px; }
   .message-app.hidden {
     display: block;
     right: -320px; }
@@ -13664,6 +13668,7 @@ a.ygtvspacer:hover {
     flex: 1;
     overflow: hidden; }
     .message-app .body-container > * {
+      position: absolute;
       right: 0;
       left: 0;
       top: 0;
@@ -13767,6 +13772,15 @@ a.ygtvspacer:hover {
   .message-app .lazy-load-list {
     overflow-y: auto; }
 
+#page-message-index #region-main {
+  height: 100%; }
+  #page-message-index #region-main div[role="main"] {
+    height: 100%; }
+    #page-message-index #region-main div[role="main"] #maincontent {
+      margin-top: -1px; }
+    #page-message-index #region-main div[role="main"] .message-app.main {
+      height: 100%; }
+
 .dir-rtl .message-drawer {
   box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.08); }
 
index e682d12..0c1eff9 100644 (file)
@@ -13890,6 +13890,8 @@ a.ygtvspacer:hover {
   display: flex;
   flex-direction: column;
   transition: all 0.2s ease-in-out; }
+  .message-app .icon-back-in-drawer {
+    display: none; }
   .message-app.drawer {
     z-index: 1020;
     position: fixed;
@@ -13898,10 +13900,12 @@ a.ygtvspacer:hover {
     height: calc(100% - 50px);
     width: 320px;
     box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.08); }
-    .message-app.drawer .body-container > * {
-      position: absolute; }
+    .message-app.drawer .icon-back-in-app {
+      display: none; }
+    .message-app.drawer .icon-back-in-drawer {
+      display: inherit; }
   .message-app.main {
-    height: 768px; }
+    min-height: 400px; }
   .message-app.hidden {
     display: block;
     right: -320px; }
@@ -13911,6 +13915,7 @@ a.ygtvspacer:hover {
     flex: 1;
     overflow: hidden; }
     .message-app .body-container > * {
+      position: absolute;
       right: 0;
       left: 0;
       top: 0;
@@ -14014,6 +14019,15 @@ a.ygtvspacer:hover {
   .message-app .lazy-load-list {
     overflow-y: auto; }
 
+#page-message-index #region-main {
+  height: 100%; }
+  #page-message-index #region-main div[role="main"] {
+    height: 100%; }
+    #page-message-index #region-main div[role="main"] #maincontent {
+      margin-top: -1px; }
+    #page-message-index #region-main div[role="main"] .message-app.main {
+      height: 100%; }
+
 .dir-rtl .message-drawer {
   box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.08); }