Skip to content
Snippets Groups Projects
Commit 1d4adc83 authored by jojohoch's avatar jojohoch
Browse files

[player] Move Geogebra ApiService functionality to MetaDataService

- Use the VeroSubscriptionService as a pure communication service
- Do not contaminate the VeroSubscriptionService with holding data
parent 93e36132
No related branches found
No related tags found
No related merge requests found
......@@ -27,15 +27,10 @@ export class VeronaSubscriptionService {
.subscribe((event: Event): void => this.handleMessage((event as MessageEvent).data as VopMessage));
}
getResourceURL(): string {
return this.resourceURL || 'assets';
}
private handleMessage(messageData: VopMessage): void {
switch (messageData.type) {
case 'vopStartCommand':
LogService.debug('player: _vopStartCommand ', messageData);
this.resourceURL = (messageData as VopStartCommand).playerConfig?.directDownloadUrl;
this._vopStartCommand.next(messageData);
break;
case 'vopNavigationDeniedNotification':
......
......@@ -8,7 +8,7 @@ import { OverlayModule } from '@angular/cdk/overlay';
import { SharedModule, APIService } from 'common/shared.module';
import { KeyInputModule } from 'player/modules/key-input/key-input.module';
import { UnitMenuModule } from 'player/modules/unit-menu/unit-menu.module';
import { DeviceService } from './services/device.service';
import { MetaDataService } from 'player/src/app/services/meta-data.service';
import { AppComponent } from './app.component';
import { PageComponent } from './components/page/page.component';
import { SectionComponent } from './components/section/section.component';
......@@ -50,7 +50,6 @@ import { UnitComponent } from './components/unit/unit.component';
import { PageScrollButtonComponent } from './components/page-scroll-button/page-scroll-button.component';
import { ExternalAppGroupElementComponent } from
'./components/elements/external-app-group-element/external-app-group-element.component';
import { VeronaSubscriptionService } from 'player/modules/verona/services/verona-subscription.service';
@NgModule({
declarations: [
......@@ -100,7 +99,7 @@ import { VeronaSubscriptionService } from 'player/modules/verona/services/verona
UnitMenuModule
],
providers: [
{ provide: APIService, useExisting: VeronaSubscriptionService }
{ provide: APIService, useExisting: MetaDataService }
]
})
......
......@@ -11,6 +11,7 @@ import { VeronaPostService } from 'player/modules/verona/services/verona-post.se
import {
ElementModelElementCodeMappingService
} from 'player/src/app/services/element-model-element-code-mapping.service';
import { MetaDataService } from 'player/src/app/services/meta-data.service';
@Component({
selector: 'aspect-unit',
......@@ -22,6 +23,7 @@ export class UnitComponent implements OnInit {
playerConfig: PlayerConfig = {};
constructor(public unitStateService: UnitStateService,
private metaDataService: MetaDataService,
private veronaPostService: VeronaPostService,
private veronaSubscriptionService: VeronaSubscriptionService,
private elementModelElementCodeMappingService: ElementModelElementCodeMappingService,
......@@ -45,6 +47,7 @@ export class UnitComponent implements OnInit {
this.pages = unitDefinition.pages;
this.playerConfig = message.playerConfig || {};
LogService.info('player: unitStateElementCodes', this.unitStateService.elementCodes);
this.metaDataService.resourceURL = this.playerConfig.directDownloadUrl;
this.veronaPostService.sessionId = message.sessionId;
this.veronaPostService.stateReportPolicy = message.playerConfig?.stateReportPolicy || 'none';
this.unitStateService.elementCodes = message.unitState?.dataParts?.elementCodes ?
......
import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { VopMetaData } from 'player/modules/verona/models/verona';
@Injectable({
providedIn: 'root'
})
export class MetaDataService {
playerMetadata!: any;
playerMetadata!: VopMetaData;
resourceURL: string | undefined;
constructor(@Inject(DOCUMENT) private document: Document) {
const playerMetadata: string | null | undefined = document.getElementById('meta_data')?.textContent;
......@@ -13,4 +15,8 @@ export class MetaDataService {
this.playerMetadata = JSON.parse(playerMetadata);
}
}
getResourceURL(): string {
return this.resourceURL || 'assets';
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment