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 {
