From 9d39785d09330ff36ec0a4822f4b676dba9c3f9c Mon Sep 17 00:00:00 2001
From: jojohoch <joachim.hoch@iqb.hu-berlin.de>
Date: Fri, 20 Jan 2023 15:45:14 +0100
Subject: [PATCH] [player] Remove the display of the snack bar when navigation
 is denied

Displaying a message is task of the host
#398
---
 docs/release-notes-player.md                    |  5 +++++
 .../compound-group-element.component.spec.ts    | 13 ++-----------
 .../compound-group-element.component.ts         |  4 ----
 .../input-group-element.component.spec.ts       | 17 +++--------------
 .../input-group-element.component.ts            |  6 +-----
 .../text-input-group-element.component.spec.ts  | 17 +++--------------
 .../text-input-group-element.component.ts       |  4 ----
 .../player-layout.component.spec.ts             | 14 +++-----------
 .../directives/element-form-group.directive.ts  |  6 ------
 9 files changed, 17 insertions(+), 69 deletions(-)

diff --git a/docs/release-notes-player.md b/docs/release-notes-player.md
index 3b1c1fb30..afe32f686 100644
--- a/docs/release-notes-player.md
+++ b/docs/release-notes-player.md
@@ -1,5 +1,10 @@
 Player
 ======
+## next
+### Verbesserungen
+- Player stellt keine eigene Meldung mehr dar, wenn er vom Host die Meldung erhält,
+  dass die Navigation verweigert wird. Diese Meldung ist Aufgabe des Hosts.  
+
 ## 1.31.0
 ### Verbesserungen
 - Verbessert die Positionsbestimmung für schwebende Eingabehilfen
diff --git a/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.spec.ts b/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.spec.ts
index ead966729..c142e0592 100644
--- a/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.spec.ts
+++ b/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.spec.ts
@@ -1,6 +1,4 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
-import { PlayerTranslateLoader } from 'player/src/app/classes/player-translate-loader';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { FloatingKeypadComponent } from 'player/src/app/components/floating-keypad/floating-keypad.component';
 import { Component, Input } from '@angular/core';
@@ -32,15 +30,8 @@ describe('CompoundGroupElementComponent', () => {
       imports: [
         FormsModule,
         ReactiveFormsModule,
-        MatSnackBarModule,
-        TranslateModule.forRoot({
-          loader: {
-            provide: TranslateLoader,
-            useClass: PlayerTranslateLoader
-          }
-        })
-      ],
-      providers: [TranslateService]
+        MatSnackBarModule
+      ]
     })
       .compileComponents();
   });
diff --git a/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.ts b/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.ts
index dd19a3853..fa6494b99 100644
--- a/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.ts
+++ b/projects/player/src/app/components/elements/compound-group-element/compound-group-element.component.ts
@@ -1,8 +1,6 @@
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { TranslateService } from '@ngx-translate/core';
 import { takeUntil } from 'rxjs/operators';
 import { ElementComponent } from 'common/directives/element-component.directive';
-import { MessageService } from 'common/services/message.service';
 import { VeronaSubscriptionService } from 'player/modules/verona/services/verona-subscription.service';
 import {
   TextFieldSimpleComponent
@@ -42,8 +40,6 @@ export class CompoundGroupElementComponent extends ElementFormGroupDirective imp
     public keypadService: KeypadService,
     public unitStateService: UnitStateService,
     public elementModelElementCodeMappingService: ElementModelElementCodeMappingService,
-    public translateService: TranslateService,
-    public messageService: MessageService,
     public veronaSubscriptionService: VeronaSubscriptionService,
     private veronaPostService: VeronaPostService,
     private navigationService: NavigationService,
diff --git a/projects/player/src/app/components/elements/input-group-element/input-group-element.component.spec.ts b/projects/player/src/app/components/elements/input-group-element/input-group-element.component.spec.ts
index eb3a37d17..5004943ce 100644
--- a/projects/player/src/app/components/elements/input-group-element/input-group-element.component.spec.ts
+++ b/projects/player/src/app/components/elements/input-group-element/input-group-element.component.spec.ts
@@ -1,13 +1,11 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { InputGroupElementComponent } from './input-group-element.component';
-import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
-import { PlayerTranslateLoader } from 'player/src/app/classes/player-translate-loader';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { Component, Input } from '@angular/core';
 import { FormGroup, ReactiveFormsModule } from '@angular/forms';
 import { CastPipe } from 'player/src/app/pipes/cast.pipe';
 import { UnitStateService } from 'player/src/app/services/unit-state.service';
 import { RadioButtonGroupElement } from 'common/models/elements/input-elements/radio-button-group';
+import { InputGroupElementComponent } from './input-group-element.component';
 
 describe('InputGroupElementComponent', () => {
   let component: InputGroupElementComponent;
@@ -29,15 +27,8 @@ describe('InputGroupElementComponent', () => {
       ],
       imports: [
         ReactiveFormsModule,
-        MatSnackBarModule,
-        TranslateModule.forRoot({
-          loader: {
-            provide: TranslateLoader,
-            useClass: PlayerTranslateLoader
-          }
-        })
-      ],
-      providers: [TranslateService]
+        MatSnackBarModule
+      ]
     })
       .compileComponents();
   });
