diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java index 906d3d392..fe0ede1e3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/builders/ModelBuilder.java @@ -85,6 +85,14 @@ public class ModelBuilder { if (type.equals("freetext")) return (FieldData) new FreeTextData().fromData(data); if (type.equals("textarea")) return (FieldData) new TextAreaData().fromData(data); if (type.equals("datePicker")) return (FieldData) new DatePickerData().fromData(data); + if (type.equals("externalDatasets")) return (FieldData) new ExternalDatasetsData().fromData(data); + if (type.equals("dataRepositories")) return (FieldData) new DataRepositoriesData().fromData(data); + if (type.equals("registries")) return (FieldData) new RegistriesData().fromData(data); + if (type.equals("services")) return (FieldData) new ServicesData().fromData(data); + if (type.equals("tags")) return (FieldData) new TagsData().fromData(data); + if (type.equals("researchers")) return (FieldData) new ResearcherData().fromData(data); + if (type.equals("organizations")) return (FieldData) new OrganizationsData().fromData(data); + if (type.equals("datasetIdentifier")) return (FieldData) new DatasetIdentifierData().fromData(data); return null; } @@ -114,6 +122,14 @@ public class ModelBuilder { if (type.equals("freetext")) return (FieldData) new FreeTextData().fromData(data); if (type.equals("textarea")) return (FieldData) new TextAreaData().fromData(data); if (type.equals("datePicker")) return (FieldData) new DatePickerData().fromData(data); + if (type.equals("externalDatasets")) return (FieldData) new ExternalDatasetsData().fromData(data); + if (type.equals("dataRepositories")) return (FieldData) new DataRepositoriesData().fromData(data); + if (type.equals("registries")) return (FieldData) new RegistriesData().fromData(data); + if (type.equals("services")) return (FieldData) new ServicesData().fromData(data); + if (type.equals("tags")) return (FieldData) new TagsData().fromData(data); + if (type.equals("researchers")) return (FieldData) new ResearcherData().fromData(data); + if (type.equals("organizations")) return (FieldData) new OrganizationsData().fromData(data); + if (type.equals("datasetIdentifier")) return (FieldData) new DatasetIdentifierData().fromData(data); return null; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java new file mode 100644 index 000000000..0fcb22b1b --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class DataRepositoriesData extends FieldData { + @Override + public DataRepositoriesData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public DataRepositoriesData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DatasetIdentifierData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DatasetIdentifierData.java new file mode 100644 index 000000000..ed3f9bda6 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DatasetIdentifierData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class DatasetIdentifierData extends FieldData { + @Override + public DatasetIdentifierData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public DatasetIdentifierData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java new file mode 100644 index 000000000..5f10b4f01 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class ExternalDatasetsData extends FieldData { + @Override + public ExternalDatasetsData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public ExternalDatasetsData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java new file mode 100644 index 000000000..5f762b3c3 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class OrganizationsData extends FieldData { + @Override + public OrganizationsData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public OrganizationsData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java new file mode 100644 index 000000000..ed8fca59e --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class RegistriesData extends FieldData { + @Override + public RegistriesData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public RegistriesData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java new file mode 100644 index 000000000..efbd2fa45 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class ResearcherData extends FieldData { + @Override + public ResearcherData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public ResearcherData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java new file mode 100644 index 000000000..09a963933 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class ServicesData extends FieldData { + @Override + public ServicesData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public ServicesData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/TagsData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/TagsData.java new file mode 100644 index 000000000..588d57f65 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/TagsData.java @@ -0,0 +1,42 @@ +package eu.eudat.models.data.components.commons.datafield; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.HashMap; +import java.util.Map; + +public class TagsData extends FieldData { + @Override + public TagsData fromData(Object data) { + if (data != null) { + this.setLabel((String) ((Map) data).get("label")); + } + return this; + } + + @Override + public Object toData() { + return null; + } + + @Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + } + + @Override + public TagsData fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + return this; + } + + @Override + public Map toMap(Element item) { + HashMap dataMap = new HashMap(); + dataMap.put("label", item != null ? item.getAttribute("label") : ""); + return dataMap; + } +} diff --git a/dmp-frontend/src/app/core/common/enum/dataset-profile-field-view-style.ts b/dmp-frontend/src/app/core/common/enum/dataset-profile-field-view-style.ts index a7efc33f4..98716cbe5 100644 --- a/dmp-frontend/src/app/core/common/enum/dataset-profile-field-view-style.ts +++ b/dmp-frontend/src/app/core/common/enum/dataset-profile-field-view-style.ts @@ -6,5 +6,13 @@ export enum DatasetProfileFieldViewStyle { FreeText = "freetext", RadioBox = "radiobox", DatePicker = "datePicker", - InternalDmpEntities = "internalDmpEntities" + InternalDmpEntities = "internalDmpEntities", + ExternalDatasets = "externalDatasets", + DataRepositories = "dataRepositories", + Registries = "registries", + Services = "services", + Tags = "tags", + Researchers = "researchers", + Organizations = "organizations", + DatasetIdentifier = "datasetIdentifier" } diff --git a/dmp-frontend/src/app/core/model/dataset-profile-definition/field-data/field-data.ts b/dmp-frontend/src/app/core/model/dataset-profile-definition/field-data/field-data.ts index f7a14363f..2ab0b4ea1 100644 --- a/dmp-frontend/src/app/core/model/dataset-profile-definition/field-data/field-data.ts +++ b/dmp-frontend/src/app/core/model/dataset-profile-definition/field-data/field-data.ts @@ -68,3 +68,35 @@ export interface DmpsAutoCompleteFieldData extends FieldData { type: DatasetProfileInternalDmpEntitiesType; multiAutoComplete: boolean; } + +export interface ExternalDatasetsFieldData extends FieldData { + +} + +export interface DataRepositoriesFieldData extends FieldData { + +} + +export interface RegistriesFieldData extends FieldData { + +} + +export interface ServicesFieldData extends FieldData { + +} + +export interface TagsFieldData extends FieldData { + +} + +export interface ResearchersFieldData extends FieldData { + +} + +export interface OrganizationsFieldData extends FieldData { + +} + +export interface DatasetIdentifierFieldData extends FieldData { + +} diff --git a/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts b/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts index 2115c11dd..d1e9c91e7 100644 --- a/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts +++ b/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts @@ -75,6 +75,14 @@ export class EnumUtils { case DatasetProfileFieldViewStyle.RadioBox: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RADIO-BOX'); case DatasetProfileFieldViewStyle.TextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TEXT-AREA'); case DatasetProfileFieldViewStyle.DatePicker: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATE-PICKER'); + case DatasetProfileFieldViewStyle.ExternalDatasets: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.EXTERNAL-DATASETS'); + case DatasetProfileFieldViewStyle.DataRepositories: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATA-REPOSITORIES'); + case DatasetProfileFieldViewStyle.Registries: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.REGISTRIES'); + case DatasetProfileFieldViewStyle.Services: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.SERVICES'); + case DatasetProfileFieldViewStyle.Tags: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TAGS'); + case DatasetProfileFieldViewStyle.Researchers: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RESEARCHERS'); + case DatasetProfileFieldViewStyle.Organizations: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.ORGANIZATIONS'); + case DatasetProfileFieldViewStyle.DatasetIdentifier: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATASET-IDENTIFIER'); } } diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models.ts new file mode 100644 index 000000000..0e3e007d2 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class DataRepositoriesDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('DataRepositoriesDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: DataRepositoriesFieldData): DataRepositoriesDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/dataset-identifier-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/dataset-identifier-data-editor-models.ts new file mode 100644 index 000000000..0475d1c81 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/dataset-identifier-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData, RegistriesFieldData, ServicesFieldData, TagsFieldData, ResearchersFieldData, OrganizationsFieldData, DatasetIdentifierFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class DatasetIdentifierDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('DatasetIdentifierDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: DatasetIdentifierFieldData): DatasetIdentifierDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts new file mode 100644 index 000000000..a77e31902 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class ExternalDatasetsDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('ExternalDatasetsDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: ExternalDatasetsFieldData): ExternalDatasetsDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/organizations-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/organizations-data-editor-models.ts new file mode 100644 index 000000000..da70c48ec --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/organizations-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData, RegistriesFieldData, ServicesFieldData, TagsFieldData, ResearchersFieldData, OrganizationsFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class OrganizationsDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('OrganizationsDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: OrganizationsFieldData): OrganizationsDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts new file mode 100644 index 000000000..a8891139b --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData, RegistriesFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class RegistriesDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('RegistriesDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: RegistriesFieldData): RegistriesDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/researchers-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/researchers-data-editor-models.ts new file mode 100644 index 000000000..0b0ed0839 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/researchers-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData, RegistriesFieldData, ServicesFieldData, TagsFieldData, ResearchersFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class ResearchersDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('ResearchersDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: ResearchersFieldData): ResearchersDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models.ts new file mode 100644 index 000000000..71d759e14 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData, RegistriesFieldData, ServicesFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class ServicesDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('ServicesDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: ServicesFieldData): ServicesDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/tags-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/tags-data-editor-models.ts new file mode 100644 index 000000000..4eacb9eb1 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/tags-data-editor-models.ts @@ -0,0 +1,19 @@ +import { FormGroup } from '@angular/forms'; +import { FieldDataEditorModel } from './field-data-editor-model'; +import { DatePickerFieldData, ExternalDatasetsFieldData, DataRepositoriesFieldData, RegistriesFieldData, ServicesFieldData, TagsFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data'; + +export class TagsDataEditorModel extends FieldDataEditorModel { + public label: string; + + buildForm(disabled: boolean = false, skipDisable: Array = []): FormGroup { + const formGroup = this.formBuilder.group({ + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('TagsDataEditorModel.label')) }] + }); + return formGroup; + } + + fromModel(item: TagsFieldData): TagsDataEditorModel { + this.label = item.label; + return this; + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-editor-model.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-editor-model.ts index d80d1ebbf..08b0eb514 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-editor-model.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-editor-model.ts @@ -18,6 +18,14 @@ import { DatePickerDataEditorModel } from './field-data/date-picker-data-editor- import { ResearchersAutoCompleteFieldDataEditorModel } from './field-data/researchers-auto-complete-field-data-editor-model'; import { DatasetsAutoCompleteFieldDataEditorModel } from './field-data/datasets-autocomplete-field-data-editor-mode'; import { DmpsAutoCompleteFieldDataEditorModel } from './field-data/dmps-autocomplete-field-data-editor-model'; +import { ExternalDatasetsDataEditorModel } from './field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from './field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from './field-data/registries-data-editor-models'; +import { ServicesDataEditorModel } from './field-data/services-data-editor-models'; +import { TagsDataEditorModel } from './field-data/tags-data-editor-models'; +import { ResearchersDataEditorModel } from './field-data/researchers-data-editor-models'; +import { OrganizationsDataEditorModel } from './field-data/organizations-data-editor-models'; +import { DatasetIdentifierDataEditorModel } from './field-data/dataset-identifier-data-editor-models'; export class FieldEditorModel extends BaseFormModel { @@ -57,6 +65,14 @@ export class FieldEditorModel extends BaseFormModel { if (this.viewStyle.renderStyle === 'freetext') { this.data = new FreeTextFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'booleanDecision') { this.data = new BooleanDecisionFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'datePicker') { this.data = new DatePickerDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'externalDatasets') { this.data = new ExternalDatasetsDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'dataRepositories') { this.data = new DataRepositoriesDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'registeries') { this.data = new RegistriesDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'services') { this.data = new ServicesDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'tags') { this.data = new TagsDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'researchers') { this.data = new ResearchersDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'organizations') { this.data = new OrganizationsDataEditorModel().fromModel(item.data); } + if (this.viewStyle.renderStyle === 'datasetIdentifier') { this.data = new DatasetIdentifierDataEditorModel().fromModel(item.data); } } } return this; diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts index af103eebc..20626451c 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts @@ -28,6 +28,14 @@ import { DatasetProfileListingComponent } from '@app/ui/admin/dataset-profile/li import { CommonFormsModule } from '@common/forms/common-forms.module'; import { CommonUiModule } from '@common/ui/common-ui.module'; import { ParseStatus } from './listing/pipe/parse-status.pipe'; +import { DatasetProfileEditorExternalDatasetsFieldComponent } from './editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component'; +import { DatasetProfileEditorDataRepositoriesFieldComponent } from './editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component'; +import { DatasetProfileEditorRegistriesFieldComponent } from './editor/components/field-type/registries/dataset-profile-editor-registries-field.component'; +import { DatasetProfileEditorServicesFieldComponent } from './editor/components/field-type/services/dataset-profile-editor-services-field.component'; +import { DatasetProfileEditorTagsFieldComponent } from './editor/components/field-type/tags/dataset-profile-editor-tags-field.component'; +import { DatasetProfileEditorResearchersFieldComponent } from './editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component'; +import { DatasetProfileEditorOrganizationsFieldComponent } from './editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component'; +import { DatasetProfileEditorDatasetIdentifierFieldComponent } from './editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component'; @NgModule({ imports: [ @@ -61,7 +69,15 @@ import { ParseStatus } from './listing/pipe/parse-status.pipe'; DatasetProfileEditorResearchersAutoCompleteFieldComponent, DatasetProfileEditorDatasetsAutoCompleteFieldComponent, DatasetProfileEditorDmpsAutoCompleteFieldComponent, - ParseStatus + ParseStatus, + DatasetProfileEditorExternalDatasetsFieldComponent, + DatasetProfileEditorDataRepositoriesFieldComponent, + DatasetProfileEditorRegistriesFieldComponent, + DatasetProfileEditorServicesFieldComponent, + DatasetProfileEditorTagsFieldComponent, + DatasetProfileEditorResearchersFieldComponent, + DatasetProfileEditorOrganizationsFieldComponent, + DatasetProfileEditorDatasetIdentifierFieldComponent ], entryComponents: [ DialodConfirmationUploadDatasetProfiles diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.ts new file mode 100644 index 000000000..9f083e640 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/data-repositories/dataset-profile-editor-data-repositories-field.component.ts @@ -0,0 +1,20 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-data-repositories-field-component', + styleUrls: ['./dataset-profile-editor-data-repositories-field.component.scss'], + templateUrl: './dataset-profile-editor-data-repositories-field.component.html' +}) +export class DatasetProfileEditorDataRepositoriesFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: DataRepositoriesDataEditorModel = new DataRepositoriesDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.ts new file mode 100644 index 000000000..4462016cc --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/dataset-identifier/dataset-profile-editor-dataset-identifier-field.component.ts @@ -0,0 +1,18 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatasetIdentifierDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/dataset-identifier-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-dataset-identifier-field-component', + styleUrls: ['./dataset-profile-editor-dataset-identifier-field.component.scss'], + templateUrl: './dataset-profile-editor-dataset-identifier-field.component.html' +}) +export class DatasetProfileEditorDatasetIdentifierFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: DatasetIdentifierDataEditorModel = new DatasetIdentifierDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.ts new file mode 100644 index 000000000..43ce6e6ae --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/external-datasets/dataset-profile-editor-external-datasets-field.component.ts @@ -0,0 +1,19 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-external-datasets-field-component', + styleUrls: ['./dataset-profile-editor-external-datasets-field.component.scss'], + templateUrl: './dataset-profile-editor-external-datasets-field.component.html' +}) +export class DatasetProfileEditorExternalDatasetsFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: ExternalDatasetsDataEditorModel = new ExternalDatasetsDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.ts new file mode 100644 index 000000000..2d7b7c470 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/organizations/dataset-profile-editor-organizations-field.component.ts @@ -0,0 +1,25 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models'; +import { ServicesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models'; +import { TagsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/tags-data-editor-models'; +import { ResearchersDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/researchers-data-editor-models'; +import { OrganizationsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/organizations-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-organizations-field-component', + styleUrls: ['./dataset-profile-editor-organizations-field.component.scss'], + templateUrl: './dataset-profile-editor-organizations-field.component.html' +}) +export class DatasetProfileEditorOrganizationsFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: OrganizationsDataEditorModel = new OrganizationsDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.ts new file mode 100644 index 000000000..46ef255c4 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/registries/dataset-profile-editor-registries-field.component.ts @@ -0,0 +1,21 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-registries-field-component', + styleUrls: ['./dataset-profile-editor-registries-field.component.scss'], + templateUrl: './dataset-profile-editor-registries-field.component.html' +}) +export class DatasetProfileEditorRegistriesFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: RegistriesDataEditorModel = new RegistriesDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.ts new file mode 100644 index 000000000..78c5f3e73 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/researchers/dataset-profile-editor-researchers-field.component.ts @@ -0,0 +1,24 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models'; +import { ServicesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models'; +import { TagsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/tags-data-editor-models'; +import { ResearchersDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/researchers-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-researchers-field-component', + styleUrls: ['./dataset-profile-editor-researchers-field.component.scss'], + templateUrl: './dataset-profile-editor-researchers-field.component.html' +}) +export class DatasetProfileEditorResearchersFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: ResearchersDataEditorModel = new ResearchersDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.ts new file mode 100644 index 000000000..51b12192b --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/services/dataset-profile-editor-services-field.component.ts @@ -0,0 +1,22 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models'; +import { ServicesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-services-field-component', + styleUrls: ['./dataset-profile-editor-services-field.component.scss'], + templateUrl: './dataset-profile-editor-services-field.component.html' +}) +export class DatasetProfileEditorServicesFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: ServicesDataEditorModel = new ServicesDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.html new file mode 100644 index 000000000..aeb72f4ed --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.html @@ -0,0 +1,9 @@ +
+
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE' + | translate}}
+ + + +
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.scss new file mode 100644 index 000000000..3db0dee74 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.scss @@ -0,0 +1,3 @@ +.full-width { + width: 100%; +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.ts new file mode 100644 index 000000000..5ff2e70d0 --- /dev/null +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field-type/tags/dataset-profile-editor-tags-field.component.ts @@ -0,0 +1,23 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { DatePickerDataEditorModel } from '../../../../admin/field-data/date-picker-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models'; +import { DataRepositoriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models'; +import { ServicesDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/services-data-editor-models'; +import { TagsDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/tags-data-editor-models'; + +@Component({ + selector: 'app-dataset-profile-editor-tags-field-component', + styleUrls: ['./dataset-profile-editor-tags-field.component.scss'], + templateUrl: './dataset-profile-editor-tags-field.component.html' +}) +export class DatasetProfileEditorTagsFieldComponent implements OnInit { + + @Input() form: FormGroup; + private data: TagsDataEditorModel = new TagsDataEditorModel(); + + ngOnInit() { + if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); } + } +} diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html index 20c5d1371..0151c79a6 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html @@ -17,6 +17,14 @@ {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.InternalDmpEntities)}} {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.RadioBox)}} {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DatePicker)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.ExternalDatasets)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DataRepositories)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Registries)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Services)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Tags)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Researchers)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Organizations)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DatasetIdentifier)}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} @@ -63,6 +71,15 @@ + + + + + + + + +

{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.RULES-TITLE' | translate}} 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 c9b082e4f..f32b09f49 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 @@ -16,6 +16,15 @@ import { WordListFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admi import { RuleEditorModel } from '@app/ui/admin/dataset-profile/admin/rule-editor-model'; import { BaseComponent } from '@common/base/base.component'; import { takeUntil } from 'rxjs/operators'; +import { ExternalDatasetEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model'; +import { DataRepositoriesDataEditorModel } from '../../../admin/field-data/data-repositories-data-editor-models'; +import { RegistriesDataEditorModel } from '../../../admin/field-data/registries-data-editor-models'; +import { ServicesDataEditorModel } from '../../../admin/field-data/services-data-editor-models'; +import { TagsDataEditorModel } from '../../../admin/field-data/tags-data-editor-models'; +import { ResearchersDataEditorModel } from '../../../admin/field-data/researchers-data-editor-models'; +import { OrganizationsDataEditorModel } from '../../../admin/field-data/organizations-data-editor-models'; +import { DatasetIdentifierDataEditorModel } from '../../../admin/field-data/dataset-identifier-data-editor-models'; +import { ExternalDatasetsDataEditorModel } from '../../../admin/field-data/external-datasets-data-editor-models'; @Component({ selector: 'app-dataset-profile-editor-field-component', @@ -76,6 +85,30 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements 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; } } }); @@ -92,6 +125,14 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements 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: return false; default: return false; diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts index 42438f216..517fe5af0 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts @@ -47,7 +47,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl initialItems: (type) => this.searchDatasetExternalDatasets('', type),//.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1), displayFn: (item) => item ? item.name : null, titleFn: (item) => item ? item.name : null, - subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') + subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') }; registriesAutoCompleteConfiguration: SingleAutoCompleteConfiguration = { diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html index 9db8790c0..d315c081d 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html @@ -132,4 +132,108 @@ {{'GENERAL.VALIDATION.REQUIRED' | translate}} + +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+
+ +
+
+ + + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} + +
+

diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts index 62019e028..ace677192 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts @@ -20,6 +20,13 @@ import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/vi import { BaseComponent } from '@common/base/base.component'; import { TranslateService } from '@ngx-translate/core'; import { map, takeUntil } from 'rxjs/operators'; +import { Observable } from 'rxjs'; +import { ExternalSourceItemModel } from '@app/core/model/external-sources/external-source-item'; +import { ExternalDatasetCriteria } from '@app/core/query/external-dataset/external-dataset-criteria'; +import { DataRepositoryCriteria } from '@app/core/query/data-repository/data-repository-criteria'; +import { RegistryCriteria } from '@app/core/query/registry/registry-criteria'; +import { ServiceCriteria } from '@app/core/query/service/service-criteria'; +import { TagCriteria } from '@app/core/query/tag/tag-criteria'; @Component({ selector: 'app-form-field', @@ -51,6 +58,46 @@ export class FormFieldComponent extends BaseComponent implements OnInit { private dmpService: DmpService ) { super(); } + externalDatasetAutoCompleteConfiguration: SingleAutoCompleteConfiguration = { + filterFn: this.searchDatasetExternalDatasets.bind(this), + initialItems: (type) => this.searchDatasetExternalDatasets('', type),//.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1), + displayFn: (item) => item ? item.name : null, + titleFn: (item) => item ? item.name : null, + subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') + }; + + registriesAutoCompleteConfiguration: SingleAutoCompleteConfiguration = { + filterFn: this.searchDatasetExternalRegistries.bind(this), + initialItems: (type) => this.searchDatasetExternalRegistries('', type), + displayFn: (item) => item ? item.name : null, + titleFn: (item) => item ? item.name : null, + subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') + }; + + dataRepositoriesAutoCompleteConfiguration: SingleAutoCompleteConfiguration = { + filterFn: this.searchDatasetExternalDataRepositories.bind(this), + initialItems: (type) => this.searchDatasetExternalDataRepositories('', type), + displayFn: (item) => item ? item.name : null, + titleFn: (item) => item ? item.name : null, + subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') + }; + + servicesAutoCompleteConfiguration: SingleAutoCompleteConfiguration = { + filterFn: this.searchDatasetExternalServices.bind(this), + initialItems: (type) => this.searchDatasetExternalServices('', type), + displayFn: (item) => item ? item.label : null, + titleFn: (item) => item ? item.label : null, + subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') + }; + + tagsAutoCompleteConfiguration: SingleAutoCompleteConfiguration = { + filterFn: this.searchDatasetTags.bind(this), + initialItems: (type) => this.searchDatasetTags('', type), + displayFn: (item) => item ? item.name : null, + titleFn: (item) => item ? item.name : null, + subtitleFn: (item) => item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') + }; + ngOnInit() { if (this.form.get('value').value) { this.visibilityRulesService.updateValueAndVisibility(this.form.get('id').value, this.form.get('value').value); @@ -166,4 +213,44 @@ export class FormFieldComponent extends BaseComponent implements OnInit { } } } + + searchDatasetExternalDatasets(query: string, type: string): Observable { + const requestItem: RequestItem = new RequestItem(); + requestItem.criteria = new ExternalDatasetCriteria(); + requestItem.criteria.like = query; + requestItem.criteria.type = type; + return this.externalSourcesService.searchDatasetSExternalDatasetservice(requestItem); + } + + searchDatasetExternalDataRepositories(query: string, type: string): Observable { + const requestItem: RequestItem = new RequestItem(); + requestItem.criteria = new DataRepositoryCriteria(); + requestItem.criteria.like = query; + requestItem.criteria.type = type; + return this.externalSourcesService.searchDatasetRepository(requestItem); + } + + searchDatasetExternalRegistries(query: string, type: string): Observable { + const requestItem: RequestItem = new RequestItem(); + requestItem.criteria = new RegistryCriteria(); + requestItem.criteria.like = query; + requestItem.criteria.type = type; + return this.externalSourcesService.searchDatasetRegistry(requestItem); + } + + searchDatasetExternalServices(query: string, type: string): Observable { + const requestItem: RequestItem = new RequestItem(); + requestItem.criteria = new ServiceCriteria(); + requestItem.criteria.like = query; + requestItem.criteria.type = type; + return this.externalSourcesService.searchDatasetService(requestItem); + } + + searchDatasetTags(query: string, type: string): Observable { + const requestItem: RequestItem = new RequestItem(); + requestItem.criteria = new TagCriteria(); + requestItem.criteria.like = query; + requestItem.criteria.type = type; + return this.externalSourcesService.searchDatasetTags(requestItem); + } } diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index ee4d7bbb6..088a11275 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -933,7 +933,15 @@ "FREE-TEXT": "Free Text", "RADIO-BOX": "Radio Box", "TEXT-AREA": "Text Area", - "DATE-PICKER": "Date Picker" + "DATE-PICKER": "Date Picker", + "EXTERNAL-DATASETS": "External Datasets", + "DATA-REPOSITORIES": "Data Repositories", + "REGISTRIES": "Registries", + "SERVICES": "Services", + "TAGS": "Tags", + "RESEARCHERS": "Researchers", + "ORGANIZATIONS": "Organizations", + "DATASET-IDENTIFIER": "Dataset Identifier" }, "DATASET-PROFILE-COMBO-BOX-TYPE": { "WORD-LIST": "Word List",