From e6708ffa3bd088cf948cdd8537cb3a9d33d8f3ce Mon Sep 17 00:00:00 2001
From: Marco Herzog <marco.herzog@mni.thm.de>
Date: Fri, 6 Sep 2019 15:21:32 +0200
Subject: [PATCH] Add 'link' to data protection in cookie dialog

---
 src/app/app-routing.module.ts                       |  6 +++---
 src/app/app.module.ts                               |  6 +++---
 .../home/_dialogs/cookies/cookies.component.html    |  6 +++++-
 .../home/_dialogs/cookies/cookies.component.scss    |  9 +++++++++
 .../home/_dialogs/cookies/cookies.component.ts      | 13 ++++++++++++-
 .../data-protection/data-protection.component.html  |  0
 .../data-protection/data-protection.component.scss  |  0
 .../data-protection.component.spec.ts               |  0
 .../data-protection/data-protection.component.ts    |  0
 .../_dialogs}/imprint/imprint.component.html        |  0
 .../_dialogs}/imprint/imprint.component.scss        |  0
 .../_dialogs}/imprint/imprint.component.spec.ts     |  0
 .../_dialogs}/imprint/imprint.component.ts          |  0
 .../help-page/help-page.component.html              |  2 +-
 .../help-page/help-page.component.scss              |  0
 .../help-page/help-page.component.spec.ts           |  0
 .../{ => _dialogs}/help-page/help-page.component.ts |  0
 .../components/shared/footer/footer.component.html  |  2 +-
 .../components/shared/footer/footer.component.ts    |  9 +++++----
 .../components/shared/header/header.component.html  |  4 ++--
 src/assets/i18n/home/de.json                        |  1 +
 src/assets/i18n/home/en.json                        |  2 +-
 22 files changed, 43 insertions(+), 17 deletions(-)
 rename src/app/components/{shared => home/_dialogs}/data-protection/data-protection.component.html (100%)
 rename src/app/components/{shared => home/_dialogs}/data-protection/data-protection.component.scss (100%)
 rename src/app/components/{shared => home/_dialogs}/data-protection/data-protection.component.spec.ts (100%)
 rename src/app/components/{shared => home/_dialogs}/data-protection/data-protection.component.ts (100%)
 rename src/app/components/{shared => home/_dialogs}/imprint/imprint.component.html (100%)
 rename src/app/components/{shared => home/_dialogs}/imprint/imprint.component.scss (100%)
 rename src/app/components/{shared => home/_dialogs}/imprint/imprint.component.spec.ts (100%)
 rename src/app/components/{shared => home/_dialogs}/imprint/imprint.component.ts (100%)
 rename src/app/components/shared/{ => _dialogs}/help-page/help-page.component.html (87%)
 rename src/app/components/shared/{ => _dialogs}/help-page/help-page.component.scss (100%)
 rename src/app/components/shared/{ => _dialogs}/help-page/help-page.component.spec.ts (100%)
 rename src/app/components/shared/{ => _dialogs}/help-page/help-page.component.ts (100%)

diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index f9db5d461..5d0598d28 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -3,9 +3,9 @@ import { RouterModule, Routes } from '@angular/router';
 import { PageNotFoundComponent } from './components/shared/page-not-found/page-not-found.component';
 import { HomePageComponent } from './components/home/home-page/home-page.component';
 import { UserHomeComponent } from './components/home/user-home/user-home.component';
