From 5f2ed2b9ffdf7861cbbb88b4fbd56373b655c2dd Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Thu, 19 Sep 2024 18:59:59 +0300 Subject: [PATCH] Make Edge menu great again --- ui-ngx/src/app/core/services/menu.models.ts | 55 ++++++++++++++++++- .../edge-status/edge-status-routing.module.ts | 10 ++-- 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/ui-ngx/src/app/core/services/menu.models.ts b/ui-ngx/src/app/core/services/menu.models.ts index ee4c36b6f2..b6dd6908b5 100644 --- a/ui-ngx/src/app/core/services/menu.models.ts +++ b/ui-ngx/src/app/core/services/menu.models.ts @@ -100,7 +100,10 @@ export enum MenuId { features = 'features', otaUpdates = 'otaUpdates', version_control = 'version_control', - api_usage = 'api_usage' + api_usage = 'api_usage', + edge = 'edge', + edge_status = 'edge_status', + cloud_events = 'cloud_events', } declare type MenuFilter = (authState: AuthState) => boolean; @@ -640,6 +643,36 @@ export const menuSectionMap = new Map([ path: '/usage', icon: 'insert_chart' } + ], + [ + MenuId.edge, + { + id: MenuId.edge, + name: 'edge.edge', + type: 'toggle', + path: '/edge', + icon: 'router' + } + ], + [ + MenuId.edge_status, + { + id: MenuId.edge_status, + name: 'edge.status', + type: 'link', + path: '/edge/status', + icon: 'info' + } + ], + [ + MenuId.cloud_events, + { + id: MenuId.cloud_events, + name: 'edge.cloud-events', + type: 'link', + path: '/edge/cloudEvents', + icon: 'date_range' + } ] ]); @@ -652,6 +685,19 @@ const menuFilters = new Map([ ], [ MenuId.rulechain_templates, (authState) => authState.edgesSupportEnabled + ], + // merge comment: sections below should not be visible on edge + [ + MenuId.version_control, () => false + ], + [ + MenuId.repository_settings, () => false + ], + [ + MenuId.auto_commit_settings, () => false + ], + [ + MenuId.edge_instances, () => false ] ]); @@ -718,6 +764,13 @@ const defaultUserMenuMap = new Map([ Authority.TENANT_ADMIN, [ {id: MenuId.home}, + { + id: MenuId.edge, + pages: [ + {id: MenuId.edge_status}, + {id: MenuId.cloud_events} + ] + }, {id: MenuId.alarms}, {id: MenuId.dashboards}, { diff --git a/ui-ngx/src/app/modules/home/pages/edge-status/edge-status-routing.module.ts b/ui-ngx/src/app/modules/home/pages/edge-status/edge-status-routing.module.ts index 2dd118939f..5182da4e76 100644 --- a/ui-ngx/src/app/modules/home/pages/edge-status/edge-status-routing.module.ts +++ b/ui-ngx/src/app/modules/home/pages/edge-status/edge-status-routing.module.ts @@ -28,6 +28,7 @@ import { AttributeData, AttributeScope } from '@shared/models/telemetry/telemetr import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { AttributeService } from '@core/http/attribute.service'; +import { MenuId } from '@core/services/menu.models'; @Injectable() export class EdgeAttributesResolver implements Resolve> { @@ -55,8 +56,7 @@ const routes: Routes = [ auth: [Authority.TENANT_ADMIN], title: 'edge.edge', breadcrumb: { - label: 'edge.edge', - icon: 'router' + menuId: MenuId.edge } }, children: [ @@ -75,8 +75,7 @@ const routes: Routes = [ auth: [Authority.TENANT_ADMIN], title: 'edge.status', breadcrumb: { - label: 'edge.status', - icon: 'info' + menuId: MenuId.edge_status } }, resolve: { @@ -90,8 +89,7 @@ const routes: Routes = [ auth: [Authority.TENANT_ADMIN], title: 'edge.cloud-events', breadcrumb: { - label: 'edge.cloud-events', - icon: 'date_range' + menuId: MenuId.cloud_events } } }