Skip to content

Commit 8c05b8b

Browse files
authored
Merge pull request #2654 from bcgov/2525-red-button-bug
2525/2618/2640 Document Fixes & Red Button Bug Fix
2 parents ad4a3fd + f55d92a commit 8c05b8b

File tree

13 files changed

+93
-46
lines changed

13 files changed

+93
-46
lines changed

alcs-frontend/src/app/features/compliance-and-enforcement/draft/draft.component.scss

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,4 @@ section.form-section {
2222
align-items: center;
2323
}
2424
.left-actions { display: flex; }
25-
.right-actions { display: flex; gap: 12px; }
26-
27-
28-
::ng-deep .cdk-overlay-container .mat-mdc-dialog-container {
29-
.button-container button[mat-flat-button]:last-child {
30-
background-color: $error-color !important;
31-
color: white !important;
32-
}
33-
}
25+
.right-actions { display: flex; gap: 12px; }

alcs-frontend/src/app/features/compliance-and-enforcement/draft/draft.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { Section } from '../../../services/compliance-and-enforcement/documents/
3333
import { ResponsiblePartiesComponent } from '../responsible-parties/responsible-parties.component';
3434
import { ResponsiblePartiesService } from '../../../services/compliance-and-enforcement/responsible-parties/responsible-parties.service';
3535
import { ConfirmationDialogService } from '../../../shared/confirmation-dialog/confirmation-dialog.service';
36+
import { ConfirmationDialogColor } from '../../../shared/confirmation-dialog/confirmation-dialog.component';
3637

3738
export const submissionDocumentOptions: DocumentUploadDialogData = {
3839
// A necessary hack to make this work without rewriting lots of code
@@ -350,6 +351,7 @@ export class DraftComponent implements OnInit, AfterViewInit, OnDestroy {
350351
body: 'Are you sure you want to discard this draft? All data will be permanently deleted.',
351352
yesButtonText: 'Discard',
352353
cancelButtonText: 'Cancel',
354+
confirmButtonColor: ConfirmationDialogColor.WARN,
353355
});
354356

