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(

Reply via email to