diff --git a/src/app/shared/enum/modal-confirmation.ts b/src/app/shared/enum/modal-confirmation.ts index 0ce5f56c3..08c7fadef 100644 --- a/src/app/shared/enum/modal-confirmation.ts +++ b/src/app/shared/enum/modal-confirmation.ts @@ -1,5 +1,6 @@ export enum ModalConfirmationType { delete = 'delete', + deleteTeacher = 'deleteTeacher', leaveWorkshop = 'leaveWorkshop', deleteChild = 'deleteChild', leavePage = 'leavePage', @@ -11,6 +12,7 @@ export enum ModalConfirmationType { export enum ModalConfirmationTitle { delete = 'ВИДАЛИТИ ГУРТОК', deleteChild = 'ВИЛУЧИТИ ДАНІ ПРО ДИТИНУ?', + deleteTeacher = 'ВИЛУЧИТИ ДАНІ ПРО ВЧИТЕЛЯ', leaveWorkshop = 'ЗАЛИШИТИ ГУРТОК?', leavePage = 'ЗАЛИШИТИ СТОРІНКУ?', createApplication = 'ПОДАТИ ЗАЯВКУ?', @@ -21,6 +23,7 @@ export enum ModalConfirmationTitle { export enum ModalConfirmationText { delete = 'Ви впевнені, що хочете видалити гурток', deleteChild = 'Ви впевнені, що хочете вилучити дані про дитину', + deleteTeacher = 'Ви впевнені, що хочете вилучити дані про вчителя ?', leaveWorkshop = 'Ви впевнені, що хочете залишити гурток', leavePage = 'Ви впевнені, що хочете залишити сторінку?', rate = 'Поставте будь ласка оцінку цьому гуртку', diff --git a/src/app/shell/personal-cabinet/parent/create-child/child-form/child-form.component.html b/src/app/shell/personal-cabinet/parent/create-child/child-form/child-form.component.html index ffcb763de..423ea1b01 100644 --- a/src/app/shell/personal-cabinet/parent/create-child/child-form/child-form.component.html +++ b/src/app/shell/personal-cabinet/parent/create-child/child-form/child-form.component.html @@ -129,7 +129,7 @@
-
diff --git a/src/app/shell/personal-cabinet/parent/create-child/create-child.component.spec.ts b/src/app/shell/personal-cabinet/parent/create-child/create-child.component.spec.ts index a6b5e102b..8e8cc662c 100644 --- a/src/app/shell/personal-cabinet/parent/create-child/create-child.component.spec.ts +++ b/src/app/shell/personal-cabinet/parent/create-child/create-child.component.spec.ts @@ -23,7 +23,8 @@ describe('CreateChildComponent', () => { MatIconModule, RouterTestingModule, HttpClientTestingModule, - MatCheckboxModule + MatCheckboxModule, + MatDialogModule ], declarations: [ CreateChildComponent, diff --git a/src/app/shell/personal-cabinet/parent/create-child/create-child.component.ts b/src/app/shell/personal-cabinet/parent/create-child/create-child.component.ts index 527e2a55d..e215780e2 100644 --- a/src/app/shell/personal-cabinet/parent/create-child/create-child.component.ts +++ b/src/app/shell/personal-cabinet/parent/create-child/create-child.component.ts @@ -18,6 +18,9 @@ import { CreateChildren, UpdateChild } from 'src/app/shared/store/user.actions'; import { TEXT_REGEX, TEXT_WITH_DIGITS_REGEX } from 'src/app/shared/constants/regex-constants'; import { Constants } from 'src/app/shared/constants/constants'; import { CreateFormComponent } from '../../create-form/create-form.component'; +import { MatDialog } from '@angular/material/dialog'; +import { ConfirmationModalWindowComponent } from 'src/app/shared/components/confirmation-modal-window/confirmation-modal-window.component'; +import { ModalConfirmationType } from 'src/app/shared/enum/modal-confirmation'; @Component({ selector: 'app-create-child', @@ -40,7 +43,8 @@ export class CreateChildComponent extends CreateFormComponent implements OnInit, private fb: FormBuilder, store: Store, route: ActivatedRoute, - navigationBarService: NavigationBarService) { + navigationBarService: NavigationBarService, + private matDialog: MatDialog) { super(store, route, navigationBarService); } @@ -146,9 +150,26 @@ export class CreateChildComponent extends CreateFormComponent implements OnInit, * @param index */ onDeleteForm(index: number): void { - this.ChildrenFormArray.removeAt(index); + const status: string = this.ChildrenFormArray.controls[index].status; + const isTouched: boolean = this.ChildrenFormArray.controls[index].touched; + + if(status !== 'INVALID' || isTouched) { + const dialogRef = this.matDialog.open(ConfirmationModalWindowComponent, { + width: '330px', + data: { + type: ModalConfirmationType.deleteChild, + property: '' + } + }); + + dialogRef.afterClosed().subscribe((result: boolean) => { + result && this.ChildrenFormArray.removeAt(index);; + }); + } else { + this.ChildrenFormArray.removeAt(index); + } } - + /** * This method create or edit Child and distpatch CreateChild action */ diff --git a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.spec.ts b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.spec.ts index 19bf1d964..295f32fec 100644 --- a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.spec.ts +++ b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.spec.ts @@ -5,6 +5,7 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { FormGroup, ReactiveFormsModule } from '@angular/forms'; import { Component, Input } from '@angular/core'; import { MatGridListModule } from '@angular/material/grid-list'; +import { MatDialogModule } from '@angular/material/dialog'; describe('CreateTeacherComponent', () => { let component: CreateTeacherComponent; @@ -16,7 +17,8 @@ describe('CreateTeacherComponent', () => { MatFormFieldModule, ReactiveFormsModule, MatIconModule, - MatGridListModule + MatGridListModule, + MatDialogModule ], declarations: [ CreateTeacherComponent, diff --git a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.ts b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.ts index f9d00ca32..d774e7a50 100644 --- a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.ts +++ b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/create-teacher.component.ts @@ -2,6 +2,9 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; import { Teacher } from 'src/app/shared/models/teacher.model'; import { TEXT_REGEX } from 'src/app/shared/constants/regex-constants' +import { MatDialog } from '@angular/material/dialog'; +import { ConfirmationModalWindowComponent } from 'src/app/shared/components/confirmation-modal-window/confirmation-modal-window.component'; +import { ModalConfirmationType } from 'src/app/shared/enum/modal-confirmation'; @Component({ @@ -15,7 +18,7 @@ export class CreateTeacherComponent implements OnInit { @Input() teachers: Teacher[]; @Output() passTeacherFormArray = new EventEmitter(); - constructor(private fb: FormBuilder) { } + constructor(private fb: FormBuilder, private matDialog: MatDialog) { } ngOnInit(): void { if (this.teachers?.length) { @@ -56,6 +59,25 @@ export class CreateTeacherComponent implements OnInit { * @param index: number */ onDeleteForm(index: number): void { - this.TeacherFormArray.removeAt(index); + const status: string = this.TeacherFormArray.controls[index].status; + const isTouched: boolean = this.TeacherFormArray.controls[index].touched; + + if(status !== 'INVALID' || isTouched) { + const dialogRef = this.matDialog.open(ConfirmationModalWindowComponent, { + width: '330px', + data: { + type: ModalConfirmationType.deleteTeacher, + property: '' + } + }); + + dialogRef.afterClosed().subscribe((result: boolean) => { + result && this.TeacherFormArray.removeAt(index); + }); + } + else { + this.TeacherFormArray.removeAt(index); + } } + } diff --git a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.html b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.html index 9288863d3..b8a4a6ae8 100644 --- a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.html +++ b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.html @@ -70,7 +70,7 @@
-
diff --git a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.ts b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.ts index 8540435c5..1d4c44ad4 100644 --- a/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.ts +++ b/src/app/shell/personal-cabinet/provider/create-workshop/create-teacher/teacher-form/teacher-form.component.ts @@ -1,7 +1,6 @@ import { Component, Input, OnInit } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; import { Output, EventEmitter } from '@angular/core'; -import { emit } from 'process'; import { Constants } from 'src/app/shared/constants/constants'; @Component({