@@ -56,11 +47,9 @@ describe('InputGroupElementComponent', () => {
       height: 0
     });
     fixture.detectChanges();
-
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
-
 });
diff --git a/projects/player/src/app/components/elements/input-group-element/input-group-element.component.ts b/projects/player/src/app/components/elements/input-group-element/input-group-element.component.ts
index bdce48b89..7cdb51a70 100644
--- a/projects/player/src/app/components/elements/input-group-element/input-group-element.component.ts
+++ b/projects/player/src/app/components/elements/input-group-element/input-group-element.component.ts
@@ -1,8 +1,6 @@
 import {
   AfterViewInit, Component, OnInit, ViewChild
 } from '@angular/core';
-import { TranslateService } from '@ngx-translate/core';
-import { MessageService } from 'common/services/message.service';
 import { VeronaSubscriptionService } from 'player/modules/verona/services/verona-subscription.service';
 import { ElementComponent } from 'common/directives/element-component.directive';
 import { CheckboxElement } from 'common/models/elements/input-elements/checkbox';
@@ -13,11 +11,11 @@ import { RadioButtonGroupComplexElement } from 'common/models/elements/input-ele
 import { DropdownElement } from 'common/models/elements/input-elements/dropdown';
 import { InputElement } from 'common/models/elements/element';
 import { HotspotImageElement } from 'common/models/elements/input-elements/hotspot-image';
+import { MathFieldElement } from 'common/models/elements/input-elements/math-field';
 import { ValidationService } from '../../../services/validation.service';
 import { ElementFormGroupDirective } from '../../../directives/element-form-group.directive';
 import { ElementModelElementCodeMappingService } from '../../../services/element-model-element-code-mapping.service';
 import { UnitStateService } from '../../../services/unit-state.service';
-import { MathFieldElement } from 'common/models/elements/input-elements/math-field';
 
 @Component({
   selector: 'aspect-input-group-element',
@@ -38,8 +36,6 @@ export class InputGroupElementComponent extends ElementFormGroupDirective implem
   constructor(
     public unitStateService: UnitStateService,
     public elementModelElementCodeMappingService: ElementModelElementCodeMappingService,
-    public translateService: TranslateService,
-    public messageService: MessageService,
     public veronaSubscriptionService: VeronaSubscriptionService,
     public validationService: ValidationService
   ) {
diff --git a/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.spec.ts b/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.spec.ts
index 0d2246eda..4b64e97c3 100644
--- a/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.spec.ts
+++ b/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.spec.ts
@@ -1,7 +1,4 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { TextInputGroupElementComponent } from './text-input-group-element.component';
-import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
-import { PlayerTranslateLoader } from 'player/src/app/classes/player-translate-loader';
 import { Component, Input } from '@angular/core';
 import { FormGroup, ReactiveFormsModule } from '@angular/forms';
 import { CastPipe } from 'player/src/app/pipes/cast.pipe';
@@ -9,6 +6,7 @@ import { UnitStateService } from 'player/src/app/services/unit-state.service';
 import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { FloatingKeypadComponent } from 'player/src/app/components/floating-keypad/floating-keypad.component';
 import { TextFieldElement } from 'common/models/elements/input-elements/text-field';
+import { TextInputGroupElementComponent } from './text-input-group-element.component';
 
 describe('TextInputGroupElementComponent', () => {
   let component: TextInputGroupElementComponent;
@@ -31,15 +29,8 @@ describe('TextInputGroupElementComponent', () => {
       ],
       imports: [
         ReactiveFormsModule,
-        MatSnackBarModule,
-        TranslateModule.forRoot({
-          loader: {
-            provide: TranslateLoader,
-            useClass: PlayerTranslateLoader
-          }
-        })
-      ],
-      providers: [TranslateService]
+        MatSnackBarModule
+      ]
     })
       .compileComponents();
   });
@@ -58,11 +49,9 @@ describe('TextInputGroupElementComponent', () => {
       height: 0
     });
     fixture.detectChanges();
-
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
-
 });
