]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Change side navigation to `Overview` 66910/head
authorAfreen Misbah <afreen@ibm.com>
Fri, 16 Jan 2026 14:17:53 +0000 (19:47 +0530)
committerAfreen Misbah <afreen@ibm.com>
Mon, 19 Jan 2026 19:31:36 +0000 (01:01 +0530)
Fixes https://tracker.ceph.com/issues/73318

Signed-off-by: Afreen Misbah <afreen@ibm.com>
27 files changed:
src/pybind/mgr/dashboard/frontend/cypress/e2e/a11y/dashboard.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/common/urls.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/04-osds.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/workflow/01-create-cluster-welcome.feature
src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/dashboard-v3.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/dashboard-v3.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/language.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/login.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/login.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/ui/navigation.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/visualTests/dashboard.vrt-spec.ts
src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/dashboard/dashboard.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/dashboard/dashboard.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/dashboard/dashboard.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/overview/overview.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/overview/overview.component.scss
src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/error/error.component.html
src/pybind/mgr/dashboard/frontend/src/app/core/layouts/workbench-layout/workbench-layout.component.html
src/pybind/mgr/dashboard/frontend/src/app/core/layouts/workbench-layout/workbench-layout.component.scss
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/enum/cell-template.enum.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/feature-toggles.service.ts
src/pybind/mgr/dashboard/frontend/src/styles/ceph-custom/_spacings.scss

index 41149f24bfa479b00790b3e0a1e9dd1943f43d7a..faa45d8b794fee77a3e7da4a8d7ba96d616df5fc 100644 (file)
@@ -1,11 +1,11 @@
 import { DashboardV3PageHelper } from '../ui/dashboard-v3.po';
 
