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 3dd8545ec7b0c21034c78db7b5a253d85d3b2d43 Author: Philipp Zehnder <[email protected]> AuthorDate: Tue Mar 24 10:01:33 2026 +0100 migrate pipeline details UI to inject() --- .../actions/pipeline-actions.component.ts | 17 +++++++++++------ .../pipeline-element-details-row.component.ts | 6 +++--- .../status/pipeline-status.component.ts | 6 ++++-- .../preview/pipeline-preview.component.ts | 5 +++-- .../pipeline-code-dialog.component.ts | 11 +++++------ .../pipeline-logs-dialog.component.ts | 7 ++++--- .../pipeline-details/pipeline-details.component.ts | 22 ++++++++++------------ 7 files changed, 40 insertions(+), 34 deletions(-) diff --git a/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/actions/pipeline-actions.component.ts b/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/actions/pipeline-actions.component.ts index d29b8b8449..de64d3c9b5 100644 --- a/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/actions/pipeline-actions.component.ts +++ b/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/actions/pipeline-actions.component.ts @@ -16,7 +16,14 @@ * */ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { + Component, + EventEmitter, + Input, + OnInit, + Output, + inject, +} from '@angular/core'; import { PipelineOperationsService } from '../../../../pipelines/services/pipeline-operations.service'; import { Pipeline } from '@streampipes/platform-services'; import { Router } from '@angular/router'; @@ -44,6 +51,9 @@ import { TranslatePipe } from '@ngx-translate/core'; ], }) export class PipelineActionsComponent implements OnInit { + pipelineOperationsService = inject(PipelineOperationsService); + private router = inject(Router); + starting = false; stopping = false; @@ -56,11 +66,6 @@ export class PipelineActionsComponent implements OnInit { @Output() reloadPipelineEmitter: EventEmitter<boolean> = new EventEmitter<boolean>(); - constructor( - public pipelineOperationsService: PipelineOperationsService, - private router: Router, - ) {} - ngOnInit() { this.toggleRunningOperation = this.toggleRunningOperation.bind(this); this.switchToPipelineView = this.switchToPipelineView.bind(this); diff --git a/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/pipeline-element-details-row/pipeline-element-details-row.component.ts b/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/pipeline-element-details-row/pipeline-element-details-row.component.ts index cf1add2b5c..e1343e09aa 100644 --- a/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/pipeline-element-details-row/pipeline-element-details-row.component.ts +++ b/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/pipeline-element-details-row/pipeline-element-details-row.component.ts @@ -16,7 +16,7 @@ * */ -import { Component, Input } from '@angular/core'; +import { Component, Input, inject } from '@angular/core'; import { PipelineElementUnion } from '../../../../editor/model/editor.model'; import { SpLogEntry } from '@streampipes/platform-services'; import { DialogService, PanelType } from '@streampipes/shared-ui'; @@ -47,6 +47,8 @@ import { TranslatePipe } from '@ngx-translate/core'; ], }) export class PipelineElementDetailsRowComponent { + private dialogService = inject(DialogService); + @Input() pipelineElement: PipelineElementUnion; @@ -56,8 +58,6 @@ export class PipelineElementDetailsRowComponent { @Input() logInfo: SpLogEntry[] = []; - constructor(private dialogService: DialogService) {} - openLogsDialog(): void { this.dialogService.open(PipelineLogsDialogComponent, { panelType: PanelType.SLIDE_IN_PANEL, diff --git a/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/status/pipeline-status.component.ts b/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/status/pipeline-status.component.ts index 40b913278b..5d807237cf 100644 --- a/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/status/pipeline-status.component.ts +++ b/ui/src/app/pipeline-details/components/pipeline-details-expansion-panel/status/pipeline-status.component.ts @@ -16,7 +16,7 @@ * */ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input, OnInit, inject } from '@angular/core'; import { Pipeline, PipelineService, @@ -45,12 +45,14 @@ import { TranslatePipe } from '@ngx-translate/core'; ], }) export class PipelineStatusComponent implements OnInit { + private pipelineService = inject(PipelineService); + pipelineStatus: PipelineStatusMessage[]; @Input() pipeline: Pipeline; - constructor(private pipelineService: PipelineService) { + constructor() { this.pipelineStatus = []; } diff --git a/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts b/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts index 7bd623b356..cfdc40ee34 100644 --- a/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts +++ b/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts @@ -24,6 +24,7 @@ import { OnInit, Output, ViewChild, + inject, } from '@angular/core'; import { Pipeline, @@ -46,6 +47,8 @@ import { FlexDirective } from '@ngbracket/ngx-layout/flex'; imports: [FlexDirective, PipelineAssemblyDrawingAreaComponent], }) export class PipelinePreviewComponent implements OnInit, AfterViewInit { + private jsplumbService = inject(JsplumbService); + @Input() metricsInfo: Record<string, SpMetricsEntry>; @@ -66,8 +69,6 @@ export class PipelinePreviewComponent implements OnInit, AfterViewInit { jsPlumbBridge: JsplumbBridge; - constructor(private jsplumbService: JsplumbService) {} - ngAfterViewInit() { this.jsPlumbBridge = this.jsplumbService.getBridge(true); } diff --git a/ui/src/app/pipeline-details/dialogs/pipeline-code/pipeline-code-dialog.component.ts b/ui/src/app/pipeline-details/dialogs/pipeline-code/pipeline-code-dialog.component.ts index 227c53222c..0ad906e31e 100644 --- a/ui/src/app/pipeline-details/dialogs/pipeline-code/pipeline-code-dialog.component.ts +++ b/ui/src/app/pipeline-details/dialogs/pipeline-code/pipeline-code-dialog.component.ts @@ -16,7 +16,7 @@ * */ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input, OnInit, inject } from '@angular/core'; import { CompactPipeline, Pipeline, @@ -42,16 +42,15 @@ import { TranslatePipe } from '@ngx-translate/core'; ], }) export class PipelineCodeDialogComponent implements OnInit { + private pipelineService = inject(PipelineService); + private dialogRef = + inject<DialogRef<PipelineCodeDialogComponent>>(DialogRef); + @Input() pipeline: Pipeline; compactPipeline: CompactPipeline; - constructor( - private pipelineService: PipelineService, - private dialogRef: DialogRef<PipelineCodeDialogComponent>, - ) {} - ngOnInit() { this.pipelineService .convertToCompactPipeline(this.pipeline) diff --git a/ui/src/app/pipeline-details/dialogs/pipeline-logs/pipeline-logs-dialog.component.ts b/ui/src/app/pipeline-details/dialogs/pipeline-logs/pipeline-logs-dialog.component.ts index acf350a299..5a7cb11d92 100644 --- a/ui/src/app/pipeline-details/dialogs/pipeline-logs/pipeline-logs-dialog.component.ts +++ b/ui/src/app/pipeline-details/dialogs/pipeline-logs/pipeline-logs-dialog.component.ts @@ -16,7 +16,7 @@ * */ -import { Component, Input } from '@angular/core'; +import { Component, Input, inject } from '@angular/core'; import { SpLogEntry } from '@streampipes/platform-services'; import { DialogRef } from '@streampipes/shared-ui'; import { FlexDirective, LayoutDirective } from '@ngbracket/ngx-layout/flex'; @@ -39,11 +39,12 @@ import { TranslatePipe } from '@ngx-translate/core'; ], }) export class PipelineLogsDialogComponent { + private dialogRef = + inject<DialogRef<PipelineLogsDialogComponent>>(DialogRef); + @Input() logInfo: SpLogEntry[] = []; - constructor(private dialogRef: DialogRef<PipelineLogsDialogComponent>) {} - close() { this.dialogRef.close(); } diff --git a/ui/src/app/pipeline-details/pipeline-details.component.ts b/ui/src/app/pipeline-details/pipeline-details.component.ts index 2419c8e5bb..8a0e573f2f 100644 --- a/ui/src/app/pipeline-details/pipeline-details.component.ts +++ b/ui/src/app/pipeline-details/pipeline-details.component.ts @@ -16,7 +16,7 @@ * */ -import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { AuthService } from '../services/auth.service'; import { @@ -69,6 +69,15 @@ import { TranslatePipe } from '@ngx-translate/core'; ], }) export class SpPipelineDetailsComponent implements OnInit, OnDestroy { + private activatedRoute = inject(ActivatedRoute); + private pipelineService = inject(PipelineService); + private pipelineCanvasService = inject(PipelineCanvasMetadataService); + private authService = inject(AuthService); + private currentUserService = inject(CurrentUserService); + private breadcrumbService = inject(SpBreadcrumbService); + private pipelineMonitoringService = inject(PipelineMonitoringService); + private dialogService = inject(DialogService); + hasPipelineWritePrivileges = false; currentPipelineId: string; @@ -90,17 +99,6 @@ export class SpPipelineDetailsComponent implements OnInit, OnDestroy { @ViewChild('pipelinePreviewComponent') pipelinePreviewComponent: PipelinePreviewComponent; - constructor( - private activatedRoute: ActivatedRoute, - private pipelineService: PipelineService, - private pipelineCanvasService: PipelineCanvasMetadataService, - private authService: AuthService, - private currentUserService: CurrentUserService, - private breadcrumbService: SpBreadcrumbService, - private pipelineMonitoringService: PipelineMonitoringService, - private dialogService: DialogService, - ) {} - ngOnInit(): void { this.currentUser$ = this.currentUserService.user$.subscribe(user => { this.hasPipelineWritePrivileges = this.authService.hasRole(
