From 3cd952bd4705c0143bd5acfa0bac833221e22385 Mon Sep 17 00:00:00 2001 From: jojohoch <joachim.hoch@iqb.hu-berlin.de> Date: Mon, 18 Oct 2021 11:58:42 +0200 Subject: [PATCH] [player] Use Unit constructor to initialize unit definition --- projects/player/src/app/app.component.ts | 35 ++++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/projects/player/src/app/app.component.ts b/projects/player/src/app/app.component.ts index 08291017c..a86a1783a 100644 --- a/projects/player/src/app/app.component.ts +++ b/projects/player/src/app/app.component.ts @@ -54,22 +54,27 @@ export class AppComponent implements OnInit { setTimeout(() => { // eslint-disable-next-line no-console console.log('player: onStart', message); - const unitDefinition: Unit = message.unitDefinition ? JSON.parse(message.unitDefinition) : {}; - if (this.metaDataService.verifyUnitDefinitionVersion(unitDefinition.veronaModuleVersion)) { - this.playerConfig = message.playerConfig || {}; - this.veronaPostService.sessionId = message.sessionId; - this.veronaPostService.stateReportPolicy = message.playerConfig?.stateReportPolicy || 'none'; - this.pages = unitDefinition.pages; - this.unitStateService.unitStateElementCodes = message.unitState?.dataParts?.elementCodes ? - JSON.parse(message.unitState.dataParts.elementCodes) : []; + if (message.unitDefinition) { + const unitDefinition: Unit = new Unit(JSON.parse(message.unitDefinition)); + if (this.metaDataService.verifyUnitDefinitionVersion(unitDefinition.veronaModuleVersion)) { + this.playerConfig = message.playerConfig || {}; + this.veronaPostService.sessionId = message.sessionId; + this.veronaPostService.stateReportPolicy = message.playerConfig?.stateReportPolicy || 'none'; + this.pages = unitDefinition.pages; + this.unitStateService.unitStateElementCodes = message.unitState?.dataParts?.elementCodes ? + JSON.parse(message.unitState.dataParts.elementCodes) : []; + } else { + this.dialog.open(AlertDialogComponent, { + data: { + title: this.translateService.instant('dialogTitle.wrongUnitDefinitionType'), + content: this.translateService.instant('dialogContent.wrongUnitDefinitionType', + { version: this.metaDataService.playerMetadata.supportedUnitDefinitionTypes }) + } + }); + } } else { - this.dialog.open(AlertDialogComponent, { - data: { - title: this.translateService.instant('dialogTitle.wrongUnitDefinitionType'), - content: this.translateService.instant('dialogContent.wrongUnitDefinitionType', - { version: this.metaDataService.playerMetadata.supportedUnitDefinitionTypes }) - } - }); + // eslint-disable-next-line no-console + console.warn('player: message has no unitDefinition'); } }); } -- GitLab