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 + +