This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 
4287-migrate-angular-ui-from-constructor-injection-to-inject
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 338541221617c187025e00b77ffd6cdda2f971a2
Author: Philipp Zehnder <[email protected]>
AuthorDate: Tue Mar 24 10:04:07 2026 +0100

    migrate asset UI to inject()
---
 .../asset-details-basics.component.ts              |  5 ++-
 .../asset-details-labels.component.ts              |  9 ++---
 .../asset-location/asset-location.component.ts     |  6 +--
 .../asset-details-links.component.ts               | 13 +++----
 .../view-assset-basics.component.ts                | 12 ++++--
 .../view-asset-labels.component.ts                 |  5 ++-
 .../asset-overview/asset-overview.component.ts     | 22 +++++------
 .../create-asset/create-asset-dialog.component.ts  | 11 +++---
 .../edit-asset-link-dialog.component.ts            | 43 ++++++++++++++++------
 .../manage-asset-links-dialog.component.ts         | 43 ++++++++++++++++------
 10 files changed, 105 insertions(+), 64 deletions(-)

diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
index 751d011661..f2a5bd0eb2 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
@@ -24,6 +24,7 @@ import {
     OnInit,
     Output,
     SimpleChanges,
+    inject,
 } from '@angular/core';
 import {
     AssetSiteDesc,
@@ -68,6 +69,8 @@ import { TranslatePipe } from '@ngx-translate/core';
     ],
 })
 export class AssetDetailsBasicsComponent implements OnInit, OnChanges {
+    private isa95TypeService = inject(Isa95TypeService);
+
     @Input()
     asset: SpAsset;
 
@@ -88,8 +91,6 @@ export class AssetDetailsBasicsComponent implements OnInit, 
OnChanges {
 
     isa95Types: Isa95TypeDesc[] = [];
 
-    constructor(private isa95TypeService: Isa95TypeService) {}
-
     ngOnInit() {
         this.isa95Types = this.isa95TypeService.getTypeDescriptions();
     }
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-labels/asset-details-labels.component.ts
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-labels/asset-details-labels.component.ts
index 794baa443f..fa330c1159 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-labels/asset-details-labels.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-labels/asset-details-labels.component.ts
@@ -24,6 +24,7 @@ import {
     OnInit,
     SimpleChanges,
     ViewChild,
+    inject,
 } from '@angular/core';
 import {
     LabelsService,
@@ -97,6 +98,9 @@ import { TranslatePipe } from '@ngx-translate/core';
     ],
 })
 export class AssetDetailsLabelsComponent implements OnInit, OnChanges {
+    private labelsService = inject(LabelsService);
+    private colorizationService = inject(SpColorizationService);
+
     @Input()
     asset: SpAsset;
 
@@ -114,11 +118,6 @@ export class AssetDetailsLabelsComponent implements 
OnInit, OnChanges {
 
     @ViewChild('labelInput') labelInput: ElementRef<HTMLInputElement>;
 
-    constructor(
-        private labelsService: LabelsService,
-        private colorizationService: SpColorizationService,
-    ) {}
-
     ngOnInit(): void {
         this.loadLabels();
     }
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-site/asset-location/asset-location.component.ts
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-site/asset-location/asset-location.component.ts
index e25d5f8fa6..95b376479c 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-site/asset-location/asset-location.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-site/asset-location/asset-location.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, Input, OnInit, inject } from '@angular/core';
 import {
     LocationConfig,
     LocationConfigService,
@@ -40,6 +40,8 @@ import { TranslatePipe } from '@ngx-translate/core';
     ],
 })
 export class AssetLocationComponent implements OnInit {
+    private locationConfigService = inject(LocationConfigService);
+
     @Input()
     asset: SpAsset;
 
@@ -48,8 +50,6 @@ export class AssetLocationComponent implements OnInit {
 
     locationConfig: LocationConfig;
 
-    constructor(private locationConfigService: LocationConfigService) {}
-
     ngOnInit() {
         this.asset.assetSite.location ??= {
             coordinates: {
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-links/asset-details-links.component.ts
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-links/asset-details-links.component.ts
index e02c8dec77..40d4eb092f 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-links/asset-details-links.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-links/asset-details-links.component.ts
@@ -23,6 +23,7 @@ import {
     OnInit,
     Output,
     ViewChild,
+    inject,
 } from '@angular/core';
 import {
     AssetConstants,
@@ -63,6 +64,11 @@ import { MatButton } from '@angular/material/button';
     ],
 })
 export class AssetDetailsLinksComponent implements OnInit {
+    private genericStorageService = inject(GenericStorageService);
+    private dialogService = inject(DialogService);
+    private translateService = inject(TranslateService);
+    private assetBrowserService = inject(SpAssetBrowserService);
+
     @Input()
     asset: SpAsset;
 
@@ -81,13 +87,6 @@ export class AssetDetailsLinksComponent implements OnInit {
     @ViewChild('assetLinkTable', { static: false })
     assetLinkTable: AssetLinkTableComponent;
 
-    constructor(
-        private genericStorageService: GenericStorageService,
-        private dialogService: DialogService,
-        private translateService: TranslateService,
-        private assetBrowserService: SpAssetBrowserService,
-    ) {}
-
     ngOnInit(): void {
         this.genericStorageService
             .getAllDocuments(AssetConstants.ASSET_LINK_TYPES_DOC_NAME)
diff --git 
a/ui/src/app/assets/components/asset-details/view-asset/view-asset-basics/view-assset-basics.component.ts
 
b/ui/src/app/assets/components/asset-details/view-asset/view-asset-basics/view-assset-basics.component.ts
index e0850cfbef..da150b43f3 100644
--- 
a/ui/src/app/assets/components/asset-details/view-asset/view-asset-basics/view-assset-basics.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/view-asset/view-asset-basics/view-assset-basics.component.ts
@@ -16,7 +16,13 @@
  *
  */
 
-import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
+import {
+    Component,
+    Input,
+    OnChanges,
+    SimpleChanges,
+    inject,
+} from '@angular/core';
 import {
     AssetSiteDesc,
     Isa95TypeService,
@@ -43,6 +49,8 @@ import { ViewAssetLabelsComponent } from 
'../view-asset-labels/view-asset-labels
     ],
 })
 export class ViewAssetBasicsComponent implements OnChanges {
+    private isa95TypeService = inject(Isa95TypeService);
+
     @Input()
     selectedAsset: SpAsset;
 
@@ -51,8 +59,6 @@ export class ViewAssetBasicsComponent implements OnChanges {
 
     selectedAssetType: string;
 
-    constructor(private isa95TypeService: Isa95TypeService) {}
-
     ngOnChanges(changes: SimpleChanges) {
         this.selectedAssetType =
             this.isa95TypeService.toLabel(
diff --git 
a/ui/src/app/assets/components/asset-details/view-asset/view-asset-labels/view-asset-labels.component.ts
 
b/ui/src/app/assets/components/asset-details/view-asset/view-asset-labels/view-asset-labels.component.ts
index 988539de66..da05409ae2 100644
--- 
a/ui/src/app/assets/components/asset-details/view-asset/view-asset-labels/view-asset-labels.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/view-asset/view-asset-labels/view-asset-labels.component.ts
@@ -22,6 +22,7 @@ import {
     OnChanges,
     OnInit,
     SimpleChanges,
+    inject,
 } from '@angular/core';
 import {
     LabelsService,
@@ -48,6 +49,8 @@ import { SpLabelComponent } from '@streampipes/shared-ui';
     ],
 })
 export class ViewAssetLabelsComponent implements OnInit, OnChanges {
+    private labelsService = inject(LabelsService);
+
     @Input()
     asset: SpAsset;
 
@@ -57,8 +60,6 @@ export class ViewAssetLabelsComponent implements OnInit, 
OnChanges {
     allLabels: SpLabel[] = [];
     assignedLabels: SpLabel[] = [];
 
-    constructor(private labelsService: LabelsService) {}
-
     ngOnInit() {
         this.labelsService.getAllLabels().subscribe(res => {
             this.allLabels = res;
diff --git 
a/ui/src/app/assets/components/asset-overview/asset-overview.component.ts 
b/ui/src/app/assets/components/asset-overview/asset-overview.component.ts
index a0fa0e1331..f75aaeb5ce 100644
--- a/ui/src/app/assets/components/asset-overview/asset-overview.component.ts
+++ b/ui/src/app/assets/components/asset-overview/asset-overview.component.ts
@@ -89,6 +89,16 @@ import { MatIcon } from '@angular/material/icon';
     ],
 })
 export class SpAssetOverviewComponent implements OnInit {
+    private assetService = inject(AssetManagementService);
+    private breadcrumbService = inject(SpBreadcrumbService);
+    private dialogService = inject(DialogService);
+    private router = inject(Router);
+    private idGeneratorService = inject(IdGeneratorService);
+    private assetBrowserService = inject(SpAssetBrowserService);
+    private currentUserService = inject(CurrentUserService);
+    private dialog = inject(MatDialog);
+    private translateService = inject(TranslateService);
+
     existingAssets: SpAssetModel[] = [];
     filteredAssets: SpAssetModel[] = [];
 
@@ -107,18 +117,6 @@ export class SpAssetOverviewComponent implements OnInit {
 
     private assetFilterService = inject(SpAssetBrowserService);
 
-    constructor(
-        private assetService: AssetManagementService,
-        private breadcrumbService: SpBreadcrumbService,
-        private dialogService: DialogService,
-        private router: Router,
-        private idGeneratorService: IdGeneratorService,
-        private assetBrowserService: SpAssetBrowserService,
-        private currentUserService: CurrentUserService,
-        private dialog: MatDialog,
-        private translateService: TranslateService,
-    ) {}
-
     ngOnInit(): void {
         this.hasWritePrivilege = this.currentUserService.hasRole(
             UserPrivilege.PRIVILEGE_WRITE_ASSETS,
diff --git 
a/ui/src/app/assets/dialog/create-asset/create-asset-dialog.component.ts 
b/ui/src/app/assets/dialog/create-asset/create-asset-dialog.component.ts
index 708d5c4b1b..e7747f8fa0 100644
--- a/ui/src/app/assets/dialog/create-asset/create-asset-dialog.component.ts
+++ b/ui/src/app/assets/dialog/create-asset/create-asset-dialog.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, Input } from '@angular/core';
+import { Component, Input, inject } from '@angular/core';
 import {
     AssetManagementService,
     SpAssetModel,
@@ -52,12 +52,11 @@ import { TranslatePipe } from '@ngx-translate/core';
     ],
 })
 export class SpCreateAssetDialogComponent {
-    @Input() assetModel: SpAssetModel;
+    private dialogRef =
+        inject<DialogRef<SpCreateAssetDialogComponent>>(DialogRef);
+    private assetManagementService = inject(AssetManagementService);
 
-    constructor(
-        private dialogRef: DialogRef<SpCreateAssetDialogComponent>,
-        private assetManagementService: AssetManagementService,
-    ) {}
+    @Input() assetModel: SpAssetModel;
 
     onCancel(): void {
         this.dialogRef.close();
diff --git 
a/ui/src/app/assets/dialog/edit-asset-link/edit-asset-link-dialog.component.ts 
b/ui/src/app/assets/dialog/edit-asset-link/edit-asset-link-dialog.component.ts
index 28dc64b0df..8b482e75bd 100644
--- 
a/ui/src/app/assets/dialog/edit-asset-link/edit-asset-link-dialog.component.ts
+++ 
b/ui/src/app/assets/dialog/edit-asset-link/edit-asset-link-dialog.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, Input, OnInit, inject } from '@angular/core';
 import { DialogRef, FormFieldComponent } from '@streampipes/shared-ui';
 import {
     AdapterService,
@@ -65,6 +65,17 @@ export class EditAssetLinkDialogComponent
     extends BaseAssetLinksDirective
     implements OnInit
 {
+    private dialogRef =
+        inject<DialogRef<EditAssetLinkDialogComponent>>(DialogRef);
+    protected genericStorageService: GenericStorageService;
+    protected pipelineService: PipelineService;
+    protected chartService: ChartService;
+    protected dashboardService: DashboardService;
+    protected dataLakeService: DatalakeRestService;
+    protected pipelineElementService: PipelineElementService;
+    protected adapterService: AdapterService;
+    protected filesService: FilesService;
+
     @Input()
     assetLink: AssetLink;
 
@@ -82,17 +93,16 @@ export class EditAssetLinkDialogComponent
 
     selectedLinkType: AssetLinkType;
 
-    constructor(
-        private dialogRef: DialogRef<EditAssetLinkDialogComponent>,
-        protected genericStorageService: GenericStorageService,
-        protected pipelineService: PipelineService,
-        protected chartService: ChartService,
-        protected dashboardService: DashboardService,
-        protected dataLakeService: DatalakeRestService,
-        protected pipelineElementService: PipelineElementService,
-        protected adapterService: AdapterService,
-        protected filesService: FilesService,
-    ) {
+    constructor() {
+        const genericStorageService = inject(GenericStorageService);
+        const pipelineService = inject(PipelineService);
+        const chartService = inject(ChartService);
+        const dashboardService = inject(DashboardService);
+        const dataLakeService = inject(DatalakeRestService);
+        const pipelineElementService = inject(PipelineElementService);
+        const adapterService = inject(AdapterService);
+        const filesService = inject(FilesService);
+
         super(
             genericStorageService,
             pipelineService,
@@ -103,6 +113,15 @@ export class EditAssetLinkDialogComponent
             adapterService,
             filesService,
         );
+
+        this.genericStorageService = genericStorageService;
+        this.pipelineService = pipelineService;
+        this.chartService = chartService;
+        this.dashboardService = dashboardService;
+        this.dataLakeService = dataLakeService;
+        this.pipelineElementService = pipelineElementService;
+        this.adapterService = adapterService;
+        this.filesService = filesService;
     }
 
     ngOnInit(): void {
diff --git 
a/ui/src/app/assets/dialog/manage-asset-links/manage-asset-links-dialog.component.ts
 
b/ui/src/app/assets/dialog/manage-asset-links/manage-asset-links-dialog.component.ts
index fc20993324..af55946e27 100644
--- 
a/ui/src/app/assets/dialog/manage-asset-links/manage-asset-links-dialog.component.ts
+++ 
b/ui/src/app/assets/dialog/manage-asset-links/manage-asset-links-dialog.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, Input, OnInit, inject } from '@angular/core';
 import { DialogRef, SplitSectionComponent } from '@streampipes/shared-ui';
 import {
     AdapterService,
@@ -59,6 +59,17 @@ export class SpManageAssetLinksDialogComponent
     extends BaseAssetLinksDirective
     implements OnInit
 {
+    private dialogRef =
+        inject<DialogRef<SpManageAssetLinksDialogComponent>>(DialogRef);
+    protected genericStorageService: GenericStorageService;
+    protected pipelineService: PipelineService;
+    protected chartService: ChartService;
+    protected dashboardService: DashboardService;
+    protected dataLakeService: DatalakeRestService;
+    protected pipelineElementService: PipelineElementService;
+    protected adapterService: AdapterService;
+    protected filesService: FilesService;
+
     @Input()
     assetLinks: AssetLink[];
 
@@ -74,17 +85,16 @@ export class SpManageAssetLinksDialogComponent
     measureNameFunction = el => el.measureName;
     widgetNameFunction = el => el.baseAppearanceConfig.widgetTitle;
 
-    constructor(
-        private dialogRef: DialogRef<SpManageAssetLinksDialogComponent>,
-        protected genericStorageService: GenericStorageService,
-        protected pipelineService: PipelineService,
-        protected chartService: ChartService,
-        protected dashboardService: DashboardService,
-        protected dataLakeService: DatalakeRestService,
-        protected pipelineElementService: PipelineElementService,
-        protected adapterService: AdapterService,
-        protected filesService: FilesService,
-    ) {
+    constructor() {
+        const genericStorageService = inject(GenericStorageService);
+        const pipelineService = inject(PipelineService);
+        const chartService = inject(ChartService);
+        const dashboardService = inject(DashboardService);
+        const dataLakeService = inject(DatalakeRestService);
+        const pipelineElementService = inject(PipelineElementService);
+        const adapterService = inject(AdapterService);
+        const filesService = inject(FilesService);
+
         super(
             genericStorageService,
             pipelineService,
@@ -95,6 +105,15 @@ export class SpManageAssetLinksDialogComponent
             adapterService,
             filesService,
         );
+
+        this.genericStorageService = genericStorageService;
+        this.pipelineService = pipelineService;
+        this.chartService = chartService;
+        this.dashboardService = dashboardService;
+        this.dataLakeService = dataLakeService;
+        this.pipelineElementService = pipelineElementService;
+        this.adapterService = adapterService;
+        this.filesService = filesService;
     }
 
     ngOnInit(): void {

Reply via email to