diff --git a/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.ts b/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.ts
index d480d070f..99d8fa7ad 100644
--- a/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.ts
+++ b/projects/player/src/app/components/elements/text-input-group-element/text-input-group-element.component.ts
@@ -1,8 +1,6 @@
 import {
   AfterViewInit, Component, OnInit, ViewChild
 } from '@angular/core';
-import { TranslateService } from '@ngx-translate/core';
-import { MessageService } from 'common/services/message.service';
 import { VeronaSubscriptionService } from 'player/modules/verona/services/verona-subscription.service';
 import { ElementComponent } from 'common/directives/element-component.directive';
 import { TextAreaComponent } from 'common/components/input-elements/text-area.component';
@@ -38,8 +36,6 @@ export class TextInputGroupElementComponent extends ElementFormGroupDirective im
     public keypadService: KeypadService,
     public unitStateService: UnitStateService,
     public elementModelElementCodeMappingService: ElementModelElementCodeMappingService,
-    public translateService: TranslateService,
-    public messageService: MessageService,
     public veronaSubscriptionService: VeronaSubscriptionService,
     public validationService: ValidationService,
     public deviceService: DeviceService
diff --git a/projects/player/src/app/components/layouts/player-layout/player-layout.component.spec.ts b/projects/player/src/app/components/layouts/player-layout/player-layout.component.spec.ts
index c06bd1745..98f36d33e 100644
--- a/projects/player/src/app/components/layouts/player-layout/player-layout.component.spec.ts
+++ b/projects/player/src/app/components/layouts/player-layout/player-layout.component.spec.ts
@@ -1,9 +1,8 @@
+// eslint-disable-next-line max-classes-per-file
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { AlwaysVisiblePagePipe } from 'player/src/app/pipes/always-visible-page.pipe';
 import { ScrollPagesPipe } from 'common/pipes/scroll-pages.pipe';
 import { ValidPagesPipe } from 'player/src/app/pipes/valid-pages.pipe';
-import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
-import { PlayerTranslateLoader } from 'player/src/app/classes/player-translate-loader';
 import { Component, Directive, Input } from '@angular/core';
 import { BehaviorSubject } from 'rxjs';
 import { Page } from 'common/models/page';
@@ -44,16 +43,9 @@ describe('PlayerLayoutComponent', () => {
         AlwaysVisiblePagePipe,
         ValidPagesPipe,
         ScrollPagesPipe,
-        PlayerStateStubDirective],
-      imports: [
-        TranslateModule.forRoot({
-          loader: {
-            provide: TranslateLoader,
-            useClass: PlayerTranslateLoader
-          }
-        })
+        PlayerStateStubDirective
       ],
-      providers: [TranslateService, { provide: APIService, useClass: ApiStubService }]
+      providers: [{ provide: APIService, useClass: ApiStubService }]
     })
       .compileComponents();
   });
diff --git a/projects/player/src/app/directives/element-form-group.directive.ts b/projects/player/src/app/directives/element-form-group.directive.ts
index 87158bf9b..23568e11d 100644
--- a/projects/player/src/app/directives/element-form-group.directive.ts
+++ b/projects/player/src/app/directives/element-form-group.directive.ts
@@ -3,10 +3,8 @@ import {
   FormControl, FormGroup, ValidatorFn, Validators
 } from '@angular/forms';
 import { takeUntil } from 'rxjs/operators';
-import { TranslateService } from '@ngx-translate/core';
 import { Subject } from 'rxjs';
 import { VopNavigationDeniedNotification } from 'player/modules/verona/models/verona';
-import { MessageService } from 'common/services/message.service';
 import { VeronaSubscriptionService } from 'player/modules/verona/services/verona-subscription.service';
 import { LogService } from 'player/modules/logging/services/log.service';
 import { InputElement, InputElementValue } from 'common/models/elements/element';
@@ -22,8 +20,6 @@ export abstract class ElementFormGroupDirective extends ElementGroupDirective im
   form: FormGroup = new FormGroup({});
   abstract unitStateService: UnitStateService;
   abstract elementModelElementCodeMappingService: ElementModelElementCodeMappingService;
-  abstract translateService: TranslateService;
-  abstract messageService: MessageService;
   abstract veronaSubscriptionService: VeronaSubscriptionService;
   abstract validationService: ValidationService;
 
@@ -54,8 +50,6 @@ export abstract class ElementFormGroupDirective extends ElementGroupDirective im
 
   private onNavigationDenied(message: VopNavigationDeniedNotification): void {
     LogService.info('player: onNavigationDenied', message);
-    const reasons = message.reason?.map((reason: string) => this.translateService.instant(reason));
-    this.messageService.showWarning(reasons?.join(', ') || this.translateService.instant('noReason'));
     if (message.reason && message.reason.find(reason => reason === 'responsesIncomplete')) {
       this.form.markAllAsTouched();
     }
-- 
GitLab