From dcf0c5ca8715ed35b79ade889b9ffd8a235ed5df Mon Sep 17 00:00:00 2001 From: annampak Date: Fri, 5 Jan 2018 19:02:26 +0200 Subject: [PATCH] comment field --- .../dynamic-form-composite-field.html | 2 +- .../dynamic-form-composite-field.ts | 14 ++++++++++++-- .../dynamic-form-section/dynamic-form-section.html | 12 ++++++------ .../dynamic-form-section/dynamic-form-section.ts | 14 ++++++++++++-- dmp-frontend/src/app/models/CompositeField.ts | 5 ++++- dmp-frontend/src/app/models/Field.ts | 6 +++++- .../src/app/models/common/ValidationTypes.ts | 4 ++++ 7 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 dmp-frontend/src/app/models/common/ValidationTypes.ts diff --git a/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.html b/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.html index 30299b5ea..1185b3bf1 100644 --- a/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.html +++ b/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.html @@ -1,4 +1,4 @@ -
+
{{compositeField.title}}
{{compositeField.description}}
diff --git a/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts b/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts index f60d7d531..33d8dcf45 100644 --- a/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts +++ b/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts @@ -21,12 +21,22 @@ export class DynamicFormCompositeFieldComponent implements OnInit { constructor(private visibilityRulesService: VisibilityRulesService) { } - ngOnInit() {debugger; + ngOnInit() { + debugger; console.log(this.form); + if (this.compositeField.hasCommentField == true) { + let newfield: Field = new Field(); + newfield.id = 'comment_' + this.compositeField.id; + newfield.data = {label: "Comments"}; + newfield.viewStyle = {renderStyle: 'freetext', cssClass: ''}; + + this.compositeField.fields.push(newfield); + (this.form.get("fields")).push(newfield.buildForm()); + } } addMultipleField(fieldIndex: number) { - let field: Field = this.compositeField.fields[fieldIndex].cloneForMultiplicity(fieldIndex,""); + let field: Field = this.compositeField.fields[fieldIndex].cloneForMultiplicity(fieldIndex, ""); this.compositeField.fields[fieldIndex].multiplicityItems.push(field); ((this.form.get("fields").get('' + fieldIndex).get('multiplicityItems'))).push(field.buildForm()); } diff --git a/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.html b/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.html index 9e653e7ea..af4528e04 100644 --- a/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.html +++ b/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.html @@ -53,17 +53,17 @@
-->
-
+
-
- -
- + +
+ +
diff --git a/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.ts b/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.ts index 49f15553c..5f734452b 100644 --- a/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.ts +++ b/dmp-frontend/src/app/form/dynamic-form-section/dynamic-form-section.ts @@ -1,7 +1,10 @@ import { VisibilityRulesService } from '../../visibility-rules/visibility-rules.service'; -import { FormGroup } from '@angular/forms'; -import { Section } from '../../entities/model/section'; +import { FormGroup, Form, FormArray } from '@angular/forms'; import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; +import { CompositeField } from '@app/models/CompositeField'; +import { Section } from '@app/models/Section'; + + @Component({ selector: 'df-section', templateUrl: './dynamic-form-section.html', @@ -21,4 +24,11 @@ export class DynamicFormSectionComponent implements OnInit { ngOnInit() { console.log(this.section); } + + addMultipleField(fieldsetIndex: number) { + let compositeField: CompositeField = this.section.compositeFields[fieldsetIndex].cloneForMultiplicity(fieldsetIndex); + this.section.compositeFields[fieldsetIndex].multiplicityItems.push(compositeField); + ((this.form.get("compositeFields").get('' + fieldsetIndex).get('multiplicityItems'))).push(compositeField.buildForm()); + } + } \ No newline at end of file diff --git a/dmp-frontend/src/app/models/CompositeField.ts b/dmp-frontend/src/app/models/CompositeField.ts index 0aafa5086..a59fb2cc5 100644 --- a/dmp-frontend/src/app/models/CompositeField.ts +++ b/dmp-frontend/src/app/models/CompositeField.ts @@ -13,6 +13,7 @@ export class CompositeField extends BaseModel implements Serializable(); diff --git a/dmp-frontend/src/app/models/Field.ts b/dmp-frontend/src/app/models/Field.ts index 050d30194..c545dd5c2 100644 --- a/dmp-frontend/src/app/models/Field.ts +++ b/dmp-frontend/src/app/models/Field.ts @@ -5,6 +5,8 @@ import { JsonSerializer } from '../utilities/JsonSerializer'; import { Serializable } from './interfaces/Serializable'; import { Multiplicity } from './Multiplicity'; import { DefaultValue } from './DefaultValue'; +import { ValidationTypes } from '@app/models/common/ValidationTypes'; + export class Field extends BaseModel implements Serializable, FormGenerator{ public id: string; @@ -13,12 +15,13 @@ export class Field extends BaseModel implements Serializable, FormGenerat public defaultValue: DefaultValue; public description: string; public extendedDescription: string; - public viewStyle: string; + public viewStyle: any; public defaultVisibility: boolean; public page: number; public multiplicity: Multiplicity; public multiplicityItems: Array = new Array(); public data: any; + public validations: Array; fromJSONObject(item: any): Field { this.id = item.id; @@ -29,6 +32,7 @@ export class Field extends BaseModel implements Serializable, FormGenerat this.viewStyle = item.viewStyle; this.defaultVisibility = item.defaultVisibility; this.page = item.page; + this.validations = item.validations; this.multiplicity = JsonSerializer.fromJSONObject(item.multiplicity, Multiplicity); this.defaultValue = JsonSerializer.fromJSONObject(item.defaultValue, DefaultValue); this.value = this.defaultValue.value && !item.value ? this.defaultValue.value : item.value; diff --git a/dmp-frontend/src/app/models/common/ValidationTypes.ts b/dmp-frontend/src/app/models/common/ValidationTypes.ts new file mode 100644 index 000000000..49f99ca51 --- /dev/null +++ b/dmp-frontend/src/app/models/common/ValidationTypes.ts @@ -0,0 +1,4 @@ +export enum ValidationTypes { + None = 0, + Required = 1 + } \ No newline at end of file