From 66c7fd9881f02a1a901ee0e5c79bcb18753ecd6b Mon Sep 17 00:00:00 2001 From: Thomas Lenz <Thomas.Lenz@mni.thm.de> Date: Mon, 12 Mar 2018 19:00:30 +0100 Subject: [PATCH] Implement delete-confirm-dialog using the dialog.close result to continue or abort deletion --- src/app/creator-room/creator-room.component.ts | 15 +++++++++++++-- .../room-deletion/room-deletion.component.html | 4 ++-- src/app/room-deletion/room-deletion.component.ts | 4 +++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/app/creator-room/creator-room.component.ts b/src/app/creator-room/creator-room.component.ts index c8fa21df3..3d813df37 100644 --- a/src/app/creator-room/creator-room.component.ts +++ b/src/app/creator-room/creator-room.component.ts @@ -78,9 +78,20 @@ export class CreatorRoomComponent extends RoomComponent implements OnInit { this.delete(room); } + confirmDeletion(dialogAnswer: string): void { + if (dialogAnswer === 'delete') { + this.deleteRoom(this.room); + } + } + openDeletionRoomDialog(): void { - this.dialog.open(RoomDeletionComponent, { - width: '350px' + const dialogRef = this.dialog.open(RoomDeletionComponent, { + width: '400px' }); + dialogRef.componentInstance.room = this.room; + dialogRef.afterClosed() + .subscribe(result => { + this.confirmDeletion(result); + }); } } diff --git a/src/app/room-deletion/room-deletion.component.html b/src/app/room-deletion/room-deletion.component.html index 425f44450..21b4e4703 100644 --- a/src/app/room-deletion/room-deletion.component.html +++ b/src/app/room-deletion/room-deletion.component.html @@ -1,8 +1,8 @@ <mat-card> - <mat-card-header><h3>Do you really want to delete this room?<br>This action can not be undone.</h3> + <mat-card-header><h3>Do you really want to delete room<br>' {{room.name}} ' ?<br>This action can not be undone.</h3> </mat-card-header> <mat-card-content> - <button mat-raised-button color="warn"> + <button mat-raised-button color="warn" (click)="dialogRef.close('delete')"> Delete room </button> <button mat-raised-button color="primary" (click)="onNoClick()"> diff --git a/src/app/room-deletion/room-deletion.component.ts b/src/app/room-deletion/room-deletion.component.ts index 2efbbf059..55b5a1cf1 100644 --- a/src/app/room-deletion/room-deletion.component.ts +++ b/src/app/room-deletion/room-deletion.component.ts @@ -4,6 +4,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; import { NotificationService } from '../notification.service'; import { RoomCreationComponent } from '../room-creation/room-creation.component'; import { RoomService } from '../room.service'; +import { Room } from '../room'; @Component({ selector: 'app-room-deletion', @@ -11,6 +12,7 @@ import { RoomService } from '../room.service'; styleUrls: ['./room-deletion.component.scss'] }) export class RoomDeletionComponent implements OnInit { + room: Room; constructor(private roomService: RoomService, private router: Router, @@ -22,7 +24,7 @@ export class RoomDeletionComponent implements OnInit { onNoClick(): void { this.dialogRef.close(); } + ngOnInit() { } - } -- GitLab