355357
dialogRef.subscribe(async (confirmed: boolean) => {

alcs-frontend/src/app/features/notification/documents/documents.component.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest';
55
import { BehaviorSubject } from 'rxjs';
66
import { NotificationDetailService } from '../../../services/notification/notification-detail.service';
77
import { NotificationDocumentService } from '../../../services/notification/notification-document/notification-document.service';
8+
import { NotificationParcelService } from '../../../services/notification/notification-parcel/notification-parcel.service';
89
import { NotificationDto } from '../../../services/notification/notification.dto';
910
import { ToastService } from '../../../services/toast/toast.service';
1011

@@ -15,12 +16,14 @@ describe('NotificationDocumentsComponent', () => {
1516
let fixture: ComponentFixture<NotificationDocumentsComponent>;
1617
let mockNotificationDocumentService: DeepMocked<NotificationDocumentService>;
1718
let mockNotificationDetailService: DeepMocked<NotificationDetailService>;
19+
let mockNotificationParcelService: DeepMocked<NotificationParcelService>;
1820
let mockDialog: DeepMocked<MatDialog>;
1921
let mockToastService: DeepMocked<ToastService>;
2022

2123
beforeEach(async () => {
2224
mockNotificationDocumentService = createMock();
2325
mockNotificationDetailService = createMock();
26+
mockNotificationParcelService = createMock();
2427
mockDialog = createMock();
2528
mockToastService = createMock();
2629
mockNotificationDetailService.$notification = new BehaviorSubject<NotificationDto | undefined>(undefined);
@@ -36,6 +39,10 @@ describe('NotificationDocumentsComponent', () => {
3639
provide: NotificationDetailService,
3740
useValue: mockNotificationDetailService,
3841
},
42+
{
43+
provide: NotificationParcelService,
44+
useValue: mockNotificationParcelService,
45+
},
3946
{
4047
provide: MatDialog,
4148
useValue: mockDialog,

alcs-frontend/src/app/features/notification/documents/documents.component.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { NoticeOfIntentDocumentDto } from '../../../services/notice-of-intent/no
77
import { NotificationDetailService } from '../../../services/notification/notification-detail.service';
88
import { NotificationDocumentDto } from '../../../services/notification/notification-document/notification-document.dto';
99
import { NotificationDocumentService } from '../../../services/notification/notification-document/notification-document.service';
10+
import { NotificationParcelService } from '../../../services/notification/notification-parcel/notification-parcel.service';
1011
import { ToastService } from '../../../services/toast/toast.service';
1112
import { ConfirmationDialogService } from '../../../shared/confirmation-dialog/confirmation-dialog.service';
1213
import { DOCUMENT_SYSTEM } from '../../../shared/document/document.dto';
@@ -42,6 +43,7 @@ export class NotificationDocumentsComponent implements OnInit {
4243
constructor(
4344
private notificationDocumentService: NotificationDocumentService,
4445
private notificationDetailService: NotificationDetailService,
46+
public notificationParcelService: NotificationParcelService,
4547
private confirmationDialogService: ConfirmationDialogService,
4648
private toastService: ToastService,
4749
public dialog: MatDialog
@@ -62,6 +64,7 @@ export class NotificationDocumentsComponent implements OnInit {
6264
...{
6365
fileId: this.fileId,
6466
documentService: this.notificationDocumentService,
67+
parcelService: this.notificationParcelService,
6568
},
6669
};
6770

@@ -110,6 +113,7 @@ export class NotificationDocumentsComponent implements OnInit {
110113
fileId: this.fileId,
111114
existingDocument: element,
112115
documentService: this.notificationDocumentService,
116+
parcelService: this.notificationParcelService,
113117
},
114118
};
115119

alcs-frontend/src/app/shared/confirmation-dialog/confirmation-dialog.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
</div>
1313
<div class="button-container" mat-dialog-actions align="end">
1414
<button mat-stroked-button color="primary" [mat-dialog-close]="false">{{ data.cancelButtonText ?? 'Cancel' }}</button>
15-
<button mat-flat-button color="primary" [mat-dialog-close]="true">{{ data.yesButtonText ?? 'Yes' }}</button>
15+
<button mat-flat-button [color]="data.confirmButtonColor ?? 'primary'" [mat-dialog-close]="true">{{ data.yesButtonText ?? 'Yes' }}</button>
1616
</div>

alcs-frontend/src/app/shared/confirmation-dialog/confirmation-dialog.component.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { Component, Inject } from '@angular/core';
22
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
33

4+
export enum ConfirmationDialogColor {
5+
PRIMARY = 'primary',
6+
ACCENT = 'accent',
7+
WARN = 'warn',
8+
}
9+
410
export enum ConfirmationDialogStyle {
511
WARN = 'warn',
612
}
@@ -10,6 +16,7 @@ export interface DialogData {
1016
title?: string;
1117
yesButtonText?: string;
1218
cancelButtonText?: string;
19+
confirmButtonColor?: ConfirmationDialogColor;
1320
style?: ConfirmationDialogStyle;
1421
}
1522

@@ -20,6 +27,7 @@ export interface DialogData {
2027
})
2128
export class ConfirmationDialogComponent {
2229
ConfirmationDialogStyle = ConfirmationDialogStyle;
30+
2331

2432
constructor(
2533
public dialogRef: MatDialogRef<ConfirmationDialogComponent>,

alcs-frontend/src/app/shared/document-upload-dialog/document-upload-dialog.component.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,14 @@ <h4>{{ title }} Document</h4>
8888
</mat-select>
8989
</mat-form-field>
9090
</div>
91-
<div *ngIf="type.value !== DOCUMENT_TYPE.CERTIFICATE_OF_TITLE && type.value !== DOCUMENT_TYPE.SURVEY_PLAN && !data.fixedParcel && selectableParcels">
91+
<div
92+
*ngIf="
93+
type.value === DOCUMENT_TYPE.CERTIFICATE_OF_TITLE &&
94+
!data.fixedParcel &&
95+
selectableParcels &&
96+
selectableParcels.length > 0
97+
"
98+
>
9299
<mat-form-field appearance="outline" class="full-width">
93100
<mat-label>Associated Parcel</mat-label>
94101
<mat-select [formControl]="parcelId">

alcs-frontend/src/app/shared/document-upload-dialog/document-upload-dialog.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export interface DocumentDto {
3535

3636
export interface SelectableParcelDto {
3737
uuid: string;
38-
pid?: string;
38+
pid?: string | null;
3939
certificateOfTitleUuid?: string;
4040
}
4141

services/apps/alcs/src/alcs/compliance-and-enforcement/chronology/chronology.service.spec.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
1+
import { CONFIG_TOKEN } from '@app/common/config/config.module';
2+
import { createMock, DeepMocked } from '@golevelup/nestjs-testing';
13
import { Test, TestingModule } from '@nestjs/testing';
24
import { getRepositoryToken } from '@nestjs/typeorm';
3-
import { Repository } from 'typeorm';
4-
import { AutomapperModule } from 'automapper-nestjs';
55
import { classes } from 'automapper-classes';
6-
import { createMock, DeepMocked } from '@golevelup/nestjs-testing';
7-
import { CONFIG_TOKEN } from '@app/common/config/config.module';
6+
import { AutomapperModule } from 'automapper-nestjs';
87
import * as config from 'config';
9-
import { ComplianceAndEnforcementChronologyService } from './chronology.service';
8+
import { Repository } from 'typeorm';
9+
import { UserService } from '../../../user/user.service';
10+
import { ComplianceAndEnforcement } from '../compliance-and-enforcement.entity';
11+
import { ComplianceAndEnforcementService } from '../compliance-and-enforcement.service';
1012
import { ComplianceAndEnforcementChronologyProfile } from './chronology.automapper.profile';
1113
import { ComplianceAndEnforcementChronologyEntry } from './chronology.entity';
12-
import { ComplianceAndEnforcementService } from '../compliance-and-enforcement.service';
13-
import { ComplianceAndEnforcement } from '../compliance-and-enforcement.entity';
14+
import { ComplianceAndEnforcementChronologyService } from './chronology.service';
1415

1516
describe('ComplianceAndEnforcementChronologyService', () => {
1617
let service: ComplianceAndEnforcementChronologyService;
1718
let mockComplianceAndEnforcementChronologyRepository: DeepMocked<Repository<ComplianceAndEnforcementChronologyEntry>>;
1819
let mockComplianceAndEnforcementRepository: DeepMocked<Repository<ComplianceAndEnforcement>>;
1920
let mockComplianceAndEnforcementService: DeepMocked<ComplianceAndEnforcementService>;
21+
let mockUserService: DeepMocked<UserService>;
2022

2123
beforeEach(async () => {
2224
mockComplianceAndEnforcementChronologyRepository =
2325
createMock<Repository<ComplianceAndEnforcementChronologyEntry>>();
2426
mockComplianceAndEnforcementRepository = createMock<Repository<ComplianceAndEnforcement>>();
2527
mockComplianceAndEnforcementService = createMock<ComplianceAndEnforcementService>();
28+
mockUserService = createMock<UserService>();
2629

2730
const module: TestingModule = await Test.createTestingModule({
2831
imports: [
@@ -45,6 +48,10 @@ describe('ComplianceAndEnforcementChronologyService', () => {
4548
provide: ComplianceAndEnforcementService,
4649
useValue: mockComplianceAndEnforcementService,
4750
},
51+
{
52+
provide: UserService,
53+
useValue: mockUserService,
54+
},
4855
{
4956
provide: CONFIG_TOKEN,
5057
useValue: config,

services/apps/alcs/src/alcs/compliance-and-enforcement/compliance-and-enforcement.controller.spec.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { Test, TestingModule } from '@nestjs/testing';
2-
import { ComplianceAndEnforcementController } from './compliance-and-enforcement.controller';
3-
import { ComplianceAndEnforcementService } from './compliance-and-enforcement.service';
41
import { createMock, DeepMocked } from '@golevelup/nestjs-testing';
5-
import { mockKeyCloakProviders } from '../../../test/mocks/mockTypes';
2+
import { Test, TestingModule } from '@nestjs/testing';
3+
import { classes } from 'automapper-classes';
4+
import { AutomapperModule } from 'automapper-nestjs';
65
import { ClsService } from 'nestjs-cls';
6+
import { mockKeyCloakProviders } from '../../../test/mocks/mockTypes';
7+
import { ComplianceAndEnforcementController } from './compliance-and-enforcement.controller';
78
import { ComplianceAndEnforcementDto } from './compliance-and-enforcement.dto';
8-
import { AutomapperModule } from 'automapper-nestjs';
9-
import { classes } from 'automapper-classes';
9+
import { ComplianceAndEnforcementService } from './compliance-and-enforcement.service';
1010

1111
describe('ComplianceAndEnforcementController', () => {
1212
let controller: ComplianceAndEnforcementController;
@@ -55,6 +55,7 @@ describe('ComplianceAndEnforcementController', () => {
5555
allegedContraventionNarrative: '',
5656
allegedActivity: [],
5757
intakeNotes: '',
58+
chronologyClosedAt: 0,
5859
},
5960
{
6061
uuid: '2',
@@ -66,6 +67,7 @@ describe('ComplianceAndEnforcementController', () => {
6667
allegedContraventionNarrative: '',
6768
allegedActivity: [],
6869
intakeNotes: '',
70+
chronologyClosedAt: 0,
6971
},
7072
];
7173
mockComplianceAndEnforcementService.fetchAll.mockResolvedValue(result);
@@ -86,10 +88,11 @@ describe('ComplianceAndEnforcementController', () => {
8688
allegedContraventionNarrative: '',
8789
allegedActivity: [],
8890
intakeNotes: '',
91+
chronologyClosedAt: 0,
8992
};
90-
mockComplianceAndEnforcementService.fetchByFileNumber.mockResolvedValue(result);
93+
mockComplianceAndEnforcementService.fetchById.mockResolvedValue(result);
9194
expect(await controller.fetchByFileNumber('1', true)).toEqual(result);
92-
expect(mockComplianceAndEnforcementService.fetchByFileNumber).toHaveBeenCalledWith('1', true, false, false);
95+
expect(mockComplianceAndEnforcementService.fetchById).toHaveBeenCalledWith('1', 'fileNumber', true, false, false);
9396
});
9497
});
9598

@@ -106,6 +109,7 @@ describe('ComplianceAndEnforcementController', () => {
106109
allegedContraventionNarrative: '',
107110
allegedActivity: [],
108111
intakeNotes: '',
112+
chronologyClosedAt: 0,
109113
};
110114
mockComplianceAndEnforcementService.create.mockResolvedValue(resultDto);
111115
expect(await controller.create(createDto, true)).toEqual(resultDto);
@@ -136,6 +140,7 @@ describe('ComplianceAndEnforcementController', () => {
136140
allegedContraventionNarrative: '',
137141
allegedActivity: [],
138142
intakeNotes: '',
143+
chronologyClosedAt: 0,
139144
};
140145
mockComplianceAndEnforcementService.update.mockResolvedValue(resultDto);
141146
expect(await controller.update('1', updateDto)).toEqual(resultDto);

0 commit comments

Comments
 (0)