From 7e1a419b2716d73d829abac77cffc7c33131698a Mon Sep 17 00:00:00 2001 From: Boubaker Khanfir Date: Fri, 6 Sep 2024 19:16:45 +0100 Subject: [PATCH] feat: Improve Top and Left Menu Tree View - MEED-7436 - Meeds-io/meeds#2371 (#4008) This change will make the first level of Sites Tree displayed as same level as the root node when the only root navigation to enhance UX. --- .../SpacePanelHamburgerNavigation.vue | 13 ++-- .../site-details/components/SiteDetails.vue | 5 +- .../components/SiteNavigationTree.vue | 42 ++++++++++- .../components/NavigationMenuItem.vue | 69 +++++++++++------- .../components/NavigationMenuSubItem.vue | 72 ++++++++++++------- .../components/TopBarNavigationMenu.vue | 23 +++--- 6 files changed, 152 insertions(+), 72 deletions(-) diff --git a/webapp/portlet/src/main/webapp/vue-apps/hamburger-menu/components/recent-spaces/SpacePanelHamburgerNavigation.vue b/webapp/portlet/src/main/webapp/vue-apps/hamburger-menu/components/recent-spaces/SpacePanelHamburgerNavigation.vue index 50567eefd90..88b1e32cfb5 100644 --- a/webapp/portlet/src/main/webapp/vue-apps/hamburger-menu/components/recent-spaces/SpacePanelHamburgerNavigation.vue +++ b/webapp/portlet/src/main/webapp/vue-apps/hamburger-menu/components/recent-spaces/SpacePanelHamburgerNavigation.vue @@ -145,11 +145,13 @@ - + + :space-unread-items="spaceUnreadItems" + :selected-name="selectedNavigationName" + collapsed /> @@ -171,9 +173,10 @@ export default { }, }, data: () => ({ - spaceNavigations: [], + spaceNavigations: null, externalExtensions: [], spaceUnreadItems: null, + selectedNavigationName: null, loading: false, }), computed: { @@ -248,7 +251,7 @@ export default { handler(newVal, oldVal) { if (newVal !== oldVal) { if (this.spaceId) { - this.spaceNavigations = []; + this.spaceNavigations = null; this.retrieveSpaceNavigations() .then(() => this.refreshExtensions()); } @@ -266,6 +269,8 @@ export default { created() { document.addEventListener('space-unread-activities-updated', this.applySpaceUnreadChanges); this.retrieveSpaceNavigations(this.spaceId); + this.selectedNavigationName = eXo.env.portal.siteKeyName === this.spaceGroupId + && eXo.env.portal.selectedNodeUri?.split?.('/')?.reverse?.()?.[0]; }, methods: { applySpaceUnreadChanges(event) { diff --git a/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteDetails.vue b/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteDetails.vue index 622ba8437b2..0b6547a6aae 100644 --- a/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteDetails.vue +++ b/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteDetails.vue @@ -53,7 +53,8 @@ :navigations="site.siteNavigations" :site-name="site?.name" :enable-change-home="enableChangeHome" - :selected-name="expandSelectionOnly && selectedNavigationName" /> + :selected-name="selectedNavigationName" + collapsed /> this.homeLink = eXo.env.portal.homeLink); - this.selectedNavigationName = eXo.env.portal.selectedNodeUri?.split?.('/')?.reverse?.()?.[0]; + this.selectedNavigationName = eXo.env.portal.siteKeyName === this.site.name && eXo.env.portal.selectedNodeUri?.split?.('/')?.reverse?.()?.[0]; }, methods: { navigationUri(navigation) { diff --git a/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteNavigationTree.vue b/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteNavigationTree.vue index 5217934259e..b73ce8c07b5 100644 --- a/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteNavigationTree.vue +++ b/webapp/portlet/src/main/webapp/vue-apps/site-details/components/SiteNavigationTree.vue @@ -17,9 +17,10 @@