From 07acb08beabd7556a55183134c8255bd80b8677e Mon Sep 17 00:00:00 2001 From: annabakouli Date: Fri, 1 Dec 2017 16:17:32 +0200 Subject: [PATCH 1/2] no message --- dmp-admin/src/app/services/rest-base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dmp-admin/src/app/services/rest-base.ts b/dmp-admin/src/app/services/rest-base.ts index bc80e0cae..f880af294 100644 --- a/dmp-admin/src/app/services/rest-base.ts +++ b/dmp-admin/src/app/services/rest-base.ts @@ -18,7 +18,7 @@ export class RestBase { /* */ protocol: string = "http"; - hostname: string = "localhost"; + hostname: string = "dionysus.di.uoa.gr"; port: number = 8080; webappname: string = "dmp-backend"; restpath: string = "rest"; From 83a92b177022aec41bb54dc13b2dfc83c798b061 Mon Sep 17 00:00:00 2001 From: annabakouli Date: Fri, 1 Dec 2017 18:31:47 +0200 Subject: [PATCH 2/2] ui data field --- .../src/app/models/Commons/ListingItem.ts | 20 +++++++++++++ .../app/models/DataField/AutocompleteData.ts | 21 +++++++++++++ .../src/app/models/DataField/DataField.ts | 11 ++++++- .../src/app/models/DataField/RadioBoxData.ts | 26 ++++++++++++++++ .../src/app/models/DataField/WordListData.ts | 30 +++++++++++++++++++ dmp-admin/src/app/models/Field.ts | 18 +++++++++-- dmp-admin/src/app/models/data.ts | 3 +- dmp-admin/src/app/services/rest-base.ts | 2 +- 8 files changed, 125 insertions(+), 6 deletions(-) create mode 100644 dmp-admin/src/app/models/Commons/ListingItem.ts create mode 100644 dmp-admin/src/app/models/DataField/AutocompleteData.ts create mode 100644 dmp-admin/src/app/models/DataField/RadioBoxData.ts create mode 100644 dmp-admin/src/app/models/DataField/WordListData.ts diff --git a/dmp-admin/src/app/models/Commons/ListingItem.ts b/dmp-admin/src/app/models/Commons/ListingItem.ts new file mode 100644 index 000000000..0d1383b07 --- /dev/null +++ b/dmp-admin/src/app/models/Commons/ListingItem.ts @@ -0,0 +1,20 @@ +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Serializable } from '../interfaces/Serializable'; +import { FormGroup, FormBuilder } from '@angular/forms' +export class ListingItem implements Serializable, FormGenerator{ + public label: string; + public value: string; + + fromJSONObject(item: any): ListingItem { + this.label = item.label; + this.value = item.value; + return this; + } + + buildForm(): FormGroup { + return new FormBuilder().group({ + label: [this.label], + value: [this.value] + }) + } +} \ No newline at end of file diff --git a/dmp-admin/src/app/models/DataField/AutocompleteData.ts b/dmp-admin/src/app/models/DataField/AutocompleteData.ts new file mode 100644 index 000000000..86323da37 --- /dev/null +++ b/dmp-admin/src/app/models/DataField/AutocompleteData.ts @@ -0,0 +1,21 @@ +import { DataField } from './DataField'; +import { FormGroup } from '@angular/forms' + +export class AutocompleteData extends DataField{ + + public type:string; + public url:string; + + buildForm():FormGroup{ + return this.formBuilder.group({ + type:[this.type], + url:[this.url] + }) + } + + fromJSONObject(item:any):AutocompleteData{ + this.type = item.type; + this.url = item.url; + return this; + } +} \ No newline at end of file diff --git a/dmp-admin/src/app/models/DataField/DataField.ts b/dmp-admin/src/app/models/DataField/DataField.ts index bc252285f..bcc0cdbeb 100644 --- a/dmp-admin/src/app/models/DataField/DataField.ts +++ b/dmp-admin/src/app/models/DataField/DataField.ts @@ -1,6 +1,15 @@ +import { BaseModel } from '../BaseModel'; import { FormGenerator } from '../interfaces/FormGenerator'; import { Serializable } from '../interfaces/Serializable'; import { FormGroup } from '@angular/forms' -export abstract class DataField implements Serializable,FormGenerator{ +export abstract class DataField extends BaseModel implements Serializable,FormGenerator{ + buildForm():FormGroup{ + throw new Error("Build Form Is not not correctly overriden"); + } + + fromJSONObject(item:any):T{ + throw new Error("From Json Object is not correctly overriden") + } + } \ No newline at end of file diff --git a/dmp-admin/src/app/models/DataField/RadioBoxData.ts b/dmp-admin/src/app/models/DataField/RadioBoxData.ts new file mode 100644 index 000000000..ed059be4d --- /dev/null +++ b/dmp-admin/src/app/models/DataField/RadioBoxData.ts @@ -0,0 +1,26 @@ +import { JsonSerializer } from '../../utilities/JsonSerializer'; +import { DataField } from './DataField'; +import { ListingItem } from '../Commons/ListingItem'; +import { FormGroup } from '@angular/forms' + +export class RadioBoxData extends DataField{ + public options:Array; + + buildForm():FormGroup{ + let formGroup = this.formBuilder.group({}); + let optionsFormArray = new Array(); + if (this.options) { + this.options.forEach(item => { + let form: FormGroup = item.buildForm(); + optionsFormArray.push(form) + }) + } + formGroup.addControl('options', this.formBuilder.array(optionsFormArray)); + return formGroup; + } + + fromJSONObject(item:any):RadioBoxData{ + this.options = new JsonSerializer().fromJSONArray(item.options,ListingItem); + return this; + } +} \ No newline at end of file diff --git a/dmp-admin/src/app/models/DataField/WordListData.ts b/dmp-admin/src/app/models/DataField/WordListData.ts new file mode 100644 index 000000000..3e5a86033 --- /dev/null +++ b/dmp-admin/src/app/models/DataField/WordListData.ts @@ -0,0 +1,30 @@ +import { JsonSerializer } from '../../utilities/JsonSerializer'; +import { ListingItem } from '../Commons/ListingItem'; +import { DataField } from './DataField'; +import { FormGroup } from '@angular/forms' + +export class WordListData extends DataField{ + public type:string; + public options:Array; + buildForm():FormGroup{ + let formGroup = this.formBuilder.group({ + type:[this.type] + }); + let optionsFormArray = new Array(); + if (this.options) { + this.options.forEach(item => { + let form: FormGroup = item.buildForm(); + optionsFormArray.push(form) + }) + } + formGroup.addControl('options', this.formBuilder.array(optionsFormArray)); + + return formGroup; + } + + fromJSONObject(item:any):WordListData{ + this.type = item.type; + this.options = new JsonSerializer().fromJSONArray(item.options,ListingItem); + return this; + } +} \ No newline at end of file diff --git a/dmp-admin/src/app/models/Field.ts b/dmp-admin/src/app/models/Field.ts index 00cc79bc1..c3b6fcab2 100644 --- a/dmp-admin/src/app/models/Field.ts +++ b/dmp-admin/src/app/models/Field.ts @@ -1,3 +1,7 @@ +import { RadioBoxData } from './DataField/RadioBoxData'; +import { WordListData } from './DataField/WordListData'; +import { AutocompleteData } from './DataField/AutocompleteData'; +import { DataField } from './DataField/DataField'; import { BaseModel } from './BaseModel'; import { FormGroup } from '@angular/forms'; import { FormGenerator } from './interfaces/FormGenerator'; @@ -22,6 +26,7 @@ export class Field extends BaseModel implements Serializable,FormGenerato public multiplicity: Multiplicity = new Multiplicity(); public ordinal: number; public visible: Visibility = new Visibility(); + public data:DataField; fromJSONObject(item:any):Field{ this.id = item.id; @@ -35,6 +40,14 @@ export class Field extends BaseModel implements Serializable,FormGenerato this.ordinal = item.ordinal; this.viewStyle = new JsonSerializer().fromJSONObject(item.viewStyle, ViewStyle); this.visible = new JsonSerializer().fromJSONObject(item.visible, Visibility); + if(item.data) { + if(this.viewStyle.renderStyle === "combobox"){ + if(item.data.type === "autocomplete") this.data = new JsonSerializer().fromJSONObject(item.data,AutocompleteData); + if(item.data.type === "wordlist")this.data = new JsonSerializer().fromJSONObject(item.data,WordListData); + }else{ + if(this.viewStyle.renderStyle === "radiobox") this.data = new JsonSerializer().fromJSONObject(item.data,RadioBoxData); + } + } return this; } @@ -53,8 +66,9 @@ export class Field extends BaseModel implements Serializable,FormGenerato formGroup.addControl("multiplicity", this.multiplicity.buildForm()); formGroup.addControl("defaultValue", this.defaultValue.buildForm()); formGroup.addControl("viewStyle", this.viewStyle.buildForm()); - //formGroup.addControl("visible", this.visible.buildForm()); - + formGroup.addControl("visible", this.visible.buildForm()); + if(this.data)formGroup.addControl("data", this.data.buildForm()); + return formGroup; } } \ No newline at end of file diff --git a/dmp-admin/src/app/models/data.ts b/dmp-admin/src/app/models/data.ts index bcc3b8d2a..f2ed3336c 100644 --- a/dmp-admin/src/app/models/data.ts +++ b/dmp-admin/src/app/models/data.ts @@ -16,8 +16,7 @@ export class Data extends BaseModel implements Serializable,FormGenerator< buildForm():FormGroup{ let formGroup = this.formBuilder.group({ type: [this.type], - url: [this.url] - + url: [this.url] }); return formGroup; } diff --git a/dmp-admin/src/app/services/rest-base.ts b/dmp-admin/src/app/services/rest-base.ts index f880af294..bc80e0cae 100644 --- a/dmp-admin/src/app/services/rest-base.ts +++ b/dmp-admin/src/app/services/rest-base.ts @@ -18,7 +18,7 @@ export class RestBase { /* */ protocol: string = "http"; - hostname: string = "dionysus.di.uoa.gr"; + hostname: string = "localhost"; port: number = 8080; webappname: string = "dmp-backend"; restpath: string = "rest";