-
+

{{'DASHBOARD.DATASETS' | translate}} {{titlePrefix}}

{{'DATASET-LISTING.SUBTITLE' | translate}}

diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html index fa3c4ba87..7102575c1 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html @@ -1,20 +1,52 @@
- bookmark - bookmark -

DRAFT: {{ dataset.label }}

-

{{ dataset.label }}

-

{{ dataset.description }}

-
+
+
+ bookmark + bookmark +

{{ dataset.label }}

+ +
+
+
+
+ + +
+
+
+
+

{{dataset.description}}

+
+
+
+
+ storage +

{{ dataset.dmp }}

+ + work_outline +

{{ dataset.project }}

+ + assignment +
+
{{ dataset.profile }}
+
+
+
+ +
diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss index 0beb62d2f..60daee69e 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss @@ -1,4 +1,68 @@ -h4 { - display: inline; - padding-left: 1em; +.gray-container { + letter-spacing: 5px; + color: #aaaaaa; +} + +.container-header { + display: flex; + align-items: baseline; + margin-top: 0px; + text-transform: uppercase; +} + +.container-header p { + letter-spacing: 5px; + color: #aaaaaa; + padding: 5px 30px; + margin-bottom: 0px; +} + +h4 { + display: inline; + padding-left: 1em; +} + +.about-item { + display: flex; +} + +.about-item .length { + color: rgb(70, 135, 240); +} + +.about-item .title { + margin: 2px 10px; +} + +.about-item p { + margin-left: auto; + margin-bottom: 0px; + padding-top: 7px; + color: #aaaaaa; +} + +::ng-deep .mat-ripple-element { + background-color: #2e74b649 !important; +} + +::ng-deep .mat-radio-container { + border-radius: 1em; + background: white; +} + +::ng-deep .mat-radio-button .mat-radio-outer-circle { + border: 1px solid #aaaaaa; +} + +::ng-deep .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle { + border-color: #2e75b6; +} + +::ng-deep .mat-radio-button.mat-accent .mat-radio-inner-circle { + color: #2e75b6; + background-color: #2e75b6; +} + +.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element { + background-color: #2e74b649; } diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html index b90e4e486..c737bbd90 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html @@ -2,7 +2,7 @@
- {{dmp.projectabbreviation}} + {{dmp.projectAbbreviation}} diff --git a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html index c9359f353..e95113847 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html +++ b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html @@ -13,8 +13,7 @@ Inactive
-
+
{{ 'FACET-SEARCH.PROJECT.TITLE' | translate }}
Date: Tue, 14 May 2019 12:26:22 +0300 Subject: [PATCH 3/8] Translates: Public Dmp, Styles: Dataset Listing --- .../dataset-listing-item.component.html | 14 ++++++-------- .../dataset-listing-item.component.scss | 5 +++++ .../explore-dmp-filters.component.html | 11 ++++++----- dmp-frontend/src/assets/i18n/en.json | 1 + 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html index 7102575c1..c46ac716c 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html @@ -2,9 +2,7 @@
- bookmark - bookmark -

{{ dataset.label }}

+ - +
+ bookmark + bookmark +

DRAFT: {{ dataset.label }}

+

{{ dataset.label }}

diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss index 60daee69e..106c863eb 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss @@ -22,6 +22,11 @@ h4 { padding-left: 1em; } +.title h4 { + padding-left: 30px; + line-height: 2em; +} + .about-item { display: flex; } diff --git a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html index e95113847..4a978c507 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html +++ b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.html @@ -5,18 +5,19 @@ + search
{{ 'FACET-SEARCH.PROJECT-STATUS.TITLE' | translate }}
- Active - Inactive + {{ 'FACET-SEARCH.PROJECT-STATUS.OPTIONS.ACTIVE' | translate }} + {{ 'FACET-SEARCH.PROJECT-STATUS.OPTIONS.INACTIVE' | translate }}
{{ 'FACET-SEARCH.PROJECT.TITLE' | translate }}
- @@ -27,7 +28,7 @@
{{ 'FACET-SEARCH.PROFILES.TITLE' | translate }}
- @@ -38,7 +39,7 @@
{{ 'FACET-SEARCH.DMP-ORGANISATIONS.TITLE' | translate }}
- diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index bf9ba9135..d5c250ac7 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -488,6 +488,7 @@ "ROLE": "Role", "ORGANIZATION": "Organization", "SELECT-ORGANIZATIONS": "Select Organizations", + "SELECT-SPEC": "Select Dataset Specification", "RELATED-PROJECT": "Related Project", "SELECT-DMP": "Select DMP", "RELATED-DMP": "Related DMPs" From c8844fba088636fd4ccce67da595628415e09b2a Mon Sep 17 00:00:00 2001 From: apapachristou Date: Tue, 14 May 2019 13:17:33 +0300 Subject: [PATCH 4/8] Ticket: -Dataset Template chip should be one line (no wrap) with a fixed width. In hover the full text should be displayed. --- .../dataset-listing-item.component.html | 2 +- .../dataset-listing-item.component.scss | 1 + .../dmp-listing-item.component.html | 2 +- .../dmp-listing-item.component.scss | 1 + .../explore-dmp-listing-item.component.html | 4 ++-- .../explore-dmp-listing-item.component.scss | 1 + dmp-frontend/src/styles.scss | 18 +++++++++++++++--- 7 files changed, 22 insertions(+), 7 deletions(-) diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html index c46ac716c..ac10fbf41 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.html @@ -32,7 +32,7 @@ assignment
-
{{ dataset.profile }}
+
{{ dataset.profile }}
diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss index 106c863eb..a3687c77a 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.scss @@ -29,6 +29,7 @@ h4 { .about-item { display: flex; + flex-wrap: wrap; } .about-item .length { diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html index c737bbd90..3057be6f7 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html @@ -45,7 +45,7 @@ assignment
-
{{profile.label}}
+
{{profile.label}}

Published {{dmp.creationTime | date: "shortDate"}}

diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss index 54ff403a2..e57862178 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss @@ -12,6 +12,7 @@ .about-item { display: flex; + flex-wrap: wrap; } .about-item .length { diff --git a/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.html b/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.html index 66094960f..fb792db7f 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.html +++ b/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.html @@ -2,7 +2,7 @@
- {{dmp.projectabbreviation}} + {{dmp.projectAbbreviation}}
@@ -26,7 +26,7 @@ assignment
-
{{profile.label}}
+
{{profile.label}}

Published {{dmp.creationTime | date: "shortDate"}}

diff --git a/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.scss b/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.scss index 241ffa1b7..44b984514 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.scss @@ -12,6 +12,7 @@ .about-item { display: flex; + flex-wrap: wrap; } .about-item .length { diff --git a/dmp-frontend/src/styles.scss b/dmp-frontend/src/styles.scss index a65b352e5..2680dea9e 100644 --- a/dmp-frontend/src/styles.scss +++ b/dmp-frontend/src/styles.scss @@ -58,7 +58,11 @@ $theme: mat-light-theme($primary, $accent); background-color: rgb(70, 135, 230); color: #fff; text-transform: uppercase; - font-weight: 500; + font-weight: 500; + max-width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } .bordered-chip { @@ -68,7 +72,11 @@ $theme: mat-light-theme($primary, $accent); background-color: rgb(236, 241, 249); color: rgb(68, 114, 196); text-transform: uppercase; - font-weight: 500; + font-weight: 500; + max-width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } .squared-chip { @@ -76,7 +84,11 @@ $theme: mat-light-theme($primary, $accent); border: 0.1em solid rgb(236, 241, 249); border-radius: 0.5em; background-color: rgb(246, 246, 246); - color: rgb(127, 127, 127); + color: rgb(127, 127, 127); + max-width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } mat-icon { From 3905f68121464f5a32a357e0c9a2220db1905a4e Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Tue, 14 May 2019 14:04:43 +0300 Subject: [PATCH 5/8] Adds the project Id on DMP listing model. --- .../listingmodels/DataManagementPlanListingModel.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 8cb16217e..bf4afa78e 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 @@ -35,6 +35,7 @@ public class DataManagementPlanListingModel implements DataModel users; private String description; private String projectAbbreviation; + private String projectId; public String getId() { @@ -142,6 +143,13 @@ public class DataManagementPlanListingModel implements DataModel new UserInfoListingModel().fromDataModel(x)).collect(Collectors.toList()); this.description = entity.getDescription(); this.projectAbbreviation = entity.getProject().getAbbreviation(); + this.projectId = entity.getProject().getId().toString(); if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) { Document viewStyleDoc = XmlBuilder.fromXml(entity.getAssociatedDmps()); From b8559f9f526a652d539c0981d8f38e7bee82ffec Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Tue, 14 May 2019 14:12:31 +0300 Subject: [PATCH 6/8] Organisations filter on "Public DMPs" now exposes only the ones associated with public DMPs. (Ticket #79) --- .../dao/criteria/OrganisationCriteria.java | 8 ++++++ .../dao/entities/OrganisationDaoImpl.java | 5 ++++ .../eu/eudat/controllers/Organisations.java | 7 +++++ .../logic/managers/OrganisationsManager.java | 22 ++++++++++++++++ .../external-sources.service.ts | 2 +- .../organisation/organisation.service.ts | 4 +++ .../explore-dmp-filters.component.ts | 26 ++++++++++++++----- 7 files changed, 66 insertions(+), 8 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java index 5c2922b52..5cc857a24 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/OrganisationCriteria.java @@ -4,6 +4,7 @@ import eu.eudat.data.entities.Organisation; public class OrganisationCriteria extends Criteria { private String labelLike; + private Boolean isPublic; public String getLabelLike() { return labelLike; @@ -11,4 +12,11 @@ public class OrganisationCriteria extends Criteria { public void setLabelLike(String labelLike) { this.labelLike = labelLike; } + + public Boolean getPublic() { + return isPublic; + } + public void setPublic(Boolean aPublic) { + isPublic = aPublic; + } } 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 d75f2ff8f..ef634dd85 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 @@ -3,6 +3,7 @@ package eu.eudat.data.dao.entities; import eu.eudat.data.dao.DatabaseAccess; import eu.eudat.data.dao.criteria.OrganisationCriteria; import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.Organisation; import eu.eudat.data.entities.UserInfo; import eu.eudat.queryable.QueryableList; @@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; +import javax.persistence.criteria.JoinType; import java.util.UUID; import java.util.concurrent.CompletableFuture; @@ -29,6 +31,9 @@ public class OrganisationDaoImpl extends DatabaseAccess implements if (criteria.getLabelLike() != null) { query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLabelLike().toUpperCase() + "%")); } + if (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-backend/web/src/main/java/eu/eudat/controllers/Organisations.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java index 5b9ffd6a0..5a14ecbf6 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Organisations.java @@ -51,5 +51,12 @@ public class Organisations extends BaseController { DataTableData organisationDataTableData = this.organisationsManager.getPagedOrganisations(organisationsTableRequest, principal); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(organisationDataTableData).status(ApiMessageCode.NO_MESSAGE)); } + + @RequestMapping(method = RequestMethod.POST, value = {"/public/organisations"}, produces = "application/json") + public @ResponseBody + ResponseEntity>> getPublicPaged(@Valid @RequestBody OrganisationsTableRequest organisationsTableRequest) throws Exception{ + DataTableData organisationDataTableData = this.organisationsManager.getPublicPagedOrganisations(organisationsTableRequest); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(organisationDataTableData).status(ApiMessageCode.NO_MESSAGE)); + } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java index e19c6cd76..0f5d8617d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java @@ -2,16 +2,22 @@ package eu.eudat.logic.managers; import eu.eudat.data.dao.criteria.OrganisationCriteria; import eu.eudat.data.dao.entities.OrganisationDao; +import eu.eudat.data.entities.DMP; +import eu.eudat.data.query.items.table.dmp.DataManagmentPlanPublicTableRequest; import eu.eudat.data.query.items.table.organisations.OrganisationsTableRequest; import eu.eudat.logic.services.ApiContext; import eu.eudat.logic.services.operations.DatabaseRepository; +import eu.eudat.models.HintedModelFactory; import eu.eudat.models.data.dmp.Organisation; import eu.eudat.models.data.helpers.common.DataTableData; +import eu.eudat.models.data.listingmodels.DataManagementPlanListingModel; import eu.eudat.models.data.security.Principal; import eu.eudat.queryable.QueryableList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; @@ -40,6 +46,22 @@ public class OrganisationsManager { DataTableData organisationDataTableData = new DataTableData<>(); organisationDataTableData.setData(org); organisationDataTableData.setTotalCount(pagedItems.count()); + + return organisationDataTableData; + } + + public DataTableData getPublicPagedOrganisations(OrganisationsTableRequest organisationsTableRequest) throws Exception { + organisationsTableRequest.getCriteria().setPublic(true); + OrganisationDao organisationDao = databaseRepository.getOrganisationDao(); + + QueryableList items = organisationDao.getWithCriteria(organisationsTableRequest.getCriteria()); + QueryableList pagedItems = PaginationManager.applyPaging(items, organisationsTableRequest); + + List org = pagedItems.toList().stream().distinct().map(item -> new Organisation().fromDataModel(item)).collect(Collectors.toList()); + DataTableData organisationDataTableData = new DataTableData<>(); + organisationDataTableData.setData(org); + organisationDataTableData.setTotalCount(pagedItems.count()); + return organisationDataTableData; } } diff --git a/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts b/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts index 2e2a5fe14..1d801b2da 100644 --- a/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts +++ b/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts @@ -63,7 +63,7 @@ export class ExternalSourcesService { public searchDMPOrganizations(like: string): Observable { return this.http.get(this.actionUrl + 'organisations' + '?query=' + like, { headers: this.headers }); - }//organizationscriteria.criteria.like + } // TODO: currently not used. public searchDMPProfiles(like: string): Observable { diff --git a/dmp-frontend/src/app/core/services/organisation/organisation.service.ts b/dmp-frontend/src/app/core/services/organisation/organisation.service.ts index a7287b221..a927bfcfa 100644 --- a/dmp-frontend/src/app/core/services/organisation/organisation.service.ts +++ b/dmp-frontend/src/app/core/services/organisation/organisation.service.ts @@ -26,4 +26,8 @@ export class OrganisationService { public searchInternalOrganisations(dataTableRequest: DataTableRequest): Observable> { return this.http.post>(this.actionUrl + 'internal/organisations', dataTableRequest , { headers: this.headers }); } + + public searchPublicOrganisations(dataTableRequest: DataTableRequest): Observable> { + return this.http.post>(this.actionUrl + 'public/organisations', dataTableRequest , { headers: this.headers }); + } } diff --git a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts index 5b8fc877b..43ef59b1a 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts +++ b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts @@ -37,11 +37,11 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements ProjectStateType = ProjectStateType; projects: Observable; profiles: Observable; - dmpOrganisations: Observable; + dmpOrganisations: Observable; projectOptions: Observable; projectStateOptions: Observable; filteringOrganisationsAsync = false; - filteredOrganisations: ExternalSourceItemModel[]; + filteredOrganisations: OrganizationModel[]; status: ProjectStateType; IsChecked: boolean; IsIndeterminate: boolean; @@ -118,7 +118,9 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements ]); }); this.profiles = this.datasetProfileService.getDatasetProfiles(); - this.dmpOrganisations = this.externalSourcesService.searchDMPOrganizations(''); + const fields: Array = new Array(); + fields.push('asc'); + this.dmpOrganisations = this.organisationService.searchPublicOrganisations(new DataTableRequest(0 , null, { fields: fields })).map(x => x.data); } ngAfterViewInit(): void { @@ -265,8 +267,13 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements return this.datasetProfileService.getDatasetProfiles(); } - dmpOrganisationSearch(value: string): Observable { - return this.externalSourcesService.searchDMPOrganizations(value); + dmpOrganisationSearch(value: string): Observable { + const fields: Array = new Array(); + fields.push('asc'); + const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); + dataTableRequest.criteria = new OrganisationCriteria(); + dataTableRequest.criteria.labelLike = value; + return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); } removeOrganisation(organisation) { @@ -279,7 +286,12 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements } getOrganisations() { - return this.externalSourcesService.searchDMPOrganizations(''); + const fields: Array = new Array(); + fields.push('asc'); + const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); + dataTableRequest.criteria = new OrganisationCriteria(); + dataTableRequest.criteria.labelLike = ''; + return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); } filterProject(query: string) { @@ -309,7 +321,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = value; - return this.organisationService.searchInternalOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); } displayLabel(value) { From 09d85f1485ceb5647d2447652e29d68fb2134f1f Mon Sep 17 00:00:00 2001 From: apapachristou Date: Tue, 14 May 2019 14:35:02 +0300 Subject: [PATCH 7/8] Ticket: -When clicking the Project name (it should be displayed as link), the user should be navigated to the Project editor Page for that project. (#80) --- dmp-frontend/src/app/core/model/dmp/dmp-listing.ts | 1 + .../listing-item/dmp-listing-item.component.html | 2 +- .../listing-item/dmp-listing-item.component.scss | 10 ++++++++++ .../listing-item/dmp-listing-item.component.ts | 13 +++++++++---- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts index 9b032ec73..105b2c388 100644 --- a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts +++ b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts @@ -6,6 +6,7 @@ export interface DmpListingModel { description: String; status: DmpStatus; project: String; + projectId: String; projectAbbreviation: String; profile: String; creationTime: String; diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html index 3057be6f7..4fb559d58 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html @@ -2,7 +2,7 @@
- {{dmp.projectAbbreviation}} +

{{dmp.projectAbbreviation}}

diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss index e57862178..f02b4e0fa 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss @@ -10,6 +10,16 @@ text-transform: uppercase; } +.container-header p { + letter-spacing: 5px; + color: #aaaaaa; + margin-bottom: 0px; +} + +.container-header :hover { + color: #4687e6; +} + .about-item { display: flex; flex-wrap: wrap; diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts index 650816797..3e960ce69 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts @@ -3,6 +3,7 @@ import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing'; import { MatDialog } from '@angular/material'; import { DmpInvitationDialogComponent } from '../../invitation/dmp-invitation.component'; import { Router } from '@angular/router'; +import { ProjectListingModel } from '../../../../core/model/project/project-listing'; @Component({ selector: 'app-dmp-listing-item-component', @@ -24,10 +25,6 @@ export class DmpListingItemComponent implements OnInit { else { this.isDraft = false } } - itemClicked() { - this.onClick.emit(this.dmp); - } - openShareDialog(rowId: any, rowName: any) { const dialogRef = this.dialog.open(DmpInvitationDialogComponent, { // height: '250px', @@ -50,4 +47,12 @@ export class DmpListingItemComponent implements OnInit { viewVersions(rowId: String, rowLabel: String) { this.router.navigate(['/plans/versions/' + rowId], { queryParams: { groupLabel: rowLabel } }); } + + itemClicked() { + this.onClick.emit(this.dmp); + } + + projectClicked(projectId: String) { + this.router.navigate(['/projects/edit/' + projectId]); + } } From 62d681d022b91282730d21f45ccea38ef6c945c8 Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Tue, 14 May 2019 16:08:49 +0300 Subject: [PATCH 8/8] Project filter on "Public DMPs" now exposes only the ones associated with public DMPs (Ticket #79) --- .../eu/eudat/data/dao/criteria/ProjectCriteria.java | 12 ++++++++---- .../java/eu/eudat/data/dao/entities/DMPDaoImpl.java | 2 +- .../eu/eudat/data/dao/entities/ProjectDaoImpl.java | 4 ++++ .../java/eu/eudat/logic/managers/ProjectManager.java | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java index d8a71b7ab..5aa7159f5 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/ProjectCriteria.java @@ -10,11 +10,11 @@ public class ProjectCriteria extends Criteria { private Date periodEnd; private String reference; private Integer projectStateType; + private boolean isPublic; public Date getPeriodStart() { return periodStart; } - public void setPeriodStart(Date periodStart) { this.periodStart = periodStart; } @@ -22,7 +22,6 @@ public class ProjectCriteria extends Criteria { public Date getPeriodEnd() { return periodEnd; } - public void setPeriodEnd(Date periodEnd) { this.periodEnd = periodEnd; } @@ -30,7 +29,6 @@ public class ProjectCriteria extends Criteria { public String getReference() { return reference; } - public void setReference(String reference) { this.reference = reference; } @@ -38,8 +36,14 @@ public class ProjectCriteria extends Criteria { public Integer getProjectStateType() { return projectStateType; } - public void setProjectStateType(Integer projectStateType) { this.projectStateType = projectStateType; } + + public boolean isPublic() { + return isPublic; + } + public void setPublic(boolean aPublic) { + isPublic = aPublic; + } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java index bff7a0d3b..625299c18 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java @@ -69,7 +69,7 @@ public class DMPDaoImpl extends DatabaseAccess implements DMPDao { } public QueryableList getAuthenticated(QueryableList query, UUID principal) { - query.where((builder, root) -> builder.or(builder.equal(root.get("creator").get("id"), principal), builder.equal(root.join("users", JoinType.LEFT).get("id"), principal))); + query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).join("user").get("id"), principal)); return query; } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java index 2a401bcff..1a1140153 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java @@ -3,6 +3,7 @@ package eu.eudat.data.dao.entities; import eu.eudat.data.dao.DatabaseAccess; import eu.eudat.data.dao.criteria.ProjectCriteria; import eu.eudat.data.dao.databaselayer.service.DatabaseService; +import eu.eudat.data.entities.DMP; import eu.eudat.data.entities.Project; import eu.eudat.data.entities.UserInfo; import eu.eudat.queryable.QueryableList; @@ -45,6 +46,9 @@ public class ProjectDaoImpl extends DatabaseAccess implements ProjectDa builder.or(builder.greaterThan(root.get("enddate"), new Date()) , builder.isNull(root.get("enddate")))); } + if (criteria.isPublic()) { + query.where((builder, root) -> builder.equal(root.join("dmps").get("status"), DMP.DMPStatus.FINALISED.getValue())).distinct(); + } query.where((builder, root) -> builder.notEqual(root.get("status"), Project.Status.DELETED.getValue())); return query; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java index e950e744a..eacf3df35 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java @@ -90,6 +90,7 @@ public class ProjectManager { public DataTableData getPublicPaged(ProjectTableRequest projectTableRequest) throws Exception { ProjectDao projectRepository = databaseRepository.getProjectDao(); + projectTableRequest.getCriteria().setPublic(true); QueryableList items = projectRepository.getWithCriteria(projectTableRequest.getCriteria()); QueryableList pagedItems = PaginationManager.applyPaging(items, projectTableRequest); DataTableData dataTable = new DataTableData<>();