From ee2fa54cb5484bf258745c9fab4c4d299f081b42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20Mau=C3=9F?= <lukas.mauss@mni.thm.de>
Date: Mon, 29 Oct 2018 12:39:33 +0100
Subject: [PATCH] Add routing module for creator components and fix routes

---
 src/app/app-routing.module.ts                 | 89 +------------------
 .../markdown-help-dialog.component.ts         |  2 +-
 .../creator/creator-routing.module.ts         | 71 +++++++++++++++
 src/app/components/creator/creator.module.ts  | 34 +++++++
 .../participant/participant.module.ts         | 22 +++++
 .../shared/shared-routing.module.ts           |  5 --
 6 files changed, 131 insertions(+), 92 deletions(-)
 create mode 100644 src/app/components/creator/creator-routing.module.ts
 create mode 100644 src/app/components/creator/creator.module.ts
 create mode 100644 src/app/components/participant/participant.module.ts

diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index cf02f258f..9cbc879be 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,21 +1,8 @@
 import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
-import { PageNotFoundComponent } from './components/shared/page-not-found/page-not-found.component';
 import { LoginPageComponent } from './components/shared/login-page/login-page.component';
-import { HomeCreatorPageComponent } from './components/creator/home-creator-page/home-creator-page.component';
-import { CommentCreatePageComponent } from './components/creator/comment-create-page/comment-create-page.component';
-import { HomeParticipantPageComponent } from './components/participant/home-participant-page/home-participant-page.component';
-import { AuthenticationGuard } from './guards/authentication.guard';
-import { UserRole } from './models/user-roles.enum';
-import { RoomParticipantPageComponent } from './components/participant/room-participant-page/room-participant-page.component';
-import { RoomCreatorPageComponent } from './components/creator/room-creator-page/room-creator-page.component';
-import { CommentListComponent } from './components/shared/comment-list/comment-list.component';
-import { ContentListComponent } from './components/shared/content-list/content-list.component';
-import { StatisticsComponent } from './components/shared/statistics/statistics.component';
-import { ContentCreatePageComponent } from './components/creator/content-create-page/content-create-page.component';
-import { ContentCarouselPageComponent } from './components/shared/content-carousel-page/content-carousel-page.component';
-import { FeedbackBarometerPageComponent } from './components/shared/feedback-barometer-page/feedback-barometer-page.component';
 import { FooterImprintComponent } from './components/shared/footer-imprint/footer-imprint.component';
