From e138b18dc1423a8d4a7b039b1a31fa7745858a8b Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Fri, 26 Apr 2019 17:08:41 +0300 Subject: [PATCH] Adds Templates (Dataset Profiles) on DMP listing. --- .../DataManagementPlanListingModel.java | 31 +++++++++++++++++++ .../src/app/core/model/dmp/dmp-listing.ts | 1 + .../dmp-listing-item.component.html | 11 +++---- 3 files changed, 36 insertions(+), 7 deletions(-) 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 42fdb197d..b58dbecda 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 @@ -1,12 +1,19 @@ package eu.eudat.models.data.listingmodels; import eu.eudat.data.entities.DMP; +import eu.eudat.logic.utilities.builders.XmlBuilder; import eu.eudat.models.DataModel; +import eu.eudat.models.data.dmp.AssociatedProfile; import eu.eudat.models.data.dmp.Organisation; import eu.eudat.logic.utilities.helpers.LabelBuilder; import eu.eudat.models.data.urls.DatasetUrlListing; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import java.util.Date; +import java.util.LinkedList; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -24,6 +31,7 @@ public class DataManagementPlanListingModel implements DataModel datasets; + private List associatedProfiles; public String getId() { return id; @@ -102,6 +110,13 @@ public class DataManagementPlanListingModel implements DataModel getAssociatedProfiles() { + return associatedProfiles; + } + public void setAssociatedProfiles(List associatedProfiles) { + this.associatedProfiles = associatedProfiles; + } + @Override public DataManagementPlanListingModel fromDataModel(DMP entity) { this.id = entity.getId().toString(); @@ -120,6 +135,22 @@ public class DataManagementPlanListingModel implements DataModel new Organisation().fromDataModel(item)).collect(Collectors.toList())); this.datasets = entity.getDataset().stream().map(x-> new DatasetUrlListing().fromDataModel(x)).collect(Collectors.toList()); + + if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) { + Document viewStyleDoc = XmlBuilder.fromXml(entity.getAssociatedDmps()); + Element item = (Element) viewStyleDoc.getElementsByTagName("profiles").item(0); + this.associatedProfiles = new LinkedList<>(); + if (item != null) { + NodeList associatedProfilesElement = item.getChildNodes(); + for (int temp = 0; temp < associatedProfilesElement.getLength(); temp++) { + Node associatedProfileElement = associatedProfilesElement.item(temp); + if (associatedProfileElement.getNodeType() == Node.ELEMENT_NODE) { + this.associatedProfiles.add(new AssociatedProfile().fromXml((Element) associatedProfileElement)); + } + } + } + } + return this; } 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 10b4374d7..dbd2b0f02 100644 --- a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts +++ b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts @@ -12,4 +12,5 @@ export interface DmpListingModel { groupId: string; version: number; datasets: any[]; + associatedProfiles: any[]; } 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 4bb2eafbc..c0341f3f9 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 @@ -9,13 +9,10 @@
storage -

4

-
TEMPLATE
-
TEMPLATE
-
TEMPLATE
-
TEMPLATE
-
TEMPLATE
-
TEMPLATE
+

{{dmp.associatedProfiles.length}}

+
+
{{profile.label}}
+
settings