From f288a89615dfe08a824cc4d4d181ac86320ad68a Mon Sep 17 00:00:00 2001
From: Heinrich Marks <heinrich.marks@mni.thm.de>
Date: Sun, 11 Mar 2018 11:50:44 +0100
Subject: [PATCH] Link content creation & list to their buttons in room view

---
 src/app/app-routing.module.ts                 | 21 ++++++++++++++++
 .../content-creation.component.scss           |  2 +-
 .../content-detail.component.ts               | 10 ++++----
 src/app/content.ts                            |  2 +-
 .../creator-room/creator-room.component.html  |  4 ++--
 src/app/in-memory-data.service.ts             | 24 ++++++++++++++++++-
 6 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 43f6b8ba0..d725407d1 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -10,6 +10,9 @@ import { UserRole } from './user-roles.enum';
 import { ParticipantRoomComponent } from './participant-room/participant-room.component';
 import { CreatorRoomComponent } from './creator-room/creator-room.component';
 import { CommentListComponent } from './comment-list/comment-list.component';
+import { ContentListComponent } from './content-list/content-list.component';
+import { ContentCreationComponent } from './content-creation/content-creation.component';
+import { ContentDetailComponent } from './content-detail/content-detail.component';
 
 const routes: Routes = [
   { path: '', redirectTo: '/home', pathMatch: 'full' },
@@ -42,6 +45,24 @@ const routes: Routes = [
     canActivate: [AuthenticationGuard],
     data: { roles: [UserRole.CREATOR] }
   },
+  {
+    path: 'creator/room/:roomId/content-creation',
+    component: ContentCreationComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/content-list',
+    component: ContentListComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/content-list/:id',
+    component: ContentDetailComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
   { path: 'participant/room/:roomId/create-comment',
     component: CreateCommentComponent,
     canActivate: [AuthenticationGuard],
diff --git a/src/app/content-creation/content-creation.component.scss b/src/app/content-creation/content-creation.component.scss
index b8fb3a626..4f268d8cd 100644
--- a/src/app/content-creation/content-creation.component.scss
+++ b/src/app/content-creation/content-creation.component.scss
@@ -1,4 +1,4 @@
 .content-card {
     max-width: 400px;
-    margin-bottom: 5%;
+    margin: 5%;
 }
diff --git a/src/app/content-detail/content-detail.component.ts b/src/app/content-detail/content-detail.component.ts
index 3ddb53556..c44eb9311 100644
--- a/src/app/content-detail/content-detail.component.ts
+++ b/src/app/content-detail/content-detail.component.ts
@@ -4,15 +4,15 @@ import { ContentService } from '../content.service';
 import { ActivatedRoute } from '@angular/router';
 
 @Component({
-  selector: 'app-content',
-  templateUrl: './content.component.html',
-  styleUrls: ['./content.component.scss']
+  selector: 'app-content-detail',
+  templateUrl: './content-detail.component.html',
+  styleUrls: ['./content-detail.component.scss']
 })
 export class ContentDetailComponent implements OnInit {
   content: Content = null;
 
   constructor(
-    private contentCreationService: ContentService,
+    private contentService: ContentService,
     private route: ActivatedRoute
   ) { }
 
@@ -23,7 +23,7 @@ export class ContentDetailComponent implements OnInit {
   }
 
   getContent(id: string): void {
-    this.contentCreationService.getContent(id)
+    this.contentService.getContent(id)
       .subscribe(content => this.content = content);
   }
 }
diff --git a/src/app/content.ts b/src/app/content.ts
index f8598abc8..869a3c9e4 100644
--- a/src/app/content.ts
+++ b/src/app/content.ts
@@ -1,4 +1,4 @@
-enum Format {
+export enum Format {
   CHOICE,
   BINARY,
   SCALE,
diff --git a/src/app/creator-room/creator-room.component.html b/src/app/creator-room/creator-room.component.html
index 9c82c8674..5fb5684df 100644
--- a/src/app/creator-room/creator-room.component.html
+++ b/src/app/creator-room/creator-room.component.html
@@ -19,10 +19,10 @@
       </mat-card-content>
       <mat-divider></mat-divider>
       <mat-card-actions>
-        <button mat-button color="primary" matTooltip="Create new content">
+        <button mat-button color="primary" matTooltip="Create new content" routerLink="/creator/room/{{room.id}}/content-creation">
           Create content
         </button>
-        <button mat-button color="primary" matTooltip="See contents">
+        <button mat-button color="primary" matTooltip="See contents" routerLink="/creator/room/{{room.id}}/content-list">
           Contents
         </button>
         <button mat-button color="primary" matTooltip="See room comments"
diff --git a/src/app/in-memory-data.service.ts b/src/app/in-memory-data.service.ts
index c91bb3c24..45201f214 100644
--- a/src/app/in-memory-data.service.ts
+++ b/src/app/in-memory-data.service.ts
@@ -1,4 +1,5 @@
 import { InMemoryDbService } from 'angular-in-memory-web-api';
+import { Format } from './content';
 
 export class InMemoryDataService implements InMemoryDbService {
   /**
@@ -80,6 +81,27 @@ export class InMemoryDataService implements InMemoryDbService {
         creationTimestamp: new Date(Date.now()),
       }
     ];
-    return { rooms, comments };
+
+    const contents = [
+      {
+        id: '11',
+        revision: '1',
+        roomId: '1',
+        subject: 'bla',
+        body: 'testcontent alpha beta',
+        round: 1,
+        format: Format.TEXT
+      },
+      {
+        id: '12',
+        revision: '2',
+        roomId: '3',
+        subject: 'blub',
+        body: 'testcontenttttt',
+        round: 5,
+        format: Format.TEXT
+      }
+    ];
+    return { rooms, comments, contents };
   }
 }
-- 
GitLab