+import { PageNotFoundComponent } from './components/shared/page-not-found/page-not-found.component';
 
 const routes: Routes = [
   {
@@ -29,81 +16,11 @@ const routes: Routes = [
   },
   {
     path: 'creator',
-    component: HomeCreatorPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId',
-    component: RoomCreatorPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId/create-content',
-    component: ContentCreatePageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId/statistics',
-    component: StatisticsComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId/comments',
-    component: CommentListComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId/feedback-barometer',
-    component: FeedbackBarometerPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId/contents',
-    component: ContentCarouselPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
-  },
-  {
-    path: 'creator/room/:roomId/:contentGroup',
-    component: ContentListComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.CREATOR] }
+    loadChildren: './components/creator/creator.module#CreatorModule'
   },
   {
     path: 'participant',
-    component: HomeParticipantPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.PARTICIPANT] }
-  },
-  {
-    path: 'participant/room/:roomId',
-    component: RoomParticipantPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.PARTICIPANT] }
-  },
-  {
-    path: 'participant/room/:roomId/create-comment',
-    component: CommentCreatePageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.PARTICIPANT] }
-  },
-  {
-    path: 'participant/room/:roomId/feedback-barometer',
-    component: FeedbackBarometerPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.PARTICIPANT] }
-  },
-  {
-    path: 'participant/room/:roomId/:contentGroup',
-    component: ContentCarouselPageComponent,
-    canActivate: [AuthenticationGuard],
-    data: { roles: [UserRole.PARTICIPANT] }
+    loadChildren: './components/participant/participant.module#ParticipantModule'
   },
   {
     path: 'imprint',
diff --git a/src/app/components/creator/_dialogs/markdown-help-dialog/markdown-help-dialog.component.ts b/src/app/components/creator/_dialogs/markdown-help-dialog/markdown-help-dialog.component.ts
index f2e2cc50e..34048ab1f 100644
--- a/src/app/components/creator/_dialogs/markdown-help-dialog/markdown-help-dialog.component.ts
+++ b/src/app/components/creator/_dialogs/markdown-help-dialog/markdown-help-dialog.component.ts
@@ -1,5 +1,5 @@
 import { Component } from '@angular/core';
-import { GenericDataDialogComponent } from '../generic-data-dialog/generic-data-dialog.component';
+import { GenericDataDialogComponent } from '../../../shared/_dialogs/generic-data-dialog/generic-data-dialog.component';
 import { MatDialogRef } from '@angular/material';
 
 @Component({
diff --git a/src/app/components/creator/creator-routing.module.ts b/src/app/components/creator/creator-routing.module.ts
new file mode 100644
index 000000000..201c5e007
--- /dev/null
+++ b/src/app/components/creator/creator-routing.module.ts
@@ -0,0 +1,71 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { HomeCreatorPageComponent } from './home-creator-page/home-creator-page.component';
+import { AuthenticationGuard } from '../../guards/authentication.guard';
+import { UserRole } from '../../models/user-roles.enum';
+import { RoomCreatorPageComponent } from './room-creator-page/room-creator-page.component';
+import { ContentCreatePageComponent } from './content-create-page/content-create-page.component';
+import { StatisticsComponent } from '../shared/statistics/statistics.component';
+import { CommentListComponent } from '../shared/comment-list/comment-list.component';
+import { FeedbackBarometerPageComponent } from '../shared/feedback-barometer-page/feedback-barometer-page.component';
+import { ContentCarouselPageComponent } from '../shared/content-carousel-page/content-carousel-page.component';
+import { ContentListComponent } from '../shared/content-list/content-list.component';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: HomeCreatorPageComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId',
+    component: RoomCreatorPageComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/create-content',
+    component: ContentCreatePageComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/statistics',
+    component: StatisticsComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/comments',
+    component: CommentListComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/feedback-barometer',
+    component: FeedbackBarometerPageComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/contents',
+    component: ContentCarouselPageComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  },
+  {
+    path: 'creator/room/:roomId/:contentGroup',
+    component: ContentListComponent,
+    canActivate: [AuthenticationGuard],
+    data: { roles: [UserRole.CREATOR] }
+  }
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule]
+})
+
+export class CreatorRoutingModule {
+}
diff --git a/src/app/components/creator/creator.module.ts b/src/app/components/creator/creator.module.ts
new file mode 100644
index 000000000..a6513a0d3
--- /dev/null
+++ b/src/app/components/creator/creator.module.ts
@@ -0,0 +1,34 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { CreatorRoutingModule } from './creator-routing.module';
+import { AnswersListComponent } from './answers-list/answers-list.component';
+import { CommentCreatePageComponent } from './comment-create-page/comment-create-page.component';
+import { ContentChoiceCreatorComponent } from './content-choice-creator/content-choice-creator.component';
+import { ContentCreatePageComponent } from './content-create-page/content-create-page.component';
+import { ContentLikertCreatorComponent } from './content-likert-creator/content-likert-creator.component';
+import { ContentTextCreatorComponent } from './content-text-creator/content-text-creator.component';
+import { ContentYesNoCreatorComponent } from './content-yes-no-creator/content-yes-no-creator.component';
+import { HomeCreatorPageComponent } from './home-creator-page/home-creator-page.component';
+import { MarkdownToolbarComponent } from './markdown-toolbar/markdown-toolbar.component';
+import { RoomCreatorPageComponent } from './room-creator-page/room-creator-page.component';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    CreatorRoutingModule
+  ],
+  declarations: [
+    AnswersListComponent,
+    CommentCreatePageComponent,
+    ContentChoiceCreatorComponent,
+    ContentCreatePageComponent,
+    ContentLikertCreatorComponent,
+    ContentTextCreatorComponent,
+    ContentYesNoCreatorComponent,
+    HomeCreatorPageComponent,
+    MarkdownToolbarComponent,
+    RoomCreatorPageComponent
+  ]
+})
+export class CreatorModule {
+}
diff --git a/src/app/components/participant/participant.module.ts b/src/app/components/participant/participant.module.ts
new file mode 100644
index 000000000..1d328100c
--- /dev/null
+++ b/src/app/components/participant/participant.module.ts
@@ -0,0 +1,22 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { ParticipantRoutingModule } from './participant-routing.module';
+import { ContentChoiceParticipantComponent } from './content-choice-participant/content-choice-participant.component';
+import { ContentTextParticipantComponent } from './content-text-participant/content-text-participant.component';
+import { HomeParticipantPageComponent } from './home-participant-page/home-participant-page.component';
+import { RoomParticipantPageComponent } from './room-participant-page/room-participant-page.component';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    ParticipantRoutingModule
+  ],
+  declarations: [
+    ContentChoiceParticipantComponent,
+    ContentTextParticipantComponent,
+    HomeParticipantPageComponent,
+    RoomParticipantPageComponent
+  ]
+})
+export class ParticipantModule{
+}
diff --git a/src/app/components/shared/shared-routing.module.ts b/src/app/components/shared/shared-routing.module.ts
index 2d37a131d..1be1c5980 100644
--- a/src/app/components/shared/shared-routing.module.ts
+++ b/src/app/components/shared/shared-routing.module.ts
@@ -6,11 +6,6 @@ import { PageNotFoundComponent } from './page-not-found/page-not-found.component
 
 
 const routes: Routes = [
-  {
-    path: '',
-    redirectTo: '/home',
-    pathMatch: 'full'
-  },
   {
     path: 'home',
     component: LoginPageComponent
-- 
GitLab