+
Not initialized yet
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 d42702341..8ba5cd522 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
@@ -29,6 +29,10 @@ import { CurrencyDataEditorModel } from '../../../admin/field-data/currency-data
import { ValidationDataEditorModel } from '../../../admin/field-data/validation-data-editor-models';
import { DatasetDescriptionFieldEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
import { Subscription } from 'rxjs';
+import { ViewStyleType } from './view-style-enum';
+import { AutoCompleteFieldDataEditorModel } from '../../../admin/field-data/auto-complete-field-data-editor-model';
+import { DatasetsAutoCompleteFieldDataEditorModel } from '../../../admin/field-data/datasets-autocomplete-field-data-editor-mode';
+import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type';
@Component({
selector: 'app-dataset-profile-editor-field-component',
@@ -44,6 +48,10 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
viewStyleEnum = DatasetProfileFieldViewStyle;
isFieldMultiplicityEnabled = false;
+ viewType: ViewStyleType;
+ viewTypeEnum = ViewStyleType;
+
+
@Input() expandView: boolean = true;
constructor(
@@ -58,83 +66,155 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
this.isFieldMultiplicityEnabled = true;
}
}
+
+ if(this.form.get('viewStyle').get('renderStyle').value){
+ const type = this.form.get('viewStyle').get('renderStyle').value;
+
+ switch(type){
+ case DatasetProfileFieldViewStyle.BooleanDecision:
+ this.viewType = this.viewTypeEnum.BooleanDecision;
+ break;
+ case DatasetProfileFieldViewStyle.CheckBox:
+ this.viewType = this.viewTypeEnum.CheckBox;
+ break;
+ case DatasetProfileFieldViewStyle.ComboBox:
+
+ const comboType = this.form.get('data').get('type').value;
+ if(comboType === DatasetProfileComboBoxType.Autocomplete){
+ this.viewType = this.viewTypeEnum.Other;
+ }else if(comboType === DatasetProfileComboBoxType.WordList){
+ this.viewType = this.viewTypeEnum.Select;
+ }
+ break;
+ case DatasetProfileFieldViewStyle.InternalDmpEntities:
+ this.viewType = this.viewTypeEnum.InternalDmpEntities;
+ break;
+ case DatasetProfileFieldViewStyle.FreeText:
+ this.viewType = this.viewTypeEnum.FreeText;
+ break;
+ case DatasetProfileFieldViewStyle.RadioBox:
+ this.viewType = this.viewTypeEnum.RadioBox;
+ break;
+ case DatasetProfileFieldViewStyle.TextArea:
+ this.viewType = this.viewTypeEnum.TextArea;
+ break;
+ case DatasetProfileFieldViewStyle.DatePicker:
+ this.viewType = this.viewTypeEnum.DatePicker;
+ break;
+ case DatasetProfileFieldViewStyle.ExternalDatasets:
+ this.viewType = this.viewTypeEnum.ExternalDatasets;
+ break;
+ case DatasetProfileFieldViewStyle.DataRepositories:
+ this.viewType = this.viewTypeEnum.DataRepositories;
+ break;
+ case DatasetProfileFieldViewStyle.Registries:
+ this.viewType = this.viewTypeEnum.Registries;
+ break;
+ case DatasetProfileFieldViewStyle.Services:
+ this.viewType = this.viewTypeEnum.Services;
+ break;
+ case DatasetProfileFieldViewStyle.Tags:
+ this.viewType = this.viewTypeEnum.Tags;
+ break;
+ case DatasetProfileFieldViewStyle.Researchers:
+ this.viewType = this.viewTypeEnum.Researchers;
+ break;
+ case DatasetProfileFieldViewStyle.Organizations:
+ this.viewType = this.viewTypeEnum.Organizations;
+ break;
+ case DatasetProfileFieldViewStyle.DatasetIdentifier:
+ this.viewType = this.viewTypeEnum.DatasetIdentifier;
+ break;
+ case DatasetProfileFieldViewStyle.Currency:
+ this.viewType = this.viewTypeEnum.Currency;
+ break;
+ case DatasetProfileFieldViewStyle.Validation:
+ this.viewType = this.viewTypeEnum.Validation;
+ break;
+ }
+
+ }
+
+
+
+
// this.addNewRule();
- this.form.get('viewStyle').get('renderStyle').valueChanges
- .pipe(takeUntil(this._destroyed))
- .subscribe(x => {
+ // this.form.get('viewStyle').get('renderStyle').valueChanges
+ // .pipe(takeUntil(this._destroyed))
+ // .subscribe(x => {
- // const previewStatus = this.showPreview;
- //!! Important to be before the if statement
- this.showPreview = false;
+ // // const previewStatus = this.showPreview;
+ // //!! Important to be before the if statement
+ // this.showPreview = false;
- if (this.form.get('data')) {
- this.form.removeControl('data');
+ // if (this.form.get('data')) {
+ // this.form.removeControl('data');
- switch (x) {
- case DatasetProfileFieldViewStyle.BooleanDecision:
- this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.CheckBox:
- this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.ComboBox:
- this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.InternalDmpEntities:
- this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.FreeText:
- this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.RadioBox:
- this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.TextArea:
- this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.DatePicker:
- this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.ExternalDatasets:
- this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.DataRepositories:
- this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Registries:
- this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Services:
- this.form.addControl('data', new ServicesDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Tags:
- this.form.addControl('data', new TagsDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Researchers:
- this.form.addControl('data', new ResearchersDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Organizations:
- this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.DatasetIdentifier:
- this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Currency:
- this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
- break;
- case DatasetProfileFieldViewStyle.Validation:
- this.form.addControl('data', new ValidationDataEditorModel().buildForm());
- break;
- }
- }
+ // switch (x) {
+ // case DatasetProfileFieldViewStyle.BooleanDecision:
+ // this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.CheckBox:
+ // this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.ComboBox:
+ // this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.InternalDmpEntities:
+ // this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.FreeText:
+ // this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.RadioBox:
+ // this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.TextArea:
+ // this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.DatePicker:
+ // this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.ExternalDatasets:
+ // this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.DataRepositories:
+ // this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Registries:
+ // this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Services:
+ // this.form.addControl('data', new ServicesDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Tags:
+ // this.form.addControl('data', new TagsDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Researchers:
+ // this.form.addControl('data', new ResearchersDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Organizations:
+ // this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.DatasetIdentifier:
+ // this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Currency:
+ // this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
+ // break;
+ // case DatasetProfileFieldViewStyle.Validation:
+ // this.form.addControl('data', new ValidationDataEditorModel().buildForm());
+ // break;
+ // }
+ // }
- //reset the preview status
- // this.showPreview = previewStatus;
- this.showPreview = true;
- });
+ // //reset the preview status
+ // // this.showPreview = previewStatus;
+ // this.showPreview = true;
+ // });
}
defaulValueRequired(viewStile: DatasetProfileFieldViewStyle): boolean {
@@ -205,30 +285,26 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
}
}
- this._formChangesSubscription = this.form.valueChanges.subscribe(()=>{
- this.generatePreviewForm();
- });
//initialize
if(this.form.get('viewStyle').get('renderStyle').value){
- this.generatePreviewForm();
+ this._generatePreviewForm();
}
+ this._formChangesSubscription = this.form.valueChanges.subscribe(()=>{
+ this._generatePreviewForm();
+ });
}
-
this._showPreview = value;
+
}
previewForm: FormGroup;
- generatePreviewForm(){
-
+ private _generatePreviewForm(){
if(!this.form.get('data')){
return;
}
-
-
this.previewForm = null;
- // this._showPreview = false;
const fieldEditorModel = new DatasetDescriptionFieldEditorModel();
fieldEditorModel.viewStyle= {
@@ -244,10 +320,13 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
if(this.form.get('viewStyle').get('renderStyle').value == DatasetProfileFieldViewStyle.CheckBox){
fieldEditorModel.value = this.form.get('defaultValue').get('value').value === 'true';
}
+ // if(this.form.get('viewStyle').get('renderStyle').value == DatasetProfileFieldViewStyle.Researchers){
+ // fieldEditorModel.data = new ResearchersAutoCompleteFieldDataEditorModel().buildForm().getRawValue();
+ // }
- this.previewForm = fieldEditorModel.buildForm();
-
- // this._showPreview = true;
+ setTimeout(() => {
+ this.previewForm = fieldEditorModel.buildForm();
+ });
};
// generatePreview(){
@@ -273,4 +352,99 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
// }
+ onInputTypeChange(){
+
+
+ const x = this.viewType;
+
+ this.showPreview = false;
+
+ if (this.form.get('data')) {
+ this.form.removeControl('data');
+ }
+
+ switch (x) {
+ case this.viewTypeEnum.BooleanDecision:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.BooleanDecision)
+ this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.CheckBox:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.CheckBox)
+ this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Select:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
+ this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Other:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
+ this.form.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm()); //TODO SEE
+ break;
+ case this.viewTypeEnum.InternalDmpEntities:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.InternalDmpEntities)
+ this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());//TODO TO SEE
+ break;
+ case this.viewTypeEnum.FreeText:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.FreeText)
+ this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.RadioBox:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.RadioBox)
+ this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.TextArea:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.TextArea)
+ this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.DatePicker:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatePicker)
+ this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.ExternalDatasets:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ExternalDatasets)
+ this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.DataRepositories:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DataRepositories)
+ this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Registries:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Registries)
+ this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Services:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Services)
+ this.form.addControl('data', new ServicesDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Tags:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Tags)
+ this.form.addControl('data', new TagsDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Researchers:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Researchers)
+ // this.form.addControl('data', new ResearchersDataEditorModel().buildForm()); //TODO TO ASK
+ this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Organizations:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Organizations)
+ // this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
+ this.form.addControl('data', new DatasetsAutoCompleteFieldDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.DatasetIdentifier:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatasetIdentifier)
+ this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Currency:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Currency)
+ this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
+ break;
+ case this.viewTypeEnum.Validation:
+ this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Validation)
+ this.form.addControl('data', new ValidationDataEditorModel().buildForm());
+ break;
+ }
+ setTimeout(() => { //TODO
+ this.showPreview = true;
+ });
+ }
}
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/view-style-enum.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/view-style-enum.ts
new file mode 100644
index 000000000..f1da6d5cd
--- /dev/null
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/view-style-enum.ts
@@ -0,0 +1,21 @@
+export enum ViewStyleType{
+ TextArea = "textarea",
+ BooleanDecision = "booleanDecision",
+ CheckBox = "checkBox",
+ FreeText = "freetext",
+ RadioBox = "radiobox",
+ DatePicker = "datePicker",
+ InternalDmpEntities = "internalDmpEntities",
+ ExternalDatasets = "externalDatasets",
+ DataRepositories = "dataRepositories",
+ Registries = "registries",
+ Services = "services",
+ Tags = "tags",
+ Researchers = "researchers",
+ Organizations = "organizations",
+ DatasetIdentifier = "datasetIdentifier",
+ Currency = "currency",
+ Validation = 'validation',
+ Select ="selection",
+ Other ="other"
+}
\ No newline at end of file
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.html
index b18ee3cbc..cd0b3f5ef 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.html
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.html
@@ -57,8 +57,13 @@
-
-->
+ -->
+
+
+
+
+
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.ts
index 95071fd16..4e4bc873d 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.ts
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/section/dataset-profile-editor-section.component.ts
@@ -1,4 +1,4 @@
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { FormArray, FormGroup } from '@angular/forms';
import { FieldEditorModel } from '@app/ui/admin/dataset-profile/admin/field-editor-model';
import { FieldSetEditorModel } from '@app/ui/admin/dataset-profile/admin/field-set-editor-model';
@@ -18,6 +18,7 @@ export class DatasetProfileEditorSectionComponent extends BaseComponent implemen
//@Input() dataModel: SectionEditorModel;
@Input() indexPath: string;
@Input() viewOnly: boolean;
+ @Output() fieldsetAdded = new EventEmitter
(); //returns the id of the fieldset added
constructor() { super(); }
@@ -38,7 +39,15 @@ export class DatasetProfileEditorSectionComponent extends BaseComponent implemen
fieldSet.id = Guid.create().toString();
//this.dataModel.fieldSets.push(fieldSet);
//}
- (this.form.get('fieldSets')).push(fieldSet.buildForm());
+ const fieldsetsArray = this.form.get('fieldSets') as FormArray;
+ fieldsetsArray.push(fieldSet.buildForm());
+
+ const fieldSetForm = fieldsetsArray.at(fieldsetsArray.length-1);
+ //emit id inserted
+ if(fieldSetForm){
+ const id: string = fieldSetForm.get('id').value;
+ this.fieldsetAdded.emit(id);
+ }
}
addSectioninSection() {
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.html
index 217a169f9..ee14ab7d8 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.html
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.html
@@ -172,7 +172,7 @@
+ (fieldsetAdded)="displayItem(_findTocEntryById($event, getTocEntries()))">
@@ -248,7 +248,7 @@
Preview and finalize
-
+
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts
index 6d0b67543..f2182082d 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts
@@ -37,6 +37,7 @@ import { FieldEditorModel } from '../admin/field-editor-model';
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
import { StepperSelectionEvent } from '@angular/cdk/stepper';
import { DatasetDescriptionCompositeFieldEditorModel, DatasetDescriptionFieldEditorModel, DatasetDescriptionFormEditorModel, DatasetDescriptionPageEditorModel, DatasetDescriptionSectionEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
+import { Rule } from '@app/core/model/dataset-profile-definition/rule';
const skipDisable: any[] = require('../../../../../assets/resources/skipDisable.json');
@@ -884,9 +885,24 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
//in case selectedtocentrhy is child of the removed element
if(this.selectedTocEntry ){
- //
if(this.tocEntryIsChildOf(this.selectedTocEntry,tce)){
- this.selectedTocEntry = null;
+ if(this.selectedTocEntry.type == ToCEntryType.Page){
+ this.selectedTocEntry = null;
+ }else{
+ const parentId = tce.form.parent.parent.get('id').value;
+ if(parentId){
+ const tocentries = this.getTocEntries();
+ const parent = this._findTocEntryById(parentId, tocentries);
+
+ if(parent){
+ this.selectedTocEntry = parent;
+ }else{
+ this.selectedTocEntry = null;
+ }
+ }else{
+ this.selectedTocEntry = null;
+ }
+ }
}
}
@@ -1029,10 +1045,36 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
});
+
+ //populate rules
+ const rules:Rule[] =[];
+ const fieldSets = this._getFieldSets(toCentries);
+
+ fieldSets.forEach(fs=>{
+ const fields = fs.form.get('fields') as FormArray;
+ if(fields){
+ fields.controls.forEach(field=>{
+ const rulesArray = field.get('visible').get('rules').value;
+ if(rulesArray){
+ rulesArray.forEach(ruleElement => {
+ const rule: Rule = new Rule();
+ rule.targetField = ruleElement.target;
+ rule.sourceField = field.get('id').value;
+ rule.requiredValue = ruleElement.value;
+ rules.push(rule);
+ });
+ }
+ });
+ }
+ });
+
+ model.rules = rules;
+ this.visibilityRules = rules;
this.previewForm = model.buildForm();
}
+ visibilityRules:Rule[];
private _buildSectionsRecursively( tocentries: ToCEntry[]): DatasetDescriptionSectionEditorModel[]{
@@ -1079,6 +1121,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
fieldset.multiplicity = fs.form.get('multiplicity').value;
fieldset.additionalInformation = fs.form.get('additionalInformation').value;
fieldset.ordinal = fs.form.get('ordinal').value;
+ fieldset.numbering = fs.numbering;
fieldset.hasCommentField = fs.form.get('hasCommentField').value;
fieldset.title = fs.label;
// fieldset.fields = (fs.form.get('fields') as FormArray).getRawValue();
@@ -1089,7 +1132,8 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
fieldModel.data = (field.get('data') as FormGroup).getRawValue();
fieldModel.id = field.get('id').value;
fieldModel.viewStyle = (field.get('viewStyle') as FormGroup).getRawValue();
- fieldModel.defaultValue = field.get('defaultValue').value;
+ // fieldModel.defaultValue = (field.get('defaultValue') as FormGroup).getRawValue();
+ fieldModel.value = (field.get('defaultValue') as FormGroup).get('value').value;
fieldModel.page = field.get('page').value;
fieldModel.validations = field.get('validations').value;
@@ -1104,12 +1148,32 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
return fieldsets;
}
+ private _getFieldSets(tocentries: ToCEntry[]):ToCEntry[]{
+
+ const fieldsets:ToCEntry[] = [];
+
+ if(!tocentries) return fieldsets;
+
+ tocentries.forEach(entry=>{
+ if(entry.type == ToCEntryType.FieldSet){
+ fieldsets.push(entry);
+ }else{
+ fieldsets.push(...this._getFieldSets(entry.subEntries));
+ }
+ });
+
+ return fieldsets;
+ }
+
onMatStepperSelectionChange(event: StepperSelectionEvent){
if(event.selectedIndex === 2){//preview selected
this.generatePreviewForm();//TODO LAZY LOADING IN THE TEMPLATE
+ }else{
+ this.previewForm = null;
}
+
}
previewForm:FormGroup;
diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html
index 2cd2d637b..debdc0551 100644
--- a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html
+++ b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html
@@ -1,85 +1,108 @@
+
-
-
+
+
+
+ {{parentLink?.numbering}} {{parentLink?.label? parentLink?.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
+
+
+
+ delete
+
+
-
-
-
- {{link.numbering}} {{link.label? link.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
- NoEntries
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-