Skip to content

Commit 0f30483

Browse files
committed
Merge branch 'masudul-tikweb-master'
2 parents ef30602 + 23bb749 commit 0f30483

File tree

12 files changed

+1586
-1283
lines changed

12 files changed

+1586
-1283
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,44 @@
11
<h3 mat-dialog-title>{{ 'New property' | translate }}</h3>
22
<div mat-dialog-content>
3-
<div class="d-flex flex-column">
3+
<div class="d-flex flex-column" [formGroup]="newPropertyForm">
44
<mat-form-field>
55
<mat-label>{{'CVR Number' | translate}}</mat-label>
6-
<input
7-
matInput
8-
type="text"
9-
[ngModel]="newProperty.cvr"
10-
(ngModelChange)="onNameFilterChanged($event)"
11-
name="createCVRNumber"
12-
id="createCVRNumber"
13-
>
6+
<input matInput type="text" formControlName="cvr" (input)="onNameFilterChanged($event.target.value)">
147
</mat-form-field>
8+
159
<mat-form-field>
1610
<mat-label>{{'e-mail addresses' | translate}}</mat-label>
17-
<input
18-
matInput
19-
type="text"
20-
[(ngModel)]="newProperty.mainMailAddress"
21-
name="createMainMailAddress"
22-
id="createMainMailAddress"
23-
>
11+
<input matInput type="text" formControlName="mainMailAddress">
2412
</mat-form-field>
13+
2514
<mat-form-field>
2615
<mat-label>{{'CHR name' | translate}}</mat-label>
27-
<input
28-
matInput
29-
type="text"
30-
[(ngModel)]="newProperty.name"
31-
name="createPropertyName"
32-
id="createPropertyName"
33-
>
16+
<input matInput type="text" formControlName="name">
3417
</mat-form-field>
3518
<mat-form-field>
3619
<mat-label>{{'CHR Number' | translate}}</mat-label>
37-
<input
38-
matInput
39-
type="text"
40-
[(ngModel)]="newProperty.chr"
41-
(ngModelChange)="onChrNumberChanged($event)"
42-
name="createCHRNumber"
43-
id="createCHRNumber"
44-
>
20+
<input matInput type="text" formControlName="chr" (input)="onChrNumberChanged($event.target.value)">
4521
</mat-form-field>
22+
4623
<mat-form-field>
4724
<mat-label>{{'CHR address' | translate}}</mat-label>
48-
<input
49-
matInput
50-
type="text"
51-
[(ngModel)]="newProperty.address"
52-
name="createPropertyAddress"
53-
id="createPropertyAddress"
54-
>
25+
<input matInput type="text" formControlName="address">
5526
</mat-form-field>
27+
5628
<mat-slide-toggle
5729
*ngIf="authStateService.checkClaim('task_management_enable')"
5830
color="primary"
59-
id="propertyCreateWorkorderFlowEnableToggle"
60-
[checked]="newProperty.workorderEnable"
61-
[(ngModel)]="newProperty.workorderEnable">
31+
formControlName="workorderEnable">
6232
{{ "Task management" | translate }}
6333
</mat-slide-toggle>
6434
</div>
6535
</div>
36+
6637
<div mat-dialog-actions class="d-flex flex-row justify-content-end">
67-
<button
68-
mat-raised-button
69-
color="accent"
70-
(click)="onCreateProperty()"
71-
id="propertyCreateSaveBtn"
72-
[disabled]="isDisabledSaveButton"
73-
>
38+
<button mat-raised-button color="accent" (click)="onCreateProperty()" [disabled]="isDisabledSaveButton">
7439
{{'Save' | translate}}
7540
</button>
76-
<button
77-
mat-raised-button
78-
(click)="hide()"
79-
id="propertyCreateSaveCancelBtn"
80-
>
41+
<button mat-raised-button (click)="hide()">
8142
{{'Cancel' | translate}}
8243
</button>
8344
</div>
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
1-
import {
2-
Component,
3-
EventEmitter,
4-
OnDestroy,
5-
OnInit,
6-
} from '@angular/core';
7-
import {applicationLanguages, applicationLanguagesTranslated} from 'src/app/common/const';
8-
import {PropertyCreateModel} from '../../../../models';
9-
import {AuthStateService} from 'src/app/common/store';
10-
import {BackendConfigurationPnPropertiesService} from '../../../../services';
11-
import {MatDialogRef} from '@angular/material/dialog';
12-
import {AutoUnsubscribe} from 'ngx-auto-unsubscribe';
13-
import {Subscription} from 'rxjs';
1+
import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2+
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
3+
import { applicationLanguages, applicationLanguagesTranslated } from 'src/app/common/const';
4+
import { PropertyCreateModel } from '../../../../models';
5+
import { AuthStateService } from 'src/app/common/store';
6+
import { BackendConfigurationPnPropertiesService } from '../../../../services';
7+
import { MatDialogRef } from '@angular/material/dialog';
8+
import { AutoUnsubscribe } from 'ngx-auto-unsubscribe';
9+
import { Subscription } from 'rxjs';
1410

