From 90bcb58f5e88caefa1552b324962e5f8a4691aa2 Mon Sep 17 00:00:00 2001
From: Heinrich Marks <heinrich.marks@mni.thm.de>
Date: Wed, 28 Mar 2018 16:39:10 +0200
Subject: [PATCH] Add Footer Component and first draft

---
 src/app/app.component.html                    |  1 +
 src/app/app.module.ts                         |  4 +-
 .../fragments/footer/footer.component.html    | 46 +++++++++++++++++++
 .../fragments/footer/footer.component.scss    | 29 ++++++++++++
 .../fragments/footer/footer.component.spec.ts | 25 ++++++++++
 .../fragments/footer/footer.component.ts      | 37 +++++++++++++++
 6 files changed, 141 insertions(+), 1 deletion(-)
 create mode 100644 src/app/components/fragments/footer/footer.component.html
 create mode 100644 src/app/components/fragments/footer/footer.component.scss
 create mode 100644 src/app/components/fragments/footer/footer.component.spec.ts
 create mode 100644 src/app/components/fragments/footer/footer.component.ts

diff --git a/src/app/app.component.html b/src/app/app.component.html
index 49832c88f..b86ef90e2 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -3,4 +3,5 @@
   <div fxFlex class="app-component">
     <router-outlet></router-outlet>
   </div>
+  <app-footer></app-footer>
 </div>
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index cdb2b87b8..3f0f8f92b 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -78,6 +78,7 @@ import { ContentTextParticipantComponent } from './components/fragments/content-
 import { ContentTextCreatorComponent } from './components/fragments/content-text-creator/content-text-creator.component';
 import { AuthenticationInterceptor } from './interceptors/authentication.interceptor';
 import { HeaderComponent } from './components/fragments/header/header.component';
+import { FooterComponent } from './components/fragments/footer/footer.component';
 
 @NgModule({
   declarations: [
@@ -110,7 +111,8 @@ import { HeaderComponent } from './components/fragments/header/header.component'
     ContentTextParticipantComponent,
     StatisticsComponent,
     ContentTextCreatorComponent,
-    HeaderComponent
+    HeaderComponent,
+    FooterComponent
   ],
   entryComponents: [
     RegisterComponent,
diff --git a/src/app/components/fragments/footer/footer.component.html b/src/app/components/fragments/footer/footer.component.html
new file mode 100644
index 000000000..e277068a9
--- /dev/null
+++ b/src/app/components/fragments/footer/footer.component.html
@@ -0,0 +1,46 @@
+<footer>
+
+  <div class="flex-container">
+    <div>
+      <h5>Box1</h5>
+      <ul>
+        <li>
+          <a target="_blank" href="https://www.thm.de/site/impressum.html">Impressum</a>
+        </li>
+        <li>test</li>
+        <li>test</li>
+      </ul>
+    </div>
+
+    <div>
+      <h5>Box2</h5>
+      <ul>
+        <li>test2</li>
+        <li>test2</li>
+        <li>test2</li>
+      </ul>
+    </div>
+
+    <!--
+    <div>
+      <h5>MatBox</h5>
+      <mat-list role="list">
+        <mat-list-item role="listitem">Item 1</mat-list-item>
+        <mat-list-item role="listitem">Item 2</mat-list-item>
+        <mat-list-item role="listitem">Item 3</mat-list-item>
+      </mat-list>
+    </div>
+  -->
+  </div>
+
+
+
+
+  <div class="bottomline">
+    <span class="example-fill-remaining-space"></span>
+    <a>© Copyright SWTP WS17/18</a>
+    <span class="example-fill-remaining-space"></span>
+  </div>
+
+</footer>
+<!-- (click)="goToHomepage()" -->
\ No newline at end of file
diff --git a/src/app/components/fragments/footer/footer.component.scss b/src/app/components/fragments/footer/footer.component.scss
new file mode 100644
index 000000000..3ff1ae3a4
--- /dev/null
+++ b/src/app/components/fragments/footer/footer.component.scss
@@ -0,0 +1,29 @@
+footer {
+  background-color: rgb(223, 223, 223);
+  text-align: center;
+}
+
+ul {
+    list-style: none
+}
+
+.bottomline {
+    background-color: rgb(201, 201, 201);
+    color: white;
+    font-size: 12px;
+    padding: 0.5%
+}
+
+.flex-container {
+    display: flex;
+    flex-direction: row;
+    flex-wrap: wrap;
+    justify-content: space-around;;
+}
+
+.example-fill-remaining-space {
+    /* This fills the remaining space, by using flexbox. 
+       Every toolbar row uses a flexbox row layout. */
+    flex: 1 1 auto;
+}
+
diff --git a/src/app/components/fragments/footer/footer.component.spec.ts b/src/app/components/fragments/footer/footer.component.spec.ts
new file mode 100644
index 000000000..2ca6c4543
--- /dev/null
+++ b/src/app/components/fragments/footer/footer.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { FooterComponent } from './footer.component';
+
+describe('FooterComponent', () => {
+  let component: FooterComponent;
+  let fixture: ComponentFixture<FooterComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ FooterComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(FooterComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/components/fragments/footer/footer.component.ts b/src/app/components/fragments/footer/footer.component.ts
new file mode 100644
index 000000000..f5f086564
--- /dev/null
+++ b/src/app/components/fragments/footer/footer.component.ts
@@ -0,0 +1,37 @@
+import { Component, OnInit } from '@angular/core';
+import { UserRole } from '../../../models/user-roles.enum';
+import { Router } from '@angular/router';
+import { User } from '../../../models/user';
+
+@Component({
+  selector: 'app-footer',
+  templateUrl: './footer.component.html',
+  styleUrls: ['./footer.component.scss']
+})
+export class FooterComponent implements OnInit {
+  user: User;
+
+  constructor(
+    public router: Router
+  ) { }
+
+  ngOnInit() {
+  }
+
+  goToHomepage() {
+    const role: UserRole = this.user !== undefined ? this.user.role : undefined;
+    let route: string;
+
+    switch (role) {
+      case UserRole.PARTICIPANT:
+        route = '/participant';
+        break;
+      case UserRole.CREATOR:
+        route = '/creator';
+        break;
+      default:
+        route = '/';
+    }
+    this.router.navigate([route]);
+  }
+}
-- 
GitLab