Skip to content

Commit 69d0e4e

Browse files
authored
Merge pull request #1909 from bcgov/feature/ALCS-2149-2
Fixes for improved NOI structure text
2 parents 7aefa74 + a5f192a commit 69d0e4e

File tree

13 files changed

+143
-31
lines changed

13 files changed

+143
-31
lines changed

alcs-frontend/src/app/features/notice-of-intent/applicant-info/notice-of-intent-details/additional-information/additional-information.component.html

+21-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</div>
99

1010
<ng-container *ngIf="_noiSubmission.soilIsRemovingSoilForNewStructure">
11-
<div class="full-width subheading2">The total floor area (m<sup>2</sup>) of the proposed structure(s)</div>
11+
<div class="full-width subheading2">The total floor area (m<sup>2</sup>) for each of the proposed structure(s)</div>
1212
<div class="full-width structure-table">
1313
<div class="grid-1 subheading2">#</div>
1414
<div class="grid-2 subheading2">Type</div>
@@ -18,7 +18,7 @@
1818
{{ i + 1 }}
1919
</div>
2020
<div class="grid-2">
21-
{{ structure.type }}
21+
{{ mapStructureTypeValueToLabel(structure.type) }}
2222
<app-no-data *ngIf="!structure.type"></app-no-data>
2323
</div>
2424
<div class="grid-3">
@@ -39,31 +39,46 @@
3939
</ng-container>
4040

4141
<ng-container *ngIf="isSoilStructureResidentialUseReasonVisible">
42-
<div class="subheading2 grid-1">Describe how the structure is necessary for residential use</div>
42+
<div class="subheading2 grid-1">
43+
Describe why <ng-container *ngIf="_noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
44+
<ng-container *ngIf="_noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
45+
<ng-container *ngIf="_noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
46+
for the residential structure(s)
47+
</div>
4348
<div class="grid-double">
4449
{{ _noiSubmission.soilStructureResidentialUseReason }}
4550
<app-no-data *ngIf="!_noiSubmission.soilStructureResidentialUseReason"></app-no-data>
4651
</div>
4752
</ng-container>
4853

4954
<ng-container *ngIf="isSoilAgriParcelActivityVisible">
50-
<div class="subheading2 grid-1">Describe the current agricultural activity on the parcel(s)</div>
55+
<div class="subheading2 grid-1">Describe the current or proposed agricultural activity on the parcel(s)</div>
5156
<div class="grid-double">
5257
{{ _noiSubmission.soilAgriParcelActivity }}
5358
<app-no-data *ngIf="!_noiSubmission.soilAgriParcelActivity"></app-no-data>
5459
</div>
5560
</ng-container>
5661

5762
<ng-container *ngIf="isSoilStructureResidentialAccessoryUseReasonVisible">
58-
<div class="subheading2 grid-1">Describe the intended use of the residential accessory structure</div>
63+
<div class="subheading2 grid-1">
64+
Describe the intended use of the residential accessory structure(s) and why
65+
<ng-container *ngIf="_noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
66+
<ng-container *ngIf="_noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
67+
<ng-container *ngIf="_noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
68+
</div>
5969
<div class="grid-double">
6070
{{ _noiSubmission.soilStructureResidentialAccessoryUseReason }}
6171
<app-no-data *ngIf="!_noiSubmission.soilStructureResidentialAccessoryUseReason"></app-no-data>
6272
</div>
6373
</ng-container>
6474

6575
<ng-container *ngIf="isSoilOtherStructureUseReasonVisible">
66-
<div class="subheading2 grid-1">Describe the intended use of the 'Other' structure</div>
76+
<div class="subheading2 grid-1">
77+
Describe the intended use of the 'Other' structure(s) and why
78+
<ng-container *ngIf="_noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
79+
<ng-container *ngIf="_noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
80+
<ng-container *ngIf="_noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
81+
</div>
6782
<div class="grid-double">
6883
{{ _noiSubmission.soilStructureOtherUseReason }}
6984
<app-no-data *ngIf="!_noiSubmission.soilStructureOtherUseReason"></app-no-data>

alcs-frontend/src/app/features/notice-of-intent/applicant-info/notice-of-intent-details/additional-information/additional-information.component.ts

