diff --git a/.classpath b/.classpath
index a190e04..306919b 100644
--- a/.classpath
+++ b/.classpath
@@ -1,6 +1,6 @@
-
+
@@ -26,15 +26,15 @@
-
+
-
+
-
+
-
+
diff --git a/.settings/com.gwtplugins.gdt.eclipse.core.prefs b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
index 99f741f..f1f5fe5 100644
--- a/.settings/com.gwtplugins.gdt.eclipse.core.prefs
+++ b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
@@ -1,5 +1,5 @@
eclipse.preferences.version=1
jarsExcludedFromWebInfLib=
-lastWarOutDir=/home/francesco-mangiacrapa/git/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.7.0-SNAPSHOT
+lastWarOutDir=/home/francesco-mangiacrapa/git/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.8.0-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/com.gwtplugins.gwt.eclipse.core.prefs b/.settings/com.gwtplugins.gwt.eclipse.core.prefs
index c516ac9..98d8c12 100644
--- a/.settings/com.gwtplugins.gwt.eclipse.core.prefs
+++ b/.settings/com.gwtplugins.gwt.eclipse.core.prefs
@@ -1,3 +1,4 @@
eclipse.preferences.version=1
entryPointModules=
+gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBW11dPjwvZXh0cmEtYXJncz48dm0tYXJncz48IVtDREFUQVstWG14MWddXT48L3ZtLWFyZ3M+PGVudHJ5LXBvaW50LW1vZHVsZT5vcmcuZ2N1YmUucG9ydGxldHMuZ2N1YmVja2FuLmdjdWJlY2thbmRhdGFjYXRhbG9nLkdDdWJlQ2thbkRhdGFDYXRhbG9nPC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\=
gwtSyncCodeServer=true
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 8db228c..a5c7673 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,6 +1,6 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 1c66b72..c505e77 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,5 +1,5 @@
-
+
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
new file mode 100644
index 0000000..cc81385
--- /dev/null
+++ b/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
index f049f34..4c3f59d 100644
--- a/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -5,5 +5,6 @@
+
diff --git a/changelog.xml b/changelog.xml
index 6d1c10e..5cd7748 100644
--- a/changelog.xml
+++ b/changelog.xml
@@ -1,4 +1,11 @@
+
+ [Feature #18226]: Develop Ckan extension GUI for Zenodo
+ interactive linking
+
+
diff --git a/pom.xml b/pom.xml
index 483c7a7..72c3008 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
org.gcube.portlets.gcubeckan
gcube-ckan-datacatalog
war
- 1.7.0
+ 1.8.0-SNAPSHOT
gCube CKAN Data Catalog
The gCube CKAN Data Catalog portlet
@@ -114,6 +114,13 @@
compile
+
+ org.gcube.portlets.widgets
+ ckan2zenodo-publisher-widget
+ [0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)
+ compile
+
+
@@ -217,8 +224,6 @@
compile
-
-
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml
index 800e31e..0dea5be 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml
@@ -25,10 +25,13 @@
+
+
+
+
-
+
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java
index 7cdcda8..e6ceb6d 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java
@@ -8,6 +8,8 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetada
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEventHandler;
+import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.PublishOnZenodoEvent;
+import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.PublishOnZenodoEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShareLinkEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShareLinkEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowDatasetsEvent;
@@ -28,6 +30,8 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowTypesE
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowTypesEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
+import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZendoPublisherWidget;
+import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.CloseCreationFormEvent;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.CreateDatasetForm;
import org.gcube.portlets_widgets.catalogue_sharing_widget.client.ShareCatalogueWidget;
@@ -251,6 +255,22 @@ public class CkanEventHandlerManager {
}
});
+
+ eventBus.addHandler(PublishOnZenodoEvent.TYPE, new PublishOnZenodoEventHandler() {
+
+ @Override
+ public void onPublishOnZenodo(PublishOnZenodoEvent publishOnZenodoEvent) {
+
+ if(publishOnZenodoEvent.getUuidItem()!=null) {
+
+ CkanToZendoPublisherWidget publisherWidget = new CkanToZendoPublisherWidget();
+ CatalogueItem ci = new CatalogueItem(publishOnZenodoEvent.getUuidItem(), null, CatalogueItem.ITEM_TYPE.DATASET);
+ publisherWidget.publishOnZenodo(ci);
+
+ }
+ }
+
+ });
}
/**
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/event/PublishOnZenodoEvent.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/event/PublishOnZenodoEvent.java
new file mode 100644
index 0000000..6bb4d4f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/event/PublishOnZenodoEvent.java
@@ -0,0 +1,53 @@
+package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * The Class PublishOnZenodoEvent.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
+ *
+ * Dec 9, 2019
+ */
+public class PublishOnZenodoEvent extends GwtEvent{
+
+ public static Type TYPE = new Type();
+ private String uuidItem;
+
+ /**
+ * Instantiates a new insert metadata event.
+ *
+ * @param uuidItem the uuid item
+ */
+ public PublishOnZenodoEvent(String uuidItem) {
+ this.uuidItem = uuidItem;
+ }
+
+ /**
+ * Gets the uuid item.
+ *
+ * @return the uuid item
+ */
+ public String getUuidItem() {
+ return uuidItem;
+ }
+
+ /* (non-Javadoc)
+ * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
+ */
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ /* (non-Javadoc)
+ * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
+ */
+ @Override
+ protected void dispatch(PublishOnZenodoEventHandler handler) {
+ handler.onPublishOnZenodo(this);
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/event/PublishOnZenodoEventHandler.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/event/PublishOnZenodoEventHandler.java
new file mode 100644
index 0000000..99f9918
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/event/PublishOnZenodoEventHandler.java
@@ -0,0 +1,16 @@
+package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+
+/**
+ * The Interface PublishOnZenodoEventHandler.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
+ *
+ * Dec 9, 2019
+ */
+public interface PublishOnZenodoEventHandler extends EventHandler {
+
+ void onPublishOnZenodo(PublishOnZenodoEvent publishOnZenodoEvent);
+}
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanGroupsPanel.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanGroupsPanel.java
index 0ed5c5c..c120caf 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanGroupsPanel.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanGroupsPanel.java
@@ -94,7 +94,7 @@ public class CkanGroupsPanel extends VerticalPanel{
role.setType(ButtonType.LINK);
role.setText("as " + org.getRole().toString().toLowerCase());
role.addStyleName("button-as-role-style");
- role.getElement().getStyle().setProperty("pointer-events", "none");
+ role.getElement().getStyle().setProperty("pointerEvents", "none");
line.add(role);
ListItem item = new ListItem(line);
list.add(item);
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanMetadataManagementPanel.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanMetadataManagementPanel.java
index c138746..6021b60 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanMetadataManagementPanel.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanMetadataManagementPanel.java
@@ -5,6 +5,7 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
+import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.PublishOnZenodoEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShareLinkEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowDatasetsEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowGroupsEvent;
@@ -67,6 +68,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
// other stuff
private Button shareLink = new Button("Share Link");
+ private Button uploadToZenodo = new Button("Upload to Zenodo");
private Button insertMeta = new Button("Publish Item");
private Button editMeta = new Button("Edit Item");
private Button manageProduct = new Button("Manage Item");
@@ -96,6 +98,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
statistics.setType(ButtonType.LINK);
shareLink.setType(ButtonType.LINK);
+ uploadToZenodo.setType(ButtonType.LINK);
insertMeta.setType(ButtonType.LINK);
editMeta.setType(ButtonType.LINK);
manageProduct.setType(ButtonType.PRIMARY);
@@ -108,6 +111,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
items.setIcon(IconType.SITEMAP);
types.setIcon(IconType.FILE_TEXT);
shareLink.setIcon(IconType.SHARE);
+ uploadToZenodo.setIcon(IconType.CIRCLE_ARROW_UP);
myDatasets.setIcon(IconType.SITEMAP);
myOrganizations.setIcon(IconType.BUILDING);
myGroups.setIcon(IconType.GROUP);
@@ -118,6 +122,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
// hide edit and insert
shareLink.setEnabled(false);
+ uploadToZenodo.setEnabled(false);
editMeta.setVisible(false);
insertMeta.setVisible(false);
manageProduct.setVisible(false);
@@ -144,6 +149,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
separatorAdminButtons.setVisible(true);
nav.add(separatorAdminButtons);
nav.add(shareLink);
+ nav.add(uploadToZenodo);
nav.add(insertMeta);
nav.add(editMeta);
nav.add(manageProduct);
@@ -288,6 +294,15 @@ public class CkanMetadataManagementPanel extends FlowPanel{
}
});
+
+ uploadToZenodo.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+
+ eventBus.fireEvent(new PublishOnZenodoEvent(GCubeCkanDataCatalogPanel.getLatestSelectedProductIdentifier()));
+ }
+ });
}
/**
@@ -339,6 +354,16 @@ public class CkanMetadataManagementPanel extends FlowPanel{
shareLink.setEnabled(value);
}
+ /**
+ * Enable publish on zenodo button.
+ *
+ * @param value the value
+ */
+ public void enablePublishOnZenodoButton(boolean value){
+ uploadToZenodo.setEnabled(value);
+ }
+
+
/**
* Show only home/statistics buttons.
*/
@@ -347,6 +372,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
separatorMyInfo.setVisible(false);
separatorAdminButtons.setVisible(false);
shareLink.setVisible(false);
+ uploadToZenodo.setVisible(false);
insertMeta.setVisible(false);
editMeta.setVisible(false);
myDatasets.setVisible(false);
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanOrganizationsPanel.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanOrganizationsPanel.java
index be30281..5ea3284 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanOrganizationsPanel.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/CkanOrganizationsPanel.java
@@ -94,7 +94,7 @@ public class CkanOrganizationsPanel extends VerticalPanel{
role.setType(ButtonType.LINK);
role.setText("as Catalogue-" + org.getRole().toString().toLowerCase());
role.addStyleName("button-as-role-style");
- role.getElement().getStyle().setProperty("pointer-events", "none");
+ role.getElement().getStyle().setProperty("pointerEvents", "none");
line.add(role);
ListItem item = new ListItem(line);
list.add(item);
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/GCubeCkanDataCatalogPanel.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/GCubeCkanDataCatalogPanel.java
index 8f8ea39..794e2b8 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/GCubeCkanDataCatalogPanel.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/view/GCubeCkanDataCatalogPanel.java
@@ -441,6 +441,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate {
if(!isProductKeyMissing){
latestSelectedProductIdentifier = productId.toString();
managementPanel.enableShareItemButton(productId != null && !productId.isEmpty());
+ managementPanel.enablePublishOnZenodoButton(productId != null && !productId.isEmpty());
managementPanel.enableManageProductButton(productId != null && !productId.isEmpty() && isManageProductToShow);
}
} else {
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java
index 62aa0be..233e050 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java
@@ -15,7 +15,6 @@ import org.apache.commons.codec.binary.Base64;
import org.gcube.common.authorization.client.exceptions.ObjectNotFound;
import org.gcube.common.authorization.library.provider.UserInfo;
import org.gcube.common.portal.PortalContext;
-import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.scope.impl.ScopeBean;
import org.gcube.common.scope.impl.ScopeBean.Type;
import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue;
@@ -543,9 +542,12 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
try{
if(!SessionUtil.isIntoPortal()){
- enabled = true;
- logger.warn("Enabling View per VRE in DEV mode");
- return "/organization_vre/" + scopePerCurrentUrl.substring(scopePerCurrentUrl.lastIndexOf("/")+1,scopePerCurrentUrl.length()).toLowerCase(); //is the VRE name
+ enabled = false;
+ logger.warn("Enabling View per VRE in DEV mode? "+enabled);
+ if(enabled)
+ return "/organization_vre/" + scopePerCurrentUrl.substring(scopePerCurrentUrl.lastIndexOf("/")+1,scopePerCurrentUrl.length()).toLowerCase(); //is the VRE name
+
+ return null;
}
GroupManager gm = new LiferayGroupManager();
diff --git a/src/main/resources/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml b/src/main/resources/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml
index 800e31e..cda82dd 100644
--- a/src/main/resources/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/GCubeCkanDataCatalog.gwt.xml
@@ -25,10 +25,13 @@
+
+
+
+
-
+
diff --git a/src/main/webapp/WEB-INF/jsp/GCubeCkanDataCatalogPortlet_view.jsp b/src/main/webapp/WEB-INF/jsp/GCubeCkanDataCatalogPortlet_view.jsp
index bc03c11..9c144e8 100644
--- a/src/main/webapp/WEB-INF/jsp/GCubeCkanDataCatalogPortlet_view.jsp
+++ b/src/main/webapp/WEB-INF/jsp/GCubeCkanDataCatalogPortlet_view.jsp
@@ -26,8 +26,8 @@
-
+
+<%-- src='<%=request.getContextPath()%>/js/jquery.min.js'> --%>
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 24ff74a..f46f0c0 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -1,5 +1,6 @@
-
@@ -34,10 +35,10 @@
-
-
-
-
+
+
+
+
ckanpublisherservices
@@ -54,6 +55,17 @@
org.gcube.portlets_widgets.catalogue_sharing_widget.server.ShareServicesImpl
+
+
+ ckanToZenodoServlet
+ org.gcube.portlets.widgets.ckan2zenodopublisher.server.CkanToZenodoPublisherServiceImpl
+
+
+
+ ckanToZenodoServlet
+ /gCubeCkanDataCatalog/ckantozenodo
+
+
shareservices
/gCubeCkanDataCatalog/shareservices
@@ -79,10 +91,10 @@
-
-
-
-
+
+
+
+