1511
@AutoUnsubscribe()
1612
@Component({
17-
selector: 'app-property-create-modal',
18-
templateUrl: './property-create-modal.component.html',
19-
styleUrls: ['./property-create-modal.component.scss'],
20-
standalone: false
13+
selector: 'app-property-create-modal',
14+
templateUrl: './property-create-modal.component.html',
15+
styleUrls: ['./property-create-modal.component.scss'],
16+
standalone: false
2117
})
2218
export class PropertyCreateModalComponent implements OnInit, OnDestroy {
2319
propertyCreate: EventEmitter<PropertyCreateModel> = new EventEmitter<PropertyCreateModel>();
20+
newPropertyForm: FormGroup;
2421
newProperty: PropertyCreateModel = new PropertyCreateModel();
2522
selectedLanguages: { id: number; checked: boolean }[] = [];
2623
propertyIsFarm: boolean = false;
@@ -33,11 +30,23 @@ export class PropertyCreateModalComponent implements OnInit, OnDestroy {
3330
}
3431

3532
constructor(
33+
private fb: FormBuilder,
3634
public authStateService: AuthStateService,
3735
private propertiesService: BackendConfigurationPnPropertiesService,
38-
public dialogRef: MatDialogRef<PropertyCreateModalComponent>,
36+
public dialogRef: MatDialogRef<PropertyCreateModalComponent>
3937
) {
4038
this.propertyIsFarm = false;
39+
40+
// Initialize reactive form
41+
this.newPropertyForm = this.fb.group({
42+
cvr: ['', Validators.required],
43+
mainMailAddress: ['', [Validators.required, Validators.email]],
44+
name: ['', Validators.required],
45+
chr: [''],
46+
address: [''],
47+
workorderEnable: [false],
48+
isFarm: [false]
49+
});
4150
}
4251

4352
ngOnDestroy(): void {
@@ -48,18 +57,18 @@ export class PropertyCreateModalComponent implements OnInit, OnDestroy {
4857

4958
hide() {
5059
this.dialogRef.close();
51-
this.newProperty = new PropertyCreateModel();
60+
this.newPropertyForm.reset();
5261
this.selectedLanguages = [];
62+
this.propertyIsFarm = false;
5363
}
5464

5565
onCreateProperty() {
56-
this.propertyCreate.emit({
57-
...this.newProperty,
58-
languagesIds: applicationLanguagesTranslated.map((x) => x.id),
59-
});
66+
const newProperty: PropertyCreateModel = {
67+
...this.newPropertyForm.value,
68+
languagesIds: applicationLanguagesTranslated.map(x => x.id)
69+
};
70+
this.propertyCreate.emit(newProperty);
6071
}
61-
62-
6372
onNameFilterChanged(number: string) {
6473
this.newProperty.cvr = number;
6574
// if (+number === 0) {
@@ -106,46 +115,20 @@ export class PropertyCreateModalComponent implements OnInit, OnDestroy {
106115
}
107116

108117
onChrNumberChanged(number: number) {
109-
if (number > 11111) {
110-
if (number.toString().length > 5) {
111-
this.getChrInformationSub$ = this.propertiesService.getChrInformation(number)
112-
.subscribe((data) => {
113-
if (data && data.success) {
114-
if (data.model.ejendom.byNavn === '' || data.model.ejendom.byNavn === null) {
115-
this.newProperty.address = data.model.ejendom.adresse + ', ' + data.model.ejendom.postDistrikt;
116-
} else {
117-
this.newProperty.address = data.model.ejendom.adresse + ', ' + data.model.ejendom.byNavn;
118-
}
119-
}
120-
});
121-
}
118+
if (number > 11111 && number.toString().length > 5) {
119+
this.getChrInformationSub$ = this.propertiesService.getChrInformation(number)
120+
.subscribe((data) => {
121+
if (data?.success) {
122+
const address = data.model.ejendom.byNavn || '';
123+
this.newPropertyForm.patchValue({
124+
address: `${data.model.ejendom.adresse}, ${address || data.model.ejendom.postDistrikt}`
125+
});
126+
}
127+
});
122128
}
123129
}
124130

125-
// addToArray(e: any, languageId: number) {
126-
// if (e.target.checked) {
127-
// this.selectedLanguages = [
128-
// ...this.selectedLanguages,
129-
// { id: languageId, checked: true },
130-
// ];
131-
// } else {
132-
// this.selectedLanguages = this.selectedLanguages.filter(
133-
// (x) => x.id !== languageId
134-
// );
135-
// }
136-
// }
137-
138-
getLanguageIsChecked(languageId: number): boolean {
139-
const language = this.selectedLanguages.find((x) => x.id === languageId);
140-
return language ? language.checked : false;
141-
}
142-
143131
get isDisabledSaveButton(): boolean {
144-
if (this.newProperty /*&& this.newProperty.languagesIds*/) {
145-
return (
146-
!this.newProperty.name/* || !this.selectedLanguages.some((x) => x.checked)*/
147-
);
148-
}
149-
return false;
132+
return this.newPropertyForm.invalid;
150133
}
151134
}
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,78 @@
11
<h3 mat-dialog-title>{{ 'Edit property' | translate }}</h3>
2+
23
<div mat-dialog-content>
3-
<div class="d-flex flex-column">
4+
<div class="d-flex flex-column" [formGroup]="editPropertyForm">
5+
46
<mat-form-field>
5-
<mat-label>{{'CVR Number' | translate}}</mat-label>
7+
<mat-label>{{ 'CVR Number' | translate }}</mat-label>
68
<input
79
matInput
810
type="text"
9-
[(ngModel)]="selectedProperty.cvr"
10-
(ngModelChange)="onNameFilterChanged($event)"
11-
name="editCVRNumber"
12-
id="editCVRNumber"
13-
>
11+
formControlName="cvr"
12+
(input)="onNameFilterChanged($event.target.value)"
13+
/>
1414
</mat-form-field>
15+
1516
<mat-form-field>
16-
<mat-label>{{'e-mail addresses' | translate}}</mat-label>
17+
<mat-label>{{ 'e-mail addresses' | translate }}</mat-label>
1718
<input
1819
matInput
1920
type="text"
20-
[(ngModel)]="selectedProperty.mainMailAddress"
21-
name="editMainMailAddress"
22-
id="editMainMailAddress"
23-
>
21+
formControlName="mainMailAddress"
22+
/>
2423
</mat-form-field>
24+
2525
<mat-form-field>
26-
<mat-label>{{'CHR name' | translate}}</mat-label>
26+
<mat-label>{{ 'CHR name' | translate }}</mat-label>
2727
<input
2828
matInput
2929
type="text"
30-
[(ngModel)]="selectedProperty.name"
31-
name="editPropertyName"
32-
id="editPropertyName"
33-
>
30+
formControlName="name"
31+
/>
3432
</mat-form-field>
3533
<mat-form-field>
3634
<mat-label>{{'CHR Number' | translate}}</mat-label>
3735
<input
3836
matInput
3937
type="text"
40-
[(ngModel)]="selectedProperty.chr"
41-
(ngModelChange)="onChrNumberChanged($event)"
42-
name="editCHRNumber"
43-
id="editCHRNumber"
44-
>
38+
formControlName="chr"
39+
(input)="onChrNumberChanged($event.target.value)"
40+
/>
4541
</mat-form-field>
42+
4643
<mat-form-field>
47-
<mat-label>{{'CHR address' | translate}}</mat-label>
44+
<mat-label>{{ 'CHR address' | translate }}</mat-label>
4845
<input
4946
matInput
5047
type="text"
51-
[(ngModel)]="selectedProperty.address"
52-
name="editPropertyAddress"
53-
id="editPropertyAddress"
54-
>
48+
formControlName="address"
49+
/>
5550
</mat-form-field>
51+
5652
<mat-slide-toggle
5753
*ngIf="selectAuthIsAdmin$ | async"
5854
color="primary"
59-
id="propertyEditWorkorderFlowEnableToggle"
60-
[checked]="selectedProperty.workorderEnable"
61-
[(ngModel)]="selectedProperty.workorderEnable">
62-
{{ "Task management" | translate }}
55+
formControlName="workorderEnable"
56+
>
57+
{{ 'Task management' | translate }}
6358
</mat-slide-toggle>
59+
6460
</div>
6561
</div>
62+
6663
<div mat-dialog-actions class="d-flex flex-row justify-content-end">
6764
<button
6865
mat-raised-button
6966
color="accent"
7067
(click)="onUpdateProperty()"
71-
id="propertyEditSaveBtn"
7268
[disabled]="isDisabledSaveButton"
7369
>
74-
{{'Save' | translate}}
70+
{{ 'Save' | translate }}
7571
</button>
7672
<button
7773
mat-raised-button
7874
(click)="hide()"
79-
id="propertyEditSaveCancelBtn"
8075
>
81-
{{'Cancel' | translate}}
76+
{{ 'Cancel' | translate }}
8277
</button>
8378
</div>

0 commit comments

Comments
 (0)