+16
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ import {
99
} from '../../../../../services/notice-of-intent/notice-of-intent.dto';
1010
import { DOCUMENT_TYPE } from '../../../../../shared/document/document.dto';
1111

12+
const NOI_STRUCTURE_TYPE_LABEL_MAP: Record<STRUCTURE_TYPES, string> = {
13+
[STRUCTURE_TYPES.FARM_STRUCTURE]: STRUCTURE_TYPES.FARM_STRUCTURE,
14+
[STRUCTURE_TYPES.PRINCIPAL_RESIDENCE]: 'Principal Residence',
15+
[STRUCTURE_TYPES.ADDITIONAL_RESIDENCE]: 'Additional Residence',
16+
[STRUCTURE_TYPES.ACCESSORY_STRUCTURE]: 'Residential Accessory Structure',
17+
[STRUCTURE_TYPES.OTHER]: STRUCTURE_TYPES.OTHER,
18+
};
19+
1220
@Component({
1321
selector: 'app-additional-information',
1422
templateUrl: './additional-information.component.html',
@@ -82,4 +90,12 @@ export class AdditionalInformationComponent {
8290
break;
8391
}
8492
}
93+
94+
mapStructureTypeValueToLabel(value: STRUCTURE_TYPES | null): string | null {
95+
if (value === null) {
96+
return null;
97+
}
98+
99+
return NOI_STRUCTURE_TYPE_LABEL_MAP[value];
100+
}
85101
}
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const FILE_NAME_TRUNCATE_LENGTH = 30;
1+
export const FILE_NAME_TRUNCATE_LENGTH = 30;

portal-frontend/src/app/features/notice-of-intents/edit-submission/additional-information/additional-information.component.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ <h2>Additional Proposal Information</h2>
8383
[formControlName]="element.id + '-type'"
8484
(valueChange)="onChangeStructureType(element.id, $event)"
8585
>
86-
<mat-option *ngFor="let type of STRUCTURE_TYPES" [value]="type">
87-
{{ type }}
86+
<mat-option *ngFor="let type of STRUCTURE_TYPE_OPTIONS" [value]="type.value">
87+
{{ type.label }}
8888
</mat-option>
8989
</mat-select>
9090
</mat-form-field>

portal-frontend/src/app/features/notice-of-intents/edit-submission/additional-information/additional-information.component.ts

+32-9
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ import { SoilRemovalConfirmationDialogComponent } from './soil-removal-confirmat
2525

2626
export enum STRUCTURE_TYPES {
2727
FARM_STRUCTURE = 'Farm Structure',
28-
PRINCIPAL_RESIDENCE = 'Principal Residence',
29-
ADDITIONAL_RESIDENCE = 'Additional Residence',
30-
ACCESSORY_STRUCTURE = 'Residential Accessory Structure',
28+
PRINCIPAL_RESIDENCE = 'Residential - Principal Residence',
29+
ADDITIONAL_RESIDENCE = 'Residential - Additional Residence',
30+
ACCESSORY_STRUCTURE = 'Residential - Accessory Structure',
3131
OTHER_STRUCTURE = 'Other Structure',
3232
}
3333

@@ -39,6 +39,14 @@ export const RESIDENTIAL_STRUCTURE_TYPES = [
3939
STRUCTURE_TYPES.PRINCIPAL_RESIDENCE,
4040
];
4141

