diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/form/CreateDatasetForm.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/form/CreateDatasetForm.java index 07e0cfa..60eb342 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/form/CreateDatasetForm.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/form/CreateDatasetForm.java @@ -952,9 +952,9 @@ public class CreateDatasetForm extends Composite{ if(groupsTitle != null){ for (String groupTitle : groupsTitle) { if(field.isGroupToForce()) - groupsToForceCreation.add(new OrganizationBean(groupTitle, groupTitle, false)); + groupsToForceCreation.add(new OrganizationBean(groupTitle, groupTitle, false, field.isPropagateUp())); else - groups.add(new OrganizationBean(groupTitle, groupTitle, false)); + groups.add(new OrganizationBean(groupTitle, groupTitle, false, field.isPropagateUp())); } } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/metadata/MetaDataFieldSkeleton.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/metadata/MetaDataFieldSkeleton.java index 68b0eab..d73e28d 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/metadata/MetaDataFieldSkeleton.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/metadata/MetaDataFieldSkeleton.java @@ -782,5 +782,17 @@ public class MetaDataFieldSkeleton extends Composite{ } return false; } + + /** + * Check if the propagateUp is set + * @return + */ + public boolean isPropagateUp(){ + FieldAsGroup asGroup = field.getAsGroup(); + if(asGroup != null){ + return asGroup.isPropagateUp(); + } + return false; + } } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/threads/AssociationToGroupAndNotifyThread.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/threads/AssociationToGroupAndNotifyThread.java index 267124a..92c110e 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/threads/AssociationToGroupAndNotifyThread.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/threads/AssociationToGroupAndNotifyThread.java @@ -119,7 +119,7 @@ public class AssociationToGroupAndNotifyThread extends Thread { if(group == null) logger.warn("Unable to retrieve or create group with name " + group); else - groups.add(new OrganizationBean(group.getTitle(), group.getName(), false)); + groups.add(new OrganizationBean(group.getTitle(), group.getName(), false, groupToForce.isPropagateUp())); } } @@ -128,9 +128,8 @@ public class AssociationToGroupAndNotifyThread extends Thread { if(groups != null) for (OrganizationBean groupBean : groups) { - boolean putIntoGroup = catalogue.assignDatasetToGroup(groupBean.getName(), datasetId, catalogue.getApiKeyFromUsername(username)); + boolean putIntoGroup = catalogue.assignDatasetToGroup(groupBean.getName(), datasetId, catalogue.getApiKeyFromUsername(username), groupBean.isPropagateUp()); logger.info("Was product put into group" + groupBean.getTitle() + "? " + putIntoGroup); - if(putIntoGroup) notifyGroupAdmins(catalogue, groupBean.getName() ,groupBean.getTitle(), username); } diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/utils/MetadataDiscovery.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/utils/MetadataDiscovery.java index 123bad7..ce69f30 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/utils/MetadataDiscovery.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/utils/MetadataDiscovery.java @@ -213,6 +213,7 @@ public class MetadataDiscovery { FieldAsGroup group = new FieldAsGroup(); group.setCreate(grouping.getCreate()); + group.setPropagateUp(grouping.getPropagateUp()); group.setGroupingValue(TaggingGroupingValue.valueOf(grouping.getGroupingValue().toString())); wrapperObj.setAsGroup(group); @@ -272,8 +273,4 @@ public class MetadataDiscovery { return beans; } - // public static void main(String[] args) throws Exception { - // MetadataDiscovery.getMetadataProfilesList("/gcube/devsec/devVRE", null); - // } - } diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/OrganizationBean.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/OrganizationBean.java index bc463a7..197b93b 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/OrganizationBean.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/OrganizationBean.java @@ -12,6 +12,7 @@ public class OrganizationBean implements Serializable{ private String title; private String name; private boolean isOrganization; + private boolean propagateUp; // an item linked to this group has to be added on the whole hierarchy chain public OrganizationBean(){ super(); @@ -23,6 +24,14 @@ public class OrganizationBean implements Serializable{ this.name = name; this.isOrganization = isOrganization; } + + public OrganizationBean(String title, String name, boolean isOrganization, boolean propagateUp) { + super(); + this.title = title; + this.name = name; + this.isOrganization = isOrganization; + this.propagateUp = propagateUp; + } public String getTitle() { return title; @@ -48,10 +57,19 @@ public class OrganizationBean implements Serializable{ this.isOrganization = isOrganization; } + public boolean isPropagateUp() { + return propagateUp; + } + + public void setPropagateUp(boolean propagateUp) { + this.propagateUp = propagateUp; + } + @Override public String toString() { return "OrganizationBean [title=" + title + ", name=" + name - + ", isOrganization=" + isOrganization + "]"; + + ", isOrganization=" + isOrganization + ", propagateUp=" + + propagateUp + "]"; } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/metadata/FieldAsGroup.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/metadata/FieldAsGroup.java index b920582..6222b92 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/metadata/FieldAsGroup.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/metadata/FieldAsGroup.java @@ -14,14 +14,15 @@ public class FieldAsGroup implements Serializable{ private static final long serialVersionUID = 8096886403417944385L; private boolean create; + private boolean isPropagateUp; private TaggingGroupingValue groupingValue; public FieldAsGroup() { super(); } - - public FieldAsGroup(boolean create, TaggingGroupingValue groupingValue) { + public FieldAsGroup(boolean create, TaggingGroupingValue groupingValue, boolean isPropagateUp) { + this.isPropagateUp = isPropagateUp; this.create = create; this.groupingValue = groupingValue; } @@ -42,10 +43,18 @@ public class FieldAsGroup implements Serializable{ this.groupingValue = groupingValue; } + public boolean isPropagateUp() { + return isPropagateUp; + } + + public void setPropagateUp(boolean isPropagateUp) { + this.isPropagateUp = isPropagateUp; + } + @Override public String toString() { - return "FieldAsGroup [create=" + create + ", groupingValue=" - + groupingValue + "]"; + return "FieldAsGroup [create=" + create + ", isPropagateUp=" + + isPropagateUp + ", groupingValue=" + groupingValue + "]"; } }