From 7a54ba3cc1071aeac23709b5f7b91693a158abb6 Mon Sep 17 00:00:00 2001 From: cloudbehl Date: Wed, 9 Aug 2023 12:39:47 +0530 Subject: [PATCH] mgr/dashboard: Left navigation improvements Fixes: https://tracker.ceph.com/issues/62366 Signed-off-by: cloudbehl --- .../frontend/cypress/e2e/ui/navigation.po.ts | 57 ++-- .../frontend/src/app/app-routing.module.ts | 26 +- .../navigation/navigation.component.html | 288 +++++++++++------- .../navigation/navigation.component.scss | 25 +- .../navigation/navigation.component.spec.ts | 28 +- .../navigation/navigation.component.ts | 8 +- .../src/app/shared/enum/icons.enum.ts | 9 +- 7 files changed, 277 insertions(+), 164 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/navigation.po.ts b/src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/navigation.po.ts index f797bbc26a90c..7d84939b88074 100644 --- a/src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/navigation.po.ts +++ b/src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/navigation.po.ts @@ -6,33 +6,18 @@ export class NavigationPageHelper extends PageHelper { }; navigations = [ - { menu: 'NFS', component: 'cd-error' }, - { - menu: 'Object Gateway', - submenus: [ - { menu: 'Gateways', component: 'cd-rgw-daemon-list' }, - { menu: 'Users', component: 'cd-rgw-user-list' }, - { menu: 'Buckets', component: 'cd-rgw-bucket-list' } - ] - }, { menu: 'Dashboard', component: 'cd-dashboard' }, { menu: 'Cluster', submenus: [ + { menu: 'Pools', component: 'cd-pool-list' }, { menu: 'Hosts', component: 'cd-hosts' }, - { menu: 'Physical Disks', component: 'cd-error' }, - { menu: 'Monitors', component: 'cd-monitor' }, - { menu: 'Services', component: 'cd-error' }, { menu: 'OSDs', component: 'cd-osd-list' }, - { menu: 'Configuration', component: 'cd-configuration' }, + { menu: 'Physical Disks', component: 'cd-error' }, { menu: 'CRUSH map', component: 'cd-crushmap' }, - { menu: 'Manager Modules', component: 'cd-mgr-module-list' }, - { menu: 'Ceph Users', component: 'cd-crud-table' }, - { menu: 'Logs', component: 'cd-logs' }, - { menu: 'Alerts', component: 'cd-prometheus-tabs' } + { menu: 'Monitors', component: 'cd-monitor' } ] }, - { menu: 'Pools', component: 'cd-pool-list' }, { menu: 'Block', submenus: [ @@ -41,7 +26,41 @@ export class NavigationPageHelper extends PageHelper { { menu: 'iSCSI', component: 'cd-iscsi' } ] }, - { menu: 'File Systems', component: 'cd-cephfs-list' } + { + menu: 'Object', + submenus: [ + { menu: 'Overview', component: 'cd-rgw-overview-dashboard' }, + { menu: 'Buckets', component: 'cd-rgw-bucket-list' }, + { menu: 'Users', component: 'cd-rgw-user-list' }, + { menu: 'Multi-site', component: 'cd-rgw-multisite-details' }, + { menu: 'Gateways', component: 'cd-rgw-daemon-list' }, + { menu: 'NFS', component: 'cd-error' } + ] + }, + { + menu: 'File', + submenus: [ + { menu: 'File Systems', component: 'cd-cephfs-list' }, + { menu: 'NFS', component: 'cd-error' } + ] + }, + { + menu: 'Observability', + submenus: [ + { menu: 'Logs', component: 'cd-logs' }, + { menu: 'Alerts', component: 'cd-prometheus-tabs' } + ] + }, + { + menu: 'Administration', + submenus: [ + { menu: 'Services', component: 'cd-error' }, + { menu: 'Upgrade', component: 'cd-error' }, + { menu: 'Ceph Users', component: 'cd-crud-table' }, + { menu: 'Manager Modules', component: 'cd-mgr-module-list' }, + { menu: 'Configuration', component: 'cd-configuration' } + ] + } ]; getVerticalMenu() { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts b/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts index c9ffe72227fbe..38ae3a4affd0e 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts @@ -124,7 +124,7 @@ const routes: Routes = [ path: 'ceph-users', component: CRUDTableComponent, data: { - breadcrumbs: 'Cluster/Ceph Users', + breadcrumbs: 'Administration/Ceph Users', resource: 'api.cluster.user@1.0' } }, @@ -132,7 +132,7 @@ const routes: Routes = [ path: 'cluster/user/create', component: CrudFormComponent, data: { - breadcrumbs: 'Cluster/Ceph Users/Create', + breadcrumbs: 'Administration/Ceph Users/Create', resource: 'api.cluster.user@1.0' } }, @@ -140,7 +140,7 @@ const routes: Routes = [ path: 'cluster/user/import', component: CrudFormComponent, data: { - breadcrumbs: 'Cluster/Ceph Users/Import', + breadcrumbs: 'Administration/Ceph Users/Import', resource: 'api.cluster.user@1.0' } }, @@ -148,7 +148,7 @@ const routes: Routes = [ path: 'cluster/user/edit', component: CrudFormComponent, data: { - breadcrumbs: 'Cluster/Ceph Users/Edit', + breadcrumbs: 'Administration/Ceph Users/Edit', resource: 'api.cluster.user@1.0' } }, @@ -169,7 +169,7 @@ const routes: Routes = [ section_info: 'Orchestrator', header: 'Orchestrator is not available' }, - breadcrumbs: 'Cluster/Services' + breadcrumbs: 'Administration/Services' }, children: [ { @@ -213,7 +213,7 @@ const routes: Routes = [ }, { path: 'configuration', - data: { breadcrumbs: 'Cluster/Configuration' }, + data: { breadcrumbs: 'Administration/Configuration' }, children: [ { path: '', component: ConfigurationComponent }, { @@ -231,7 +231,7 @@ const routes: Routes = [ { path: 'logs', component: LogsComponent, - data: { breadcrumbs: 'Cluster/Logs' } + data: { breadcrumbs: 'Observability/Logs' } }, { path: 'telemetry', @@ -240,7 +240,7 @@ const routes: Routes = [ }, { path: 'monitoring', - data: { breadcrumbs: 'Cluster/Alerts' }, + data: { breadcrumbs: 'Observability/Alerts' }, children: [ { path: '', redirectTo: 'active-alerts', pathMatch: 'full' }, { @@ -297,7 +297,7 @@ const routes: Routes = [ section_info: 'Orchestrator', header: 'Orchestrator is not available' }, - breadcrumbs: 'Cluster/Upgrade' + breadcrumbs: 'Administration/Upgrade' }, children: [ { @@ -321,7 +321,7 @@ const routes: Routes = [ // Mgr modules { path: 'mgr-modules', - data: { breadcrumbs: 'Cluster/Manager Modules' }, + data: { breadcrumbs: 'Administrator/Manager Modules' }, children: [ { path: '', @@ -339,7 +339,7 @@ const routes: Routes = [ // Pools { path: 'pool', - data: { breadcrumbs: 'Pools' }, + data: { breadcrumbs: 'Cluster/Pools' }, loadChildren: () => import('./ceph/pool/pool.module').then((m) => m.RoutedPoolModule) }, // Block @@ -352,7 +352,7 @@ const routes: Routes = [ { path: 'cephfs', canActivate: [FeatureTogglesGuardService], - data: { breadcrumbs: 'File Systems' }, + data: { breadcrumbs: 'File/File Systems' }, children: [ { path: '', component: CephfsListComponent }, { @@ -380,7 +380,7 @@ const routes: Routes = [ header: 'The Object Gateway Service is not configured' }, breadcrumbs: true, - text: 'Object Gateway', + text: 'Object', path: null }, loadChildren: () => import('./ceph/rgw/rgw.module').then((m) => m.RoutedRgwModule) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html b/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html index 9c436f7044d58..abd2e1ae6506e 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html @@ -5,10 +5,10 @@