2019-01-18 18:03:45 +01:00
|
|
|
|
|
2021-06-11 11:16:50 +02:00
|
|
|
|
import { Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
|
|
|
|
|
import {FormArray, FormControl, FormGroup, FormGroupDirective, NgForm,} from '@angular/forms';
|
2019-12-11 15:51:03 +01:00
|
|
|
|
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';
|
|
|
|
|
import { EnumUtils } from '@app/core/services/utilities/enum-utils.service';
|
|
|
|
|
import { RuleEditorModel } from '@app/ui/admin/dataset-profile/admin/rule-editor-model';
|
|
|
|
|
import { BaseComponent } from '@common/base/base.component';
|
2021-06-11 11:16:50 +02:00
|
|
|
|
import { Subscription } from 'rxjs';
|
2021-02-17 17:39:07 +01:00
|
|
|
|
import { ViewStyleType } from './view-style-enum';
|
|
|
|
|
import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type';
|
2021-09-24 20:52:14 +02:00
|
|
|
|
import { ErrorStateMatcher } from '@angular/material/core';
|
|
|
|
|
import { MatDialog } from '@angular/material/dialog';
|
|
|
|
|
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
|
2021-03-27 18:52:53 +01:00
|
|
|
|
import { Field } from '@app/core/model/admin/dataset-profile/dataset-profile';
|
|
|
|
|
import { DatasetProfileInternalDmpEntitiesType } from '@app/core/common/enum/dataset-profile-internal-dmp-entities-type';
|
|
|
|
|
import { FieldEditorModel } from '../../../admin/field-editor-model';
|
2021-11-01 14:30:21 +01:00
|
|
|
|
import { AutoCompleteFieldData, BooleanDecisionFieldData, CheckBoxFieldData, CurrencyFieldData, DataRepositoriesFieldData, DatasetIdentifierFieldData, DatePickerFieldData, DmpsAutoCompleteFieldData, ExternalDatasetsFieldData, FieldDataOption, FreeTextFieldData, OrganizationsFieldData, RadioBoxFieldData, RegistriesFieldData, ResearchersAutoCompleteFieldData, ServicesFieldData, TagsFieldData, TextAreaFieldData, RichTextAreaFieldData, ValidationFieldData, WordListFieldData } from '@app/core/model/dataset-profile-definition/field-data/field-data';
|
2019-01-18 18:03:45 +01:00
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'app-dataset-profile-editor-field-component',
|
|
|
|
|
templateUrl: './dataset-profile-editor-field.component.html',
|
|
|
|
|
styleUrls: ['./dataset-profile-editor-field.component.scss']
|
|
|
|
|
})
|
2021-03-01 17:42:18 +01:00
|
|
|
|
export class DatasetProfileEditorFieldComponent extends BaseComponent implements OnInit, ErrorStateMatcher {
|
2019-02-11 13:04:45 +01:00
|
|
|
|
@Input() viewOnly: boolean;
|
2019-01-18 18:03:45 +01:00
|
|
|
|
@Input() form: FormGroup;
|
|
|
|
|
@Input() showOrdinal = true;
|
|
|
|
|
@Input() indexPath: string;
|
2019-01-28 14:05:19 +01:00
|
|
|
|
validationTypeEnum = ValidationType;
|
2019-01-18 18:03:45 +01:00
|
|
|
|
viewStyleEnum = DatasetProfileFieldViewStyle;
|
2021-03-03 11:10:11 +01:00
|
|
|
|
// isFieldMultiplicityEnabled = false;
|
2019-01-18 18:03:45 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
viewType: ViewStyleType;
|
|
|
|
|
viewTypeEnum = ViewStyleType;
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// private subject$:Subject<DatasetDescriptionFieldEditorModel> = new Subject<DatasetDescriptionFieldEditorModel>();
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
|
|
|
|
|
|
2021-02-12 12:23:39 +01:00
|
|
|
|
@Input() expandView: boolean = true;
|
2021-03-12 17:19:51 +01:00
|
|
|
|
@Input() canBeDeleted:boolean = true;
|
2021-02-24 15:56:14 +01:00
|
|
|
|
|
|
|
|
|
@Output() delete = new EventEmitter<void>();
|
|
|
|
|
|
2021-07-23 10:23:35 +02:00
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
//rdaCommonStandards = this.datasetProfileService.getRDACommonStandards(); //GK: Don't do that again. The service has a weird async behaviour.
|
2021-07-23 10:23:35 +02:00
|
|
|
|
|
2019-01-18 18:03:45 +01:00
|
|
|
|
constructor(
|
2019-10-15 17:29:34 +02:00
|
|
|
|
public enumUtils: EnumUtils,
|
2021-05-05 14:50:20 +02:00
|
|
|
|
public datasetProfileService: DatasetProfileService,
|
|
|
|
|
private dialog: MatDialog
|
2021-10-12 17:05:38 +02:00
|
|
|
|
) { super();
|
|
|
|
|
|
2021-03-03 11:10:11 +01:00
|
|
|
|
}
|
2019-01-18 18:03:45 +01:00
|
|
|
|
|
2021-03-01 17:42:18 +01:00
|
|
|
|
|
|
|
|
|
isErrorState(control: FormControl, form: FormGroupDirective | NgForm): boolean {
|
|
|
|
|
|
|
|
|
|
if(this.form.get('viewStyle').untouched) return false;
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-01 17:42:18 +01:00
|
|
|
|
return this.form.get('viewStyle').invalid;
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-18 18:03:45 +01:00
|
|
|
|
ngOnInit() {
|
2021-03-03 11:10:11 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// this.subject$.pipe(takeUntil(this._destroyed)).pipe(debounceTime(600)).subscribe(model=>{
|
|
|
|
|
// this.previewForm = model.buildForm();
|
|
|
|
|
// });
|
2021-03-03 11:10:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (this.form.get('multiplicity')) {
|
|
|
|
|
// if (this.form.get('multiplicity').value.min > 1 && this.form.get('multiplicity').value.max > 1) {
|
|
|
|
|
// this.isFieldMultiplicityEnabled = true;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2019-01-28 14:05:19 +01:00
|
|
|
|
|
2021-05-05 14:50:20 +02:00
|
|
|
|
const renderStyle = this.form.get('viewStyle').get('renderStyle').value;
|
|
|
|
|
if(renderStyle){
|
2021-03-01 17:42:18 +01:00
|
|
|
|
|
|
|
|
|
// this.matcher.setReference(this.form);
|
2021-02-17 17:39:07 +01:00
|
|
|
|
const type = this.form.get('viewStyle').get('renderStyle').value;
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
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;
|
2019-01-28 14:05:19 +01:00
|
|
|
|
}
|
2021-02-17 17:39:07 +01:00
|
|
|
|
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;
|
2021-11-01 14:30:21 +01:00
|
|
|
|
case DatasetProfileFieldViewStyle.RichTextArea:
|
|
|
|
|
this.viewType = this.viewTypeEnum.RichTextArea;
|
|
|
|
|
break;
|
2021-02-17 17:39:07 +01:00
|
|
|
|
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:
|
2021-03-27 18:52:53 +01:00
|
|
|
|
this.viewType = this.viewTypeEnum.Researchers; //TODO RESEARCHERS
|
2021-02-17 17:39:07 +01:00
|
|
|
|
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;
|
|
|
|
|
}
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
}
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// this.showPreview = true;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// this.addNewRule();
|
|
|
|
|
|
|
|
|
|
// 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;
|
|
|
|
|
|
|
|
|
|
// 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;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// //reset the preview status
|
|
|
|
|
// // this.showPreview = previewStatus;
|
|
|
|
|
// this.showPreview = true;
|
|
|
|
|
// });
|
2019-01-18 18:03:45 +01:00
|
|
|
|
}
|
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// defaulValueRequired(viewStile: DatasetProfileFieldViewStyle): boolean {
|
|
|
|
|
// switch (viewStile) {
|
|
|
|
|
// case DatasetProfileFieldViewStyle.CheckBox:
|
|
|
|
|
// return true;
|
|
|
|
|
// case DatasetProfileFieldViewStyle.RadioBox:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.TextArea:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.FreeText:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.ComboBox:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.InternalDmpEntities:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.BooleanDecision:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.DatePicker:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.ExternalDatasets:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.DataRepositories:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Registries:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Services:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Tags:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Registries:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Organizations:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.DatasetIdentifier:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Currency:
|
|
|
|
|
// case DatasetProfileFieldViewStyle.Validation:
|
|
|
|
|
// return false;
|
|
|
|
|
// default:
|
|
|
|
|
// return false;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2019-02-08 10:04:12 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-03 11:10:11 +01:00
|
|
|
|
// onIsFieldMultiplicityEnabledChange(isFieldMultiplicityEnabled: boolean) {
|
|
|
|
|
// if (!isFieldMultiplicityEnabled) {
|
|
|
|
|
// (<FormControl>this.form.get('multiplicity').get('min')).setValue(0);
|
|
|
|
|
// (<FormControl>this.form.get('multiplicity').get('max')).setValue(0);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2019-01-18 18:03:45 +01:00
|
|
|
|
|
|
|
|
|
addNewRule() {
|
|
|
|
|
const rule: RuleEditorModel = new RuleEditorModel();
|
|
|
|
|
(<FormArray>this.form.get('visible').get('rules')).push(rule.buildForm());
|
|
|
|
|
}
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private _formChangesSubscription:Subscription;
|
2021-10-19 10:08:38 +02:00
|
|
|
|
private _showPreview: boolean = false;
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// get showPreview(): boolean{
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// return this._showPreview;
|
|
|
|
|
// }
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// set showPreview(value:boolean){
|
|
|
|
|
// if(value == false){//hide preview
|
|
|
|
|
// //close subsciption
|
|
|
|
|
// if(this._formChangesSubscription){
|
|
|
|
|
// this._formChangesSubscription.unsubscribe();
|
|
|
|
|
// this._formChangesSubscription = null;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2021-02-15 18:16:48 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// if(value == true){
|
|
|
|
|
// //value is already true
|
|
|
|
|
// if(this._showPreview){
|
|
|
|
|
// if(this._formChangesSubscription){
|
|
|
|
|
// this._formChangesSubscription.unsubscribe();
|
|
|
|
|
// this._formChangesSubscription = null;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //initialize
|
|
|
|
|
// if(this.form.get('viewStyle').get('renderStyle').value){
|
|
|
|
|
// this._generatePreviewForm();
|
|
|
|
|
// }
|
|
|
|
|
// this._formChangesSubscription = this.form.valueChanges.subscribe(()=>{
|
|
|
|
|
// this._generatePreviewForm();
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
// this._showPreview = value;
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// }
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// previewForm: FormGroup;
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// private _generatePreviewForm(){
|
2021-02-15 18:16:48 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// if(!this.form.get('data')){
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// this.previewForm = null;
|
|
|
|
|
// const fieldEditorModel = new DatasetDescriptionFieldEditorModel();
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// fieldEditorModel.viewStyle= {
|
|
|
|
|
// renderStyle: this.form.get('viewStyle').get('renderStyle').value,
|
|
|
|
|
// cssClass: null
|
|
|
|
|
// };
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
|
|
|
|
// fieldEditorModel.data = (this.form.get('data') as FormGroup).getRawValue();
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// fieldEditorModel.value = this.form.get('defaultValue').get('value').value;
|
|
|
|
|
// fieldEditorModel.validationRequired = (this.form.get('validations').value as Array<ValidationType>).includes(ValidationType.Required);
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// if(this.form.get('viewStyle').get('renderStyle').value == DatasetProfileFieldViewStyle.CheckBox){
|
2021-10-12 17:05:38 +02:00
|
|
|
|
// fieldEditorModel.value = this.form.get('defaultValue').get('value').value === 'true';
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// }
|
|
|
|
|
// // if(this.form.get('viewStyle').get('renderStyle').value == DatasetProfileFieldViewStyle.Researchers){
|
|
|
|
|
// // fieldEditorModel.data = new ResearchersAutoCompleteFieldDataEditorModel().buildForm().getRawValue();
|
|
|
|
|
// // }
|
|
|
|
|
// if(fieldEditorModel.viewStyle.renderStyle === DatasetProfileFieldViewStyle.Validation || (fieldEditorModel.viewStyle.renderStyle === DatasetProfileFieldViewStyle.DatasetIdentifier)
|
|
|
|
|
// || (fieldEditorModel.viewStyle.renderStyle === DatasetProfileFieldViewStyle.Tags)
|
|
|
|
|
// ){
|
|
|
|
|
// fieldEditorModel.value = null;
|
|
|
|
|
// }
|
2021-02-24 15:56:14 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// // const myTicket = Guid.create().toString();
|
|
|
|
|
// // this.validTicket = myTicket;
|
|
|
|
|
// // setTimeout(() => { //TODO
|
|
|
|
|
// // //user hasnt make any new change to inputs /show preview
|
|
|
|
|
// // if(myTicket === this.validTicket){
|
|
|
|
|
// // this.previewForm = fieldEditorModel.buildForm();
|
|
|
|
|
// // }
|
|
|
|
|
// // }, 600);
|
2021-03-03 11:10:11 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// this.subject$.next(fieldEditorModel);
|
2021-02-24 15:56:14 +01:00
|
|
|
|
|
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// // setTimeout(() => {
|
|
|
|
|
// // this.previewForm = fieldEditorModel.buildForm();
|
|
|
|
|
// // });
|
|
|
|
|
// };
|
2021-02-12 12:23:39 +01:00
|
|
|
|
|
2021-04-01 17:57:23 +02:00
|
|
|
|
get canApplyVisibility():boolean{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-04-01 17:57:23 +02:00
|
|
|
|
switch(this.viewType){
|
|
|
|
|
case this.viewTypeEnum.TextArea:
|
2021-11-01 14:30:21 +01:00
|
|
|
|
case this.viewTypeEnum.RichTextArea:
|
2021-04-01 17:57:23 +02:00
|
|
|
|
case this.viewTypeEnum.FreeText:
|
|
|
|
|
case this.viewTypeEnum.BooleanDecision:
|
|
|
|
|
case this.viewTypeEnum.RadioBox:
|
|
|
|
|
case this.viewTypeEnum.Select:
|
|
|
|
|
case this.viewTypeEnum.CheckBox:
|
|
|
|
|
case this.viewTypeEnum.DatePicker:
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
}
|
2021-03-03 11:10:11 +01:00
|
|
|
|
|
|
|
|
|
// validTicket:string;
|
2021-02-12 12:23:39 +01:00
|
|
|
|
// generatePreview(){
|
|
|
|
|
// const fieldEditorModel = new DatasetDescriptionFieldEditorModel();
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-12 12:23:39 +01:00
|
|
|
|
// fieldEditorModel.viewStyle= {
|
|
|
|
|
// renderStyle: this.form.get('viewStyle').get('renderStyle').value,
|
|
|
|
|
// cssClass: null
|
|
|
|
|
// };
|
|
|
|
|
// fieldEditorModel.defaultValue = this.form.get('defaultValue').value;
|
|
|
|
|
// switch (this.form.get('viewStyle').get('renderStyle').value) {
|
|
|
|
|
// case DatasetProfileFieldViewStyle.TextArea:
|
2021-10-12 17:05:38 +02:00
|
|
|
|
// fieldEditorModel.data = {
|
2021-02-12 12:23:39 +01:00
|
|
|
|
// label: this.form.get('data').get('label').value
|
|
|
|
|
// };
|
|
|
|
|
// break;
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-12 12:23:39 +01:00
|
|
|
|
// default:
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// // this.previewForm = fieldEditorModel.buildForm();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
2021-02-17 17:39:07 +01:00
|
|
|
|
onInputTypeChange(){
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
|
|
|
|
|
const x = this.viewType;
|
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// this.showPreview = false;
|
2021-02-17 17:39:07 +01:00
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-03 11:10:11 +01:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
const field: Field = this.form.getRawValue();
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// field.defaultValue = {type:null, value: null};
|
|
|
|
|
field.defaultValue = undefined;
|
2021-04-01 17:57:23 +02:00
|
|
|
|
if(!this.canApplyVisibility){
|
|
|
|
|
field.visible.rules = [];
|
|
|
|
|
}
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (this.form.get('data')) {
|
|
|
|
|
// this.form.removeControl('data');
|
|
|
|
|
// }
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.removeControl('defaultValue');
|
|
|
|
|
// const defaultValueModel = new DefaultValueEditorModel();
|
|
|
|
|
// this.form.addControl('defaultValue',defaultValueModel.buildForm());
|
2021-02-17 17:39:07 +01:00
|
|
|
|
|
|
|
|
|
switch (x) {
|
2021-03-27 18:52:53 +01:00
|
|
|
|
case this.viewTypeEnum.BooleanDecision:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.BooleanDecision)
|
|
|
|
|
// this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: BooleanDecisionFieldData = {
|
|
|
|
|
label:""
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.BooleanDecision;
|
|
|
|
|
field.data = data;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.CheckBox:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.CheckBox)
|
|
|
|
|
// this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: CheckBoxFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.CheckBox;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Select:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
|
|
|
|
|
// this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
// this.form.get('data').setValidators(EditorCustomValidators.atLeastOneElementListValidator('options'));
|
|
|
|
|
// this.form.get('data').updateValueAndValidity();
|
2021-04-06 08:57:17 +02:00
|
|
|
|
const option1 = {label:'', value:''} as FieldDataOption;
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
const data:WordListFieldData = {
|
|
|
|
|
label:'',
|
|
|
|
|
multiList:false,
|
2021-04-06 08:57:17 +02:00
|
|
|
|
options:[option1],
|
2021-03-27 18:52:53 +01:00
|
|
|
|
type:DatasetProfileComboBoxType.WordList
|
|
|
|
|
}
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.ComboBox;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Other:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
|
|
|
|
|
// this.form.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm()); //TODO SEE
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('data').setValidators(EditorCustomValidators.atLeastOneElementListValidator('autoCompleteSingleDataList'));
|
|
|
|
|
// this.form.get('data').updateValueAndValidity();
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
const data: AutoCompleteFieldData = {
|
|
|
|
|
autoCompleteSingleDataList:[],
|
|
|
|
|
multiAutoComplete: false,
|
|
|
|
|
label:'',
|
|
|
|
|
type: DatasetProfileComboBoxType.Autocomplete
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.ComboBox;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.InternalDmpEntities:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.InternalDmpEntities)
|
|
|
|
|
// this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());//TODO TO SEE
|
|
|
|
|
|
|
|
|
|
const data: DmpsAutoCompleteFieldData = {
|
|
|
|
|
label:'',
|
|
|
|
|
multiAutoComplete: false,
|
|
|
|
|
type: DatasetProfileInternalDmpEntitiesType.Dmps
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.InternalDmpEntities;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.FreeText:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.FreeText)
|
|
|
|
|
// this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: FreeTextFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.FreeText;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.RadioBox:{
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.RadioBox)
|
|
|
|
|
// this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
// this.form.get('data').setValidators(EditorCustomValidators.atLeastOneElementListValidator('options'));
|
|
|
|
|
// this.form.get('data').updateValueAndValidity();
|
|
|
|
|
|
|
|
|
|
const data: RadioBoxFieldData= {
|
|
|
|
|
label:'',
|
|
|
|
|
options: []
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.RadioBox;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
2021-03-04 13:38:46 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.TextArea:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.TextArea)
|
|
|
|
|
// this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: TextAreaFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.TextArea;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
2021-11-01 14:30:21 +01:00
|
|
|
|
case this.viewTypeEnum.RichTextArea:{
|
|
|
|
|
const data: RichTextAreaFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.RichTextArea;
|
|
|
|
|
field.data = data;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2021-03-27 18:52:53 +01:00
|
|
|
|
case this.viewTypeEnum.DatePicker:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatePicker)
|
|
|
|
|
// this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: DatePickerFieldData = {
|
|
|
|
|
label:''
|
2021-10-12 17:05:38 +02:00
|
|
|
|
}
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.DatePicker;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.ExternalDatasets:{
|
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ExternalDatasets)
|
|
|
|
|
// this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: ExternalDatasetsFieldData = {
|
|
|
|
|
label:'',
|
|
|
|
|
multiAutoComplete: false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.ExternalDatasets;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.DataRepositories:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DataRepositories)
|
|
|
|
|
// this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: DataRepositoriesFieldData = {
|
|
|
|
|
label: '',
|
|
|
|
|
multiAutoComplete: false
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.DataRepositories;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Registries:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Registries)
|
|
|
|
|
// this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data:RegistriesFieldData = {
|
|
|
|
|
label: '',
|
|
|
|
|
multiAutoComplete: false
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Registries;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Services:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Services)
|
|
|
|
|
// this.form.addControl('data', new ServicesDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data:ServicesFieldData = {
|
|
|
|
|
label:'',
|
|
|
|
|
multiAutoComplete: false
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Services;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Tags:{
|
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Tags)
|
|
|
|
|
// this.form.addControl('data', new TagsDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: TagsFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Tags;
|
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Researchers:{
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// 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());
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
// field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Researchers;
|
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
const data : ResearchersAutoCompleteFieldData = {
|
|
|
|
|
label:'',
|
|
|
|
|
multiAutoComplete: false,
|
|
|
|
|
type: DatasetProfileInternalDmpEntitiesType.Researchers
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-04-07 11:58:45 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Researchers;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Organizations:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Organizations)
|
|
|
|
|
// this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data = {
|
|
|
|
|
autoCompleteSingleDataList:[],
|
|
|
|
|
label:'',
|
|
|
|
|
multiAutoComplete: false,
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
} as OrganizationsFieldData; //TODO
|
|
|
|
|
|
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Organizations;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.DatasetIdentifier:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatasetIdentifier)
|
|
|
|
|
// this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data : DatasetIdentifierFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.DatasetIdentifier;
|
|
|
|
|
field.data = data;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Currency:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Currency)
|
|
|
|
|
// this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data: CurrencyFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Currency;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
field.data = data;
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
case this.viewTypeEnum.Validation:{
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Validation)
|
|
|
|
|
// this.form.addControl('data', new ValidationDataEditorModel().buildForm());
|
|
|
|
|
|
|
|
|
|
const data:ValidationFieldData = {
|
|
|
|
|
label:''
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.Validation;
|
|
|
|
|
field.data = data;
|
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
break;
|
2021-03-27 18:52:53 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// this.form.get('data').updateValueAndValidity();
|
|
|
|
|
// this.form.get('viewStyle').get('renderStyle').updateValueAndValidity();
|
|
|
|
|
// this.form.updateValueAndValidity();
|
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-03-27 18:52:53 +01:00
|
|
|
|
const form = (new FieldEditorModel).fromModel(field).buildForm();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const fields = this.form.parent as FormArray;
|
|
|
|
|
let index = -1;
|
|
|
|
|
|
|
|
|
|
fields.controls.forEach((control,i)=>{
|
|
|
|
|
if(this.form.get('id').value === control.get('id').value){
|
|
|
|
|
index = i
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
if(index>=0){
|
|
|
|
|
fields.removeAt(index);
|
|
|
|
|
fields.insert(index, form);
|
|
|
|
|
this.form = form;
|
2021-04-01 17:57:23 +02:00
|
|
|
|
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-17 17:39:07 +01:00
|
|
|
|
}
|
2021-03-12 17:19:51 +01:00
|
|
|
|
|
2021-04-05 10:37:00 +02:00
|
|
|
|
// setTimeout(() => { //TODO
|
|
|
|
|
// this.showPreview = true;
|
|
|
|
|
// });
|
2021-02-17 17:39:07 +01:00
|
|
|
|
}
|
2021-02-24 15:56:14 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
toggleRequired(event:MatSlideToggleChange){
|
2021-10-12 17:05:38 +02:00
|
|
|
|
|
2021-02-24 15:56:14 +01:00
|
|
|
|
let validationsControl = this.form.get('validations') as FormControl;
|
|
|
|
|
let validations: Array<ValidationType> = validationsControl.value;
|
|
|
|
|
|
|
|
|
|
if(event.checked){
|
|
|
|
|
if(!validations.includes(ValidationType.Required)){//IS ALREADY REQUIRED
|
|
|
|
|
// validationsControl.setValue(validations.filter(validator=> validator != ValidationType.Required));
|
|
|
|
|
// validationsControl.updateValueAndValidity();
|
|
|
|
|
validations.push(ValidationType.Required);
|
|
|
|
|
// validationsControl.setValue(validations);
|
|
|
|
|
validationsControl.updateValueAndValidity();
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
validationsControl.setValue(validations.filter(validator=> validator != ValidationType.Required));
|
|
|
|
|
validationsControl.updateValueAndValidity();
|
|
|
|
|
}
|
2021-07-23 16:03:29 +02:00
|
|
|
|
this.form.markAsDirty();//deactivate guard
|
2021-02-24 15:56:14 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
get isRequired(){
|
|
|
|
|
let validationsControl = this.form.get('validations') as FormControl;
|
|
|
|
|
let validations: Array<ValidationType> = validationsControl.value;
|
2021-10-19 10:08:38 +02:00
|
|
|
|
return validations.includes(ValidationType.Required);
|
2021-02-24 15:56:14 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onDelete(){
|
|
|
|
|
this.delete.emit();
|
|
|
|
|
}
|
2021-10-12 17:05:38 +02:00
|
|
|
|
}
|