From d509806983736fcab7d4bd647f5d5157de01e017 Mon Sep 17 00:00:00 2001 From: jojohoch <joachim.hoch@iqb.hu-berlin.de> Date: Tue, 28 Jun 2022 16:39:20 +0200 Subject: [PATCH] [editor] Add schemerData for ImageElement and PlayerElements --- projects/common/models/elements/element.ts | 16 +++++++++++++++- .../models/elements/media-elements/image.ts | 18 +++++++++++++++++- projects/common/models/section.ts | 4 ++-- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/projects/common/models/elements/element.ts b/projects/common/models/elements/element.ts index 1b0c6da72..41e937b2c 100644 --- a/projects/common/models/elements/element.ts +++ b/projects/common/models/elements/element.ts @@ -111,7 +111,21 @@ export abstract class PlayerElement extends UIElement { this.player = ElementFactory.initPlayerProps(element.player); } - // abstract getSchemerData(options: any): SchemerData; + hasSchemerData(): boolean { + return true; + } + + getSchemerData(): SchemerData { + return { + id: this.id, + type: 'string', + format: 'playback', + multiple: false, + nullable: true, + values: [], + valuesComplete: true + }; + } } export interface SchemerValue { diff --git a/projects/common/models/elements/media-elements/image.ts b/projects/common/models/elements/media-elements/image.ts index f189af3e1..ba734f5f5 100644 --- a/projects/common/models/elements/media-elements/image.ts +++ b/projects/common/models/elements/media-elements/image.ts @@ -1,6 +1,6 @@ import { Type } from '@angular/core'; import { ElementFactory } from 'common/util/element.factory'; -import { PositionedUIElement, PositionProperties, UIElement } from 'common/models/elements/element'; +import { PositionedUIElement, PositionProperties, SchemerData, UIElement } from 'common/models/elements/element'; import { ElementComponent } from 'common/directives/element-component.directive'; import { ImageComponent } from 'common/components/media-elements/image.component'; @@ -27,4 +27,20 @@ export class ImageElement extends UIElement implements PositionedUIElement { getComponentFactory(): Type<ElementComponent> { return ImageComponent; } + + hasSchemerData(): boolean { + return this.magnifier; + } + + getSchemerData(): SchemerData { + return { + id: this.id, + type: 'boolean', + format: '', + multiple: false, + nullable: false, + values: [], + valuesComplete: true + }; + } } diff --git a/projects/common/models/section.ts b/projects/common/models/section.ts index b0e3b9feb..4f42cc148 100644 --- a/projects/common/models/section.ts +++ b/projects/common/models/section.ts @@ -1,7 +1,7 @@ import { Type } from '@angular/core'; import { IDManager } from 'common/util/id-manager'; import { - InputElement, + InputElement, PlayerElement, PositionedUIElement, SchemerData, UIElement, @@ -110,6 +110,6 @@ export class Section { .map(element => (element.type === 'drop-list' || element.type === 'drop-list-simple') ? (element as InputElement).getSchemerData(dropLists) : - (element as InputElement | TextElement).getSchemerData()); + (element as InputElement | PlayerElement | TextElement | ImageElement).getSchemerData()); } } -- GitLab