From f22e9b990d1d41d7a0ce3f5edeccf92bf7b0ee2b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 7 Jul 2025 20:12:40 +0200 Subject: [PATCH] Feature/add Manage Asset Profile button to holding detail dialog (#5121) * Add Manage Asset Profile button * Update changelog --- CHANGELOG.md | 4 +++ apps/client/src/app/app.component.ts | 4 +++ .../holding-detail-dialog.component.ts | 9 +++-- .../holding-detail-dialog.html | 33 +++++++++++++++---- .../interfaces/interfaces.ts | 1 + 5 files changed, 43 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d126b4e2..cca96727b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added a _Manage Asset Profile_ button for administrators to the holding detail dialog + ### Changed - Improved the language localization in the users table of the admin control panel diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 4751c3dc7..a370d8539 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -320,6 +320,10 @@ export class AppComponent implements OnDestroy, OnInit { colorScheme: this.user?.settings?.colorScheme, deviceType: this.deviceType, hasImpersonationId: this.hasImpersonationId, + hasPermissionToAccessAdminControl: hasPermission( + this.user?.permissions, + permissions.accessAdminControl + ), hasPermissionToCreateOrder: !this.hasImpersonationId && hasPermission(this.user?.permissions, permissions.createOrder) && diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts index bf489013a..105ddfe13 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts @@ -46,12 +46,13 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { MatTabsModule } from '@angular/material/tabs'; -import { Router } from '@angular/router'; +import { Router, RouterModule } from '@angular/router'; import { IonIcon } from '@ionic/angular/standalone'; import { Account, MarketData, Tag } from '@prisma/client'; import { format, isSameMonth, isToday, parseISO } from 'date-fns'; import { addIcons } from 'ionicons'; import { + createOutline, flagOutline, readerOutline, serverOutline, @@ -85,7 +86,8 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces'; MatDialogModule, MatFormFieldModule, MatTabsModule, - NgxSkeletonLoaderModule + NgxSkeletonLoaderModule, + RouterModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-holding-detail-dialog', @@ -127,6 +129,8 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { public quantity: number; public quantityPrecision = 2; public reportDataGlitchMail: string; + public routerLinkAdminControlMarketData = + internalRoutes.adminControl.subRoutes.marketData.routerLink; public sectors: { [name: string]: { name: string; value: number }; }; @@ -152,6 +156,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { private userService: UserService ) { addIcons({ + createOutline, flagOutline, readerOutline, serverOutline, diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html index d288a8953..4625de712 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -412,16 +412,37 @@ /> @if ( - dataSource?.data.length > 0 && - data.hasPermissionToReportDataGlitch === true + data.hasPermissionToAccessAdminControl || + (dataSource?.data.length > 0 && + data.hasPermissionToReportDataGlitch === true) ) {

- Report Data Glitch + @if (data.hasPermissionToAccessAdminControl) { + Manage Asset Profile... + } + @if ( + dataSource?.data.length > 0 && + data.hasPermissionToReportDataGlitch === true + ) { + Report Data Glitch... + }
} diff --git a/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts index cb98ab3a7..e7d9edefb 100644 --- a/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts @@ -8,6 +8,7 @@ export interface HoldingDetailDialogParams { dataSource: DataSource; deviceType: string; hasImpersonationId: boolean; + hasPermissionToAccessAdminControl: boolean; hasPermissionToCreateOrder: boolean; hasPermissionToReportDataGlitch: boolean; hasPermissionToUpdateOrder: boolean;