Skip to content

Commit 61c7ead

Browse files
Copilotrenemadsen
andcommitted
Migrate all components from constructor-based DI to inject() pattern
Co-authored-by: renemadsen <[email protected]>
1 parent f4467a8 commit 61c7ead

File tree

11 files changed

+88
-156
lines changed

11 files changed

+88
-156
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: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,29 @@ 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-
29-
ngOnInit(): void {}
30+
3031

3132
show(site: SiteNameDto) {
3233
this.selectedSite = site;

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: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,8 @@ export class WorkflowSettingsComponent implements OnInit, OnDestroy {
6868
},
6969
];
7070
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-
}
71+
72+
8173

8274
ngOnInit() {
8375
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: 6 additions & 10 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,18 +19,14 @@ 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-
32-
ngOnInit() {
33-
}
29+
3430

3531
deleteWorkflowCase() {
3632
this.deleteWorkflowCase$ = this.workflowCaseService

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

Lines changed: 12 additions & 68 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,80 +57,16 @@ 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
});
67-
}
68-
69-
goBack() {
70-
this.router
71-
.navigate([
72-
'/plugins/workflow-pn/cases'
73-
])
74-
.then();
75-
}
76-
77-
getStatusText(id: number) {
78-
if (this.statuses.length > 0) {
79-
if (!id) {
80-
return '';
81-
}
82-
return this.statuses.find(x => x.id === id).text;
83-
} else {
84-
return '';
85-
}
86-
}
8769

88-
getSolverName(id: number) {
89-
if (this.deviceUsersList.length > 0) {
90-
if (id === undefined) {
91-
return '';
92-
}
93-
const result = this.deviceUsersList.find(x => x.id === id);
94-
if (result === undefined) {
95-
return '';
96-
} else {
97-
return result.siteName;
98-
}
99-
} else {
100-
return '';
101-
}
102-
}
103-
104-
updateWorkflowCase() {
105-
this.workflowCaseModel = {
106-
...this.workflowCaseModel,
107-
deadline: this.workflowCaseModel.deadline,
108-
dateOfIncident: this.workflowCaseModel.dateOfIncident
109-
// deadline: format(this.dataForm.value.deadline, 'yyyy-MM-dd'),
110-
// dateOfIncident: format(this.dataForm.value.dateOfIncident, 'yyyy-MM-dd'),
111-
};
112-
this.updateSub$ = this.workflowPnCasesService
113-
.updateCase(this.workflowCaseModel)
114-
.subscribe((data) => {
115-
if (data && data.success) {
116-
this.router
117-
.navigate([
118-
'/plugins/workflow-pn/cases'
119-
])
120-
.then();
121-
}
122-
});
123-
}
124-
125-
ngOnInit() {
12670
this.dataForm = this.formBuilder.group({
12771
deadline: ['', Validators.required],
12872
dateOfIncident: ['', Validators.required],

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)