-
+
+
+
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/auto-complete/dataset-profile-editor-auto-complete-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/auto-complete/dataset-profile-editor-auto-complete-field.component.html
index c8e89ae4c..4ca660d04 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/auto-complete/dataset-profile-editor-auto-complete-field.component.html
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/auto-complete/dataset-profile-editor-auto-complete-field.component.html
@@ -12,9 +12,19 @@
-
+
+
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-TYPE' | translate}}
@@ -26,12 +36,12 @@
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-URL' | translate}}
-
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-OPTIONS-ROOT' | translate}}
+ [formControl]="this.singleForm.get('optionsRoot')" required>
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-LABEL' | translate}}
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.scss
index 9a774bbed..1ef7f3f98 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.scss
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.scss
@@ -11,4 +11,10 @@
mat-radio-button{
padding-right: 1em;
+}
+
+li.list-inline-item{
+ .mat-icon{
+ vertical-align: bottom;
+ }
}
\ No newline at end of file
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.ts
index ab43c4780..9f5a80663 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.ts
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.ts
@@ -1,6 +1,6 @@
import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
-import { AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup, FormGroupDirective, NgForm } from '@angular/forms';
+import { AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup, FormGroupDirective, NgForm, ValidationErrors, ValidatorFn } from '@angular/forms';
import { DatasetProfileFieldViewStyle } from '@app/core/common/enum/dataset-profile-field-view-style';
import { ValidationType } from '@app/core/common/enum/validation-type';
import { DatasetProfileService } from '@app/core/services/dataset-profile/dataset-profile.service';
@@ -422,10 +422,19 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
case this.viewTypeEnum.Select:
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
+
+ this.form.get('data').setValidators(this._atLeastOneElementListValidator('options'));
+ this.form.get('data').updateValueAndValidity();
+
break;
case this.viewTypeEnum.Other:
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
this.form.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm()); //TODO SEE
+
+ this.form.get('data').setValidators(this._atLeastOneElementListValidator('autoCompleteSingleDataList'));
+ this.form.get('data').updateValueAndValidity();
+
+
break;
case this.viewTypeEnum.InternalDmpEntities:
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.InternalDmpEntities)
@@ -438,6 +447,10 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
case this.viewTypeEnum.RadioBox:
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.RadioBox)
this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
+
+ this.form.get('data').setValidators(this._atLeastOneElementListValidator('options'));
+ this.form.get('data').updateValueAndValidity();
+
break;
case this.viewTypeEnum.TextArea:
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.TextArea)
@@ -531,4 +544,16 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
this.delete.emit();
}
+
+ private _atLeastOneElementListValidator(arrayToCheck): ValidatorFn{
+ return (control: AbstractControl): ValidationErrors | null=>{
+
+ const fa = control.get(arrayToCheck) as FormArray;
+
+ if(fa.length === 0){
+ return {emptyArray: true};
+ }
+ return null;
+ }
+ }
}
\ No newline at end of file
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section-fieldset/dataset-profile-editor-section-fieldset.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section-fieldset/dataset-profile-editor-section-fieldset.component.html
index 48ec99375..887fe5c06 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section-fieldset/dataset-profile-editor-section-fieldset.component.html
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section-fieldset/dataset-profile-editor-section-fieldset.component.html
@@ -1,7 +1,7 @@
-
+
+
+
- -->
-
+
+
+
-
+
-
+
-
+
@@ -115,6 +117,7 @@
+
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss
index 8cf43a5e4..917a14a46 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss
@@ -73,4 +73,13 @@ $blue-color-light: #5cf7f2;
.fieldset-actions-list{
margin: 0;
cursor: pointer;
-}
\ No newline at end of file
+}
+
+// ::ng-deep .main-content-page .fieldset-header .field-title .mat-form-field-infix{
+// border-top: 0px;
+// }
+
+
+.numbering-label .mat-input-element:disabled{
+ color: #212121;
+}
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts
index 5eec5bb38..864770e50 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts
@@ -1,5 +1,5 @@
import { Component, Input, OnChanges, OnInit } from '@angular/core';
-import { FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';
+import { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';
import { FieldEditorModel } from '../../../admin/field-editor-model';
import { Guid } from '@common/types/guid';
import { RuleEditorModel } from '../../../admin/rule-editor-model';
@@ -31,6 +31,7 @@ import { DatasetIdentifierDataEditorModel } from '../../../admin/field-data/data
import { CurrencyDataEditorModel } from '../../../admin/field-data/currency-data-editor-models';
import { ValidationDataEditorModel } from '../../../admin/field-data/validation-data-editor-models';
import { DatasetProfileService } from '@app/core/services/dataset-profile/dataset-profile.service';
+import { OrganizationsDataEditorModel } from '../../../admin/field-data/organizations-data-editor-models';
@Component({
selector: 'app-dataset-profile-editor-composite-field-component',
@@ -356,11 +357,17 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh
case this.viewTypeEnum.Select:
fieldForm.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
fieldForm.addControl('data', new WordListFieldDataEditorModel().buildForm());
+
+ this.form.get('data').setValidators(this._atLeastOneElementListValidator('options'));
+ this.form.get('data').updateValueAndValidity();
break;
case this.viewTypeEnum.Other:
fieldForm.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
fieldForm.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm()); //TODO SEE
-
+
+ fieldForm.get('data').setValidators(this._atLeastOneElementListValidator('autoCompleteSingleDataList'));
+
+
break;
case this.viewTypeEnum.InternalDmpEntities:
fieldForm.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.InternalDmpEntities)
@@ -409,8 +416,9 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh
break;
case this.viewTypeEnum.Organizations:
fieldForm.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Organizations)
- // this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
- fieldForm.addControl('data', new DatasetsAutoCompleteFieldDataEditorModel().buildForm()); //TODO
+ this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
+ // this.form.addControl('data', new OrganizationsDataEditorModel().buildForm())
+ // fieldForm.addControl('data', new DatasetsAutoCompleteFieldDataEditorModel().buildForm()); //TODO
break;
case this.viewTypeEnum.DatasetIdentifier:
fieldForm.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatasetIdentifier)
@@ -432,51 +440,74 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh
}
- private customFieldValidator(): ValidatorFn{
- return (control):ValidationErrors | null=>{
- DatasetProfileFieldViewStyle
- switch(control.get('viewStyle').get('renderStyle').value){
+ // private customFieldValidator(): ValidatorFn{
+ // return (control):ValidationErrors | null=>{
+ // DatasetProfileFieldViewStyle
+ // switch(control.get('viewStyle').get('renderStyle').value){
- case DatasetProfileFieldViewStyle.TextArea:
- return null;
- case DatasetProfileFieldViewStyle.BooleanDecision:
- return null;
- case DatasetProfileFieldViewStyle.ComboBox:
- return null;
- case DatasetProfileFieldViewStyle.CheckBox:
- return null;
- case DatasetProfileFieldViewStyle.FreeText:
- return null;
- case DatasetProfileFieldViewStyle.RadioBox:
- return null;
- case DatasetProfileFieldViewStyle.DatePicker:
- return null;
- case DatasetProfileFieldViewStyle.InternalDmpEntities:
- return null;
- case DatasetProfileFieldViewStyle.ExternalDatasets:
- return null;
- case DatasetProfileFieldViewStyle.DataRepositories:
- return null;
- case DatasetProfileFieldViewStyle.Registries:
- return null;
- case DatasetProfileFieldViewStyle.Services:
- return null;
- case DatasetProfileFieldViewStyle.Tags:
- return null;
- case DatasetProfileFieldViewStyle.Researchers:
- return null;
- case DatasetProfileFieldViewStyle.Organizations:
- return null;
- case DatasetProfileFieldViewStyle.DatasetIdentifier:
- return null;
- case DatasetProfileFieldViewStyle.Currency:
- return null;
- case DatasetProfileFieldViewStyle.Validation:
- return null;
- default:
- return {inputTypeNotValid: true}
+ // case DatasetProfileFieldViewStyle.TextArea:
+ // return null;
+ // case DatasetProfileFieldViewStyle.BooleanDecision:
+ // return null;
+ // case DatasetProfileFieldViewStyle.ComboBox:
+ // return null;
+ // case DatasetProfileFieldViewStyle.CheckBox:
+ // return null;
+ // case DatasetProfileFieldViewStyle.FreeText:
+ // return null;
+ // case DatasetProfileFieldViewStyle.RadioBox:
+ // return null;
+ // case DatasetProfileFieldViewStyle.DatePicker:
+ // return null;
+ // case DatasetProfileFieldViewStyle.InternalDmpEntities:
+ // return null;
+ // case DatasetProfileFieldViewStyle.ExternalDatasets:
+ // return null;
+ // case DatasetProfileFieldViewStyle.DataRepositories:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Registries:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Services:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Tags:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Researchers:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Organizations:
+ // return null;
+ // case DatasetProfileFieldViewStyle.DatasetIdentifier:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Currency:
+ // return null;
+ // case DatasetProfileFieldViewStyle.Validation:
+ // return null;
+ // default:
+ // return {inputTypeNotValid: true}
+ // }
+ // }
+ // }
+
+
+ private _atLeastOneElementListValidator(arrayToCheck): ValidatorFn{
+ return (control: AbstractControl): ValidationErrors | null=>{
+
+ const fa = control.get(arrayToCheck) as FormArray;
+
+ if(fa.length === 0){
+ return {emptyArray: true};
}
+ return null;
}
}
+
+ calculateLabelWidth(numbering: string){
+
+ const width = numbering.split('.').reduce((acc,item)=> item+acc,'').length;
+
+
+ return {'width':width+'em'}
+ }
}
+
+
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-profile-editor-default-value/component-profile-editor-default-value.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-profile-editor-default-value/component-profile-editor-default-value.component.html
index 7a4d43997..49f8f0267 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-profile-editor-default-value/component-profile-editor-default-value.component.html
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-profile-editor-default-value/component-profile-editor-default-value.component.html
@@ -40,7 +40,7 @@
- {{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-SOURCE-TITLE' | translate}}
- -
-
+