42+
export const NOI_STRUCTURE_TYPE_LABEL_MAP: Record<STRUCTURE_TYPES, string> = {
43+
[STRUCTURE_TYPES.FARM_STRUCTURE]: STRUCTURE_TYPES.FARM_STRUCTURE,
44+
[STRUCTURE_TYPES.PRINCIPAL_RESIDENCE]: 'Principal Residence',
45+
[STRUCTURE_TYPES.ADDITIONAL_RESIDENCE]: 'Additional Residence',
46+
[STRUCTURE_TYPES.ACCESSORY_STRUCTURE]: 'Residential Accessory Structure',
47+
[STRUCTURE_TYPES.OTHER_STRUCTURE]: STRUCTURE_TYPES.OTHER_STRUCTURE,
48+
};
49+
4250
@Component({
4351
selector: 'app-additional-information',
4452
templateUrl: './additional-information.component.html',
@@ -48,12 +56,27 @@ export class AdditionalInformationComponent extends FilesStepComponent implement
4856
currentStep = EditNoiSteps.ExtraInfo;
4957

5058
DOCUMENT = DOCUMENT_TYPE;
51-
STRUCTURE_TYPES = [
52-
STRUCTURE_TYPES.FARM_STRUCTURE,
53-
STRUCTURE_TYPES.PRINCIPAL_RESIDENCE,
54-
STRUCTURE_TYPES.ADDITIONAL_RESIDENCE,
55-
STRUCTURE_TYPES.ACCESSORY_STRUCTURE,
56-
STRUCTURE_TYPES.OTHER_STRUCTURE,
59+
STRUCTURE_TYPE_OPTIONS = [
60+
{
61+
label: STRUCTURE_TYPES.FARM_STRUCTURE,
62+
value: STRUCTURE_TYPES.FARM_STRUCTURE,
63+
},
64+
{
65+
label: NOI_STRUCTURE_TYPE_LABEL_MAP[STRUCTURE_TYPES.PRINCIPAL_RESIDENCE],
66+
value: STRUCTURE_TYPES.PRINCIPAL_RESIDENCE,
67+
},
68+
{
69+
label: NOI_STRUCTURE_TYPE_LABEL_MAP[STRUCTURE_TYPES.ADDITIONAL_RESIDENCE],
70+
value: STRUCTURE_TYPES.ADDITIONAL_RESIDENCE,
71+
},
72+
{
73+
label: NOI_STRUCTURE_TYPE_LABEL_MAP[STRUCTURE_TYPES.ACCESSORY_STRUCTURE],
74+
value: STRUCTURE_TYPES.ACCESSORY_STRUCTURE,
75+
},
76+
{
77+
label: STRUCTURE_TYPES.OTHER_STRUCTURE,
78+
value: STRUCTURE_TYPES.OTHER_STRUCTURE,
79+
},
5780
];
5881

5982
private submissionUuid = '';

portal-frontend/src/app/features/notice-of-intents/notice-of-intent-details/additional-information/additional-information.component.html

+21-6
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</div>
1414

1515
<ng-container *ngIf="_noiSubmission.soilIsRemovingSoilForNewStructure">
16-
<div class="full-width subheading2">The total floor area (m<sup>2</sup>) of the proposed structure(s)</div>
16+
<div class="full-width subheading2">The total floor area (m<sup>2</sup>) for each of the proposed structure(s)</div>
1717
<div class="full-width structure-table">
1818
<div class="grid-1 subheading2">#</div>
1919
<div class="grid-2 subheading2">Type</div>
@@ -23,7 +23,7 @@
2323
{{ i + 1 }}
2424
</div>
2525
<div class="grid-2">
26-
{{ structure.type }}
26+
{{ mapStructureTypeValueToLabel(structure.type) }}
2727
<app-no-data [showRequired]="showErrors" *ngIf="!structure.type"></app-no-data>
2828
</div>
2929
<div class="grid-3">
@@ -45,7 +45,12 @@
4545
</ng-container>
4646

4747
<ng-container *ngIf="isSoilStructureResidentialUseReasonVisible">
48-
<div class="subheading2 grid-1">Describe how the structure is necessary for residential use</div>
48+
<div class="subheading2 grid-1">
49+
Describe why <ng-container *ngIf="_noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
50+
<ng-container *ngIf="_noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
51+
<ng-container *ngIf="_noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
52+
for the residential structure(s)
53+
</div>
4954
<div class="grid-double">
5055
{{ _noiSubmission.soilStructureResidentialUseReason }}
5156
<app-no-data
@@ -56,15 +61,20 @@
5661
</ng-container>
5762

5863
<ng-container *ngIf="isSoilAgriParcelActivityVisible">
59-
<div class="subheading2 grid-1">Describe the current agricultural activity on the parcel(s)</div>
64+
<div class="subheading2 grid-1">Describe the current or proposed agricultural activity on the parcel(s)</div>
6065
<div class="grid-double">
6166
{{ _noiSubmission.soilAgriParcelActivity }}
6267
<app-no-data [showRequired]="showErrors" *ngIf="!_noiSubmission.soilAgriParcelActivity"></app-no-data>
6368
</div>
6469
</ng-container>
6570

6671
<ng-container *ngIf="isSoilStructureResidentialAccessoryUseReasonVisible">
67-
<div class="subheading2 grid-1">Describe the intended use of the residential accessory structure</div>
72+
<div class="subheading2 grid-1">
73+
Describe the intended use of the residential accessory structure(s) and why
74+
<ng-container *ngIf="_noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
75+
<ng-container *ngIf="_noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
76+
<ng-container *ngIf="_noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
77+
</div>
6878
<div class="grid-double">
6979
{{ _noiSubmission.soilStructureResidentialAccessoryUseReason }}
7080
<app-no-data
@@ -75,7 +85,12 @@
7585
</ng-container>
7686

7787
<ng-container *ngIf="isSoilOtherStructureVisible">
78-
<div class="subheading2 grid-1">Describe the intended use of the 'Other' structure</div>
88+
<div class="subheading2 grid-1">
89+
Describe the intended use of the 'Other' structure(s) and why
90+
<ng-container *ngIf="_noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
91+
<ng-container *ngIf="_noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
92+
<ng-container *ngIf="_noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
93+
</div>
7994
<div class="grid-double">
8095
{{ _noiSubmission.soilStructureOtherUseReason }}
8196
<app-no-data [showRequired]="showErrors" *ngIf="!_noiSubmission.soilStructureOtherUseReason"></app-no-data>

portal-frontend/src/app/features/notice-of-intents/notice-of-intent-details/additional-information/additional-information.component.ts

+9
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { DOCUMENT_TYPE } from '../../../../shared/dto/document.dto';
77
import {
88
RESIDENTIAL_STRUCTURE_TYPES,
99
STRUCTURE_TYPES,
10+
NOI_STRUCTURE_TYPE_LABEL_MAP,
1011
} from '../../edit-submission/additional-information/additional-information.component';
1112
import { openFileInline } from '../../../../shared/utils/file';
1213

@@ -106,4 +107,12 @@ export class AdditionalInformationComponent {
106107
openFileInline(res.url, file.fileName);
107108
}
108109
}
110+
111+
mapStructureTypeValueToLabel(value: STRUCTURE_TYPES | null): string | null {
112+
if (value === null) {
113+
return null;
114+
}
115+
116+
return NOI_STRUCTURE_TYPE_LABEL_MAP[value];
117+
}
109118
}

portal-frontend/src/app/features/public/notice-of-intent/submission/additional-information/additional-information.component.html

+21-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</div>
1111

1212
<ng-container *ngIf="noiSubmission.soilIsRemovingSoilForNewStructure">
13-
<div class="full-width subheading2">The total floor area (m<sup>2</sup>) of the proposed structure(s)</div>
13+
<div class="full-width subheading2">The total floor area (m<sup>2</sup>) for each of the proposed structure(s)</div>
1414
<div class="full-width structure-table">
1515
<div class="grid-1 subheading2">#</div>
1616
<div class="grid-2 subheading2">Type</div>
@@ -20,7 +20,7 @@
2020
{{ i + 1 }}
2121
</div>
2222
<div class="grid-2">
23-
{{ structure.type }}
23+
{{ mapStructureTypeValueToLabel(structure.type) }}
2424
<app-no-data *ngIf="!structure.type"></app-no-data>
2525
</div>
2626
<div class="grid-3">
@@ -42,31 +42,46 @@
4242
</ng-container>
4343

4444
<ng-container *ngIf="isSoilStructureResidentialUseReasonVisible">
45-
<div class="subheading2 grid-1">Describe how the structure is necessary for residential use</div>
45+
<div class="subheading2 grid-1">
46+
Describe why <ng-container *ngIf="noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
47+
<ng-container *ngIf="noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
48+
<ng-container *ngIf="noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
49+
for the residential structure(s)
50+
</div>
4651
<div class="grid-double">
4752
{{ noiSubmission.soilStructureResidentialUseReason }}
4853
<app-no-data *ngIf="!noiSubmission.soilStructureResidentialUseReason"></app-no-data>
4954
</div>
5055
</ng-container>
5156

5257
<ng-container *ngIf="isSoilAgriParcelActivityVisible">
53-
<div class="subheading2 grid-1">Describe the current agricultural activity on the parcel(s)</div>
58+
<div class="subheading2 grid-1">Describe the current or proposed agricultural activity on the parcel(s)</div>
5459
<div class="grid-double">
5560
{{ noiSubmission.soilAgriParcelActivity }}
5661
<app-no-data *ngIf="!noiSubmission.soilAgriParcelActivity"></app-no-data>
5762
</div>
5863
</ng-container>
5964

6065
<ng-container *ngIf="isSoilStructureResidentialAccessoryUseReasonVisible">
61-
<div class="subheading2 grid-1">Describe the intended use of the residential accessory structure</div>
66+
<div class="subheading2 grid-1">
67+
Describe the intended use of the residential accessory structure(s) and why
68+
<ng-container *ngIf="noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
69+
<ng-container *ngIf="noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
70+
<ng-container *ngIf="noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
71+
</div>
6272
<div class="grid-double">
6373
{{ noiSubmission.soilStructureResidentialAccessoryUseReason }}
6474
<app-no-data *ngIf="!noiSubmission.soilStructureResidentialAccessoryUseReason"></app-no-data>
6575
</div>
6676
</ng-container>
6777

6878
<ng-container *ngIf="isSoilOtherStructureVisible">
69-
<div class="subheading2 grid-1">Describe the intended use of the 'Other' structure</div>
79+
<div class="subheading2 grid-1">
80+
Describe the intended use of the 'Other' structure(s) and why
81+
<ng-container *ngIf="noiSubmission.typeCode === 'POFO'">placing fill</ng-container>
82+
<ng-container *ngIf="noiSubmission.typeCode === 'ROSO'">removing soil</ng-container>
83+
<ng-container *ngIf="noiSubmission.typeCode === 'PFRS'">placing fill/removing soil</ng-container> is required
84+
</div>
7085
<div class="grid-double">
7186
{{ noiSubmission.soilStructureOtherUseReason }}
7287
<app-no-data *ngIf="!noiSubmission.soilStructureOtherUseReason"></app-no-data>

portal-frontend/src/app/features/public/notice-of-intent/submission/additional-information/additional-information.component.ts

+9
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { openFileInline } from '../../../../../shared/utils/file';
77
import {
88
RESIDENTIAL_STRUCTURE_TYPES,
99
STRUCTURE_TYPES,
10+
NOI_STRUCTURE_TYPE_LABEL_MAP,
1011
} from '../../../../notice-of-intents/edit-submission/additional-information/additional-information.component';
1112

1213
@Component({
@@ -88,4 +89,12 @@ export class AdditionalInformationComponent implements OnInit {
8889
openFileInline(res.url, file.fileName);
8990
}
9091
}
92+
93+
mapStructureTypeValueToLabel(value: STRUCTURE_TYPES | null): string | null {
94+
if (value === null) {
95+
return null;
96+
}
97+
98+
return NOI_STRUCTURE_TYPE_LABEL_MAP[value];
99+
}
91100
}

services/apps/alcs/src/portal/pdf-generation/generate-noi-submission-document.service.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,17 @@ export class GenerateNoiSubmissionDocumentService {
381381
soilProposedStructures: submission.soilProposedStructures.map(
382382
(structure, index) => ({
383383
area: structure.area ?? NO_DATA,
384-
type: structure.type ?? NO_DATA,
384+
type:
385+
{
386+
'Fram Structure': 'Fram Structure',
387+
'Residential - Principal Residence': 'Principal Residence',
388+
'Residential - Additional Residence': 'Additional Residence',
389+
'Residential - Accessory Structure':
390+
'Residential Accessory Structure',
391+
'Other Structure': 'Other Structure',
392+
}[structure.type ?? ''] ??
393+
structure.type ??
394+
NO_DATA,
385395
index: index + 1,
386396
}),
387397
),
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)