-describe('Dashboard Main Page', { retries: 0 }, () => {
-  const dashboard = new DashboardV3PageHelper();
+describe('Overview Page', { retries: 0 }, () => {
+  const overview = new DashboardV3PageHelper();
 
   beforeEach(() => {
     cy.login();
-    dashboard.navigateTo();
+    overview.navigateTo();
   });
 
   describe('Dashboard accessibility', () => {
index 455fdf2cf939f7b19c2b23a32229177f9c4b7e5e..fc56fe7a9a1e21ada186b1d0e8a38b2f70a2591b 100644 (file)
@@ -6,7 +6,7 @@ export class UrlsCollection extends PageHelper {
     welcome: { url: '#/expand-cluster?welcome=true', id: 'cd-create-cluster' },
 
     // Landing page
-    dashboard: { url: '#/dashboard', id: 'cd-dashboard' },
+    overview: { url: '#/overview', id: 'cd-dashboard' },
 
     // Hosts
     hosts: { url: '#/hosts', id: 'cd-hosts' },
index 31870abd231390879576cebee9d39dc3c8fff651..fc3a3ca6a115706b25456b0c4fa254993ce5dbe2 100644 (file)
@@ -3,7 +3,7 @@ import { DashboardV3PageHelper } from '../ui/dashboard-v3.po';
 
 describe('OSDs page', () => {
   const osds = new OSDsPageHelper();
-  const dashboard = new DashboardV3PageHelper();
+  const overview = new DashboardV3PageHelper();
 
   before(() => {
     cy.login();
@@ -28,8 +28,8 @@ describe('OSDs page', () => {
           osds.expectTableCount('total', expectedCount);
 
           // landing page is easier to check OSD status
-          dashboard.navigateTo();
-          dashboard.cardRow('OSD').should('contain.text', `${expectedCount} OSDs`);
+          overview.navigateTo();
+          overview.cardRow('OSD').should('contain.text', `${expectedCount} OSDs`);
 
           cy.wait(30000);
           expect(Number(newCount)).to.be.gte(2);
index 3ffdc40f2490ce541561a456499842934e6047c2..a5809537fc6c399bf0f3b6e1606febdec1abf67c 100644 (file)
@@ -23,4 +23,4 @@ Feature: Cluster expansion welcome screen
         And I should see a button to "Skip"
         When I click on "Skip" button
         And I confirm to "Continue" on carbon modal
-        Then I should be on the "dashboard" page
+        Then I should be on the "overview" page
index 58a9a23d01f55a1b0163b7f6d9695162c42bdd6c..74dc43eb67bc7fe95312a6ce999ff223aa2a3c17 100644 (file)
@@ -1,7 +1,7 @@
 import { DashboardV3PageHelper } from './dashboard-v3.po';
 
 describe('Dashboard-v3 Main Page', () => {
-  const dashboard = new DashboardV3PageHelper();
+  const overview = new DashboardV3PageHelper();
 
   before(() => {
     cy.login();
@@ -9,7 +9,7 @@ describe('Dashboard-v3 Main Page', () => {
 
   beforeEach(() => {
     cy.login();
-    dashboard.navigateTo();
+    overview.navigateTo();
   });
 
   describe('Check that all hyperlinks on inventory card lead to the correct page and fields exist', () => {
@@ -23,20 +23,20 @@ describe('Dashboard-v3 Main Page', () => {
       };
 
       for (const [linkText, breadcrumbText] of Object.entries(expectationMap)) {
-        cy.location('hash').should('eq', '#/dashboard');
-        dashboard.clickInventoryCardLink(linkText);
-        dashboard.expectBreadcrumbText(breadcrumbText);
-        dashboard.navigateBack();
+        cy.location('hash').should('eq', '#/overview');
+        overview.clickInventoryCardLink(linkText);
+        overview.expectBreadcrumbText(breadcrumbText);
+        overview.navigateBack();
       }
     });
 
-    it('should verify that cards exist on dashboard in proper order', () => {
-      // Ensures that cards are all displayed on the dashboard tab while being in the proper
+    it('should verify that cards exist on overview in proper order', () => {
+      // Ensures that cards are all displayed on the overview tab while being in the proper
       // order, checks for card title and position via indexing into a list of all cards.
       const order = ['Details', 'Inventory', 'Status', 'Capacity', 'Cluster Utilization'];
 
       for (let i = 0; i < order.length; i++) {
-        dashboard.card(i).should('contain.text', order[i]);
+        overview.card(i).should('contain.text', order[i]);
       }
     });
   });
index 212562250a845eaa46372bc7363a141b57d1e872..70063ef8b168ba601d2592f501b263725c306060 100644 (file)
@@ -1,7 +1,7 @@
 import { PageHelper } from '../page-helper.po';
 
 export class DashboardV3PageHelper extends PageHelper {
-  pages = { index: { url: '#/dashboard', id: 'cd-dashboard-v3' } };
+  pages = { index: { url: '#/overview', id: 'cd-dashboard-v3' } };
 
   cardTitle(index: number) {
     return cy.get('.card-title').its(index).text();
index fc443f28ffdc9adbb5d645cf3ddde326d87bba5d..72987b699b71d2622e11659aec968035cefa16a5 100644 (file)
@@ -2,7 +2,7 @@ import { PageHelper } from '../page-helper.po';
 
 export class LanguagePageHelper extends PageHelper {
   pages = {
-    index: { url: '#/dashboard', id: 'cd-dashboard' }
+    index: { url: '#/overview', id: 'cd-dashboard' }
   };
 
   getLanguageBtn() {
index bec37e46f62ceaf561eb8ea35902d62dcea4b196..72e75bbc11f7dc52410293ea9ae61f404568536f 100644 (file)
@@ -3,7 +3,7 @@ import { LoginPageHelper } from './login.po';
 describe('Login page', () => {
   const login = new LoginPageHelper();
 
-  it('should login and navigate to dashboard page', () => {
+  it('should login and navigate to overview page', () => {
     login.navigateTo();
     login.doLogin();
   });
index b275133f01523dec7d32b3cea8bc6172d65423ba..7746ac1a0c3182f818f00d5c582ad62f248d07fc 100644 (file)
@@ -3,7 +3,7 @@ import { PageHelper } from '../page-helper.po';
 export class LoginPageHelper extends PageHelper {
   pages = {
     index: { url: '#/login', id: 'cd-login' },
-    dashboard: { url: '#/dashboard', id: 'cd-dashboard' }
+    overview: { url: '#/overview', id: 'cd-dashboard' }
   };
 
   doLogin() {
index ae0e5b64f25d0178a9c96315cc7930d59179c0b3..791525bfcf755c59d2673a8cb777a58e1e9b4975 100644 (file)
@@ -2,11 +2,11 @@ import { PageHelper } from '../page-helper.po';
 
 export class NavigationPageHelper extends PageHelper {
   pages = {
-    index: { url: '#/dashboard', id: 'cd-dashboard' }
+    index: { url: '#/overview', id: 'cd-dashboard' }
   };
 
   navigations = [
-    { menu: 'Dashboard', component: 'cd-dashboard' },
+    { menu: 'Overview', component: 'cd-dashboard' },
     {
       menu: 'Multi-Cluster',
       submenus: [
index 13802982041dda908493064ce53b0eb3c883b90a..12cea1ead370d297281b6ed596ae28c8b747694e 100644 (file)
@@ -1,11 +1,11 @@
 import { LoginPageHelper } from '../ui/login.po';
 
-describe.skip('Dashboard Landing Page', () => {
+describe.skip('Overview Landing Page', () => {
   const login = new LoginPageHelper();
 
   beforeEach(() => {
     cy.eyesOpen({
-      testName: 'Dashboard Component'
+      testName: 'Overview Component'
     });
   });
 
@@ -13,12 +13,12 @@ describe.skip('Dashboard Landing Page', () => {
     cy.eyesClose();
   });
 
-  it('should take screenshot of dashboard landing page', () => {
+  it('should take screenshot of overview landing page', () => {
     login.navigateTo();
     login.doLogin();
     cy.get('[aria-label="Status card"]').should('be.visible');
     cy.get('[aria-label="Inventory card"]').should('be.visible');
     cy.get('[aria-label="Cluster utilization card"]').should('be.visible');
-    cy.eyesCheckWindow({ tag: 'Dashboard landing page' });
+    cy.eyesCheckWindow({ tag: 'Overview landing page' });
   });
 });
index 276a7baea45d8636efeb675abc731d503d30f3ce..a40c58631af3bd47506d766672ddd12ead6ae026 100644 (file)
@@ -94,8 +94,8 @@ export class StartCaseBreadcrumbsResolver extends BreadcrumbsResolver {
 }
 
 const routes: Routes = [
-  // Dashboard
-  { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
+  // Overview
+  { path: '', redirectTo: 'overview', pathMatch: 'full' },
   { path: 'api-docs', component: ApiDocsComponent },
   {
     path: '',
@@ -103,7 +103,7 @@ const routes: Routes = [
     canActivate: [AuthGuardService, ChangePasswordGuardService],
     canActivateChild: [AuthGuardService, ChangePasswordGuardService],
     children: [
-      { path: 'dashboard', component: DashboardComponent },
+      { path: 'overview', component: DashboardComponent },
       { path: 'error', component: ErrorComponent },
 
       // Cluster
@@ -114,7 +114,7 @@ const routes: Routes = [
         data: {
           moduleStatusGuardConfig: {
             uiApiPath: 'orchestrator',
-            redirectTo: 'dashboard',
+            redirectTo: 'overview',
             backend: 'cephadm'
           },
           breadcrumbs: 'Cluster/Expand Cluster'
index fc463ea0f210bb02a11ba84c129e8d67f7d6fde9..e61ef3ee6e71e4db685c314bf0228d68a56953c7 100644 (file)
@@ -151,7 +151,7 @@ export class CreateClusterComponent implements OnInit, OnDestroy, AfterViewInit
               NotificationType.info,
               $localize`Cluster expansion skipped by user`
             );
-            this.router.navigate(['/dashboard']);
+            this.router.navigate(['/overview']);
             this.modalService.dismissAll();
           }
         });
@@ -179,7 +179,7 @@ export class CreateClusterComponent implements OnInit, OnDestroy, AfterViewInit
                   NotificationType.success,
                   $localize`Cluster expansion was successful`
                 );
-                this.router.navigate(['/dashboard']);
+                this.router.navigate(['/overview']);
               })
             )
           )
index 8066c6b319dbe30cf1a0ce991a138f0b9dd5efde..e6eb1573744d55820ce612ab1ecb700717ef1530 100644 (file)
@@ -1,5 +1,6 @@
-<main aria-label="Cluster Overview">
-@if (useDeprecated === true) {
+<main aria-label="Overview">
+@let features = enabledFeature$ | async;
+@if (features?.dashboard) {
 <!-- OLD OVERVIEW -->
 <cd-dashboard-v3 data-testid="cd-dashboard-v3"></cd-dashboard-v3>
 } @else {
index d3b4f5e8bb97b836b7a6fb4ee2386fc08a092970..55b2152e1751e320d92dd5ffb71975205526494c 100644 (file)
@@ -1,7 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { By } from '@angular/platform-browser';
 
 import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
 import { FeatureTogglesService } from '~/app/shared/services/feature-toggles.service';
@@ -12,7 +11,6 @@ import { DashboardComponent } from './dashboard.component';
 describe('DashboardComponent', () => {
   let component: DashboardComponent;
   let fixture: ComponentFixture<DashboardComponent>;
-  let featureTogglesService: FeatureTogglesService;
 
   configureTestBed({
     imports: [NgbNavModule, HttpClientTestingModule],
@@ -22,70 +20,12 @@ describe('DashboardComponent', () => {
   });
 
   beforeEach(() => {
-    featureTogglesService = TestBed.inject(FeatureTogglesService);
     fixture = TestBed.createComponent(DashboardComponent);
     component = fixture.componentInstance;
   });
 
   it('should create', () => {
-    spyOn(featureTogglesService, 'isFeatureEnabled').and.returnValue(true);
-
     fixture.detectChanges();
     expect(component).toBeTruthy();
   });
-
-  it('should call featureTogglesService.isFeatureEnabled() on initialization', () => {
-    const spy = spyOn(featureTogglesService, 'isFeatureEnabled').and.returnValue(true);
-    fixture.detectChanges();
-    expect(spy).toHaveBeenCalled();
-    expect(spy).toHaveBeenCalledWith('dashboard');
-  });
-
-  it('should set useDeprecated based on feature toggle', () => {
-    spyOn(featureTogglesService, 'isFeatureEnabled').and.returnValue(true);
-    fixture.detectChanges();
-    expect(component.useDeprecated).toBe(true);
-  });
-
-  describe('when dashboard feature is enabled (new dashboard)', () => {
-    beforeEach(() => {
-      spyOn(featureTogglesService, 'isFeatureEnabled').and.returnValue(true);
-      fixture.detectChanges();
-    });
-
-    it('should show cd-dashboard-v3 in template when dashboard feature is enabled', () => {
-      const overviewElement = fixture.debugElement.query(By.css('[data-testid="cd-overview"]'));
-      const dashboardV3Element = fixture.debugElement.query(
-        By.css('[data-testid="cd-dashboard-v3"]')
-      );
-
-      expect(overviewElement).toBeNull();
-      expect(dashboardV3Element).toBeTruthy();
-    });
-
-    it('should set useDeprecated to false when feature is enabled', () => {
-      expect(component.useDeprecated).toBe(true);
-    });
-  });
-
-  describe('when dashboard feature is disabled (old dashboard)', () => {
-    beforeEach(() => {
-      spyOn(featureTogglesService, 'isFeatureEnabled').and.returnValue(false);
-      fixture.detectChanges();
-    });
-
-    it('should show cd-overview in template when dashboard feature is disabled', () => {
-      const overviewElement = fixture.debugElement.query(By.css('[data-testid="cd-overview"]'));
-      const dashboardV3Element = fixture.debugElement.query(
-        By.css('[data-testid="cd-dashboard-v3"]')
-      );
-
-      expect(overviewElement).toBeTruthy();
-      expect(dashboardV3Element).toBeNull();
-    });
-
-    it('should set useDeprecated to true when feature is disabled', () => {
-      expect(component.useDeprecated).toBe(false);
-    });
-  });
 });
index 559049888ecace6b2789a2880b4c5bb01ed52241..b26b1452b09d943f9adbe34d09f4b3e96f7d8d07 100644 (file)
@@ -1,5 +1,9 @@
 import { Component, inject, OnInit } from '@angular/core';
-import { FeatureTogglesService } from '~/app/shared/services/feature-toggles.service';
+import { Observable } from 'rxjs';
+import {
+  FeatureTogglesMap,
+  FeatureTogglesService
+} from '~/app/shared/services/feature-toggles.service';
 
 @Component({
   selector: 'cd-dashboard',
@@ -8,11 +12,11 @@ import { FeatureTogglesService } from '~/app/shared/services/feature-toggles.ser
   standalone: false
 })
 export class DashboardComponent implements OnInit {
-  useDeprecated: boolean = true;
+  enabledFeature$: Observable<FeatureTogglesMap>;
 
   private featureToggles = inject(FeatureTogglesService);
 
   ngOnInit() {
-    this.useDeprecated = this.featureToggles.isFeatureEnabled('dashboard');
+    this.enabledFeature$ = this.featureToggles.get();
   }
 }
index d736a3df24b1b735ba63190f8c56d0d4cc4a6f31..70d5d3908a127c436b97217c61a838bca88f5316 100644 (file)
@@ -2,34 +2,37 @@
      [narrow]="true"
      [condensed]="false"
      [fullWidth]="true"
-     class="overview">
+     class="cds-mt-5 cds-mb-5">
   <div cdsRow
-       [narrow]="true"
-       class="overview-row">
+       [narrow]="true">
     <div cdsCol
-         [columnNumbers]="{md: 16, lg: 11}">
+         class="cds-mb-5"
+         [columnNumbers]="{lg: 11}">
       <cds-tile>Health card</cds-tile>
     </div>
     <div cdsCol
-         [columnNumbers]="{md: 16, lg: 5}">
+         class="cds-mb-5"
+         [columnNumbers]="{lg: 5}">
       <cds-tile>Alerts card</cds-tile>
     </div>
   </div>
   <div cdsRow
-       [narrow]="true"
-       class="overview-row">
+       [narrow]="true">
     <div cdsCol
-         [columnNumbers]="{md: 16, lg: 11}">
+         class="cds-mb-5"
+         [columnNumbers]="{lg: 11}">
       <cds-tile>Storage card</cds-tile>
     </div>
     <div cdsCol
-         [columnNumbers]="{md: 16, lg: 5}">
+         class="cds-mb-5"
+         [columnNumbers]="{lg: 5}">
       <cds-tile>Docs card</cds-tile>
     </div>
   </div>
   <div cdsRow>
     <div cdsCol
-         [columnNumbers]="{md: 16, lg: 16}">
+         class="cds-mb-5"
+         [columnNumbers]="{lg: 16}">
       <cds-tile>Performance card</cds-tile>
     </div>
   </div>
index a84b2ba119ccc4bb7f732391e555929039bf0632..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,8 +0,0 @@
-.overview {
-  margin-top: var(--cds-spacing-05);
-  margin-bottom: var(--cds-spacing-05);
-}
-
-.overview-row {
-  margin-bottom: var(--cds-spacing-05);
-}
index 50e5030f2f68faf5becefc2ca3d0118f62c80990..9b665f00f893cc95c4e1302b96649e02e1ffe725 100644 (file)
@@ -69,7 +69,7 @@ export class LoginComponent implements OnInit {
     this.authService.login(this.model).subscribe(() => {
       const urlPath = this.postInstalled ? '/' : '/expand-cluster';
       let url = _.get(this.route.snapshot.queryParams, 'returnUrl', urlPath);
-      if (!this.postInstalled && this.route.snapshot.queryParams['returnUrl'] === '/dashboard') {
+      if (!this.postInstalled && this.route.snapshot.queryParams['returnUrl'] === '/overview') {
         url = '/expand-cluster';
       }
       if (url == '/expand-cluster') {
index fc9c4bef2d92bd94464e649355759facace0920c..c632ded7093cd72ab21367370d92f340692b8a04 100644 (file)
@@ -61,8 +61,8 @@
   <div class="mt-4 text-center"
        *ngIf="!module_name; else enableButton">
     <button class="btn btn-primary"
-            [routerLink]="'/dashboard'"
-            i18n>Go To Dashboard</button>
+            [routerLink]="'/overview'"
+            i18n>Go To Overview</button>
   </div>
 </ng-template>
 
index 3881a424eff1c827c573a24216e3aef4edb89032..dc906d4ee69295ea2adee29f28560ce729624140 100644 (file)
@@ -1,12 +1,12 @@
 <block-ui name="global">
   <cd-navigation>
     <div class="container-fluid h-100"
-         [ngClass]="{'dashboard': (router.url == '/dashboard' || router.url == '/dashboard_3' || router.url == '/multi-cluster/overview'), 'rgw-dashboard': (router.url == '/rgw/overview')}">
+         [ngClass]="{'overview': (router.url == '/overview' || router.url == '/dashboard_3' || router.url == '/multi-cluster/overview'), 'rgw-dashboard': (router.url == '/rgw/overview')}">
       <!-- ************************ -->
       <!-- ALERTS BANNER     -->
       <!-- ************************ -->
       <div class="cd-alert-container"
-           [ngClass]="{'ms-4 me-4': (router.url == '/dashboard' || router.url == '/dashboard_3' || router.url == '/multi-cluster/overview'), 'm-3': (router.url == '/rgw/overview')}">
+           [ngClass]="{'ms-4 me-4': (router.url == '/overview' || router.url == '/dashboard_3' || router.url == '/multi-cluster/overview'), 'm-3': (router.url == '/rgw/overview')}">
         <cd-pwd-expiration-notification></cd-pwd-expiration-notification>
         <cd-telemetry-notification></cd-telemetry-notification>
         <cd-motd></cd-motd>
index 2716021cfb668f6dbc37d843cb9ca9b041e7eb9a..b685ee9e070e9d403e397ab17ea965563864d70e 100644 (file)
@@ -1,6 +1,6 @@
 @use './src/styles/vendor/variables' as vv;
 
-.dashboard {
+.overview {
   background-color: vv.$body-bg-alt;
   margin: 0;
   padding: 0;
index ef5adf9061775979031abd8ddf97c35d03bc36a9..3b024375066d0347e9552e3a8f1b1514a66e41dc 100644 (file)
@@ -54,7 +54,7 @@
   <!-- ***************************** -->
   <ng-template #brandTemplate>
     <a class="cds--header__name navbar-brand ms-3"
-       routerLink="/dashboard">
+       routerLink="/overview">
       <img src="assets/Ceph_Ceph_Logo_with_text_white.svg"
            alt="Ceph" />
     </a>
                    class="mt-5"
                    (click)="onMenuClick($event)"
                    #sidenavContainer>
-        <!-- Dashboard -->
-        <cds-sidenav-item route="/dashboard"
+        <!-- Overview -->
+        <cds-sidenav-item route="/overview"
                           [useRouter]="true"
-                          title="Dashboard"
+                          title="Overview"
                           i18n-title
-                          class="nav-item tc_menuitem_dashboard">
+                          class="nav-item tc_menuitem_overview">
           <svg cdsIcon="template"
                icon
                size="20"></svg>
           <span i18n>
-            Dashboard</span>
+            Overview</span>
         </cds-sidenav-item>
         <!-- Multi-cluster Dashboard -->
         <cds-sidenav-menu title="Multi-cluster"
index df414feea018dd6e1b9aa2b801a53ce320811eef..9ee956f4bdf772194d19288661bc80583b9909dd 100644 (file)
@@ -227,7 +227,7 @@ describe('NavigationComponent', () => {
       fixture.detectChanges();
 
       const expectedTexts = {
-        '.tc_menuitem_dashboard': 'Dashboard',
+        '.tc_menuitem_overview': 'Overview',
         '.tc_submenuitem_multiCluster_overview': 'Overview',
         '.tc_submenuitem_multiCluster_manage_clusters': 'Manage clusters',
         '.tc_submenuitem_cluster_pool': 'Pools',
index 50971bb9311ebfedde6f400be952625c171a22cb..df8c75c4506606a7789a6e6c92b9add7b4287be7 100644 (file)
@@ -107,12 +107,12 @@ export enum CellTemplate {
   //    ...
   //    cellTransformation: CellTemplate.redirect,
   //    customTemplateConfig: {
-  //          redirectLink: ['dashboard', 'overview'],
+  //          redirectLink: ['overview', 'overview'],
   //    }
   //    ...
   // }
   // you can also use '::prop' in the redirectLink array to replace it with the cell value.
-  // e.g ['dashboard', '::prop', 'details']
+  // e.g ['overview', '::prop', 'details']
   //
   // if you want to use some other property of the row for redirection instead of the cell value,
   // you can use the 'customRowProperty' property in the customTemplateConfig to specify
index 3639f8c79caa0b0f471a036dfe7db467b2bd97f9..039ca9dd183ca8e63792a0d900390f89c91b5370 100644 (file)
@@ -35,8 +35,4 @@ export class FeatureTogglesService {
   get(): FeatureTogglesMap$ {
     return this.featureToggleMap$;
   }
-
-  isFeatureEnabled(feature: string): boolean {
-    return this.http.get<FeatureTogglesMap>(this.API_URL)?.[feature];
-  }
 }
index a64341c7709ca820924bebe83ce3e5424be39cb6..12abe38883520cfd082a8f10d10da1f4623a5475 100644 (file)
 .cds-mb-3 {
   margin-bottom: layout.$spacing-03;
 }
+
+.cds-mb-5 {
+  margin-bottom: layout.$spacing-05;
+}
+
+.cds-mt-5 {
+  margin-top: layout.$spacing-05;
+}