diff --git a/.classpath b/.classpath
index 46858fe..f34bf36 100644
--- a/.classpath
+++ b/.classpath
@@ -33,5 +33,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gwt/.gwt-log b/.gwt/.gwt-log
new file mode 100644
index 0000000..e69de29
diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs
index a81940d..d48a299 100644
--- a/.settings/com.google.gdt.eclipse.core.prefs
+++ b/.settings/com.google.gdt.eclipse.core.prefs
@@ -1,5 +1,5 @@
eclipse.preferences.version=1
jarsExcludedFromWebInfLib=
-lastWarOutDir=/home/francesco-mangiacrapa/wseclipseluna/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.0.0-SNAPSHOT
+lastWarOutDir=/home/costantino/workspace/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.0.0-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/pom.xml b/pom.xml
index d8b8eb0..b00e3f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,11 +57,11 @@
com.google.gwt
gwt-user
-
- compile
+ provided
+
${gwtVersion}
-
+
com.github.gwtbootstrap
gwt-bootstrap
compile
@@ -84,6 +84,13 @@
+
+
+ org.gcube.portlets.widgets
+ ckan-metadata-publisher-widget
+ [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+ compile
+
org.gcube.common
authorization-client
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 715ff51..8027926 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
@@ -17,6 +17,12 @@
+
+
+
+
+
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 ee97f0a..5ad4459 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
@@ -3,7 +3,17 @@
*/
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client;
+import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEvent;
+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.widgets.ckandatapublisherwidget.client.ui.CreateDatasetForm;
+
+import com.github.gwtbootstrap.client.ui.Modal;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
/**
@@ -20,6 +30,57 @@ public class CkanEventHandlerManager {
*
*/
public CkanEventHandlerManager() {
+ bind();
+ }
+
+
+ private void bind() {
+
+ // bind on insert metadata
+ eventBus.addHandler(InsertMetadataEvent.TYPE, new InsertMetadataEventHandler() {
+
+ @Override
+ public void onInsertMetadata(InsertMetadataEvent loadSelecteReleaseEvent) {
+
+ final Modal modal = new Modal(true);
+
+ // request who's doing the insert
+ GCubeCkanDataCatalog.service.getUser(new AsyncCallback() {
+
+ @Override
+ public void onSuccess(String username) {
+
+ if(username != null){
+ modal.setTitle("Insert Metadata");
+ modal.addStyleName("insert-metadata-modal-style");
+ modal.add(new CreateDatasetForm(username));
+ modal.setCloseVisible(true);
+ modal.show();
+ }
+ else
+ Window.alert("Please, logout and login again then retry.");
+
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+
+ Window.alert("Please, logout and login again then retry.");
+
+ }
+ });
+ }
+ });
+
+ // bind on edit (TODO)
+ eventBus.addHandler(EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
+
+ @Override
+ public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
+ // TODO Auto-generated method stub
+
+ }
+ });
}
@@ -29,4 +90,7 @@ public class CkanEventHandlerManager {
public HandlerManager getEventBus() {
return eventBus;
}
+
+
+
}
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogService.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogService.java
index f141b4f..4834df6 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogService.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogService.java
@@ -18,4 +18,10 @@ public interface GcubeCkanDataCatalogService extends RemoteService {
* @throws Exception
*/
CkanRole getMyRole() throws Exception;
+
+ /**
+ * Asks who is the current user
+ * @return
+ */
+ String getUser();
}
diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogServiceAsync.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogServiceAsync.java
index 27f4820..b0ff0ed 100644
--- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GcubeCkanDataCatalogServiceAsync.java
@@ -17,4 +17,6 @@ public interface GcubeCkanDataCatalogServiceAsync {
void getCKanConnector(AsyncCallback callback);
void getMyRole(AsyncCallback callback);
+
+ void getUser(AsyncCallback callback);
}
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 35c1af9..271a858 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
@@ -39,6 +39,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
// this.getElement().getStyle().setPaddingBottom(H_OFFSET, Unit.PX);
insertMeta.setType(ButtonType.LINK);
editMeta.setType(ButtonType.LINK);
+ editMeta.setVisible(false); // hide for now (it is not supported yet)
nav.add(insertMeta);
nav.add(editMeta);
nav.setClose(false);
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 fb71708..e6827a0 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
@@ -151,4 +151,14 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
//TODO READ FROM IS
return CkanRole.ADMIN;
}
+
+ @Override
+ public String getUser() {
+
+ HttpSession httpSession = this.getThreadLocalRequest().getSession();
+
+ logger.debug("User in session is " + getASLSession(httpSession).getUsername());
+ return getASLSession(httpSession).getUsername();
+
+ }
}
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 715ff51..8027926 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
@@ -17,6 +17,12 @@
+
+
+
+
+
diff --git a/src/main/webapp/GCubeCkanDataCatalog.css b/src/main/webapp/GCubeCkanDataCatalog.css
index 624082d..820ea2d 100644
--- a/src/main/webapp/GCubeCkanDataCatalog.css
+++ b/src/main/webapp/GCubeCkanDataCatalog.css
@@ -1,39 +1,48 @@
/** Add css rules here for your application. */
-
-
body {
- padding-top: 0px !important; /** OVERRIDE GWT BOOTSTRAP PADDING TOP TO 50px*/
+ padding-top: 0px !important;
+ /** OVERRIDE GWT BOOTSTRAP PADDING TOP TO 50px*/
}
-
/** Example rules used by the template application (remove for your app) */
h1 {
- font-size: 2em;
- font-weight: bold;
- color: #777777;
- margin: 40px 0px 70px;
- text-align: center;
+ font-size: 2em;
+ font-weight: bold;
+ color: #777777;
+ margin: 40px 0px 70px;
+ text-align: center;
}
.sendButton {
- display: block;
- font-size: 16pt;
+ display: block;
+ font-size: 16pt;
}
/** Most GWT widgets already have a style name defined */
.gwt-DialogBox {
- width: 400px;
+ width: 400px;
}
.dialogVPanel {
- margin: 5px;
+ margin: 5px;
}
.serverResponseLabelError {
- color: red;
+ color: red;
}
/** Set ids using widget.getElement().setId("idOfElement") */
#closeButton {
- margin: 15px 6px 6px;
+ margin: 15px 6px 6px;
}
+
+/** For the modal **/
+.insert-metadata-modal-style {
+ width: 1024px !important;
+ margin-left: -500px !important;
+}
+
+.modal-body {
+ height: 600px;
+ max-height: none !important;
+}
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index eead61a..519e508 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -7,7 +7,7 @@
CkanConnectorContext
-
+
/gcube/service/connect
@@ -17,11 +17,22 @@
org.gcube.portlets.gcubeckan.gcubeckandatacatalog.server.GcubeCkanDataCatalogServiceImpl
+
+ ckanpublisherservices
+ org.gcube.portlets.widgets.ckandatapublisherwidget.server.CKANPublisherServicesImpl
+
+
+
gcubeckandatacatalogservice
/gCubeCkanDataCatalog/ckandatacatalogue
+
+ ckanpublisherservices
+ /gCubeCkanDataCatalog/ckanservices
+
+