From 8ed421ccfce3b33da6c0511f4976fe79180ba6d9 Mon Sep 17 00:00:00 2001 From: annampak Date: Mon, 18 Sep 2017 13:18:17 +0300 Subject: [PATCH] new http call , fieldgroups --- dmp-frontend/package-lock.json | 12 +-- dmp-frontend/src/app/app.component.css | 8 +- .../fields/dynamic-form-field.component.html | 2 +- .../fields/dynamic-form-field.component.ts | 20 +++++ .../app/services/dataModelBuilder.service.ts | 90 +++++++++++-------- .../src/app/services/server.service.ts | 3 +- package-lock.json | 3 + 7 files changed, 90 insertions(+), 48 deletions(-) create mode 100644 package-lock.json diff --git a/dmp-frontend/package-lock.json b/dmp-frontend/package-lock.json index 3ac4a8ad4..52d12fca7 100644 --- a/dmp-frontend/package-lock.json +++ b/dmp-frontend/package-lock.json @@ -8065,6 +8065,12 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -8092,12 +8098,6 @@ } } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", diff --git a/dmp-frontend/src/app/app.component.css b/dmp-frontend/src/app/app.component.css index 6e45e32e9..a5d0bf7e9 100644 --- a/dmp-frontend/src/app/app.component.css +++ b/dmp-frontend/src/app/app.component.css @@ -1 +1,7 @@ -[hidden] { display: none ;} \ No newline at end of file +.hide{ + display:none; +} + +.show { + display:block; +} \ No newline at end of file diff --git a/dmp-frontend/src/app/form/fields/dynamic-form-field.component.html b/dmp-frontend/src/app/form/fields/dynamic-form-field.component.html index db72e2951..3c49ed2e8 100644 --- a/dmp-frontend/src/app/form/fields/dynamic-form-field.component.html +++ b/dmp-frontend/src/app/form/fields/dynamic-form-field.component.html @@ -82,7 +82,7 @@ - + diff --git a/dmp-frontend/src/app/form/fields/dynamic-form-field.component.ts b/dmp-frontend/src/app/form/fields/dynamic-form-field.component.ts index 5a0c71149..bd00e5c49 100644 --- a/dmp-frontend/src/app/form/fields/dynamic-form-field.component.ts +++ b/dmp-frontend/src/app/form/fields/dynamic-form-field.component.ts @@ -29,4 +29,24 @@ export class DynamicFormFieldComponent { if(field.visible == true) return true; } + FieldValueRuleMethod(field, rule, dataModel){ //fieldValue rule -- checks the value of target + if (rule._ruleStyle == "range"){ + dataModel.fields.forEach(fld => { + if (fld.key == rule._target && rule._from< fld.value x.order === field.group)); + console.log(this.dataModel); + + + } } \ No newline at end of file diff --git a/dmp-frontend/src/app/services/dataModelBuilder.service.ts b/dmp-frontend/src/app/services/dataModelBuilder.service.ts index ed86dfffc..f8545fb6f 100644 --- a/dmp-frontend/src/app/services/dataModelBuilder.service.ts +++ b/dmp-frontend/src/app/services/dataModelBuilder.service.ts @@ -11,39 +11,39 @@ import { GroupBase } from '../form/dynamic-form-group/group-base'; export class dataModelBuilder { private dataModel : DataModel; - + private fields : FieldBase[]; + public getDataModel(data){ if(this.dataModel != null) return this.dataModel; - + + let fldGroup = data.dataset.profile.viewstyle.definition.root.fieldGroups.fieldGroup;//one fieldgroup this.dataModel = new DataModel(); - this.dataModel.fields = this.getFieldVisibility(data.dataset.profile.viewstyle.definition.root.fields.field); - this.dataModel.groups = - //this.getGroups(data.dataset.profile.viewstyle.definition.root.fieldGroups.fieldGroup, this.dataModel.fields); - this.getDummyGroups(); + //this.dataModel.fields = this.getFieldVisibility(data.dataset.profile.viewstyle.definition.root.fields.field); + this.fields = this.buildFields(data.dataset.profile.viewstyle.definition.root.fields.field); + this.dataModel.groups = this.getGroups(data.dataset.profile.viewstyle.definition.root.fieldGroups.fieldGroup, fldGroup, this.fields); + //this.getDummyGroups(); return this.dataModel; } - private getFieldVisibility(fields:any[]) { + private buildFields(fields:any[]) { console.log(fields); let fieldsVisible :FieldBase[] =[]; fields.forEach(element => { if (element.viewStyle._renderstyle == "freetext"){ let newfield:FieldBase ; let rule = new Rule(); - //rule.target = element.visible.rule._target; - //rule.ruleType = element.visible.rule._type; newfield = new TextboxField({ - label: element._attribute, - key:element.title._id, + label: element.title.__cdata, + key:element._id, value: 'DMP1', required: true, - ordinal:element._ordinal, + order:element._ordinal, rules: new Array(), - visible: true, + visible: element._defaultVisibility, group : element._group }); if (element.visible.rule) @@ -58,34 +58,34 @@ export class dataModelBuilder { fieldsVisible.push(newfield); } - else if (element.viewStyle._renderstyle == "combobox"){ + else if (element.viewStyle._renderstyle == "dropdown" ||element.viewStyle._renderstyle == "combobox"){//to choose one of these in xml let newfield:DropdownField; let rule = new Rule(); - //rule.target = element.visible.rule._target; - //rule.ruleType = element.visible.rule._type; newfield = new DropdownField({ - label: element._attribute, - key:element.title._id, + label: element.title.__cdata, + key:element._id, value: 'DMP1', required: true, - ordinal:element._ordinal, + order:element._ordinal, rule: element.visible.rule, - visible: true + visible: element._defaultVisibility, + group : element._group }); fieldsVisible.push(newfield); } - else if (element.viewStyle._renderstyle == "checkbox"){ + else if (element.viewStyle._renderstyle == "checkbox"||element.viewStyle._renderstyle == "checkBox"){ let newfield:CheckBoxField; - //rule.target = element.visible.rule._target; - //rule.ruleType = element.visible.rule._type; + let rule = new Array(); newfield = new CheckBoxField({ - label: element._attribute, + label: element.title.__cdata, key:element._id, value: true, required: true, - ordinal:element._ordinal, - rule: element.visible.rule, - visible: true + order:element._ordinal, + rule: element.visible.rule != undefined ? element.visible.rule: rule, + visible: element._defaultVisibility, + group : element._group, + type: "checkbox" }); fieldsVisible.push(newfield); } @@ -94,20 +94,32 @@ export class dataModelBuilder { return fieldsVisible; } - private getGroups(fieldGroups:any[], fields:any[]){ + private getGroups(fieldGroups:any[], fldGroup, fields:any[]){ let groups :GroupBase[] =[]; + let newfldGroup = new GroupBase(); + newfldGroup.groupFields = new Array(); - fieldGroups.forEach(fieldGroup =>{ - let newfldGroup = new GroupBase(); - newfldGroup.groupFields = new Array(); - fields.forEach(field => { - if(fieldGroup._id == field.group){ - newfldGroup.groupFields.push(field); - } - }); - newfldGroup.title = fieldGroup.title.__cdata; - groups.push(newfldGroup) - }); + if(fieldGroups.length>1) + fieldGroups.forEach(fieldGroup =>{ + fields.forEach(field => { + if(fieldGroup._id == field.group){ + newfldGroup.groupFields.push(field); + }else + this.dataModel.fields.push(field); + }); + newfldGroup.title = fieldGroup.title.__cdata; + groups.push(newfldGroup) + }); + else{ + fields.forEach(field => { + if(fldGroup._id == field.group){ + newfldGroup.groupFields.push(field); + }else + this.dataModel.fields.push(field); + }); + newfldGroup.title = fldGroup.title.__cdata; + groups.push(newfldGroup) + } return groups; } diff --git a/dmp-frontend/src/app/services/server.service.ts b/dmp-frontend/src/app/services/server.service.ts index 2ff4c5f49..b09db9662 100644 --- a/dmp-frontend/src/app/services/server.service.ts +++ b/dmp-frontend/src/app/services/server.service.ts @@ -18,7 +18,8 @@ export class ServerService { xml2jsonOBJ: any; //fetchURL: string = 'http://dl010.madgik.di.uoa.gr:8080/dmp-backend/rest/DMP/a868dbbb-ee37-4ce6-81c8-27048e0599a9'; - fetchURL: string = 'http://dl010.madgik.di.uoa.gr:8080/dmp-backend/rest/DMP/a71a6a92-5c23-40d7-ab87-e30bc860f5a4';//include rules! + //fetchURL: string = 'http://dl010.madgik.di.uoa.gr:8080/dmp-backend/rest/DMP/a71a6a92-5c23-40d7-ab87-e30bc860f5a4';//include rules! + fetchURL: string = 'http://dl010.madgik.di.uoa.gr:8080/dmp-backend/rest/DMP/ccae5e6b-61e5-42b2-ac46-b720770c8148';//include sections! //fetchURL: string = 'http://dl010.madgik.di.uoa.gr:8080/dmp-backend/rest/DMP/6c845c42-dc09-42ed-9959-cceb3b616364'; /* diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..48e341a09 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +}