From e38dc6dfe8dc60848538411e75615c8c7d2a1686 Mon Sep 17 00:00:00 2001 From: Thomas Lenz <Thomas.Lenz@mni.thm.de> Date: Fri, 9 Mar 2018 19:14:58 +0100 Subject: [PATCH] Implement function to delete rooms --- src/app/creator-room/creator-room.component.html | 2 +- src/app/creator-room/creator-room.component.ts | 4 ++-- src/app/room.service.ts | 10 ++++++++++ src/app/room/room.component.ts | 10 +++++++++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/app/creator-room/creator-room.component.html b/src/app/creator-room/creator-room.component.html index 0641b4c87..6bceb686c 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 ed782a4a2..b0bd7a177 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 5f4fc2796..503dbd986 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 3aa4d45a0..22379c707 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(); + } } -- GitLab