Skip to content

Commit 0e65c1e

Browse files
authored
Merge pull request #2057 from bcgov/feature/ALCS-2059-qa-fixes
ALCS-2059 QA fixes
2 parents 25f34ae + de26f0a commit 0e65c1e

File tree

9 files changed

+111
-7
lines changed

9 files changed

+111
-7
lines changed

alcs-frontend/src/app/features/application/decision/decision-v2/decision-v2.component.html

+40-3
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,37 @@ <h5>Res #{{ decision.resolutionNumber }}/{{ decision.resolutionYear }}</h5>
110110
{{ decision.date | momentFormat }}
111111
<app-no-data *ngIf="decision.date === null || decision.date === undefined"></app-no-data>
112112
</div>
113-
<div>
113+
<div class="align-right">
114114
<span class="subheading2">Decision Maker: </span>
115115
{{ decision.decisionMaker?.label }}
116116
<app-no-data *ngIf="decision.decisionMaker === null || decision.decisionMaker === undefined"></app-no-data>
117117
</div>
118-
118+
</div>
119+
<div class="component-summary">
120+
<div *ngIf="decision.ceoCriterion">
121+
<span class="subheading2">CEO Criterion: </span>
122+
{{ decision.ceoCriterion?.label }}
123+
<ng-container *ngIf="decision.isTimeExtension || decision.isOther">&#32;-&#32;</ng-container>
124+
<ng-container *ngIf="decision.isTimeExtension">Time extension</ng-container>
125+
<ng-container *ngIf="decision.isTimeExtension && decision.isOther">,&#32;</ng-container>
126+
<ng-container *ngIf="decision.isOther">Other</ng-container>
127+
</div>
128+
</div>
129+
<div class="component-summary">
130+
<div *ngIf="decision.outcome?.code === 'RESC'">
131+
<span class="subheading2">Rescinded Date: </span>
132+
<ng-container *ngIf="decision.rescindedDate">{{ decision.rescindedDate | momentFormat }}</ng-container>
133+
<app-no-data *ngIf="decision.rescindedDate === null || decision.rescindedDate === undefined"></app-no-data>
134+
</div>
135+
</div>
136+
<div class="component-summary">
137+
<div *ngIf="decision.outcome?.code === 'RESC'">
138+
<span class="subheading2">Rescinded Comment: </span>
139+
{{ decision.rescindedComment }}
140+
<app-no-data *ngIf="!decision.rescindedComment"></app-no-data>
141+
</div>
142+
</div>
143+
<div class="component-summary">
119144
<div class="full-width decision-description">
120145
{{ decision.decisionDescription }}
121146
<app-no-data
@@ -126,7 +151,7 @@ <h5>Res #{{ decision.resolutionNumber }}/{{ decision.resolutionYear }}</h5>
126151
<ng-container *ngFor="let component of decision.components; let index = index">
127152
<div class="component-summary">
128153
<span class="subheading2">{{ component.applicationDecisionComponentType?.label }} </span>
129-
{{ getDate(component.uuid) ? 'approved until ' + getDate(component.uuid) : 'approved'}}
154+
{{ getDate(component.uuid) }}
130155
<span class="subheading2">Conditions: </span>
131156
<ng-container *ngFor="let condition of getConditions(component.uuid)">
132157
<app-application-type-pill class="status-pill" *ngIf="condition !== null" [type]="condition"></app-application-type-pill>
@@ -146,6 +171,18 @@ <h5>Res #{{ decision.resolutionNumber }}/{{ decision.resolutionYear }}</h5>
146171
</div>
147172
</section>
148173
</ng-container>
174+
<div class="full-width">
175+
<div class="document split" *ngFor="let document of decision.documents">
176+
<div>
177+
<a (click)="openFile(decision.uuid, document.uuid, document.fileName)">{{ document.fileName }}</a>
178+
&nbsp;({{ document.fileSize ? (document.fileSize | filesize) : '' }})
179+
</div>
180+
<button class="center" mat-button (click)="openFile(decision.uuid, document.uuid, document.fileName)">
181+
<mat-icon>file_download</mat-icon>
182+
Download
183+
</button>
184+
</div>
185+
</div>
149186
</section>
150187
<ng-container *ngIf="isSummary">
151188
<!-- Components -->

