From a155f2cbeccbdcb2294b91f641cc2792139cb200 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Fri, 30 Apr 2021 15:25:31 +0300 Subject: [PATCH] Allow to search organizations based on reference --- .../data/dao/entities/OrganisationDaoImpl.java | 18 +++++++++++------- .../editor/main-info/main-info.component.ts | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/OrganisationDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/OrganisationDaoImpl.java index 75e167e6e..6d2e63ee2 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/OrganisationDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/OrganisationDaoImpl.java @@ -26,13 +26,17 @@ public class OrganisationDaoImpl extends DatabaseAccess implements @Override public QueryableList getWithCriteria(OrganisationCriteria criteria) { QueryableList query = this.getDatabaseService().getQueryable(Organisation.class); - if (criteria.getLike() != null) - query.where((builder, root) -> builder.equal(root.get("reference"), criteria.getLike())); - if (criteria.getLabelLike() != null) { - query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLabelLike().toUpperCase() + "%")); - } - if (criteria.getPublic() != null && criteria.getPublic()) { - query.where((builder, root) -> builder.equal(root.join("dmps", JoinType.LEFT).get("status"), DMP.DMPStatus.FINALISED.getValue())); + if (criteria.getLabelLike() != null && criteria.getLike() != null) { + query.where((builder, root) -> builder.or(builder.equal(root.get("reference"), criteria.getLike()), builder.like(builder.upper(root.get("label")), "%" + criteria.getLabelLike().toUpperCase() + "%"))); + } else { + if (criteria.getLike() != null) + query.where((builder, root) -> builder.equal(root.get("reference"), criteria.getLike())); + if (criteria.getLabelLike() != null) { + query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLabelLike().toUpperCase() + "%")); + } + if (criteria.getPublic() != null && criteria.getPublic()) { + query.where((builder, root) -> builder.equal(root.join("dmps", JoinType.LEFT).get("status"), DMP.DMPStatus.FINALISED.getValue())); + } } return query; } diff --git a/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts b/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts index a676a43c3..89d3a19aa 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts @@ -147,7 +147,7 @@ export class MainInfoComponent extends BaseComponent implements OnInit { } filterOrganisations(value: string): Observable { - return this.organizationService.searchGeneralOrganisations({ criteria: { labelLike: value } }); + return this.organizationService.searchGeneralOrganisations({ criteria: { labelLike: value, like: value } }); } cantAddOrganizations(): boolean {