Skip to content

Commit 87c712f

Browse files
authored
Merge pull request #1176 from microting/copilot/migrate-components-to-inject-pattern
Migrate from constructor-based DI to inject() pattern
2 parents 3c16267 + 3693d18 commit 87c712f

File tree

11 files changed

+105
-107
lines changed

11 files changed

+105
-107
lines changed

eform-client/src/app/plugins/modules/workflow-pn/components/settings/settings-add-site-modal/settings-add-site-modal.component.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Component, EventEmitter, Inject, OnDestroy, OnInit} from '@angular/core';
1+
import {Component, EventEmitter, OnDestroy, OnInit, inject} from '@angular/core';
22
import {SiteNameDto} from 'src/app/common/models';
33
import {AutoUnsubscribe} from 'ngx-auto-unsubscribe';
44
import {Subscription} from 'rxjs';
@@ -7,26 +7,26 @@ import {eqBy, prop, symmetricDifferenceWith} from 'ramda';
77
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
88

99
@AutoUnsubscribe()
10-
@Component({
11-
selector: 'app-settings-add-site-modal',
12-
templateUrl: './settings-add-site-modal.component.html',
13-
styleUrls: ['./settings-add-site-modal.component.scss'],
14-
standalone: false
10+
@Component({
11+
selector: 'app-settings-add-site-modal',
12+
templateUrl: './settings-add-site-modal.component.html',
13+
styleUrls: ['./settings-add-site-modal.component.scss'],
14+
standalone: false
1515
})
1616
export class SettingsAddSiteModalComponent implements OnInit, OnDestroy {
17+
private settingsService = inject(WorkflowPnSettingsService);
18+
public dialogRef = inject(MatDialogRef<SettingsAddSiteModalComponent>);
19+
private model = inject<{ sites: SiteNameDto[], assignedSites: SiteNameDto[] }>(MAT_DIALOG_DATA);
20+
1721
siteAdded: EventEmitter<void> = new EventEmitter<void>();
1822
availableSites: any[] = [];
1923
selectedSiteId: number;
2024
addSiteSub$: Subscription;
2125

22-
constructor(
23-
private settingsService: WorkflowPnSettingsService,
24-
public dialogRef: MatDialogRef<SettingsAddSiteModalComponent>,
25-
@Inject(MAT_DIALOG_DATA) model: { sites: SiteNameDto[], assignedSites: SiteNameDto[] }
26-
) {
26+
constructor() {
2727
// Removing assigned sites from all sites by id
2828
const propEqual = eqBy(prop('siteUId'));
29-
this.availableSites = symmetricDifferenceWith(propEqual, model.sites, model.assignedSites);
29+
this.availableSites = symmetricDifferenceWith(propEqual, this.model.sites, this.model.assignedSites);
3030
}
3131

3232
ngOnInit(): void {

eform-client/src/app/plugins/modules/workflow-pn/components/settings/settings-remove-site-modal/settings-remove-site-modal.component.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,28 @@ import {
55
OnInit,
66
Output,
77
ViewChild,
8+
inject
89
} from '@angular/core';
910
import { SiteNameDto } from 'src/app/common/models';
1011
import {WorkflowPnSettingsService} from '../../../services';
1112
import { AutoUnsubscribe } from 'ngx-auto-unsubscribe';
1213
import { Subscription } from 'rxjs';
1314

1415
@AutoUnsubscribe()
15-
@Component({
16-
selector: 'app-settings-remove-site-modal',
17-
templateUrl: './settings-remove-site-modal.component.html',
18-
styleUrls: ['./settings-remove-site-modal.component.scss'],
19-
standalone: false
16+
@Component({
17+
selector: 'app-settings-remove-site-modal',
18+
templateUrl: './settings-remove-site-modal.component.html',
19+
styleUrls: ['./settings-remove-site-modal.component.scss'],
20+
standalone: false
2021
})
2122
export class SettingsRemoveSiteModalComponent implements OnInit, OnDestroy {
23+
private settingsService = inject(WorkflowPnSettingsService);
24+
2225
@ViewChild('frame', { static: false }) frame;
2326
@Output() siteRemoved: EventEmitter<void> = new EventEmitter<void>();
2427
selectedSite: SiteNameDto = new SiteNameDto();
2528
removeSub$: Subscription;
2629

27-
constructor(private settingsService: WorkflowPnSettingsService) {}
28-
2930
ngOnInit(): void {}
3031

3132
show(site: SiteNameDto) {

eform-client/src/app/plugins/modules/workflow-pn/components/settings/workflow-folders-modal/workflow-folders-modal.component.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
import {
22
Component,
33
EventEmitter,
4-
Inject,
54
OnDestroy,
65
OnInit,
6+
inject
77
} from '@angular/core';
88
import { AuthService, FoldersService} from 'src/app/common/services';
99
import { AutoUnsubscribe } from 'ngx-auto-unsubscribe';
1010
import { FolderDto } from 'src/app/common/models';
1111
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
1212

1313
@AutoUnsubscribe()
14-
@Component({
15-
selector: 'app-workflow-folders-modal',
16-
templateUrl: './workflow-folders-modal.component.html',
17-
styleUrls: ['./workflow-folders-modal.component.scss'],
18-
standalone: false
14+
@Component({
15+
selector: 'app-workflow-folders-modal',
16+
templateUrl: './workflow-folders-modal.component.html',
17+
styleUrls: ['./workflow-folders-modal.component.scss'],
18+
standalone: false
1919
})
2020
export class WorkflowFoldersModalComponent implements OnInit, OnDestroy {
21+
private folderService = inject(FoldersService);
22+
private authService = inject(AuthService);
23+
private model = inject<{folders: FolderDto[], selectedFolderId?: number}>(MAT_DIALOG_DATA);
24+
public dialogRef = inject(MatDialogRef<WorkflowFoldersModalComponent>);
25+
2126
folderSelected: EventEmitter<FolderDto> = new EventEmitter<FolderDto>();
2227
folders: FolderDto[] = [];
2328
selectedFolderId: number;
2429

25-
constructor(
26-
private folderService: FoldersService,
27-
private authService: AuthService,
28-
@Inject(MAT_DIALOG_DATA) model: {folders: FolderDto[], selectedFolderId?: number},
29-
public dialogRef: MatDialogRef<WorkflowFoldersModalComponent>,
30-
) {
31-
this.folders = model.folders;
32-
this.selectedFolderId = model.selectedFolderId;
30+
constructor() {
31+
this.folders = this.model.folders;
32+
this.selectedFolderId = this.model.selectedFolderId;
3333
}
3434

3535
ngOnInit() {

eform-client/src/app/plugins/modules/workflow-pn/components/settings/workflow-settings/workflow-settings.component.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
EventEmitter,
44
OnDestroy,
55
OnInit, ViewChild,
6+
inject
67
} from '@angular/core';
78
import {Router} from '@angular/router';
89
import {AutoUnsubscribe} from 'ngx-auto-unsubscribe';
@@ -30,6 +31,14 @@ import {DeleteModalComponent} from 'src/app/common/modules/eform-shared/componen
3031
standalone: false
3132
})
3233
export class WorkflowSettingsComponent implements OnInit, OnDestroy {
34+
private workflowPnSettingsService = inject(WorkflowPnSettingsService);
35+
private router = inject(Router);
36+
private foldersService = inject(FoldersService);
37+
private sitesService = inject(SitesService);
38+
public dialog = inject(MatDialog);
39+
private overlay = inject(Overlay);
40+
private translateService = inject(TranslateService);
41+
3342
@ViewChild('addSiteModal') addSiteModal: SettingsAddSiteModalComponent;
3443
typeahead = new EventEmitter<string>();
3544
settingsModel: WorkflowSettingsModel = new WorkflowSettingsModel();
@@ -68,16 +77,8 @@ export class WorkflowSettingsComponent implements OnInit, OnDestroy {
6877
},
6978
];
7079
siteSelectedSub$: Subscription;
71-
constructor(
72-
private workflowPnSettingsService: WorkflowPnSettingsService,
73-
private router: Router,
74-
private foldersService: FoldersService,
75-
private sitesService: SitesService,
76-
public dialog: MatDialog,
77-
private overlay: Overlay,
78-
private translateService: TranslateService,
79-
) {
80-
}
80+
81+
8182

8283
ngOnInit() {
8384
this.getSettings();

eform-client/src/app/plugins/modules/workflow-pn/components/workflow-cases/store/workflow-cases-state.service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Injectable} from '@angular/core';
1+
import {Injectable, inject} from '@angular/core';
22
import {tap} from 'rxjs';
33
import {updateTableSort} from 'src/app/common/helpers';
44
import {
@@ -18,15 +18,15 @@ import {
1818

1919
@Injectable({providedIn: 'root'})
2020
export class WorkflowCasesStateService {
21+
private store = inject(Store);
22+
private service = inject(WorkflowPnCasesService);
23+
2124
private selectWorkflowCasesPagination$ = this.store.select(selectWorkflowCasesPagination);
2225
private selectWorkflowCasesFilters$ = this.store.select(selectWorkflowCasesFilters);
2326
currentPagination: CommonPaginationState;
2427
currentFilters: WorkflowCasesFiltration;
2528

26-
constructor(
27-
private store: Store,
28-
private service: WorkflowPnCasesService,
29-
) {
29+
constructor() {
3030
this.selectWorkflowCasesPagination$.subscribe((x) => this.currentPagination = x);
3131
this.selectWorkflowCasesFilters$.subscribe((x) => this.currentFilters = x);
3232
}

eform-client/src/app/plugins/modules/workflow-pn/components/workflow-cases/workflow-case-delete/workflow-case-delete.component.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {
22
Component,
33
EventEmitter,
4-
Inject,
54
OnDestroy,
65
OnInit,
6+
inject
77
} from '@angular/core';
88
import {AutoUnsubscribe} from 'ngx-auto-unsubscribe';
99
import {Subscription} from 'rxjs';
@@ -19,16 +19,13 @@ import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
1919
standalone: false
2020
})
2121
export class WorkflowCaseDeleteComponent implements OnInit, OnDestroy {
22+
private workflowCaseService = inject(WorkflowPnCasesService);
23+
public dialogRef = inject(MatDialogRef<WorkflowCaseDeleteComponent>);
24+
public workflowCaseModel = inject<WorkflowCaseModel>(MAT_DIALOG_DATA);
25+
2226
workflowCaseDeleted: EventEmitter<void> = new EventEmitter<void>();
2327
deleteWorkflowCase$: Subscription;
2428

25-
constructor(
26-
private workflowCaseService: WorkflowPnCasesService,
27-
public dialogRef: MatDialogRef<WorkflowCaseDeleteComponent>,
28-
@Inject(MAT_DIALOG_DATA) public workflowCaseModel: WorkflowCaseModel = new WorkflowCaseModel(),
29-
) {
30-
}
31-
3229
ngOnInit() {
3330
}
3431

eform-client/src/app/plugins/modules/workflow-pn/components/workflow-cases/workflow-case-edit/workflow-case-edit.component.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Component, OnDestroy, OnInit} from '@angular/core';
1+
import {Component, OnDestroy, OnInit, inject} from '@angular/core';
22
import {
33
CommonDictionaryTextModel,
44
SiteNameDto,
@@ -26,6 +26,14 @@ import {MatDatepickerInputEvent} from '@angular/material/datepicker';
2626
standalone: false
2727
})
2828
export class WorkflowCaseEditComponent implements OnInit, OnDestroy {
29+
private activateRoute = inject(ActivatedRoute);
30+
private router = inject(Router);
31+
private authStore = inject(Store);
32+
private workflowPnCasesService = inject(WorkflowPnCasesService);
33+
private formBuilder = inject(FormBuilder);
34+
private sitesService = inject(SitesService);
35+
private entitySelectService = inject(EntitySelectService);
36+
2937
deviceUsersList: SiteNameDto[] = [];
3038
places: Array<CommonDictionaryTextModel> = [];
3139
incidentTypes: Array<CommonDictionaryTextModel> = [];
@@ -49,21 +57,25 @@ export class WorkflowCaseEditComponent implements OnInit, OnDestroy {
4957
{id: 4, text: 'Annulleret'}, // Canceled
5058
];
5159

52-
constructor(
53-
private activateRoute: ActivatedRoute,
54-
private router: Router,
55-
private authStore: Store,
56-
private workflowPnCasesService: WorkflowPnCasesService,
57-
private formBuilder: FormBuilder,
58-
private sitesService: SitesService,
59-
private entitySelectService: EntitySelectService
60-
) {
60+
61+
62+
ngOnInit() {
6163
this.activatedRouteSub$ = this.activateRoute.params.subscribe((params) => {
6264
this.id = +params['id'];
6365
});
6466
this.activateRoute.queryParams.subscribe((params) => {
6567
this.reverseRoute = params['reverseRoute'];
6668
});
69+
70+
this.dataForm = this.formBuilder.group({
71+
deadline: ['', Validators.required],
72+
dateOfIncident: ['', Validators.required],
73+
});
74+
this.getSites();
75+
this.loadCase();
76+
}
77+
78+
ngOnDestroy() {
6779
}
6880

6981
goBack() {
@@ -122,18 +134,6 @@ export class WorkflowCaseEditComponent implements OnInit, OnDestroy {
122134
});
123135
}
124136

125-
ngOnInit() {
126-
this.dataForm = this.formBuilder.group({
127-
deadline: ['', Validators.required],
128-
dateOfIncident: ['', Validators.required],
129-
});
130-
this.getSites();
131-
this.loadCase();
132-
}
133-
134-
ngOnDestroy() {
135-
}
136-
137137
loadCase() {
138138
if (!this.id || this.id === 0) {
139139
return;

eform-client/src/app/plugins/modules/workflow-pn/components/workflow-cases/workflow-cases-page/workflow-cases-page.component.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Component, OnDestroy, OnInit} from '@angular/core';
1+
import {Component, OnDestroy, OnInit, inject} from '@angular/core';
22
import {AutoUnsubscribe} from 'ngx-auto-unsubscribe';
33
import {Subject, Subscription, zip} from 'rxjs';
44
import {debounceTime} from 'rxjs/operators';
@@ -33,6 +33,15 @@ import {
3333
standalone: false
3434
})
3535
export class WorkflowCasesPageComponent implements OnInit, OnDestroy {
36+
private store = inject(Store);
37+
public workflowCasesStateService = inject(WorkflowCasesStateService);
38+
private service = inject(WorkflowPnCasesService);
39+
private translateService = inject(TranslateService);
40+
private dialog = inject(MatDialog);
41+
private overlay = inject(Overlay);
42+
private iconRegistry = inject(MatIconRegistry);
43+
private sanitizer = inject(DomSanitizer);
44+
3645
workflowCasesModel: Paged<WorkflowCaseModel> = new Paged<WorkflowCaseModel>();
3746
searchSubject = new Subject();
3847
statuses = [
@@ -96,25 +105,16 @@ export class WorkflowCasesPageComponent implements OnInit, OnDestroy {
96105
public selectWorkflowCasesFiltersName$ = this.store.select(selectWorkflowCasesFiltersName);
97106
public selectWorkflowCasesPagination$ = this.store.select(selectWorkflowCasesPagination);
98107

99-
constructor(
100-
private store: Store,
101-
public workflowCasesStateService: WorkflowCasesStateService,
102-
private service: WorkflowPnCasesService,
103-
private translateService: TranslateService,
104-
private dialog: MatDialog,
105-
private overlay: Overlay,
106-
iconRegistry: MatIconRegistry,
107-
sanitizer: DomSanitizer,
108-
) {
108+
109+
110+
ngOnInit() {
109111
this.searchSubject.pipe(debounceTime(500)).subscribe((val) => {
110112
this.workflowCasesStateService.updateNameFilter(val.toString());
111113
this.getWorkflowCases();
112114
});
113-
iconRegistry.addSvgIconLiteral('file-word', sanitizer.bypassSecurityTrustHtml(WordIcon));
114-
iconRegistry.addSvgIconLiteral('file-pdf', sanitizer.bypassSecurityTrustHtml(PdfIcon));
115-
}
115+
this.iconRegistry.addSvgIconLiteral('file-word', this.sanitizer.bypassSecurityTrustHtml(WordIcon));
116+
this.iconRegistry.addSvgIconLiteral('file-pdf', this.sanitizer.bypassSecurityTrustHtml(PdfIcon));
116117

117-
ngOnInit() {
118118
this.getWorkflowCases();
119119
}
120120

0 commit comments

Comments
 (0)