From 3164ee4144be74bfa67d6822ca29326a3408e9fd Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Mon, 16 Sep 2019 18:26:18 +0300 Subject: [PATCH] Fixes Dataset Description not updating two External References (Registries, Services) when harvesting from external url. --- .../java/eu/eudat/data/entities/Dataset.java | 5 +++++ .../eudat/logic/managers/DatasetManager.java | 9 ++++++-- .../logic/proxy/fetching/RemoteFetcher.java | 5 ++++- .../eudat/models/data/dataset/Registry.java | 15 ++++++------- .../eu/eudat/models/data/dataset/Service.java | 19 ++++++++--------- .../web/src/main/resources/ExternalUrls.xml | 4 ++-- .../RegistriesInternalMockUpData.json | 21 ++++++++----------- .../resources/ServicesInternalMockUpData.json | 21 ++++++++----------- .../src/app/core/model/registry/registry.ts | 2 +- .../src/app/core/model/service/service.ts | 2 +- .../dataset-wizard-editor.model.ts | 20 +++++++++--------- ...-external-references-editor.component.html | 4 ++-- ...et-external-references-editor.component.ts | 16 +++++++------- ...rnal-registry-dialog-editor.component.html | 4 ++-- ...ernal-service-dialog-editor.component.html | 4 ++-- 15 files changed, 79 insertions(+), 72 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Dataset.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Dataset.java index df93d4323..3763b6de6 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Dataset.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Dataset.java @@ -297,6 +297,11 @@ public class Dataset implements DataEntity { return item; }).collect(Collectors.toList())); } + if (this.getServices() == null) this.setServices(new HashSet<>()); + if(!this.getServices().containsAll(entity.getServices())) { + this.getServices().removeAll(this.getServices()); + this.getServices().addAll(entity.getServices()); + } this.setDmp(entity.getDmp()); this.setStatus(entity.getStatus()); this.setProfile(entity.getProfile()); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java index cb7653663..0aed8bd44 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java @@ -334,7 +334,7 @@ public class DatasetManager { checkDatasetValidation(dataset); UserInfo userInfo = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build(); dataset.setCreator(userInfo); - updateTags(apiContext.getOperationsContext().getDatasetRepository(), datasetWizardModel); + // updateTags(apiContext.getOperationsContext().getDatasetRepository(), datasetWizardModel); createRegistriesIfTheyDontExist(apiContext.getOperationsContext().getDatabaseRepository().getRegistryDao(), dataset); createDataRepositoriesIfTheyDontExist(apiContext.getOperationsContext().getDatabaseRepository().getDataRepositoryDao(), dataset); createServicesIfTheyDontExist(dataset); @@ -390,7 +390,10 @@ public class DatasetManager { criteria.setLike(registry.getReference()); List entries = registryDao.getWithCriteria(criteria).toList(); if (entries != null && !entries.isEmpty()) registry.setId(entries.get(0).getId()); - else registry = registryDao.createOrUpdate(registry); + else { + registry.setCreated(new Date()); + registryDao.createOrUpdate(registry); + } } } } @@ -431,8 +434,10 @@ public class DatasetManager { datasetService.setDataset(dataset); dataset.getServices().add(datasetService); } else { + datasetService.getService().setCreated(new Date()); Service service = databaseRepository.getServiceDao().createOrUpdate(datasetService.getService()); datasetService.setService(service); + datasetService.setDataset(dataset); dataset.getServices().add(datasetService); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java index c10ed37bc..b627f8e74 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java @@ -243,7 +243,10 @@ public class RemoteFetcher { List> list = new LinkedList<>(); for (Map map : internalResults) { - if (map.get("name").toUpperCase().contains(query.toUpperCase())) { + if (map.get("name") != null && map.get("name").toUpperCase().contains(query.toUpperCase())) { + list.add(map); + } + if (map.get("label") != null && map.get("label").toUpperCase().contains(query.toUpperCase())) { list.add(map); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/dataset/Registry.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dataset/Registry.java index 35e1856a1..81203beb4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/dataset/Registry.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dataset/Registry.java @@ -3,6 +3,7 @@ package eu.eudat.models.data.dataset; import eu.eudat.models.DataModel; import eu.eudat.logic.utilities.helpers.LabelGenerator; +import java.util.Date; import java.util.UUID; public class Registry implements DataModel, LabelGenerator { @@ -16,7 +17,6 @@ public class Registry implements DataModel, LabelGenerator { + private UUID id; private String label; - private String abbreviation; - private String reference; - private String uri; - private String definition; public UUID getId() { return id; } - public void setId(UUID id) { this.id = id; } @@ -28,7 +25,6 @@ public class Service implements DataModel$['data'][*]['attributes'] 'pid' - 'name' + 'uri' 'description' @@ -411,7 +411,7 @@ $['data'][*]['attributes'] 'pid' - 'name' + 'uri' 'description' diff --git a/dmp-backend/web/src/main/resources/RegistriesInternalMockUpData.json b/dmp-backend/web/src/main/resources/RegistriesInternalMockUpData.json index 7827ff557..15fa19a28 100644 --- a/dmp-backend/web/src/main/resources/RegistriesInternalMockUpData.json +++ b/dmp-backend/web/src/main/resources/RegistriesInternalMockUpData.json @@ -1,30 +1,27 @@ [ { "pid": "registriesmockup:internal/001", - "remote_id": "", - "remote_pid": "", - "name": "Registries test 1", - "uri": "", + "abbreviation": "RT1", + "label": "Registries test 1", + "uri": "mock.registries.com", "last_fetched": "", "description": "", "tag": "internal" }, { "pid": "registriesmockup:internal/002", - "remote_id": "", - "remote_pid": "", - "name": "Registries test 2", - "uri": "", + "abbreviation": "RT2", + "label": "Registries test 2", + "uri": "mock.registries.com", "last_fetched": "", "description": "", "tag": "internal" }, { "pid": "registriesmockup:internal/003", - "remote_id": "", - "remote_pid": "", - "name": "Registries test 3", - "uri": "", + "abbreviation": "RT3", + "label": "Registries test 3", + "uri": "mock.registries.com", "last_fetched": "", "description": "", "tag": "internal" diff --git a/dmp-backend/web/src/main/resources/ServicesInternalMockUpData.json b/dmp-backend/web/src/main/resources/ServicesInternalMockUpData.json index ceeb5fec0..f59ea07bc 100644 --- a/dmp-backend/web/src/main/resources/ServicesInternalMockUpData.json +++ b/dmp-backend/web/src/main/resources/ServicesInternalMockUpData.json @@ -1,30 +1,27 @@ [ { "pid": "servicesmockup:internal/001", - "remote_id": "", - "remote_pid": "", - "name": "Services test 1", - "uri": "", + "abbreviation": "ST1", + "label": "Services test 1", + "uri": "mock.services.com", "last_fetched": "", "description": "", "tag": "internal" }, { "pid": "servicesmockup:internal/002", - "remote_id": "", - "remote_pid": "", - "name": "Services test 2", - "uri": "", + "abbreviation": "ST2", + "label": "Services test 2", + "uri": "mock.services.com", "last_fetched": "", "description": "", "tag": "internal" }, { "pid": "servicesmockup:internal/003", - "remote_id": "", - "remote_pid": "", - "name": "Services test 3", - "uri": "", + "abbreviation": "ST3", + "label": "Services test 3", + "uri": "mock.services.com", "last_fetched": "", "description": "", "tag": "internal" diff --git a/dmp-frontend/src/app/core/model/registry/registry.ts b/dmp-frontend/src/app/core/model/registry/registry.ts index 7cbd89c5c..c9568466c 100644 --- a/dmp-frontend/src/app/core/model/registry/registry.ts +++ b/dmp-frontend/src/app/core/model/registry/registry.ts @@ -3,7 +3,7 @@ export interface RegistryModel { abbreviation: String; definition: String; id: String; - name: String; + label: String; reference: String; uri: String; } diff --git a/dmp-frontend/src/app/core/model/service/service.ts b/dmp-frontend/src/app/core/model/service/service.ts index 828bc9b5f..20c8dacd4 100644 --- a/dmp-frontend/src/app/core/model/service/service.ts +++ b/dmp-frontend/src/app/core/model/service/service.ts @@ -3,7 +3,7 @@ export interface ServiceModel { abbreviation: String; definition: String; uri: String; - name: String; + label: String; reference: String; } diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts index 6298f0944..3f573a7a1 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts @@ -178,15 +178,15 @@ export class ExternalServiceEditorModel { public abbreviation: String; public definition: String; public uri: String; - public name: String; + public label: String; public reference: String; - constructor(abbreviation?: String, definition?: String, id?: String, name?: String, reference?: String, uri?: String) { + constructor(abbreviation?: String, definition?: String, id?: String, label?: String, reference?: String, uri?: String) { this.id = id; this.abbreviation = abbreviation; this.definition = definition; this.uri = uri; - this.name = name; + this.label = label; this.reference = reference; } @@ -195,7 +195,7 @@ export class ExternalServiceEditorModel { this.abbreviation = item.abbreviation; this.definition = item.definition; this.uri = item.uri; - this.name = item.name; + this.label = item.label; this.reference = item.reference; return this; } @@ -204,7 +204,7 @@ export class ExternalServiceEditorModel { return new FormBuilder().group({ id: [this.id], abbreviation: [this.abbreviation], - name: [this.name], + label: [this.label], reference: [this.reference], uri: [this.uri], definition: [this.definition] @@ -216,15 +216,15 @@ export class ExternalRegistryEditorModel { public abbreviation: String; public definition: String; public id: String; - public name: String; + public label: String; public reference: String; public uri: String; - constructor(abbreviation?: String, definition?: String, id?: String, name?: String, reference?: String, uri?: String) { + constructor(abbreviation?: String, definition?: String, id?: String, label?: String, reference?: String, uri?: String) { this.abbreviation = abbreviation; this.definition = definition; this.id = id; - this.name = name; + this.label = label; this.reference = reference; this.uri = uri; } @@ -233,7 +233,7 @@ export class ExternalRegistryEditorModel { this.abbreviation = item.abbreviation; this.definition = item.definition; this.id = item.id; - this.name = item.name; + this.label = item.label; this.reference = item.reference; this.uri = item.uri; @@ -244,7 +244,7 @@ export class ExternalRegistryEditorModel { return new FormBuilder().group({ id: [this.id], abbreviation: [this.abbreviation], - name: [this.name], + label: [this.label], reference: [this.reference], uri: [this.uri], definition: [this.definition] diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html index 792a11432..7f7c8a9e7 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html @@ -94,7 +94,7 @@

- {{i+1}}) {{suggestion.get('name').value}} + {{i+1}}) {{suggestion.get('label').value}}

