From d7078133b216fd79b69c3a51a3f4229f154f3bec Mon Sep 17 00:00:00 2001 From: jojohoch <joachim.hoch@iqb.hu-berlin.de> Date: Fri, 12 Nov 2021 13:12:56 +0100 Subject: [PATCH] Use the project property of ElementComponent in ControlBarComponent In ControlBarComponent the property project replaces the property isAspectPlayer. It ensures that delays are used only in the player and hints are always visible in the editor. --- .../common/element-components/audio.component.ts | 1 + .../control-bar/control-bar.component.html | 2 +- .../control-bar/control-bar.component.ts | 12 +++++------- .../common/element-components/video.component.ts | 1 + 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/projects/common/element-components/audio.component.ts b/projects/common/element-components/audio.component.ts index 11bc080c1..93147b3a3 100644 --- a/projects/common/element-components/audio.component.ts +++ b/projects/common/element-components/audio.component.ts @@ -14,6 +14,7 @@ import { MediaPlayerElementComponent } from '../media-player-element-component.d [src]="elementModel.src | safeResourceUrl"> </audio> <app-control-bar [player]="player" + [project]="project" [elementModel]="elementModel" [active]="active" (elementValueChanged)="elementValueChanged.emit($event)"> diff --git a/projects/common/element-components/control-bar/control-bar.component.html b/projects/common/element-components/control-bar/control-bar.component.html index 0a475b307..89fc247b8 100644 --- a/projects/common/element-components/control-bar/control-bar.component.html +++ b/projects/common/element-components/control-bar/control-bar.component.html @@ -65,7 +65,7 @@ </mat-slider> </ng-container> </div> -<div *ngIf="showHint || !isAspectPlayer" +<div *ngIf="showHint || project === 'editor'" class="status-bar mat-typography"> {{elementModel.hintLabel}} </div> diff --git a/projects/common/element-components/control-bar/control-bar.component.ts b/projects/common/element-components/control-bar/control-bar.component.ts index 6fc737d6a..363b5fd20 100644 --- a/projects/common/element-components/control-bar/control-bar.component.ts +++ b/projects/common/element-components/control-bar/control-bar.component.ts @@ -1,5 +1,5 @@ import { - OnInit, AfterContentInit, OnDestroy, Component, EventEmitter, Input, Output + OnInit, OnChanges, SimpleChanges, OnDestroy, Component, EventEmitter, Input, Output } from '@angular/core'; import { MatSliderChange } from '@angular/material/slider'; import { AudioElement } from '../../models/audio-element'; @@ -11,9 +11,10 @@ import { ValueChangeElement } from '../../models/uI-element'; templateUrl: './control-bar.component.html', styleUrls: ['./control-bar.component.css'] }) -export class ControlBarComponent implements OnInit, AfterContentInit, OnDestroy { +export class ControlBarComponent implements OnInit, OnChanges, OnDestroy { @Input() player!: HTMLVideoElement | HTMLAudioElement; @Input() elementModel!: AudioElement | VideoElement; + @Input() project!: 'player' | 'editor'; @Input() active!: boolean; @Output() elementValueChanged = new EventEmitter<ValueChangeElement>(); duration!: number; @@ -27,7 +28,6 @@ export class ControlBarComponent implements OnInit, AfterContentInit, OnDestroy restTimeMode: boolean = true; showHint!: boolean; disabled!: boolean; - isAspectPlayer!: boolean; playbackTime!: number; // TODO: @@ -68,10 +68,8 @@ export class ControlBarComponent implements OnInit, AfterContentInit, OnDestroy this.lastVolume = this.player.volume; } - ngAfterContentInit(): void { - // player-aspect should work, but doesn't in production - this.isAspectPlayer = !!this.player.closest('app-element-container'); - if (this.isAspectPlayer) { + ngOnChanges(changes: SimpleChanges): void { + if (changes.project && changes.project.currentValue === 'player') { this.initAutostart(); this.initHint(); } diff --git a/projects/common/element-components/video.component.ts b/projects/common/element-components/video.component.ts index 8fc2c43c1..68b51dd8d 100644 --- a/projects/common/element-components/video.component.ts +++ b/projects/common/element-components/video.component.ts @@ -16,6 +16,7 @@ import { MediaPlayerElementComponent } from '../media-player-element-component.d (playing)="onMediaPlayStatusChanged.emit(this.elementModel.id)" (pause)="onMediaPlayStatusChanged.emit(null)" [player]="player" + [project]="project" [elementModel]="elementModel" (elementValueChanged)="elementValueChanged.emit($event)"> </app-control-bar> -- GitLab