1 import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
2 import { FormControl, Validators } from '@angular/forms';
4 import { BsModalRef } from 'ngx-bootstrap';
5 import { Observable } from 'rxjs';
7 import { CdFormGroup } from '../../forms/cd-form-group';
8 import { SubmitButtonComponent } from '../submit-button/submit-button.component';
11 selector: 'cd-deletion-modal',
12 templateUrl: './deletion-modal.component.html',
13 styleUrls: ['./deletion-modal.component.scss']
15 export class DeletionModalComponent implements OnInit {
16 @ViewChild(SubmitButtonComponent)
17 submitButton: SubmitButtonComponent;
18 bodyTemplate: TemplateRef<any>;
19 submitActionObservable: () => Observable<any>;
20 submitAction: Function;
21 deletionForm: CdFormGroup;
22 itemDescription: 'entry';
23 actionDescription = 'delete';
25 constructor(public modalRef: BsModalRef) {}
28 this.deletionForm = new CdFormGroup({
29 confirmation: new FormControl(false, [Validators.requiredTrue])
32 if (!(this.submitAction || this.submitActionObservable)) {
33 throw new Error('No submit action defined');
38 if (this.submitActionObservable) {
39 this.submitActionObservable().subscribe(
41 this.stopLoadingSpinner.bind(this),
42 this.hideModal.bind(this)
53 stopLoadingSpinner() {
54 this.deletionForm.setErrors({ cdSubmitButton: true });