diff --git a/dmp-frontend/src/app/models/DefaultValue.ts b/dmp-frontend/src/app/models/DefaultValue.ts new file mode 100644 index 000000000..470622aed --- /dev/null +++ b/dmp-frontend/src/app/models/DefaultValue.ts @@ -0,0 +1,24 @@ +import { BaseModel } from './BaseModel'; +import { FormGroup } from '@angular/forms'; +import { FormGenerator } from './interfaces/FormGenerator'; +import { Serializable } from './interfaces/Serializable'; + +export class DefaultValue extends BaseModel implements Serializable, FormGenerator{ + public type: string; + public value: string; + + fromJSONObject(item: any): DefaultValue { + this.type = item.type; + this.value = item.value; + return this; + } + + buildForm(): FormGroup { + let formGroup = this.formBuilder.group({ + type: [this.type], + value: [this.value] + + }); + return formGroup; + } +} \ No newline at end of file diff --git a/dmp-frontend/src/app/models/Field.ts b/dmp-frontend/src/app/models/Field.ts index 12f41af5c..0b11ebea1 100644 --- a/dmp-frontend/src/app/models/Field.ts +++ b/dmp-frontend/src/app/models/Field.ts @@ -4,11 +4,13 @@ import { FormGenerator } from './interfaces/FormGenerator'; import { JsonSerializer } from '../utilities/JsonSerializer'; import { Serializable } from './interfaces/Serializable'; import { Multiplicity } from './Multiplicity'; +import { DefaultValue } from './DefaultValue'; export class Field extends BaseModel implements Serializable, FormGenerator{ public id: string; public title: string; public value: string; + public defaultValue: DefaultValue; public description: string; public extendedDescription: string; public viewStyle: string; @@ -17,16 +19,19 @@ export class Field extends BaseModel implements Serializable, FormGenerat public multiplicity: Multiplicity; public multiplicityItems: Array = new Array(); public data: any; + fromJSONObject(item: any): Field { this.id = item.id; this.title = item.title; - this.value = item.value; + //this.value = item.value; this.description = item.description; this.extendedDescription = item.extendedDescription; this.viewStyle = item.viewStyle; this.defaultVisibility = item.defaultVisibility; this.page = item.page; //this.multiplicity = new JsonSerializer().fromJSONObject(item.multiplicity, Multiplicity); + this.defaultValue = new JsonSerializer().fromJSONObject(item.defaultValue, DefaultValue); + this.value = this.defaultValue.value && !item.value? this.defaultValue.value: item.value; this.multiplicity = new Multiplicity(); this.multiplicity.max = 2; this.multiplicityItems = new JsonSerializer().fromJSONArray(item.multiplicityItems, Field);