diff --git a/src/app/creator-room/creator-room.component.html b/src/app/creator-room/creator-room.component.html index 0641b4c87e66a5ed882e0196e503ffe6bbfbf00e..6bceb686c433cac1cf73a2a604c8f8cae22a7f6b 100644 --- a/src/app/creator-room/creator-room.component.html +++ b/src/app/creator-room/creator-room.component.html @@ -23,7 +23,7 @@ <button mat-button color="primary" matTooltip="See room comments" routerLink="/creator/room/{{room.id}}/comments"> Comments </button> - <button mat-button color="warn" matTooltip="Delete selected room"> + <button mat-button color="warn" matTooltip="Delete selected room" (click)="delete(room)"> Delete room </button> <button mat-button color="primary" matTooltip="Go back to last page" (click)="goBack()"> diff --git a/src/app/creator-room/creator-room.component.ts b/src/app/creator-room/creator-room.component.ts index ed782a4a2a2de6c1f8eec65afd88d4974117aa92..b0bd7a1775ca463427cd7ec86bea75ab9bf15334 100644 --- a/src/app/creator-room/creator-room.component.ts +++ b/src/app/creator-room/creator-room.component.ts @@ -15,8 +15,8 @@ export class CreatorRoomComponent extends RoomComponent implements OnInit { constructor(protected roomService: RoomService, protected route: ActivatedRoute, - private location: Location) { - super(roomService, route); + protected location: Location) { + super(roomService, route, location); } ngOnInit() { diff --git a/src/app/room.service.ts b/src/app/room.service.ts index 5f4fc2796b9dc7e031a00103aeca388e111c1e8a..503dbd986d0e0b628adca952362a22fc6f630554 100644 --- a/src/app/room.service.ts +++ b/src/app/room.service.ts @@ -37,4 +37,14 @@ export class RoomService extends ErrorHandlingService { catchError(this.handleError<Room>(`getRoom id=${id}`)) ); } + + deleteRoom (room: Room | number): Observable<Room> { + const id = typeof room === 'number' ? room : room.id; + const url = `${this.roomsUrl}/${id}`; + + return this.http.delete<Room>(url, httpOptions).pipe( + tap(_ => ''), + catchError(this.handleError<Room>('deleteRoom')) + ); + } } diff --git a/src/app/room/room.component.ts b/src/app/room/room.component.ts index 3aa4d45a09d2689feee42f2ff5c96de6b889f6c4..22379c707e3bb93477f7e47fda0821e4ed3a82c3 100644 --- a/src/app/room/room.component.ts +++ b/src/app/room/room.component.ts @@ -2,6 +2,8 @@ import { Component, OnInit } from '@angular/core'; import { Room } from '../room'; import { RoomService } from '../room.service'; import { ActivatedRoute } from '@angular/router'; +import { Observable } from 'rxjs/Observable'; +import { Location } from '@angular/common'; @Component({ selector: 'app-room', @@ -13,7 +15,8 @@ export class RoomComponent implements OnInit { isLoading = true; constructor(protected roomService: RoomService, - protected route: ActivatedRoute) { + protected route: ActivatedRoute, + protected location: Location) { } ngOnInit() { @@ -28,4 +31,9 @@ export class RoomComponent implements OnInit { this.isLoading = false; }); } + + delete(room: Room): void { + this.roomService.deleteRoom(room).subscribe(); + this.location.back(); + } }