alcs-frontend/src/app/features/application/decision/decision-v2/decision-v2.component.scss

+14
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ section {
55
}
66

77
h4 {
8+
padding-top: 15px;
89
margin-bottom: 12px !important;
910
}
1011

@@ -122,6 +123,19 @@ hr {
122123
position: absolute;
123124
}
124125

126+
.document {
127+
padding: 9px 16px;
128+
border-radius: 4px;
129+
border: 1px solid colors.$grey;
130+
background: colors.$white;
131+
margin: 8px 0;
132+
}
133+
134+
.align-right {
135+
display: flex;
136+
justify-content: flex-end;
137+
}
138+
125139
:host ::ng-deep {
126140
.grid-2 {
127141
margin-top: 18px;

alcs-frontend/src/app/features/application/decision/decision-v2/decision-v2.component.ts

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ApplicationDto } from '../../../../services/application/application.dto
77
import { ApplicationDecisionComponentService } from '../../../../services/application/decision/application-decision-v2/application-decision-component/application-decision-component.service';
88
import {
99
APPLICATION_DECISION_COMPONENT_TYPE,
10+
ApplicationDecisionDocumentDto,
1011
ApplicationDecisionWithLinkedResolutionDto,
1112
CeoCriterionDto,
1213
DecisionMakerDto,
@@ -29,6 +30,7 @@ import { ConfirmationDialogService } from '../../../../shared/confirmation-dialo
2930
import { formatDateForApi } from '../../../../shared/utils/api-date-formatter';
3031
import { RevertToDraftDialogComponent } from './revert-to-draft-dialog/revert-to-draft-dialog.component';
3132
import { ApplicationConditionWithStatus, getEndDate } from '../../../../shared/utils/decision-methods';
33+
import { openFileInline } from '../../../../shared/utils/file';
3234

3335
type LoadingDecision = ApplicationDecisionWithLinkedResolutionDto & {
3436
loading: boolean;
@@ -302,6 +304,10 @@ export class DecisionV2Component implements OnInit, OnDestroy {
302304
return getEndDate(uuid, this.conditions);
303305
}
304306

307+
async openFile(decisionUuid: string, fileUuid: string, fileName: string) {
308+
await this.decisionService.downloadFile(decisionUuid, fileUuid, fileName);
309+
}
310+
305311
private getPillLabel(status: string) {
306312
switch (status) {
307313
case 'ONGOING':

alcs-frontend/src/app/features/notice-of-intent/decision/decision-v2/decision-v2.component.html

+29-2
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,27 @@ <h4>Resolution</h4>
103103
{{ decision.date ? (decision.date | momentFormat) : undefined }}
104104
<app-no-data *ngIf="decision.date === null || decision.date === undefined"></app-no-data>
105105
</div>
106-
<div>
106+
<div class="align-right">
107107
<span class="subheading2">Decision Maker: </span>
108108
{{ decision.decisionMaker }}
109109
<app-no-data *ngIf="decision.decisionMaker === null || decision.decisionMaker === undefined"></app-no-data>
110110
</div>
111111

112+
<div class="component-summary">
113+
<div *ngIf="decision.outcome?.code === 'RESC'">
114+
<span class="subheading2">Rescinded Date: </span>
115+
<ng-container *ngIf="decision.rescindedDate">{{ decision.rescindedDate | momentFormat }}</ng-container>
116+
<app-no-data *ngIf="decision.rescindedDate === null || decision.rescindedDate === undefined"></app-no-data>
117+
</div>
118+
</div>
119+
<div class="component-summary">
120+
<div *ngIf="decision.outcome?.code === 'RESC'">
121+
<span class="subheading2">Rescinded Comment: </span>
122+
{{ decision.rescindedComment }}
123+
<app-no-data *ngIf="!decision.rescindedComment"></app-no-data>
124+
</div>
125+
</div>
126+
112127
<div class="full-width decision-description">
113128
{{ decision.decisionDescription }}
114129
<app-no-data
@@ -119,7 +134,7 @@ <h4>Resolution</h4>
119134
<ng-container *ngFor="let component of decision.components; let index = index">
120135
<div class="component-summary">
121136
<span class="subheading2">{{ component.noticeOfIntentDecisionComponentType?.label }} </span>
122-
{{ getDate(component.uuid) ? 'approved until ' + getDate(component.uuid) : 'approved'}}
137+
{{ getDate(component.uuid) }}
123138
<span class="subheading2">Conditions: </span>
124139
<ng-container *ngFor="let condition of getConditions(component.uuid)">
125140
<app-application-type-pill class="status-pill" *ngIf="condition !== null" [type]="condition"></app-application-type-pill>
@@ -139,6 +154,18 @@ <h4>Resolution</h4>
139154
</div>
140155
</section>
141156
</ng-container>
157+
<div class="full-width">
158+
<div class="document split" *ngFor="let document of decision.documents">
159+
<div>
160+
<a (click)="openFile(decision.uuid, document.uuid, document.fileName)">{{ document.fileName }}</a>
161+
&nbsp;({{ document.fileSize ? (document.fileSize | filesize) : '' }})
162+
</div>
163+
<button class="center" mat-button (click)="openFile(decision.uuid, document.uuid, document.fileName)">
164+
<mat-icon>file_download</mat-icon>
165+
Download
166+
</button>
167+
</div>
168+
</div>
142169
</section>
143170
<ng-container *ngIf="isSummary">
144171
<!-- Components -->

alcs-frontend/src/app/features/notice-of-intent/decision/decision-v2/decision-v2.component.scss

+14
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ section {
55
}
66

77
h4 {
8+
padding-top: 15px;
89
margin-bottom: 12px !important;
910
}
1011

@@ -122,6 +123,19 @@ hr {
122123
position: absolute;
123124
}
124125

126+
.document {
127+
padding: 9px 16px;
128+
border-radius: 4px;
129+
border: 1px solid colors.$grey;
130+
background: colors.$white;
131+
margin: 8px 0;
132+
}
133+
134+
.align-right {
135+
display: flex;
136+
justify-content: flex-end;
137+
}
138+
125139
:host ::ng-deep {
126140
.grid-2 {
127141
margin-top: 18px;

alcs-frontend/src/app/features/notice-of-intent/decision/decision-v2/decision-v2.component.ts

+4
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,10 @@ export class DecisionV2Component implements OnInit, OnDestroy {
259259
return getEndDate(uuid, this.conditions);
260260
}
261261

262+
async openFile(decisionUuid: string, fileUuid: string, fileName: string) {
263+
await this.decisionService.downloadFile(decisionUuid, fileUuid, fileName);
264+
}
265+
262266
private getPillLabel(status: string) {
263267
switch (status) {
264268
case 'ONGOING':

alcs-frontend/src/app/services/application/decision/application-decision-v2/application-decision-v2.dto.ts

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ export interface ApplicationDecisionDocumentDto {
9292
mimeType: string;
9393
uploadedBy: string;
9494
uploadedAt: number;
95+
fileSize?: number;
9596
}
9697

9798
export interface DecisionMakerDto extends BaseCodeDto {}

alcs-frontend/src/app/services/notice-of-intent/decision-v2/notice-of-intent-decision.dto.ts

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export interface NoticeOfIntentDecisionDocumentDto {
6464
mimeType: string;
6565
uploadedBy: string;
6666
uploadedAt: number;
67+
fileSize: number | null;
6768
}
6869

6970
export interface NoticeOfIntentDecisionOutcomeCodeDto extends BaseCodeDto {}

alcs-frontend/src/app/shared/utils/decision-methods.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ export function getEndDate(uuid: string | undefined, conditions: Record<string,
1717
.map((x) => x.dates?.map((x) => x.date))
1818
: [];
1919
if (dates.length === 0) {
20-
return null;
20+
return 'approved';
2121
}
2222
const reducedDates = dates
2323
.reduce((pre, cur) => pre?.concat(cur))
2424
?.filter((x) => x !== null)
2525
.sort().reverse();
2626
const lastDate = reducedDates && reducedDates.length > 0 ? reducedDates[0] : null;
27-
return lastDate ? moment(lastDate).format('YYYY-MMM-DD') : null;
27+
return lastDate ? `approved until: ${moment(lastDate).format('YYYY-MMM-DD')}` : 'approved until: No Data';
2828
}

0 commit comments

Comments
 (0)