diff --git a/dmp-admin/src/app/app.module.ts b/dmp-admin/src/app/app.module.ts index fd7dd5a74..1d56beb33 100644 --- a/dmp-admin/src/app/app.module.ts +++ b/dmp-admin/src/app/app.module.ts @@ -1,4 +1,4 @@ -import { BrowserModule } from '@angular/platform-browser'; +import { BrowserModule } from '@angular/platform-browser'; import { RouterModule, Routes } from '@angular/router'; import { NgModule } from '@angular/core'; //import { HttpModule, Http, Response, RequestOptions, RequestMethod, Headers, URLSearchParams } from '@angular/http'; @@ -61,12 +61,13 @@ import { DatareposEditorComponent } from './managers/datarepos-editor/datarepos- import { DatasetprofileEditorComponent } from './managers/datasetprofile-editor/datasetprofile-editor.component'; import { DatasetProfileGUIEditorComponent } from './dataset-profile-gui-editor/dataset-profile-gui-editor.component'; -import { FieldFormComponent } from './field-form/field-form.component'; -import { FormComponent } from './form/form.component'; -import { GroupFieldFormComponent } from './groupfield-form/groupfield-form.component'; -import { RuleFormComponent } from './rule-component/rule.component'; -import { SectionFormComponent } from './section-form/section-form.component'; -import { CompositeFieldFormComponent } from './compositefield-form/compositefield-form.component'; +import { FieldFormComponent } from './dataset-profile-form/field-form/field-form.component'; +import { FormComponent } from './dataset-profile-form/form/form.component'; +import { GroupFieldFormComponent } from './dataset-profile-form/groupfield-form/groupfield-form.component'; +import { RuleFormComponent } from './dataset-profile-form/rule-component/rule.component'; +import { SectionFormComponent } from './dataset-profile-form/section-form/section-form.component'; +import { PageFormComponent } from './dataset-profile-form/page-form/page-component'; +import { CompositeFieldFormComponent } from './dataset-profile-form/compositefield-form/compositefield-form.component'; import { ComboboxComponent } from './combobox/combobox-component'; import { AutocompleteComponent } from './autocomplete/autocomplete-component'; import { WordlistComponent } from './wordlist/wordlist-component'; @@ -93,7 +94,8 @@ import { RadioBoxComponent } from './radiobox/radiobox-component'; FormComponent, GroupFieldFormComponent, RuleFormComponent, - SectionFormComponent, + SectionFormComponent, + PageFormComponent, CompositeFieldFormComponent, ComboboxComponent, AutocompleteComponent, diff --git a/dmp-admin/src/app/autocomplete/autocomplete-component.ts b/dmp-admin/src/app/autocomplete/autocomplete-component.ts index 01c75b904..c4021147e 100644 --- a/dmp-admin/src/app/autocomplete/autocomplete-component.ts +++ b/dmp-admin/src/app/autocomplete/autocomplete-component.ts @@ -1,9 +1,9 @@ -import { FormGroup } from '@angular/forms'; -import { Field } from '../models/Field'; +import { FormGroup } from '@angular/forms'; +import { Field } from 'app/models/DataSetProfile/Field'; import { Component, Input, OnInit } from '@angular/core'; -import { AutocompleteData } from '../models/DataField/AutocompleteData'; +import { AutocompleteData } from 'app/models/DataField/AutocompleteData'; import { FormArray } from '@angular/forms/src/model'; -import { JsonSerializer } from '../utilities/JsonSerializer'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; @Component({ selector: 'autocomplete-component', diff --git a/dmp-admin/src/app/combobox/combobox-component.ts b/dmp-admin/src/app/combobox/combobox-component.ts index 9441f28be..2a1a99000 100644 --- a/dmp-admin/src/app/combobox/combobox-component.ts +++ b/dmp-admin/src/app/combobox/combobox-component.ts @@ -1,5 +1,5 @@ -import { FormGroup } from '@angular/forms'; -import { Field } from '../models/Field'; +import { FormGroup } from '@angular/forms'; +import { Field } from 'app/models/DataSetProfile/Field'; import { Component, Input, OnInit } from '@angular/core'; @Component({ diff --git a/dmp-admin/src/app/compositefield-form/compositefield-form.component.html b/dmp-admin/src/app/dataset-profile-form/compositefield-form/compositefield-form.component.html similarity index 100% rename from dmp-admin/src/app/compositefield-form/compositefield-form.component.html rename to dmp-admin/src/app/dataset-profile-form/compositefield-form/compositefield-form.component.html diff --git a/dmp-admin/src/app/compositefield-form/compositefield-form.component.ts b/dmp-admin/src/app/dataset-profile-form/compositefield-form/compositefield-form.component.ts similarity index 89% rename from dmp-admin/src/app/compositefield-form/compositefield-form.component.ts rename to dmp-admin/src/app/dataset-profile-form/compositefield-form/compositefield-form.component.ts index c7f8345da..3ae8ef3f5 100644 --- a/dmp-admin/src/app/compositefield-form/compositefield-form.component.ts +++ b/dmp-admin/src/app/dataset-profile-form/compositefield-form/compositefield-form.component.ts @@ -1,7 +1,7 @@ -import { Component, Input } from '@angular/core'; +import { Component, Input } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { CompositeField } from '../models/CompositeField'; -import { Field } from '../models/Field'; +import { CompositeField } from 'app/models/DataSetProfile/CompositeField'; +import { Field } from 'app/models/DataSetProfile/Field'; import { FormArray, FormControl } from '@angular/forms/src/model'; @Component({ diff --git a/dmp-admin/src/app/field-form/field-form.component.html b/dmp-admin/src/app/dataset-profile-form/field-form/field-form.component.html similarity index 100% rename from dmp-admin/src/app/field-form/field-form.component.html rename to dmp-admin/src/app/dataset-profile-form/field-form/field-form.component.html diff --git a/dmp-admin/src/app/field-form/field-form.component.ts b/dmp-admin/src/app/dataset-profile-form/field-form/field-form.component.ts similarity index 80% rename from dmp-admin/src/app/field-form/field-form.component.ts rename to dmp-admin/src/app/dataset-profile-form/field-form/field-form.component.ts index bb07b5f19..1c3738fd0 100644 --- a/dmp-admin/src/app/field-form/field-form.component.ts +++ b/dmp-admin/src/app/dataset-profile-form/field-form/field-form.component.ts @@ -1,10 +1,10 @@ -import { Component, Input } from '@angular/core'; +import { Component, Input } from '@angular/core'; import { FormGroup, FormControl } from '@angular/forms'; -import { Field } from '../models/Field'; -import { Rule } from '../models/Rule'; -import { Multiplicity } from '../models/Multiplicity'; +import { Field } from 'app/models/DataSetProfile/Field'; +import { Rule } from 'app/models/DataSetProfile/Rule'; +import { Multiplicity } from 'app/models/DataSetProfile/Multiplicity'; import { FormArray } from '@angular/forms/src/model'; -import { ComboboxComponent } from '../combobox/combobox-component'; +import { ComboboxComponent } from 'app/combobox/combobox-component'; @Component({ selector: 'field-form', diff --git a/dmp-admin/src/app/form/form.component.html b/dmp-admin/src/app/dataset-profile-form/form/form.component.html similarity index 58% rename from dmp-admin/src/app/form/form.component.html rename to dmp-admin/src/app/dataset-profile-form/form/form.component.html index cb6ccdda2..9d62ee778 100644 --- a/dmp-admin/src/app/form/form.component.html +++ b/dmp-admin/src/app/dataset-profile-form/form/form.component.html @@ -1,4 +1,4 @@ -
+
@@ -29,12 +29,39 @@
-
+ + + + +
diff --git a/dmp-admin/src/app/form/form.component.ts b/dmp-admin/src/app/dataset-profile-form/form/form.component.ts similarity index 71% rename from dmp-admin/src/app/form/form.component.ts rename to dmp-admin/src/app/dataset-profile-form/form/form.component.ts index ca50a49ed..fdd6cbaf7 100644 --- a/dmp-admin/src/app/form/form.component.ts +++ b/dmp-admin/src/app/dataset-profile-form/form/form.component.ts @@ -1,15 +1,17 @@ -import { DatasetProfileService } from '../services/dataset-profile.service'; +import { DatasetProfileService } from 'app/services/dataset-profile.service'; import { Component, OnInit } from '@angular/core'; import { FormGroup, FormControl } from '@angular/forms'; -import { JsonSerializer } from '../utilities/JsonSerializer'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; import { SectionFormComponent } from '../section-form/section-form.component'; -import { Section } from '../models/Section'; -import { FieldGroup } from '../models/FieldGroup'; -import { DatasetProfileModel } from '../models/DatasetProfileModel'; -import { TestModel } from '../testModel/testModel'; +import { Section } from 'app/models/DataSetProfile/Section'; +import { FieldGroup } from 'app/models/DataSetProfile/FieldGroup'; +import { DatasetProfileModel } from 'app/models/DataSetProfile/DatasetProfileModel'; +import { TestModel } from 'app/testModel/testModel'; import { FormArray } from '@angular/forms/src/model'; -import { RestBase } from '../services/rest-base'; +import { RestBase } from 'app/services/rest-base'; import { Router, ActivatedRoute, ParamMap, Params } from '@angular/router'; +import { Page } from 'app/models/DataSetProfile/Page' +import { PageFormComponent } from '../page-form/page-component' @Component({ selector: 'form-comp', @@ -41,7 +43,8 @@ export class FormComponent { } else{ - this.addSection(); + this.addSection(); + this.addPage(0); } // this.dataModel = new JsonSerializer().fromJSONObject(TestModel, DatasetProfileModel); @@ -61,11 +64,22 @@ export class FormComponent { (this.form.get("sections")).push(section.buildForm()); } + addPage(number) { + let page: Page = new Page(this.dataModel.pages.length); + this.dataModel.pages.push(page); + (this.form.get("pages")).push(page.buildForm()); + } + DeleteSection(index) { this.dataModel.sections.splice(index,1); (this.form.get("sections")).removeAt(index) } + DeletePage(index) { + this.dataModel.pages.splice(index, 1); + (this.form.get("pages")).removeAt(index) + } + createForm(data) { return this.restBase.post("/admin/addDmp", data); } diff --git a/dmp-admin/src/app/groupfield-form/groupfield-form.component.html b/dmp-admin/src/app/dataset-profile-form/groupfield-form/groupfield-form.component.html similarity index 100% rename from dmp-admin/src/app/groupfield-form/groupfield-form.component.html rename to dmp-admin/src/app/dataset-profile-form/groupfield-form/groupfield-form.component.html diff --git a/dmp-admin/src/app/groupfield-form/groupfield-form.component.ts b/dmp-admin/src/app/dataset-profile-form/groupfield-form/groupfield-form.component.ts similarity index 79% rename from dmp-admin/src/app/groupfield-form/groupfield-form.component.ts rename to dmp-admin/src/app/dataset-profile-form/groupfield-form/groupfield-form.component.ts index 08682295a..31519b0ff 100644 --- a/dmp-admin/src/app/groupfield-form/groupfield-form.component.ts +++ b/dmp-admin/src/app/dataset-profile-form/groupfield-form/groupfield-form.component.ts @@ -1,9 +1,9 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { FieldGroup } from '../models/FieldGroup'; -import { CompositeField } from '../models/CompositeField'; +import { FieldGroup } from 'app/models/DataSetProfile/FieldGroup'; +import { CompositeField } from 'app/models/DataSetProfile/CompositeField'; import { FormArray } from '@angular/forms/src/model'; -import { Field } from '../models/Field'; +import { Field } from 'app/models/DataSetProfile/Field'; @Component({ selector: 'groupfield-form', diff --git a/dmp-admin/src/app/dataset-profile-form/page-form/page-component.html b/dmp-admin/src/app/dataset-profile-form/page-form/page-component.html new file mode 100644 index 000000000..3ad68805d --- /dev/null +++ b/dmp-admin/src/app/dataset-profile-form/page-form/page-component.html @@ -0,0 +1,8 @@ +
+
+
+ + +
+
+
\ No newline at end of file diff --git a/dmp-admin/src/app/dataset-profile-form/page-form/page-component.ts b/dmp-admin/src/app/dataset-profile-form/page-form/page-component.ts new file mode 100644 index 000000000..5924b408a --- /dev/null +++ b/dmp-admin/src/app/dataset-profile-form/page-form/page-component.ts @@ -0,0 +1,18 @@ +import { Component, Input, Output, EventEmitter } from '@angular/core'; +import { FormGroup } from '@angular/forms' +import { Page } from 'app/models/DataSetProfile/Page' + +@Component({ + selector: 'page-form', + templateUrl: './page-component.html', + styleUrls: [] +}) + +export class PageFormComponent { + @Input() form: FormGroup; + @Input() dataModel: Page; + + TargetValidation() { + } + +} \ No newline at end of file diff --git a/dmp-admin/src/app/rule-component/rule.component.html b/dmp-admin/src/app/dataset-profile-form/rule-component/rule.component.html similarity index 100% rename from dmp-admin/src/app/rule-component/rule.component.html rename to dmp-admin/src/app/dataset-profile-form/rule-component/rule.component.html diff --git a/dmp-admin/src/app/rule-component/rule.component.ts b/dmp-admin/src/app/dataset-profile-form/rule-component/rule.component.ts similarity index 66% rename from dmp-admin/src/app/rule-component/rule.component.ts rename to dmp-admin/src/app/dataset-profile-form/rule-component/rule.component.ts index 251371c34..01b70230f 100644 --- a/dmp-admin/src/app/rule-component/rule.component.ts +++ b/dmp-admin/src/app/dataset-profile-form/rule-component/rule.component.ts @@ -1,6 +1,6 @@ -import { Component, Input, Output, EventEmitter } from '@angular/core'; +import { Component, Input, Output, EventEmitter } from '@angular/core'; import { FormGroup } from '@angular/forms' -import { Rule } from '../models/Rule' +import { Rule } from 'app/models/DataSetProfile/Rule' @Component({ selector: 'rule-form', diff --git a/dmp-admin/src/app/section-form/section-form.component.css b/dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.css similarity index 100% rename from dmp-admin/src/app/section-form/section-form.component.css rename to dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.css diff --git a/dmp-admin/src/app/section-form/section-form.component.html b/dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.html similarity index 91% rename from dmp-admin/src/app/section-form/section-form.component.html rename to dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.html index 42b549483..1b2348a8d 100644 --- a/dmp-admin/src/app/section-form/section-form.component.html +++ b/dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.html @@ -1,4 +1,4 @@ -
+
@@ -15,7 +15,10 @@
- + +
Page is required
diff --git a/dmp-admin/src/app/section-form/section-form.component.ts b/dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.ts similarity index 58% rename from dmp-admin/src/app/section-form/section-form.component.ts rename to dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.ts index 50239e796..da6bcb8ab 100644 --- a/dmp-admin/src/app/section-form/section-form.component.ts +++ b/dmp-admin/src/app/dataset-profile-form/section-form/section-form.component.ts @@ -1,12 +1,13 @@ -import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { Section } from '../models/Section'; -import { FieldGroup } from '../models/FieldGroup'; +import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { Section } from 'app/models/DataSetProfile/Section'; +import { FieldGroup } from 'app/models/DataSetProfile/FieldGroup'; import { FormArray } from '@angular/forms/src/model'; -import { DatasetProfileModel } from '../models/DatasetProfileModel'; -import { CompositeField } from '../models/CompositeField'; -import { Field } from '../models/Field'; - +import { DatasetProfileModel } from 'app/models/DataSetProfile/DatasetProfileModel'; +import { CompositeField } from 'app/models/DataSetProfile/CompositeField'; +import { Field } from 'app/models/DataSetProfile/Field'; +import { Page } from 'app/models/DataSetProfile/Page'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; @Component({ selector: 'section-form', @@ -23,7 +24,11 @@ export class SectionFormComponent { constructor() { } ngOnInit() { - //this.addGroupField(); //for new DatasetProfile + var self = this; + + this.form.root.get("pages").valueChanges.subscribe(function(value) { + self.keepPageSelectionValid(value); + }); } addGroupField() { @@ -60,4 +65,10 @@ export class SectionFormComponent { (this.form.get("sections")).removeAt(index); } + keepPageSelectionValid(pagesJson: Array) { + let selectedPage = this.form.get("page").value as number; + let pages: Array = new JsonSerializer().fromJSONArray(pagesJson, Page); + if (!isNaN(selectedPage) && pages.find(elem => elem.id === selectedPage) === undefined) + this.form.get("page").reset(); + } } \ No newline at end of file diff --git a/dmp-admin/src/app/models/CompositeField.ts b/dmp-admin/src/app/models/DataSetProfile/CompositeField.ts similarity index 85% rename from dmp-admin/src/app/models/CompositeField.ts rename to dmp-admin/src/app/models/DataSetProfile/CompositeField.ts index cd3c54c66..e2d7dfb5b 100644 --- a/dmp-admin/src/app/models/CompositeField.ts +++ b/dmp-admin/src/app/models/DataSetProfile/CompositeField.ts @@ -1,7 +1,7 @@ -import { FormGroup } from '@angular/forms'; -import { JsonSerializer } from '../utilities/JsonSerializer'; -import { Serializable } from './interfaces/Serializable'; -import { BaseModel } from './BaseModel'; +import { FormGroup } from '@angular/forms'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; +import { Serializable } from '../interfaces/Serializable'; +import { BaseModel } from '../BaseModel'; import {Field} from './Field' import {Multiplicity} from './Multiplicity' diff --git a/dmp-admin/src/app/models/DataSetProfile/DatasetProfileModel.ts b/dmp-admin/src/app/models/DataSetProfile/DatasetProfileModel.ts new file mode 100644 index 000000000..ea68ee4c6 --- /dev/null +++ b/dmp-admin/src/app/models/DataSetProfile/DatasetProfileModel.ts @@ -0,0 +1,43 @@ +import { BaseModel } from '../BaseModel'; +import { FormBuilder, FormGroup, FormControl } from '@angular/forms'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; +import { Section } from './Section'; +import { Serializable } from '../interfaces/Serializable'; +import { Page } from "./Page"; + +export class DatasetProfileModel extends BaseModel implements Serializable,FormGenerator{ + + public sections: Array
= new Array
(); + public pages: Array = new Array(); + public label: string; + + fromJSONObject(item:any):DatasetProfileModel{ + this.sections = new JsonSerializer
().fromJSONArray(item.sections, Section); + this.pages = new JsonSerializer().fromJSONArray(item.pages, Page); + this.label = item.label; + return this; + } + + buildForm():FormGroup{ + let formGroup: FormGroup = new FormBuilder().group({}); + + let sectionsFormArray = new Array(); + this.sections.forEach(item => { + let form: FormGroup = item.buildForm(); + sectionsFormArray.push(form) + }) + formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray)); + + let pagesFormArray = new Array(); + this.pages.forEach(item => { + let form: FormGroup = item.buildForm(); + pagesFormArray.push(form) + }) + formGroup.addControl('pages', this.formBuilder.array(pagesFormArray)); + + formGroup.addControl('label', new FormControl(this.label)); + return formGroup; + } + +} \ No newline at end of file diff --git a/dmp-admin/src/app/models/DefaultValue.ts b/dmp-admin/src/app/models/DataSetProfile/DefaultValue.ts similarity index 76% rename from dmp-admin/src/app/models/DefaultValue.ts rename to dmp-admin/src/app/models/DataSetProfile/DefaultValue.ts index c06ca586c..c2bec0ea5 100644 --- a/dmp-admin/src/app/models/DefaultValue.ts +++ b/dmp-admin/src/app/models/DataSetProfile/DefaultValue.ts @@ -1,7 +1,7 @@ -import { BaseModel } from './BaseModel'; +import { BaseModel } from '../BaseModel'; import { FormGroup } from '@angular/forms'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { Serializable } from './interfaces/Serializable'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Serializable } from '../interfaces/Serializable'; export class DefaultValue extends BaseModel implements Serializable,FormGenerator{ public type:string; diff --git a/dmp-admin/src/app/models/Field.ts b/dmp-admin/src/app/models/DataSetProfile/Field.ts similarity index 87% rename from dmp-admin/src/app/models/Field.ts rename to dmp-admin/src/app/models/DataSetProfile/Field.ts index 3261f432c..f74d1aba8 100644 --- a/dmp-admin/src/app/models/Field.ts +++ b/dmp-admin/src/app/models/DataSetProfile/Field.ts @@ -1,12 +1,12 @@ -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 { 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'; -import { JsonSerializer } from '../utilities/JsonSerializer'; -import { Serializable } from './interfaces/Serializable'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; +import { Serializable } from '../interfaces/Serializable'; import {Rule} from './Rule'; import {Multiplicity} from './Multiplicity'; import {DefaultValue} from './DefaultValue'; diff --git a/dmp-admin/src/app/models/FieldGroup.ts b/dmp-admin/src/app/models/DataSetProfile/FieldGroup.ts similarity index 86% rename from dmp-admin/src/app/models/FieldGroup.ts rename to dmp-admin/src/app/models/DataSetProfile/FieldGroup.ts index 3ec538c2d..18df097c1 100644 --- a/dmp-admin/src/app/models/FieldGroup.ts +++ b/dmp-admin/src/app/models/DataSetProfile/FieldGroup.ts @@ -1,11 +1,11 @@ -import { CompositeField } from './CompositeField'; -import { BaseModel } from './BaseModel'; +import { CompositeField } from './CompositeField'; +import { BaseModel } from '../BaseModel'; import { FormGroup } from '@angular/forms'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { Validation } from './Validation'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Validation } from '../Validation'; import { Rule } from './Rule'; -import { JsonSerializer } from '../utilities/JsonSerializer'; -import { Serializable } from './interfaces/Serializable'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; +import { Serializable } from '../interfaces/Serializable'; import { Field } from './Field'; export class FieldGroup extends BaseModel implements Serializable, FormGenerator{ diff --git a/dmp-admin/src/app/models/Multiplicity.ts b/dmp-admin/src/app/models/DataSetProfile/Multiplicity.ts similarity index 76% rename from dmp-admin/src/app/models/Multiplicity.ts rename to dmp-admin/src/app/models/DataSetProfile/Multiplicity.ts index 66f85c3d8..a0d2069be 100644 --- a/dmp-admin/src/app/models/Multiplicity.ts +++ b/dmp-admin/src/app/models/DataSetProfile/Multiplicity.ts @@ -1,7 +1,7 @@ -import { BaseModel } from './BaseModel'; +import { BaseModel } from '../BaseModel'; import { FormGroup } from '@angular/forms'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { Serializable } from './interfaces/Serializable'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Serializable } from '../interfaces/Serializable'; export class Multiplicity extends BaseModel implements Serializable,FormGenerator{ public min:number; public max:string; diff --git a/dmp-admin/src/app/models/DataSetProfile/Page.ts b/dmp-admin/src/app/models/DataSetProfile/Page.ts new file mode 100644 index 000000000..36f70e76e --- /dev/null +++ b/dmp-admin/src/app/models/DataSetProfile/Page.ts @@ -0,0 +1,30 @@ +import { BaseModel } from '../BaseModel'; +import { FormGroup } from '@angular/forms'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Serializable } from '../interfaces/Serializable'; + +export class Page extends BaseModel implements Serializable, FormGenerator{ + public title: string; + public id: number; + + constructor(id?: number) { + super(); + if (isNaN(id)) this.id = 0; + else this.id = id; + } + + fromJSONObject(item: any): Page { + this.title = item.title; + this.id = item.id; + return this; + } + + buildForm(): FormGroup { + let formGroup = this.formBuilder.group({ + title: [this.title], + id: [this.id] + + }); + return formGroup; + } +} \ No newline at end of file diff --git a/dmp-admin/src/app/models/Rule.ts b/dmp-admin/src/app/models/DataSetProfile/Rule.ts similarity index 85% rename from dmp-admin/src/app/models/Rule.ts rename to dmp-admin/src/app/models/DataSetProfile/Rule.ts index cc1a0f4b3..22f697967 100644 --- a/dmp-admin/src/app/models/Rule.ts +++ b/dmp-admin/src/app/models/DataSetProfile/Rule.ts @@ -1,7 +1,7 @@ -import { BaseModel } from './BaseModel'; +import { BaseModel } from '../BaseModel'; import { FormGroup } from '@angular/forms'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { Serializable } from './interfaces/Serializable'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Serializable } from '../interfaces/Serializable'; export class Rule extends BaseModel implements Serializable,FormGenerator{ public sourceField:string; public target:string; diff --git a/dmp-admin/src/app/models/Section.ts b/dmp-admin/src/app/models/DataSetProfile/Section.ts similarity index 82% rename from dmp-admin/src/app/models/Section.ts rename to dmp-admin/src/app/models/DataSetProfile/Section.ts index 96313363f..c24365448 100644 --- a/dmp-admin/src/app/models/Section.ts +++ b/dmp-admin/src/app/models/DataSetProfile/Section.ts @@ -1,9 +1,10 @@ -import { BaseModel } from './BaseModel'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; -import { JsonSerializer } from '../utilities/JsonSerializer'; -import { Serializable } from './interfaces/Serializable'; +import { BaseModel } from '../BaseModel'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; +import { Serializable } from '../interfaces/Serializable'; import { FieldGroup } from './FieldGroup'; + export class Section extends BaseModel implements Serializable
, FormGenerator{ public sections: Array
= new Array
(); public fieldGroups: Array = new Array(); @@ -44,8 +45,8 @@ export class Section extends BaseModel implements Serializable
, FormGen } formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray)); formGroup.addControl('fieldGroups', this.formBuilder.array(fieldGroupsFormArray)); - formGroup.addControl('defaultVisibility', new FormControl(this.defaultVisibility)); - formGroup.addControl('page', new FormControl(this.page)); + formGroup.addControl('defaultVisibility', new FormControl(this.defaultVisibility)); + formGroup.addControl('page', new FormControl(this.page, [Validators.required])); formGroup.addControl('id', new FormControl(this.id)); formGroup.addControl('title', new FormControl(this.title)); formGroup.addControl('description', new FormControl(this.description)); diff --git a/dmp-admin/src/app/models/ViewStyle.ts b/dmp-admin/src/app/models/DataSetProfile/ViewStyle.ts similarity index 78% rename from dmp-admin/src/app/models/ViewStyle.ts rename to dmp-admin/src/app/models/DataSetProfile/ViewStyle.ts index 665a2bab6..c5ef91a9d 100644 --- a/dmp-admin/src/app/models/ViewStyle.ts +++ b/dmp-admin/src/app/models/DataSetProfile/ViewStyle.ts @@ -1,7 +1,7 @@ -import { BaseModel } from './BaseModel'; +import { BaseModel } from '../BaseModel'; import { FormGroup } from '@angular/forms'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { Serializable } from './interfaces/Serializable'; +import { FormGenerator } from '../interfaces/FormGenerator'; +import { Serializable } from '../interfaces/Serializable'; export class ViewStyle extends BaseModel implements Serializable,FormGenerator{ public cssClass:string; diff --git a/dmp-admin/src/app/models/Visibility.ts b/dmp-admin/src/app/models/DataSetProfile/Visibility.ts similarity index 80% rename from dmp-admin/src/app/models/Visibility.ts rename to dmp-admin/src/app/models/DataSetProfile/Visibility.ts index 979ee5adf..408053501 100644 --- a/dmp-admin/src/app/models/Visibility.ts +++ b/dmp-admin/src/app/models/DataSetProfile/Visibility.ts @@ -1,9 +1,9 @@ -import { BaseModel } from './BaseModel'; +import { BaseModel } from '../BaseModel'; import { Rule } from "./Rule"; -import { FormGenerator } from "./interfaces/FormGenerator"; +import { FormGenerator } from "../interfaces/FormGenerator"; import { FormGroup } from '@angular/forms'; -import { Serializable } from './interfaces/Serializable'; -import { JsonSerializer } from '../utilities/JsonSerializer'; +import { Serializable } from '../interfaces/Serializable'; +import { JsonSerializer } from 'app/utilities/JsonSerializer'; export class Visibility extends BaseModel implements Serializable, FormGenerator{ public rules: Array = new Array(); diff --git a/dmp-admin/src/app/models/DatasetProfileModel.ts b/dmp-admin/src/app/models/DatasetProfileModel.ts deleted file mode 100644 index a0392fc84..000000000 --- a/dmp-admin/src/app/models/DatasetProfileModel.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { BaseModel } from './BaseModel'; -import { FormBuilder, FormGroup, FormControl } from '@angular/forms'; -import { FormGenerator } from './interfaces/FormGenerator'; -import { JsonSerializer } from '../utilities/JsonSerializer'; -import { Section } from './Section'; -import { Serializable } from './interfaces/Serializable'; -export class DatasetProfileModel extends BaseModel implements Serializable,FormGenerator{ - - public sections:Array
= new Array
(); - public label: string; - - fromJSONObject(item:any):DatasetProfileModel{ - this.sections = new JsonSerializer
().fromJSONArray(item.sections,Section); - this.label = item.label; - return this; - } - - buildForm():FormGroup{ - let formGroup:FormGroup = new FormBuilder().group({}); - let sectionsFormArray = new Array(); - this.sections.forEach(item => { - let form: FormGroup = item.buildForm(); - sectionsFormArray.push(form) - }) - formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray)); - formGroup.addControl('label', new FormControl(this.label)); - return formGroup; - } - -} \ No newline at end of file diff --git a/dmp-admin/src/app/radiobox/radiobox-component.ts b/dmp-admin/src/app/radiobox/radiobox-component.ts index ca41461fb..16416990a 100644 --- a/dmp-admin/src/app/radiobox/radiobox-component.ts +++ b/dmp-admin/src/app/radiobox/radiobox-component.ts @@ -1,5 +1,5 @@ -import { FormGroup } from '@angular/forms'; -import { Field } from '../models/Field'; +import { FormGroup } from '@angular/forms'; +import { Field } from '../models/DataSetProfile/Field'; import { Component, Input, OnInit } from '@angular/core'; import { RadioBoxData } from '../models/DataField/RadioBoxData'; import { FormArray } from '@angular/forms/src/model'; diff --git a/dmp-admin/src/app/routes.ts b/dmp-admin/src/app/routes.ts index 903c9dfde..a2036850e 100644 --- a/dmp-admin/src/app/routes.ts +++ b/dmp-admin/src/app/routes.ts @@ -1,4 +1,4 @@ -import { FormComponent } from './form/form.component'; +import { FormComponent } from './dataset-profile-form/form/form.component'; import { ModuleWithProviders } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; diff --git a/dmp-admin/src/app/wordlist/wordlist-component.ts b/dmp-admin/src/app/wordlist/wordlist-component.ts index 5946a083c..a5deb7c5f 100644 --- a/dmp-admin/src/app/wordlist/wordlist-component.ts +++ b/dmp-admin/src/app/wordlist/wordlist-component.ts @@ -1,5 +1,5 @@ -import { FormGroup } from '@angular/forms'; -import { Field } from '../models/Field'; +import { FormGroup } from '@angular/forms'; +import { Field } from '../models/DataSetProfile/Field'; import { Component, Input, OnInit } from '@angular/core'; import { WordListData } from '../models/DataField/WordListData'; import { FormArray } from '@angular/forms/src/model'; diff --git a/dmp-admin/tsconfig.json b/dmp-admin/tsconfig.json index a6c016bf3..b0cb5c676 100644 --- a/dmp-admin/tsconfig.json +++ b/dmp-admin/tsconfig.json @@ -1,7 +1,8 @@ -{ +{ "compileOnSave": false, "compilerOptions": { "outDir": "./dist/out-tsc", + "baseUrl": "src", "sourceMap": true, "declaration": false, "moduleResolution": "node",