From a35d61dfe80d2e0fffddeb58f41f1f6e656dcb76 Mon Sep 17 00:00:00 2001 From: jojohoch <joachim.hoch@iqb.hu-berlin.de> Date: Mon, 23 Aug 2021 12:31:34 +0200 Subject: [PATCH] [player] Add `responseProgress` to `vopStateChangedNotification` When form changes the `responseProgress` is determined and sent --- projects/player/src/app/components/form.component.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/projects/player/src/app/components/form.component.ts b/projects/player/src/app/components/form.component.ts index 5dfe7ebf0..746448aeb 100644 --- a/projects/player/src/app/components/form.component.ts +++ b/projects/player/src/app/components/form.component.ts @@ -118,11 +118,20 @@ export class FormComponent implements OnInit, OnDestroy { dataParts: { pages: JSON.stringify(formModel.pages) }, + responseProgress: this.calculateResponseProgress(), unitStateDataType: this.metaDataService.playerMetadata.supportedUnitStateDataTypes }; this.veronaPostService.sendVopStateChangedNotification({ unitState }); } + private calculateResponseProgress(): 'complete' | 'some' | 'none' { + if (this.form.valid) { + return 'complete'; + } + const pages: FormArray = this.form.get('pages') as FormArray; + return (pages.controls.some(p => p.value)) ? 'some' : 'none'; + } + onPresentedPageAdded(pagePresented: number): void { if (!this.presentedPages.includes(pagePresented)) { this.presentedPages.push(pagePresented); -- GitLab