@@ -125,7 +125,7 @@

- {{i+1}}) {{suggestion.get('name').value}} + {{i+1}}) {{suggestion.get('label').value}}

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 e530e2c44..d4894cf99 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 @@ -83,16 +83,16 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl this.registriesAutoCompleteConfiguration = { filterFn: this.searchDatasetExternalRegistries.bind(this), initialItems: (type) => this.searchDatasetExternalRegistries('', type), - displayFn: (item) => item ? item.name : null, - titleFn: (item) => item ? item.name : null, + displayFn: (item) => item ? item.label : null, + titleFn: (item) => item ? item.label: null, subtitleFn: (item) => item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') }; this.servicesAutoCompleteConfiguration = { filterFn: this.searchDatasetExternalServices.bind(this), initialItems: (type) => this.searchDatasetExternalServices('', type), - displayFn: (item) => item ? item.name : null, - titleFn: (item) => item ? item.name : null, + displayFn: (item) => item ? item.label : null, + titleFn: (item) => item ? item.label : null, subtitleFn: (item) => item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') }; @@ -115,12 +115,12 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl } registriesOnItemChange(event) { - const registryModel = new ExternalRegistryEditorModel(event.abbreviation, event.definition, event.id, event.name, event.reference, event.uri); + const registryModel = new ExternalRegistryEditorModel(event.abbreviation, event.definition, event.id, event.label, event.reference, event.uri); (this.formGroup.get('registries')).push(registryModel.buildForm()); } servicesOnItemChange(event) { - const serviceModel = new ExternalServiceEditorModel(event.abbreviation, event.definition, event.id, event.name, event.reference, event.uri); + const serviceModel = new ExternalServiceEditorModel(event.abbreviation, event.definition, event.id, event.label, event.reference, event.uri); (this.formGroup.get('services')).push(serviceModel.buildForm()); } @@ -160,7 +160,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl .pipe(takeUntil(this._destroyed)) .subscribe(result => { if (!result) { return; } - const registryModel = new ExternalRegistryEditorModel(result.abbreviation, result.definition, result.id, result.name, result.reference, result.uri); + const registryModel = new ExternalRegistryEditorModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri); (this.formGroup.get('registries')).push(registryModel.buildForm()); }); } @@ -190,7 +190,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl .pipe(takeUntil(this._destroyed)) .subscribe(result => { if (!result) { return; } - const serviceModel = new ExternalServiceEditorModel(result.abbreviation, result.definition, result.id, result.name, result.reference, result.uri); + const serviceModel = new ExternalServiceEditorModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri); (this.formGroup.get('services')).push(serviceModel.buildForm()); }); } diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.html b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.html index feee19354..14f7e4673 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.html +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.html @@ -2,8 +2,8 @@

{{'DATASET-REFERENCED-MODELS.REGISTRY.TITLE' | translate}}

- - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{'GENERAL.VALIDATION.REQUIRED' | translate}} diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.html b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.html index ceaa2bcbe..092ecf4c9 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.html +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.html @@ -2,8 +2,8 @@

{{'DATASET-REFERENCED-MODELS.SERVICES.TITLE' | translate}}

- - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{'GENERAL.VALIDATION.REQUIRED' | translate}}