From d1e3aae36d744d7a8b5a573c30c1989cfdc0055d Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Wed, 30 Jun 2021 12:51:12 +0300 Subject: [PATCH] Fix critical issue with dataset's copy dropdown --- .../data/query/definition/helpers/ColumnOrderings.java | 4 ++++ .../main/java/eu/eudat/elastic/criteria/DmpCriteria.java | 6 +++--- .../eu/eudat/logic/managers/DataManagementPlanManager.java | 3 +-- .../logic/mapper/elastic/criteria/DmpCriteriaMapper.java | 2 +- .../data/listingmodels/DataManagementPlanListingModel.java | 6 +++--- .../dataset-copy-dialogue.component.ts | 3 ++- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java index b01f8078d..7ab879b59 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java @@ -34,6 +34,10 @@ public class ColumnOrderings { ordering.fieldName(ordering.getFieldName().replace("|count|", "")).columnType(Ordering.ColumnType.COUNT); else if (ordering.getFieldName().contains("|join|")) ordering.fieldName(ordering.getFieldName().replace("|join|", "")).columnType(Ordering.ColumnType.JOIN_COLUMN); + else if (ordering.getFieldName().equals("asc")) + ordering.fieldName("label").orderByType(Ordering.OrderByType.ASC); + else if (ordering.getFieldName().equals("desc")) + ordering.fieldName("label").orderByType(Ordering.OrderByType.DESC); return ordering; } } diff --git a/dmp-backend/elastic/src/main/java/eu/eudat/elastic/criteria/DmpCriteria.java b/dmp-backend/elastic/src/main/java/eu/eudat/elastic/criteria/DmpCriteria.java index fb12d48aa..e354ec3cf 100644 --- a/dmp-backend/elastic/src/main/java/eu/eudat/elastic/criteria/DmpCriteria.java +++ b/dmp-backend/elastic/src/main/java/eu/eudat/elastic/criteria/DmpCriteria.java @@ -16,7 +16,7 @@ public class DmpCriteria extends Criteria { private boolean allowAllVersions; private Short grantStatus; private int offset; - private int size; + private Integer size; private List sortCriteria; @@ -116,11 +116,11 @@ public class DmpCriteria extends Criteria { this.offset = offset; } - public int getSize() { + public Integer getSize() { return size; } - public void setSize(int size) { + public void setSize(Integer size) { this.size = size; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index 50782785a..ae7c63c7a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -69,8 +69,6 @@ import org.springframework.core.env.Environment; import org.springframework.core.io.FileSystemResource; import org.springframework.http.*; import org.springframework.stereotype.Component; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.RestTemplate; @@ -137,6 +135,7 @@ public class DataManagementPlanManager { criteria.setOffset(dataManagementPlanTableRequest.getOffset()); criteria.setSize(dataManagementPlanTableRequest.getLength()); criteria.setSortCriteria(DmpCriteriaMapper.toElasticSorting(dataManagementPlanTableRequest.getOrderings())); + dmps = apiContext.getOperationsContext().getElasticRepository().getDmpRepository().query(criteria); if (dmps != null && !dmps.isEmpty()) { List finalDmps = dmps; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/criteria/DmpCriteriaMapper.java b/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/criteria/DmpCriteriaMapper.java index 810161ff2..1e7bae4b7 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/criteria/DmpCriteriaMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/mapper/elastic/criteria/DmpCriteriaMapper.java @@ -48,7 +48,7 @@ public class DmpCriteriaMapper { if (columnOrderings.getFieldOrderings() != null && columnOrderings.getFieldOrderings().length > 0) { for (Ordering ordering: columnOrderings.getFieldOrderings()) { SortCriteria sortCriteria1 = new SortCriteria(); - sortCriteria1.setFieldName(ordering.getFieldName()); + sortCriteria1.setFieldName(ordering.getFieldName() + ".keyword"); sortCriteria1.setColumnType(ordering.getColumnType() != null ? SortCriteria.ColumnType.valueOf(ordering.getColumnType().name()): SortCriteria.ColumnType.COLUMN); sortCriteria1.setOrderByType(SortCriteria.OrderByType.valueOf(ordering.getOrderByType().name())); sortCriteria.add(sortCriteria1); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java index 48df2685e..ad8bcda51 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java @@ -32,7 +32,7 @@ public class DataManagementPlanListingModel implements DataModel datasets; - //private List associatedProfiles; +// private List associatedProfiles; private List users; private String description; // private String grantAbbreviation; @@ -187,8 +187,8 @@ public class DataManagementPlanListingModel implements DataModel new AssociatedProfile().fromData(item)).collect(Collectors.toList());*/ +// this.creationTime = entity.getCreated(); +// this.associatedProfiles = entity.getAssociatedDmps().stream().map(item -> new AssociatedProfile().fromData(item)).collect(Collectors.toList()); return this; } diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts index a5dbca945..37b53eb00 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts @@ -61,7 +61,8 @@ export class DatasetCopyDialogueComponent { const dmpDataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dmpDataTableRequest.criteria = new DmpCriteria(); dmpDataTableRequest.criteria.like = query; - return this.dmpService.getPaged(dmpDataTableRequest, "profiles").pipe(map(x => x.data), map(x => x.filter(y => this.existsDatasetDescriptionTemplate(y.associatedProfiles)))); + dmpDataTableRequest.criteria.datasetTemplates = [this.data.datasetProfileId]; + return this.dmpService.getPaged(dmpDataTableRequest, "profiles").pipe(map(x => x.data)); } existsDatasetDescriptionTemplate(associatedProfiles: DmpAssociatedProfileModel[]): boolean {