diff --git a/projects/player/modules/verona/services/verona-subscription.service.ts b/projects/player/modules/verona/services/verona-subscription.service.ts index f084e2cf600abbd3d50ec40ad6d588f58d178c4b..48decd2ac7c38e50b67285e68a2db3793b93d87f 100644 --- a/projects/player/modules/verona/services/verona-subscription.service.ts +++ b/projects/player/modules/verona/services/verona-subscription.service.ts @@ -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': diff --git a/projects/player/src/app/app.module.ts b/projects/player/src/app/app.module.ts index aaf2d7d65822aaa0e253b2ae30967c17d3beb73f..04c0e7cbef60efe303876a93099338512cb97b68 100644 --- a/projects/player/src/app/app.module.ts +++ b/projects/player/src/app/app.module.ts @@ -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 } ] }) diff --git a/projects/player/src/app/components/unit/unit.component.ts b/projects/player/src/app/components/unit/unit.component.ts index 3af210012f25e997fe24ab5ba2e4ed9fe1a202aa..c28478c565fa523acec151320dc93d3c46c3e2f5 100644 --- a/projects/player/src/app/components/unit/unit.component.ts +++ b/projects/player/src/app/components/unit/unit.component.ts @@ -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 ? diff --git a/projects/player/src/app/services/meta-data.service.ts b/projects/player/src/app/services/meta-data.service.ts index 3c5a5e4cd45409355fa25c9017937a7e7f3f0c1e..2872536b6be1ee19aab3e73f70295626baeed8b6 100644 --- a/projects/player/src/app/services/meta-data.service.ts +++ b/projects/player/src/app/services/meta-data.service.ts @@ -1,11 +1,13 @@ 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'; + } }