-import { ImprintComponent } from './components/shared/imprint/imprint.component';
-import { DataProtectionComponent } from './components/shared/data-protection/data-protection.component';
-import { HelpPageComponent } from './components/shared/help-page/help-page.component';
+import { ImprintComponent } from './components/home/_dialogs/imprint/imprint.component';
+import { DataProtectionComponent } from './components/home/_dialogs/data-protection/data-protection.component';
+import { HelpPageComponent } from './components/shared/_dialogs/help-page/help-page.component';
 
 const routes: Routes = [
   {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 6b9ff2003..e185cc062 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -42,9 +42,9 @@ import { HomeCreatorPageComponent } from './components/home/home-creator-page/ho
 import { HomeParticipantPageComponent } from './components/home/home-participant-page/home-participant-page.component';
 import { CommentSettingsService } from './services/http/comment-settings.service';
 import { ModeratorModule } from './components/moderator/moderator.module';
-import { ImprintComponent } from './components/shared/imprint/imprint.component';
-import { DataProtectionComponent } from './components/shared/data-protection/data-protection.component';
-import { HelpPageComponent } from './components/shared/help-page/help-page.component';
+import { ImprintComponent } from './components/home/_dialogs/imprint/imprint.component';
+import { DataProtectionComponent } from './components/home/_dialogs/data-protection/data-protection.component';
+import { HelpPageComponent } from './components/shared/_dialogs/help-page/help-page.component';
 import { CookiesComponent } from './components/home/_dialogs/cookies/cookies.component';
 import { DataProtectionEnComponent } from '../assets/i18n/data-protection/data-protection-en';
 import { DataProtectionDeComponent } from 'assets/i18n/data-protection/data-protection-de';
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.html b/src/app/components/home/_dialogs/cookies/cookies.component.html
index 9ace0baf6..fd04369d7 100644
--- a/src/app/components/home/_dialogs/cookies/cookies.component.html
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.html
@@ -1,5 +1,8 @@
 <div>
-  <h1 mat-dialog-title>Cookies</h1>
+  <h1 mat-dialog-title>Cookies
+    <button mat-icon-button aria-labelledby="info-label" class="info" (click)="openDataProtection()">
+      <mat-icon class="info-icon">help</mat-icon>
+    </button></h1>
 
   <mat-divider></mat-divider>
   <app-cookies-de *ngIf="currentLang=='de'"></app-cookies-de>
@@ -21,4 +24,5 @@
 <div class="visually-hidden">
   <div id="accept-label">{{'cookies.accept-label' | translate }}</div>
   <div id="decline-label">{{'cookies.decline-label' | translate }}</div>
+  <div id="info-label">{{'cookies.info-label' | translate }}</div>
 </div>
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.scss b/src/app/components/home/_dialogs/cookies/cookies.component.scss
index 16c5e2d3d..95ae40435 100644
--- a/src/app/components/home/_dialogs/cookies/cookies.component.scss
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.scss
@@ -10,3 +10,12 @@
 div {
   color: var(--on-surface);
 }
+
+.info{
+  vertical-align: bottom;
+  margin-left: -5px;
+}
+
+.info-icon{
+  font-size: 19px;
+}
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.ts b/src/app/components/home/_dialogs/cookies/cookies.component.ts
index 6ddad8e22..aa81a26c5 100644
--- a/src/app/components/home/_dialogs/cookies/cookies.component.ts
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.ts
@@ -1,4 +1,6 @@
 import { Component, OnInit } from '@angular/core';
+import { DataProtectionComponent } from '../data-protection/data-protection.component';
+import { MatDialog } from '@angular/material';
 
 @Component({
   selector: 'app-cookies',
@@ -10,7 +12,7 @@ export class CookiesComponent implements OnInit {
   deviceType: string;
   currentLang: string;
 
-  constructor() { }
+  constructor(private dialog: MatDialog) { }
 
   ngOnInit() {
     this.currentLang = localStorage.getItem('currentLang');
@@ -21,6 +23,15 @@ export class CookiesComponent implements OnInit {
   }
 
   exitApp() {
+    localStorage.setItem('cookieAccepted', 'false');
     // TODO somehow exit the app, since the user didn't accept cookie usage
   }
+
+  openDataProtection() {
+  const dialogRef = this.dialog.open(DataProtectionComponent, {
+    height: '95%',
+    width: '75%'
+  });
+  dialogRef.componentInstance.deviceType = this.deviceType;
+}
 }
diff --git a/src/app/components/shared/data-protection/data-protection.component.html b/src/app/components/home/_dialogs/data-protection/data-protection.component.html
similarity index 100%
rename from src/app/components/shared/data-protection/data-protection.component.html
rename to src/app/components/home/_dialogs/data-protection/data-protection.component.html
diff --git a/src/app/components/shared/data-protection/data-protection.component.scss b/src/app/components/home/_dialogs/data-protection/data-protection.component.scss
similarity index 100%
rename from src/app/components/shared/data-protection/data-protection.component.scss
rename to src/app/components/home/_dialogs/data-protection/data-protection.component.scss
diff --git a/src/app/components/shared/data-protection/data-protection.component.spec.ts b/src/app/components/home/_dialogs/data-protection/data-protection.component.spec.ts
similarity index 100%
rename from src/app/components/shared/data-protection/data-protection.component.spec.ts
rename to src/app/components/home/_dialogs/data-protection/data-protection.component.spec.ts
diff --git a/src/app/components/shared/data-protection/data-protection.component.ts b/src/app/components/home/_dialogs/data-protection/data-protection.component.ts
similarity index 100%
rename from src/app/components/shared/data-protection/data-protection.component.ts
rename to src/app/components/home/_dialogs/data-protection/data-protection.component.ts
diff --git a/src/app/components/shared/imprint/imprint.component.html b/src/app/components/home/_dialogs/imprint/imprint.component.html
similarity index 100%
rename from src/app/components/shared/imprint/imprint.component.html
rename to src/app/components/home/_dialogs/imprint/imprint.component.html
diff --git a/src/app/components/shared/imprint/imprint.component.scss b/src/app/components/home/_dialogs/imprint/imprint.component.scss
similarity index 100%
rename from src/app/components/shared/imprint/imprint.component.scss
rename to src/app/components/home/_dialogs/imprint/imprint.component.scss
diff --git a/src/app/components/shared/imprint/imprint.component.spec.ts b/src/app/components/home/_dialogs/imprint/imprint.component.spec.ts
similarity index 100%
rename from src/app/components/shared/imprint/imprint.component.spec.ts
rename to src/app/components/home/_dialogs/imprint/imprint.component.spec.ts
diff --git a/src/app/components/shared/imprint/imprint.component.ts b/src/app/components/home/_dialogs/imprint/imprint.component.ts
similarity index 100%
rename from src/app/components/shared/imprint/imprint.component.ts
rename to src/app/components/home/_dialogs/imprint/imprint.component.ts
diff --git a/src/app/components/shared/help-page/help-page.component.html b/src/app/components/shared/_dialogs/help-page/help-page.component.html
similarity index 87%
rename from src/app/components/shared/help-page/help-page.component.html
rename to src/app/components/shared/_dialogs/help-page/help-page.component.html
index f13dae74f..7e60377f8 100644
--- a/src/app/components/shared/help-page/help-page.component.html
+++ b/src/app/components/shared/_dialogs/help-page/help-page.component.html
@@ -15,7 +15,7 @@
  </div>
 
   <div class="visually-hidden">
-    <div id="consent-label">{{ 'help.close-label' | translate }}</div>
+    <div id="help-label">{{ 'help.close-label' | translate }}</div>
   </div>
 
 </div>
diff --git a/src/app/components/shared/help-page/help-page.component.scss b/src/app/components/shared/_dialogs/help-page/help-page.component.scss
similarity index 100%
rename from src/app/components/shared/help-page/help-page.component.scss
rename to src/app/components/shared/_dialogs/help-page/help-page.component.scss
diff --git a/src/app/components/shared/help-page/help-page.component.spec.ts b/src/app/components/shared/_dialogs/help-page/help-page.component.spec.ts
similarity index 100%
rename from src/app/components/shared/help-page/help-page.component.spec.ts
rename to src/app/components/shared/_dialogs/help-page/help-page.component.spec.ts
diff --git a/src/app/components/shared/help-page/help-page.component.ts b/src/app/components/shared/_dialogs/help-page/help-page.component.ts
similarity index 100%
rename from src/app/components/shared/help-page/help-page.component.ts
rename to src/app/components/shared/_dialogs/help-page/help-page.component.ts
diff --git a/src/app/components/shared/footer/footer.component.html b/src/app/components/shared/footer/footer.component.html
index 888b3d8bb..14612c640 100644
--- a/src/app/components/shared/footer/footer.component.html
+++ b/src/app/components/shared/footer/footer.component.html
@@ -1,7 +1,7 @@
 <div>
   <mat-toolbar id="footer-toolbar">
     <button mat-button (click)="showHelp()" *ngIf="router.url !== '/home'" aria-labelledby="help-label">
-      <mat-icon>help_outline</mat-icon>
+      <mat-icon>help</mat-icon>
       <span *ngIf="deviceType === 'desktop'">
         {{ 'footer.help' | translate }}
       </span>
diff --git a/src/app/components/shared/footer/footer.component.ts b/src/app/components/shared/footer/footer.component.ts
index f4122ead7..de4c8a55a 100644
--- a/src/app/components/shared/footer/footer.component.ts
+++ b/src/app/components/shared/footer/footer.component.ts
@@ -10,9 +10,9 @@ import { Room } from '../../../models/room';
 import { DemoVideoComponent } from '../../home/_dialogs/demo-video/demo-video.component';
 import { ThemeService } from '../../../../theme/theme.service';
 import { CookiesComponent } from '../../home/_dialogs/cookies/cookies.component';
-import { ImprintComponent } from '../imprint/imprint.component';
-import { HelpPageComponent } from '../help-page/help-page.component';
-import { DataProtectionComponent } from '../data-protection/data-protection.component';
+import { ImprintComponent } from '../../home/_dialogs/imprint/imprint.component';
+import { HelpPageComponent } from '../_dialogs/help-page/help-page.component';
+import { DataProtectionComponent } from '../../home/_dialogs/data-protection/data-protection.component';
 
 @Component({
   selector: 'app-footer',
@@ -69,7 +69,8 @@ export class FooterComponent implements OnInit {
   showCookieModal() {
     const dialogRef = this.dialog.open(CookiesComponent, {
       height: '95%',
-      width: '60%'
+      width: '60%',
+      autoFocus: false
     });
     dialogRef.disableClose = true;
     dialogRef.componentInstance.deviceType = this.deviceType;
diff --git a/src/app/components/shared/header/header.component.html b/src/app/components/shared/header/header.component.html
index d53c7eb8e..3e5549f1b 100644
--- a/src/app/components/shared/header/header.component.html
+++ b/src/app/components/shared/header/header.component.html
@@ -1,8 +1,8 @@
 <mat-toolbar class="mat-elevation-z4">
   <mat-toolbar-row>
-    <button mat-icon-button *ngIf="router.url !== '/home'" (click)="goBack()"
+    <button mat-icon-button  aria-labelledby="back-label" *ngIf="router.url !== '/home'" (click)="goBack()"
             matTooltip="{{'header.back' | translate}}">
-      <mat-icon class="header-icons" aria-labelledby="back-label">keyboard_arrow_left</mat-icon>
+      <mat-icon class="header-icons">keyboard_arrow_left</mat-icon>
     </button>
     <span class="fill-remaining-space"></span>
     <h3 *ngIf="router.url.includes('comments') && user.role === 3 && deviceType === 'desktop'"
diff --git a/src/assets/i18n/home/de.json b/src/assets/i18n/home/de.json
index e5cf765c1..03f6cc9b3 100644
--- a/src/assets/i18n/home/de.json
+++ b/src/assets/i18n/home/de.json
@@ -121,6 +121,7 @@
     "style-blue": "Wähle das blaue Thema aus"
   },
   "cookies": {
+    "info-label": "Öffnet ein Dialogfenster mit der frag.jetzt Datenschutzerklärung",
     "accept": "Bestätigen",
     "accept-label": "Bestätigt die Verwendung von Cookies und fährt zur Hauptanwendung fort",
     "decline": "Ablehnen",
diff --git a/src/assets/i18n/home/en.json b/src/assets/i18n/home/en.json
index 86f5acd78..5b2297c18 100644
--- a/src/assets/i18n/home/en.json
+++ b/src/assets/i18n/home/en.json
@@ -98,7 +98,6 @@
     "demo": "Demo",
     "accessibility-demo": "Shows demo version of frag.jetzt",
     "dsgvo": "Data Protection",
-    "accessibility-data-protection": "Opens data protection document in a new dialog",
     "imprint": "Imprint",
     "accessibility-imprint": "Opens the imprint in a new dialog",
     "will-open": " will be opened in a new tab...",
@@ -122,6 +121,7 @@
     "style-blue": "Select the blue style theme"
   },
   "cookies": {
+    "info-label": "Opens a dialog with  the frag.jetzt privacy statement",
     "accept": "Accept",
     "accept-label": "Accepts the use of cookies and proceeds to the app",
     "decline": "Decline",
-- 
GitLab