Compare commits

...

3 Commits

Author SHA1 Message Date
Francesco Mangiacrapa cc180fad05 Revert "Merge pull request 'edit_facility_26115' (!5) from edit_facility_26115 into master"
This reverts commit b8c6ec5daa, reversing
changes made to b188a63e68.
2024-03-19 17:18:34 +01:00
Francesco Mangiacrapa 4524886b41 Revert "commented profiles"
This reverts commit 6e01560b72.
2024-03-19 17:04:25 +01:00
Francesco Mangiacrapa c5f4b7b8aa Revert "removed -SNAPSHOT to be released"
This reverts commit fc4270954c.
2024-03-19 16:56:58 +01:00
20 changed files with 222 additions and 870 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="src" output="target/gcube-ckan-datacatalog-2.3.0-SNAPSHOT/WEB-INF/classes" path="src/main/java"> <classpathentry kind="src" output="target/gcube-ckan-datacatalog-2.2.6-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<attributes> <attributes>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
@ -30,10 +30,5 @@
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry excluding="**" kind="src" output="target/gcube-ckan-datacatalog-2.3.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources"> <classpathentry kind="output" path="target/gcube-ckan-datacatalog-2.2.6-SNAPSHOT/WEB-INF/classes"/>
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/gcube-ckan-datacatalog-2.3.0-SNAPSHOT/WEB-INF/classes"/>
</classpath> </classpath>

View File

@ -1,6 +1,6 @@
>>>>>>>=refs/heads/task_20699 >>>>>>>=refs/heads/task_20699
eclipse.preferences.version=1 eclipse.preferences.version=1
jarsExcludedFromWebInfLib= jarsExcludedFromWebInfLib=
lastWarOutDir=/home/francescomangiacrapa/git/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-2.3.0-SNAPSHOT lastWarOutDir=/home/francescomangiacrapa/git/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-2.2.6-SNAPSHOT
warSrcDir=src/main/webapp warSrcDir=src/main/webapp
warSrcDirIsOutput=false warSrcDirIsOutput=false

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
@ -53,50 +53,8 @@
<wb-module deploy-name="gcube-ckan-datacatalog-2.2.6-SNAPSHOT">
<wb-module deploy-name="gcube-ckan-datacatalog-2.3.0-SNAPSHOT">
@ -151,28 +109,7 @@
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
@ -227,28 +164,7 @@
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
@ -303,32 +219,7 @@
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
@ -383,28 +274,7 @@
<property name="context-root" value="gcube-ckan-datacatalog"/> <property name="context-root" value="gcube-ckan-datacatalog"/>
@ -459,28 +329,7 @@
<property name="java-output-path" value="/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.0.0-SNAPSHOT/WEB-INF/classes"/> <property name="java-output-path" value="/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.0.0-SNAPSHOT/WEB-INF/classes"/>
@ -535,28 +384,7 @@
</wb-module> </wb-module>

View File

@ -4,14 +4,6 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v2.3.0] - 2024-02-02
- Supported the Edit facility [#26639]
- Supported the Delete facility [#26793]
- Revisited the Navigation Bar
- Revisited the "Select Item Resources" step when publishing from Workspace [#26874]
- Catalogue at root VO or VO level works in read only mode [#26854]
## [v2.2.7] - 2023-12-21 ## [v2.2.7] - 2023-12-21
- Including "Upload to Zenodo" fix [#26166] - Including "Upload to Zenodo" fix [#26166]

43
pom.xml
View File

@ -14,7 +14,7 @@
<groupId>org.gcube.portlets.gcubeckan</groupId> <groupId>org.gcube.portlets.gcubeckan</groupId>
<artifactId>gcube-ckan-datacatalog</artifactId> <artifactId>gcube-ckan-datacatalog</artifactId>
<packaging>war</packaging> <packaging>war</packaging>
<version>2.3.0</version> <version>2.2.7</version>
<name>gCube CKAN Data Catalog</name> <name>gCube CKAN Data Catalog</name>
<description>The gCube CKAN Data Catalog portlet</description> <description>The gCube CKAN Data Catalog portlet</description>
@ -27,7 +27,6 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<gcube-portal-bom-version>3.7.0</gcube-portal-bom-version>
</properties> </properties>
<scm> <scm>
@ -35,42 +34,13 @@
<developerConnection>scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git</developerConnection> <developerConnection>scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git</developerConnection>
<url>https://code-repo.d4science.org/gCubeSystem/${project.artifactId}</url> <url>https://code-repo.d4science.org/gCubeSystem/${project.artifactId}</url>
</scm> </scm>
<profiles>
<!-- PROD profile -->
<!-- <profile> -->
<!-- <id>catalogue-release-profile</id> -->
<!-- <activation> -->
<!-- <property> -->
<!-- <name>Release</name> -->
<!-- </property> -->
<!-- </activation> -->
<!-- <properties> -->
<!-- <gcube-portal-bom-version>3.7.0</gcube-portal-bom-version> -->
<!-- <storagehub-version-range>[1.0.0,2.0.0-SNAPSHOT)</storagehub-version-range> -->
<!-- </properties> -->
<!-- </profile> -->
<!-- DEV profile -->
<!-- <profile> -->
<!-- <id>catalogue-snapshot-profile</id> -->
<!-- <activation> -->
<!-- <property> -->
<!-- <name>!Release</name> -->
<!-- </property> -->
<!-- </activation> -->
<!-- <properties> -->
<!-- <gcube-portal-bom-version>3.8.0-SNAPSHOT</gcube-portal-bom-version> -->
<!-- <storagehub-version-range>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</storagehub-version-range> -->
<!-- </properties> -->
<!-- </profile> -->
</profiles>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.gcube.distribution</groupId> <groupId>org.gcube.distribution</groupId>
<artifactId>maven-portal-bom</artifactId> <artifactId>maven-portal-bom</artifactId>
<version>${gcube-portal-bom-version}</version> <version>3.6.4</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
<exclusions> <exclusions>
@ -85,6 +55,7 @@
</exclusions> </exclusions>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<dependencies> <dependencies>
@ -154,12 +125,6 @@
<version>[1.0.0,2.0.0-SNAPSHOT)</version> <version>[1.0.0,2.0.0-SNAPSHOT)</version>
</dependency> </dependency>
<dependency>
<groupId>org.gcube.portlets.widgets</groupId>
<artifactId>metadata-profile-form-builder-widget</artifactId>
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
</dependency>
<dependency> <dependency>
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>ckan-metadata-publisher-widget</artifactId> <artifactId>ckan-metadata-publisher-widget</artifactId>

View File

@ -20,10 +20,6 @@
<inherits <inherits
name='org.gcube.portlets_widgets.catalogue_sharing_widget.ShareCatalogue' /> name='org.gcube.portlets_widgets.catalogue_sharing_widget.ShareCatalogue' />
<inherits
name='org.gcube.portlets.widgets.mpformbuilder.MetadataProfileFormBuilder' />
<inherits <inherits
name='org.gcube.portlets.widgets.ckandatapublisherwidget.CKanMetadataPublisher' /> name='org.gcube.portlets.widgets.ckandatapublisherwidget.CKanMetadataPublisher' />
<inherits <inherits
@ -33,9 +29,6 @@
<inherits <inherits
name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' /> name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
<inherits
name='org.gcube.portlets.widgets.wsexplorer.WorkspaceExplorer' />
<inherits <inherits
name='org.gcube.portlets.widgets.switchbutton.SwitchButton' /> name='org.gcube.portlets.widgets.switchbutton.SwitchButton' />
<inherits <inherits
@ -43,6 +36,7 @@
<inherits <inherits
name='org.gcube.portlets.widgets.ckancontentmoderator.CkanContentModeratorWidget' /> name='org.gcube.portlets.widgets.ckancontentmoderator.CkanContentModeratorWidget' />
<!-- Specify the app entry point class. --> <!-- Specify the app entry point class. -->
<entry-point <entry-point
class='org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.GCubeCkanDataCatalog' /> class='org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.GCubeCkanDataCatalog' />

View File

@ -7,8 +7,6 @@ import org.gcube.datacatalogue.grsf_manage_widget.client.view.ManageProductWidge
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ClickedCMSManageProductButtonEvent; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ClickedCMSManageProductButtonEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ClickedCMSManageProductButtonEventHandler; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ClickedCMSManageProductButtonEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.DeleteItemEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.DeleteItemEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEvent; 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.EditMetadataEventHandler;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
@ -41,11 +39,7 @@ import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModerat
import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidgetTrusted; import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidgetTrusted;
import org.gcube.portlets.widgets.ckancontentmoderator.client.ContentModeratorWidgetConstants; import org.gcube.portlets.widgets.ckancontentmoderator.client.ContentModeratorWidgetConstants;
import org.gcube.portlets.widgets.ckancontentmoderator.shared.DISPLAY_FIELD; import org.gcube.portlets.widgets.ckancontentmoderator.shared.DISPLAY_FIELD;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.ReloadDatasetPageEvent;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.ReloadDatasetPageEventHandler;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.action.DeleteItemPanel;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.CreateDatasetForm; import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.CreateDatasetForm;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.UpdateDatasetForm;
import org.gcube.portlets_widgets.catalogue_sharing_widget.client.ShareCatalogueWidget; import org.gcube.portlets_widgets.catalogue_sharing_widget.client.ShareCatalogueWidget;
import com.github.gwtbootstrap.client.ui.Modal; import com.github.gwtbootstrap.client.ui.Modal;
@ -101,7 +95,6 @@ public class CkanEventHandlerManager {
} }
}); });
// bind on insert metadata // bind on insert metadata
eventBus.addHandler(InsertMetadataEvent.TYPE, new InsertMetadataEventHandler() { eventBus.addHandler(InsertMetadataEvent.TYPE, new InsertMetadataEventHandler() {
@ -124,7 +117,7 @@ public class CkanEventHandlerManager {
// public void onHide(HideEvent hideEvent) { // public void onHide(HideEvent hideEvent) {
// GWT.log("HideEvent on modal fired"); // GWT.log("HideEvent on modal fired");
// GWT.log(hideEvent.toDebugString()); // GWT.log(hideEvent.toDebugString());
// eventBus.fireEvent(new CloseCreationFormProfileEvent()); // eventBus.fireEvent(new CloseCreationFormEvent());
// //
// hideEvent.preventDefault(); // hideEvent.preventDefault();
// hideEvent.stopPropagation(); // hideEvent.stopPropagation();
@ -137,6 +130,15 @@ public class CkanEventHandlerManager {
modal.show(); modal.show();
} }
}); });
// bind on edit (TODO)
eventBus.addHandler(EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
@Override
public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
// TODO Auto-generated method stub
}
});
// show datasets event // show datasets event
eventBus.addHandler(ShowDatasetsEvent.TYPE, new ShowDatasetsEventHandler() { eventBus.addHandler(ShowDatasetsEvent.TYPE, new ShowDatasetsEventHandler() {
@ -144,37 +146,14 @@ public class CkanEventHandlerManager {
@Override @Override
public void onShowDatasets(ShowDatasetsEvent showUserDatasetsEvent) { public void onShowDatasets(ShowDatasetsEvent showUserDatasetsEvent) {
String request = null; String request = null;
if (showUserDatasetsEvent.isOwnOnly())
if (showUserDatasetsEvent.getDatasetId() == null) { request = getCkanRequest("/dashboard/datasets", null);
if (showUserDatasetsEvent.isOwnOnly()) { else
request = getCkanRequest("/dashboard/datasets", null); request = getCkanRequest("/dataset", null);
} else {
request = getCkanRequest("/dataset", null);
}
} else {
String datasetId = showUserDatasetsEvent.getDatasetId();
request = getCkanRequest("/dataset/" + datasetId, null);
}
gcubeCkanDataCatalogue.instanceCkanFrame(request); gcubeCkanDataCatalogue.instanceCkanFrame(request);
} }
}); });
// ReloadDatasetPageEvent is declared in the Publisher Widget
eventBus.addHandler(ReloadDatasetPageEvent.TYPE, new ReloadDatasetPageEventHandler() {
@Override
public void onReloadDatasetPage(ReloadDatasetPageEvent addResourceEvent) {
if (addResourceEvent.getDatasetIDorName() != null) {
eventBus.fireEvent(new ShowDatasetsEvent(false, addResourceEvent.getDatasetIDorName()));
} else {
eventBus.fireEvent(new ShowDatasetsEvent(false));
}
}
});
eventBus.addHandler(ShowTypesEvent.TYPE, new ShowTypesEventHandler() { eventBus.addHandler(ShowTypesEvent.TYPE, new ShowTypesEventHandler() {
@Override @Override
@ -222,6 +201,29 @@ public class CkanEventHandlerManager {
} }
}); });
// eventBus.addHandler(NotifyLogoutEvent.TYPE, new NotifyLogoutEventHandler() {
//
// @Override
// public void onLogout(NotifyLogoutEvent editMetadataEvent) {
//
// // CKanLeaveFrame frame = new
// CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
// // DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
// }
// });
//
// eventBus.addHandler(IFrameInstanciedEvent.TYPE, new
// IFrameInstanciedEventHandler() {
//
// @Override
// public void onNewInstance(IFrameInstanciedEvent iFrameInstanciedEvent) {
//
// gcubeCkanDataCatalogue.updateSize();
// if(logoutFromCKANURL==null)
// instanceLogoutSystem();
// }
// });
eventBus.addHandler(ShowManageProductWidgetEvent.TYPE, new ShowManageProductWidgetEventHandler() { eventBus.addHandler(ShowManageProductWidgetEvent.TYPE, new ShowManageProductWidgetEventHandler() {
@Override @Override
@ -303,55 +305,6 @@ public class CkanEventHandlerManager {
} }
}); });
eventBus.addHandler(EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
@Override
public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
GWT.log("editMetadataEvent: " + editMetadataEvent);
if (editMetadataEvent.getItemID() != null) {
final Modal modal = new ExtModal(true, true);
modal.setTitle("Update Item");
modal.addStyleName("insert-metadata-modal-style");
modal.addStyleName("modal-top-custom");
((Element) modal.getElement().getChildNodes().getItem(1)).addClassName("modal-body-custom");
modal.add(new UpdateDatasetForm(eventBus, editMetadataEvent.getItemID()));
modal.setCloseVisible(true);
GWT.log("show");
modal.show();
}
}
});
eventBus.addHandler(DeleteItemEvent.TYPE, new DeleteItemEventHandler() {
@Override
public void onDeleteItem(DeleteItemEvent deleteItemEvent) {
GWT.log("deleteItemEvent: " + deleteItemEvent);
if (deleteItemEvent.getItemID() != null) {
GWT.log("deleteItemEvent: " + deleteItemEvent);
final Modal modal = new ExtModal(true, true);
modal.setTitle("Delete Item");
modal.addStyleName("modal-top-custom");
((Element) modal.getElement().getChildNodes().getItem(1)).addClassName("modal-body-custom");
modal.add(new DeleteItemPanel(eventBus, deleteItemEvent.getItemID()));
modal.setCloseVisible(true);
GWT.log("show");
modal.show();
}
}
});
} }
/** /**

View File

@ -1,66 +0,0 @@
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
import com.google.gwt.event.shared.GwtEvent;
/**
* The Class DeleteItemEvent.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Feb 19, 2024
*/
public class DeleteItemEvent extends GwtEvent<DeleteItemEventHandler> {
public static Type<DeleteItemEventHandler> TYPE = new Type<DeleteItemEventHandler>();
private String itemID;
/**
* Instantiates a new delete item event.
*
* @param itemID the item ID
*/
public DeleteItemEvent(String itemID) {
this.itemID = itemID;
}
/**
* Gets the associated type.
*
* @return the associated type
*/
/*
* (non-Javadoc)
*
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/
@Override
public Type<DeleteItemEventHandler> getAssociatedType() {
return TYPE;
}
/**
* Dispatch.
*
* @param handler the handler
*/
/*
* (non-Javadoc)
*
* @see
* com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.
* EventHandler)
*/
@Override
protected void dispatch(DeleteItemEventHandler handler) {
handler.onDeleteItem(this);
}
/**
* Gets the item ID.
*
* @return the item ID
*/
public String getItemID() {
return itemID;
}
}

View File

@ -1,21 +0,0 @@
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
import com.google.gwt.event.shared.EventHandler;
/**
* The Interface DeleteItemEventHandler.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Feb 19, 2024
*/
public interface DeleteItemEventHandler extends EventHandler {
/**
* On delete item.
*
* @param deleteItemEvent the delete item event
*/
void onDeleteItem(DeleteItemEvent deleteItemEvent);
}

View File

@ -11,22 +11,14 @@ import com.google.gwt.event.shared.GwtEvent;
*/ */
public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> { public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> {
public static Type<EditMetadataEventHandler> TYPE = new Type<EditMetadataEventHandler>(); public static Type<EditMetadataEventHandler> TYPE = new Type<EditMetadataEventHandler>();
private String itemID;
/** /**
* Instantiates a new edits the metadata event. * Instantiates a new insert metadata event.
*
* @param itemID the item ID
*/ */
public EditMetadataEvent(String itemID) { public EditMetadataEvent() {
this.itemID = itemID;
} }
/**
* Gets the associated type.
*
* @return the associated type
*/
/* (non-Javadoc) /* (non-Javadoc)
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/ */
@ -35,11 +27,6 @@ public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> {
return TYPE; return TYPE;
} }
/**
* Dispatch.
*
* @param handler the handler
*/
/* (non-Javadoc) /* (non-Javadoc)
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler) * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
*/ */
@ -47,9 +34,5 @@ public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> {
protected void dispatch(EditMetadataEventHandler handler) { protected void dispatch(EditMetadataEventHandler handler) {
handler.onEditMetadata(this); handler.onEditMetadata(this);
} }
public String getItemID() {
return itemID;
}
} }

View File

@ -2,28 +2,25 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.GwtEvent;
/** /**
* The Class IFrameInstanciedEvent. * The Class NotifyLogoutEvent.
* *
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jun 23, 2016 * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Jun 23, 2016
*/ */
public class IFrameInstanciedEvent extends GwtEvent<IFrameInstanciedEventHandler> { public class IFrameInstanciedEvent extends GwtEvent<IFrameInstanciedEventHandler> {
public static Type<IFrameInstanciedEventHandler> TYPE = new Type<IFrameInstanciedEventHandler>(); public static Type<IFrameInstanciedEventHandler> TYPE = new Type<IFrameInstanciedEventHandler>();
/** /**
* Instantiates a new insert metadata event. * Instantiates a new insert metadata event.
*/ */
public IFrameInstanciedEvent() { public IFrameInstanciedEvent() {
} }
/** /* (non-Javadoc)
* Gets the associated type.
*
* @return the associated type
*/
/*
* (non-Javadoc)
*
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/ */
@Override @Override
@ -31,17 +28,8 @@ public class IFrameInstanciedEvent extends GwtEvent<IFrameInstanciedEventHandler
return TYPE; return TYPE;
} }
/** /* (non-Javadoc)
* Dispatch. * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
*
* @param handler the handler
*/
/*
* (non-Javadoc)
*
* @see
* com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.
* EventHandler)
*/ */
@Override @Override
protected void dispatch(IFrameInstanciedEventHandler handler) { protected void dispatch(IFrameInstanciedEventHandler handler) {

View File

@ -2,15 +2,17 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.EventHandler;
/** /**
* The Interface IFrameInstanciedEventHandler. * The Interface IFrameInstanciedEentHandler.
* *
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* * Jun 23, 2016
* Feb 13, 2024
*/ */
public interface IFrameInstanciedEventHandler extends EventHandler { public interface IFrameInstanciedEventHandler extends EventHandler {
/** /**
* On new instance. * On new instance.
* *

View File

@ -3,57 +3,29 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.GwtEvent;
/** /**
* The Class ShowDatasetsEvent. * Raised when the user wants to see his datasets.
* * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Feb 13, 2024
*/ */
public class ShowDatasetsEvent extends GwtEvent<ShowDatasetsEventHandler> { public class ShowDatasetsEvent extends GwtEvent<ShowDatasetsEventHandler>{
public static Type<ShowDatasetsEventHandler> TYPE = new Type<ShowDatasetsEventHandler>(); public static Type<ShowDatasetsEventHandler> TYPE = new Type<ShowDatasetsEventHandler>();
private boolean ownOnly; private boolean ownOnly;
private String datasetId;
/** /**
* Instantiates a new show user datasets event. * Instantiates a new show user datasets event.
*
* @param ownOnly the own only
*/ */
public ShowDatasetsEvent(boolean ownOnly) { public ShowDatasetsEvent(boolean ownOnly) {
this.ownOnly = ownOnly; this.ownOnly = ownOnly;
} }
/**
* Instantiates a new show user datasets event.
*
* @param ownOnly the own only
* @param datasetId the dataset id
*/
public ShowDatasetsEvent(boolean ownOnly, String datasetId) {
this.ownOnly = ownOnly;
this.datasetId = datasetId;
}
/**
* Checks if is own only.
*
* @return true, if is own only
*/
public boolean isOwnOnly() { public boolean isOwnOnly() {
return ownOnly; return ownOnly;
} }
/** /* (non-Javadoc)
* Gets the associated type.
*
* @return the associated type
*/
/*
* (non-Javadoc)
*
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/ */
@Override @Override
@ -61,25 +33,12 @@ public class ShowDatasetsEvent extends GwtEvent<ShowDatasetsEventHandler> {
return TYPE; return TYPE;
} }
/** /* (non-Javadoc)
* Dispatch. * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
*
* @param handler the handler
*/
/*
* (non-Javadoc)
*
* @see
* com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.
* EventHandler)
*/ */
@Override @Override
protected void dispatch(ShowDatasetsEventHandler handler) { protected void dispatch(ShowDatasetsEventHandler handler) {
handler.onShowDatasets(this); handler.onShowDatasets(this);
} }
public String getDatasetId() {
return datasetId;
}
} }

View File

@ -4,7 +4,6 @@
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view; package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ClickedCMSManageProductButtonEvent; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ClickedCMSManageProductButtonEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.DeleteItemEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEvent; 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.InsertMetadataEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.PublishOnZenodoEvent; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.PublishOnZenodoEvent;
@ -17,14 +16,12 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowOrgani
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEvent; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEvent;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowTypesEvent; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowTypesEvent;
import com.github.gwtbootstrap.client.ui.AlertBlock;
import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.DropdownButton;
import com.github.gwtbootstrap.client.ui.Label; import com.github.gwtbootstrap.client.ui.Label;
import com.github.gwtbootstrap.client.ui.NavLink; import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.github.gwtbootstrap.client.ui.Navbar;
import com.github.gwtbootstrap.client.ui.constants.ButtonType; import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.github.gwtbootstrap.client.ui.constants.IconType; import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Float; import com.google.gwt.dom.client.Style.Float;
import com.google.gwt.dom.client.Style.FontWeight; import com.google.gwt.dom.client.Style.FontWeight;
import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.Style.Unit;
@ -47,6 +44,9 @@ public class CkanMetadataManagementPanel extends FlowPanel {
public static final String CATALOGUE_ITEMS_WERE_APPROVED_BY_CATALOGUE_MODERATOR_S = "Catalogue items were approved by Catalogue Moderator(s)."; public static final String CATALOGUE_ITEMS_WERE_APPROVED_BY_CATALOGUE_MODERATOR_S = "Catalogue items were approved by Catalogue Moderator(s).";
/**
*
*/
private static final String MY_PREFIX = "My "; private static final String MY_PREFIX = "My ";
private static final String MANAGE_GRSF_ITEM_TOOLTIP = "By pushing on this button, you will be able to manage the item you are viewing." private static final String MANAGE_GRSF_ITEM_TOOLTIP = "By pushing on this button, you will be able to manage the item you are viewing."
@ -55,7 +55,7 @@ public class CkanMetadataManagementPanel extends FlowPanel {
private static final String MANAGE_CMS_ITEMS_TOOLTIP = "By pushing on this button, you will be able to manage (APPROVING or REJECTING) the item under approval." private static final String MANAGE_CMS_ITEMS_TOOLTIP = "By pushing on this button, you will be able to manage (APPROVING or REJECTING) the item under approval."
+ " Manageable items are not APPROVED and NOT PUBLISHED in the Catalogue."; + " Manageable items are not APPROVED and NOT PUBLISHED in the Catalogue.";
private Navbar nav = new Navbar(); private AlertBlock nav = new AlertBlock();
// generic // generic
private Button home = new Button("Home"); private Button home = new Button("Home");
@ -65,14 +65,11 @@ public class CkanMetadataManagementPanel extends FlowPanel {
private Button types = new Button("Types"); private Button types = new Button("Types");
// user's own // user's own
private InlineHTML pipe_MyInfo_start = null; private InlineHTML separatorMyInfo = null;
private InlineHTML pipe_PublishItem_start = null; private InlineHTML separatorAdminButtons = null;
private InlineHTML pipe_SelectedItemOptions_start = null; private Button myDatasets = new Button("My Items");
private Button myOrganizations = new Button("My Organizations");
private DropdownButton dropMyOptionButtons = new DropdownButton("My..."); private Button myGroups = new Button("My Groups");
private NavLink myDatasets = new NavLink("My Items");
private NavLink myOrganizations = new NavLink("My Organizations");
private NavLink myGroups = new NavLink("My Groups");
// statistics // statistics
private Button statistics = new Button("Statistics"); private Button statistics = new Button("Statistics");
@ -81,8 +78,7 @@ public class CkanMetadataManagementPanel extends FlowPanel {
private Button shareLink = new Button("Share Link"); private Button shareLink = new Button("Share Link");
private Button uploadToZenodo = new Button("Upload to Zenodo"); private Button uploadToZenodo = new Button("Upload to Zenodo");
private Button insertMeta = new Button("Publish Item"); private Button insertMeta = new Button("Publish Item");
private Button editMeta = new Button("Update Item"); private Button editMeta = new Button("Edit Item");
private Button deleteItem = new Button("Delete Item");
private Button manageGRSFProduct = new Button("Manage GRSF Item"); // GRSF Manage private Button manageGRSFProduct = new Button("Manage GRSF Item"); // GRSF Manage
private Button manageCModS = new Button("Manage Items"); // Moderation private Button manageCModS = new Button("Manage Items"); // Moderation
@ -107,20 +103,25 @@ public class CkanMetadataManagementPanel extends FlowPanel {
items.setType(ButtonType.LINK); items.setType(ButtonType.LINK);
types.setType(ButtonType.LINK); types.setType(ButtonType.LINK);
myDatasets.setType(ButtonType.LINK);
myOrganizations.setType(ButtonType.LINK);
myGroups.setType(ButtonType.LINK);
statistics.setType(ButtonType.LINK); statistics.setType(ButtonType.LINK);
shareLink.setType(ButtonType.LINK); shareLink.setType(ButtonType.LINK);
uploadToZenodo.setType(ButtonType.LINK); uploadToZenodo.setType(ButtonType.LINK);
insertMeta.setType(ButtonType.LINK); insertMeta.setType(ButtonType.LINK);
editMeta.setType(ButtonType.LINK); editMeta.setType(ButtonType.LINK);
deleteItem.setType(ButtonType.LINK);
manageGRSFProduct.setType(ButtonType.PRIMARY); manageGRSFProduct.setType(ButtonType.PRIMARY);
manageGRSFProduct.getElement().getStyle().setFloat(Float.RIGHT); manageGRSFProduct.getElement().getStyle().setFloat(Float.RIGHT);
manageCModS.setType(ButtonType.PRIMARY); manageCModS.setType(ButtonType.PRIMARY);
manageCModS.getElement().getStyle().setFloat(Float.RIGHT); manageCModS.getElement().getStyle().setFloat(Float.RIGHT);
manageCModS.getElement().getStyle().setMarginRight(20, Unit.PX); manageCModS.getElement().getStyle().setMarginRight(20, Unit.PX);
// messageModerationEnanbled.setType(AlertType.INFO);
// messageModerationEnanbled.setClose(false);
// messageModerationEnanbled.addStyleName("moderation-message");
messageModerationEnanbled.setTitle(MESSAGE_MODERATED_CATALOGUE); messageModerationEnanbled.setTitle(MESSAGE_MODERATED_CATALOGUE);
messageModerationEnanbled.getElement().setInnerHTML("<i class='icon-user'></i> " + MESSAGE_MODERATED_CATALOGUE); messageModerationEnanbled.getElement().setInnerHTML("<i class='icon-user'></i> " + MESSAGE_MODERATED_CATALOGUE);
messageModerationEnanbled.addStyleName("moderation-enabled-flag"); messageModerationEnanbled.addStyleName("moderation-enabled-flag");
@ -138,24 +139,15 @@ public class CkanMetadataManagementPanel extends FlowPanel {
myGroups.setIcon(IconType.GROUP); myGroups.setIcon(IconType.GROUP);
insertMeta.setIcon(IconType.FILE); insertMeta.setIcon(IconType.FILE);
editMeta.setIcon(IconType.EDIT_SIGN); editMeta.setIcon(IconType.EDIT_SIGN);
deleteItem.setIcon(IconType.REMOVE_CIRCLE);
statistics.setIcon(IconType.BAR_CHART); statistics.setIcon(IconType.BAR_CHART);
manageGRSFProduct.setIcon(IconType.CHECK_SIGN); manageGRSFProduct.setIcon(IconType.CHECK_SIGN);
manageCModS.setIcon(IconType.CHECK_SIGN); manageCModS.setIcon(IconType.CHECK_SIGN);
// disabling share and upload // hide edit and insert
shareLink.setEnabled(false); shareLink.setEnabled(false);
uploadToZenodo.setEnabled(false); uploadToZenodo.setEnabled(false);
// hide upload to zenodo
uploadToZenodo.setVisible(false);
// hide publish/update/delete
editMeta.setVisible(false); editMeta.setVisible(false);
deleteItem.setVisible(false);
insertMeta.setVisible(false); insertMeta.setVisible(false);
// hide manage GRSF product and Moderation
manageGRSFProduct.setVisible(false); manageGRSFProduct.setVisible(false);
manageGRSFProduct.setEnabled(false); manageGRSFProduct.setEnabled(false);
manageCModS.setVisible(false); manageCModS.setVisible(false);
@ -171,9 +163,6 @@ public class CkanMetadataManagementPanel extends FlowPanel {
manageCModS.getElement().getStyle().setFontWeight(FontWeight.BOLD); manageCModS.getElement().getStyle().setFontWeight(FontWeight.BOLD);
nav.add(messageModerationEnanbled); nav.add(messageModerationEnanbled);
nav.setId("the_catalogue_nav_bar");
nav.addStyleName("nav_bar_catalogue");
// add to navigation bar // add to navigation bar
nav.add(home); nav.add(home);
nav.add(organizations); nav.add(organizations);
@ -181,37 +170,25 @@ public class CkanMetadataManagementPanel extends FlowPanel {
nav.add(items); nav.add(items);
nav.add(types); nav.add(types);
nav.add(statistics); nav.add(statistics);
pipe_MyInfo_start = new InlineHTML( separatorMyInfo = new InlineHTML("<span style=\"font-weight:bold;vertical-alignment:middle;\">|</span>");
"<span style=\"font-weight:bold;vertical-alignment:middle;margin:0 5px;\">|</span>"); separatorMyInfo.setVisible(true);
pipe_MyInfo_start.setVisible(true); nav.add(separatorMyInfo);
nav.add(pipe_MyInfo_start); nav.add(myOrganizations);
nav.add(myGroups);
dropMyOptionButtons.setBaseIcon(IconType.USER); nav.add(myDatasets);
dropMyOptionButtons.add(myOrganizations); separatorAdminButtons = new InlineHTML("<span style=\"font-weight:bold;vertical-alignment:middle;\">|</span>");
dropMyOptionButtons.add(myGroups); separatorAdminButtons.setVisible(true);
dropMyOptionButtons.add(myDatasets); nav.add(separatorAdminButtons);
dropMyOptionButtons.setType(ButtonType.LINK);
nav.add(dropMyOptionButtons);
pipe_PublishItem_start = new InlineHTML(
"<span style=\"font-weight:bold;vertical-alignment:middle;margin:0 5px;\">|</span>");
pipe_PublishItem_start.setVisible(false);
nav.add(pipe_PublishItem_start);
nav.add(insertMeta);
pipe_SelectedItemOptions_start = new InlineHTML(
"<span style=\"font-weight:bold;vertical-alignment:middle;margin:0 5px;\">|</span>");
pipe_SelectedItemOptions_start.setVisible(true);
nav.add(pipe_SelectedItemOptions_start);
nav.add(editMeta);
nav.add(deleteItem);
nav.add(shareLink); nav.add(shareLink);
nav.add(uploadToZenodo); nav.add(uploadToZenodo);
nav.add(insertMeta);
nav.add(editMeta);
nav.add(manageGRSFProduct); nav.add(manageGRSFProduct);
nav.add(manageCModS); nav.add(manageCModS);
nav.setClose(false);
nav.setType(AlertType.INFO);
nav.getElement().getStyle().setMarginBottom(0, Unit.PX);
nav.getElement().getStyle().setBackgroundColor("#FFF");
addHandlers(); addHandlers();
add(nav); add(nav);
} }
@ -284,18 +261,8 @@ public class CkanMetadataManagementPanel extends FlowPanel {
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
GWT.log("Edit Meta clicked");
eventBus.fireEvent(
new EditMetadataEvent(GCubeCkanDataCatalogPanel.getLatestSelectedProductIdentifier()));
}
});
deleteItem.addClickHandler(new ClickHandler() { eventBus.fireEvent(new EditMetadataEvent());
@Override
public void onClick(ClickEvent event) {
GWT.log("Delete item clicked");
eventBus.fireEvent(new DeleteItemEvent(GCubeCkanDataCatalogPanel.getLatestSelectedProductIdentifier()));
} }
}); });
@ -391,12 +358,17 @@ public class CkanMetadataManagementPanel extends FlowPanel {
} }
/** /**
* Enable publish button. * Those buttons can be only visible when the logged user has role
* edit/admin/sysadmin.
* *
* @param enable the enable * @param show the show
*/ */
public void enablePublishItemButton(boolean enable) { public void showInsertAndEditProductButtons(boolean show) {
insertMeta.setEnabled(enable);
// editMeta.setVisible(show); TODO
// separatorAdminButtons.setVisible(show);
insertMeta.setVisible(show);
} }
/** /**
@ -419,7 +391,7 @@ public class CkanMetadataManagementPanel extends FlowPanel {
/** /**
* Button to manage the products under moderation via Content Moderation System * Button to manage the products under moderation via Content Moderation System
* (CMS). * (CMS)
* *
* @param value true or false * @param value true or false
*/ */
@ -464,24 +436,6 @@ public class CkanMetadataManagementPanel extends FlowPanel {
uploadToZenodo.setEnabled(value); uploadToZenodo.setEnabled(value);
} }
/**
* Enable edit item button.
*
* @param value the value
*/
public void enableEditItemButton(boolean value) {
editMeta.setEnabled(value);
}
/**
* Enable delete item button.
*
* @param value the value
*/
public void enableDeleteItemButton(boolean value) {
deleteItem.setEnabled(value);
}
/** /**
* Visibility publish on zenodo button. * Visibility publish on zenodo button.
* *
@ -491,55 +445,20 @@ public class CkanMetadataManagementPanel extends FlowPanel {
uploadToZenodo.setVisible(value); uploadToZenodo.setVisible(value);
} }
/**
* Visibility publish item button.
*
* @param value the value
* @param alsoThePipe the also the pipe. If true set bool value also the related
* pipe 'pipe_PublishItem_start'
*/
public void visibilityPublishItemButton(boolean bool, boolean alsoThePipe) {
insertMeta.setVisible(bool);
if (alsoThePipe) {
pipe_PublishItem_start.setVisible(bool);
}
}
/**
* Visibility edit item button.
*
* @param value the value
*/
public void visibilityEditItemButton(boolean value) {
editMeta.setVisible(value);
}
/**
* Visibility delete item button.
*
* @param value the value
*/
public void visibilityDeleteItemButton(boolean value) {
deleteItem.setVisible(value);
}
/** /**
* Show only home/statistics buttons. * Show only home/statistics buttons.
*/ */
public void doNotShowUserRelatedInfo() { public void doNotShowUserRelatedInfo() {
pipe_MyInfo_start.setVisible(false); separatorMyInfo.setVisible(false);
pipe_PublishItem_start.setVisible(false); separatorAdminButtons.setVisible(false);
pipe_SelectedItemOptions_start.setVisible(false);
shareLink.setVisible(false); shareLink.setVisible(false);
uploadToZenodo.setVisible(false); uploadToZenodo.setVisible(false);
insertMeta.setVisible(false); insertMeta.setVisible(false);
editMeta.setVisible(false); editMeta.setVisible(false);
deleteItem.setVisible(false); myDatasets.setVisible(false);
dropMyOptionButtons.setVisible(false); myOrganizations.setVisible(false);
// myDatasets.setVisible(false); myGroups.setVisible(false);
// myOrganizations.setVisible(false);
// myGroups.setVisible(false);
manageGRSFProduct.setVisible(false); manageGRSFProduct.setVisible(false);
manageCModS.setVisible(false); manageCModS.setVisible(false);
@ -555,12 +474,11 @@ public class CkanMetadataManagementPanel extends FlowPanel {
groups.setVisible(false); groups.setVisible(false);
items.setVisible(false); items.setVisible(false);
types.setVisible(false); types.setVisible(false);
pipe_MyInfo_start.setVisible(false); separatorMyInfo.setVisible(false);
pipe_PublishItem_start.setVisible(false); separatorAdminButtons.setVisible(false);
dropMyOptionButtons.setVisible(false); myDatasets.setVisible(false);
// myDatasets.setVisible(false); myOrganizations.setVisible(false);
// myOrganizations.setVisible(false); myGroups.setVisible(false);
// myGroups.setVisible(false);
statistics.setVisible(false); statistics.setVisible(false);
manageGRSFProduct.setVisible(false); manageGRSFProduct.setVisible(false);
manageCModS.setVisible(false); manageCModS.setVisible(false);

View File

@ -181,56 +181,24 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
managementPanel.visibilityEditItemButton(false); showEditInsertButtons(false);
managementPanel.visibilityDeleteItemButton(false);
managementPanel.visibilityPublishItemButton(false, true);
} }
@Override @Override
public void onSuccess(RolesCkanGroupOrOrg result) { public void onSuccess(RolesCkanGroupOrOrg result) {
GWT.log("isUserLoggedInVRE: "+ckanAccessPoint.isUserLoggedInVRE()); switch (result) {
GWT.log("getLoggedInScope: "+ckanAccessPoint.getLoggedInScope()); case ADMIN:
showEditInsertButtons(true);
if (ckanAccessPoint.isUserLoggedInVRE()) { break;
case EDITOR:
switch (result) { showEditInsertButtons(true);
case ADMIN: { break;
managementPanel.visibilityPublishItemButton(true, true); case MEMBER:
managementPanel.visibilityEditItemButton(true); showEditInsertButtons(false);
managementPanel.visibilityDeleteItemButton(true); break;
managementPanel.enablePublishItemButton(true); default:
break; showEditInsertButtons(false);
} break;
case EDITOR: {
managementPanel.visibilityPublishItemButton(true, true);
managementPanel.visibilityEditItemButton(true);
managementPanel.visibilityDeleteItemButton(true);
managementPanel.enablePublishItemButton(true);
break;
}
case MEMBER: {
managementPanel.visibilityEditItemButton(false);
managementPanel.visibilityDeleteItemButton(false);
// Disable the button "Publish Item" is to inform the user that he/she has
// not the rights to publish
managementPanel.visibilityPublishItemButton(true, true);
managementPanel.enablePublishItemButton(false);
break;
}
default: {
managementPanel.visibilityEditItemButton(false);
managementPanel.visibilityDeleteItemButton(false);
// Disable the button "Publish Item" is to inform the user that he/she has
// not the rights to publish
managementPanel.visibilityPublishItemButton(true, true);
managementPanel.enablePublishItemButton(false);
break;
}
}
} else {
managementPanel.visibilityPublishItemButton(false, true);
managementPanel.visibilityEditItemButton(false);
managementPanel.visibilityDeleteItemButton(false);
} }
} }
@ -446,15 +414,15 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate {
updateSize(); updateSize();
} }
// /** /**
// * show or hide the Publish/Update/Delete buttons according to the role. * show or hide edit/insert buttons according to the role.
// * *
// * @param show the show * @param show the show
// */ */
// public void showPublishUpdateDeleteButtons(boolean show) { public void showEditInsertButtons(boolean show) {
//
// managementPanel.visibilityUpdateDeleteButtons(show); managementPanel.showInsertAndEditProductButtons(show);
// } }
/** /**
* Instance ckan frame. * Instance ckan frame.
@ -595,8 +563,6 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate {
if (!isProductKeyMissing) { if (!isProductKeyMissing) {
latestSelectedProductIdentifier = productId.toString(); latestSelectedProductIdentifier = productId.toString();
managementPanel.enableShareItemButton(productId != null && !productId.isEmpty()); managementPanel.enableShareItemButton(productId != null && !productId.isEmpty());
managementPanel.enableEditItemButton(productId != null && !productId.isEmpty());
managementPanel.enableDeleteItemButton(productId != null && !productId.isEmpty());
managementPanel.enablePublishOnZenodoButton(productId != null && !productId.isEmpty()); managementPanel.enablePublishOnZenodoButton(productId != null && !productId.isEmpty());
managementPanel.enableManageGRSFProductButton( managementPanel.enableManageGRSFProductButton(
productId != null && !productId.isEmpty() && manageProductResponse.isManageEnabled()); productId != null && !productId.isEmpty() && manageProductResponse.isManageEnabled());

View File

@ -88,7 +88,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
try{ try{
// just get the current scope and set it into ScopeProvider... // just get the current scope and set it into ScopeProvider...
String loggedInScope = SessionUtil.getCurrentContext(getThreadLocalRequest(), true); SessionUtil.getCurrentContext(getThreadLocalRequest(), true);
// retrieve scope per current portlet url // retrieve scope per current portlet url
String scopePerCurrentUrl = SessionUtil.getScopeFromClientUrl(getThreadLocalRequest()); String scopePerCurrentUrl = SessionUtil.getScopeFromClientUrl(getThreadLocalRequest());
@ -112,15 +112,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
pathInfoParameter = isViewPerVREEnabled(browserLocationURL); pathInfoParameter = isViewPerVREEnabled(browserLocationURL);
} }
//#26854
CkanConnectorAccessPoint ckAP = getCkanConnectorAccessPoint(browserLocationURL, pathInfoParameter, queryStringParameters, scopePerCurrentUrl); CkanConnectorAccessPoint ckAP = getCkanConnectorAccessPoint(browserLocationURL, pathInfoParameter, queryStringParameters, scopePerCurrentUrl);
ckAP.setLoggedInScope(loggedInScope);
ckAP.setOperativeScope(scopePerCurrentUrl);
if(loggedInScope!=null) {
ScopeBean scopeBeanLS = new ScopeBean(loggedInScope);
boolean loggedInVRE = scopeBeanLS.is(Type.VRE);
ckAP.setUserLoggedInVRE(loggedInVRE);
}
SessionUtil.saveCkanAccessPoint(this.getThreadLocalRequest().getSession(), scopePerCurrentUrl, ckAP); SessionUtil.saveCkanAccessPoint(this.getThreadLocalRequest().getSession(), scopePerCurrentUrl, ckAP);
logger.info("Built the URI to CKAN (connector in case of user logged): "+ckAP.buildURI()); logger.info("Built the URI to CKAN (connector in case of user logged): "+ckAP.buildURI());
logger.debug("returning ckanConnectorUri: "+ckAP); logger.debug("returning ckanConnectorUri: "+ckAP);
@ -246,8 +238,8 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
RolesCkanGroupOrOrg toReturn = RolesCkanGroupOrOrg.MEMBER; RolesCkanGroupOrOrg toReturn = RolesCkanGroupOrOrg.MEMBER;
if(!SessionUtil.isIntoPortal()){ if(!SessionUtil.isIntoPortal()){
logger.warn("OUT FROM PORTAL DETECTED RETURNING ROLE: "+RolesCkanGroupOrOrg.ADMIN);
toReturn = RolesCkanGroupOrOrg.ADMIN; toReturn = RolesCkanGroupOrOrg.ADMIN;
logger.warn("OUT FROM PORTAL DETECTED RETURNING ROLE: "+toReturn);
}else{ }else{
HttpSession httpSession = this.getThreadLocalRequest().getSession(); HttpSession httpSession = this.getThreadLocalRequest().getSession();

View File

@ -10,12 +10,14 @@ import java.util.Set;
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.server.GcubeCkanDataCatalogServiceImpl; import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.server.GcubeCkanDataCatalogServiceImpl;
/** /**
* The Class CkanConnectorAccessPoint. * The Class CkanConnectorAccessPoint.
* *
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jun 23, 2016 * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Jun 23, 2016
*/ */
public class CkanConnectorAccessPoint implements Serializable { public class CkanConnectorAccessPoint implements Serializable{
/** /**
* *
@ -35,10 +37,6 @@ public class CkanConnectorAccessPoint implements Serializable {
private boolean outsideLoginOnPortal = false; private boolean outsideLoginOnPortal = false;
private String catalogueBaseUrl = null; private String catalogueBaseUrl = null;
private String operativeScope = null;
private String loggedInScope = null;
private boolean isUserLoggedInVRE = false;
/** /**
* Instantiates a new ckan connector access point. * Instantiates a new ckan connector access point.
*/ */
@ -48,10 +46,10 @@ public class CkanConnectorAccessPoint implements Serializable {
/** /**
* Instantiates a new ckan connector access point. * Instantiates a new ckan connector access point.
* *
* @param baseUrl the base url * @param baseUrl the base url
* @param serviceContext the service context * @param serviceContext the service context
*/ */
public CkanConnectorAccessPoint(String baseUrl, String serviceContext) { public CkanConnectorAccessPoint(String baseUrl, String serviceContext){
this.baseUrl = baseUrl; this.baseUrl = baseUrl;
this.catalogueBaseUrl = baseUrl.split("ckan-connector")[0]; this.catalogueBaseUrl = baseUrl.split("ckan-connector")[0];
this.serviceContext = serviceContext; this.serviceContext = serviceContext;
@ -60,29 +58,29 @@ public class CkanConnectorAccessPoint implements Serializable {
/** /**
* Adds the generic parameter. * Adds the generic parameter.
* *
* @param key the key * @param key the key
* @param value the value * @param value the value
*/ */
public void addGenericParameter(String key, String value) { public void addGenericParameter(String key, String value){
queryStringParameters = queryStringParameters == null ? key + "=" + value queryStringParameters=queryStringParameters==null?key+"="+value:queryStringParameters+"&"+key+"="+value;
: queryStringParameters + "&" + key + "=" + value;
} }
/** /**
* Adds the query string. * Adds the query string.
* *
* @param queryString the query string * @param queryString the query string
*/ */
public void addQueryString(String queryString) { public void addQueryString(String queryString){
if (queryString == null || queryString.isEmpty()) if(queryString==null || queryString.isEmpty())
return; return;
if (queryString.startsWith("&") || queryString.startsWith("?")) { if(queryString.startsWith("&") || queryString.startsWith("?")){
queryString = queryString.substring(1, queryString.length()); // removes '&' or '?' queryString = queryString.substring(1, queryString.length()); //removes '&' or '?'
} }
queryStringParameters = queryStringParameters == null ? queryString : queryStringParameters + "&" + queryString; queryStringParameters=queryStringParameters==null?queryString:queryStringParameters+"&"+queryString;
} }
/** /**
@ -90,8 +88,8 @@ public class CkanConnectorAccessPoint implements Serializable {
* *
* @param value the value * @param value the value
*/ */
public void addGubeToken(String value) { public void addGubeToken(String value){
if (!outsideLoginOnPortal) { if(!outsideLoginOnPortal){
this.gcubeTokenValue = value; this.gcubeTokenValue = value;
addGenericParameter(GCUBE_TOKEN_PARAMETER, value); addGenericParameter(GCUBE_TOKEN_PARAMETER, value);
} }
@ -102,19 +100,18 @@ public class CkanConnectorAccessPoint implements Serializable {
* *
* @param listVREs the list vr es * @param listVREs the list vr es
*/ */
public void addListOfVREs(Map<String, String> listVREs) { public void addListOfVREs(Map<String, String> listVREs){
this.mapVresRoles = listVREs; this.mapVresRoles = listVREs;
String vres = ""; String vres = "";
if (listVREs != null && listVREs.size() > 0) { if(listVREs!=null && listVREs.size()>0){
Set<Entry<String, String>> set = listVREs.entrySet(); Set<Entry<String, String>> set = listVREs.entrySet();
for (Entry<String, String> entry : set) { for (Entry<String, String> entry : set) {
vres += entry.getKey().toLowerCase() + "|" + entry.getValue() + ","; vres += entry.getKey().toLowerCase() + "|" + entry.getValue() + ",";
} }
vres = vres.substring(0, vres.length() - 1); // remove last "," and to lower case. A CKAN Organization ID vres = vres.substring(0, vres.length()-1); //remove last "," and to lower case. A CKAN Organization ID must be lower case
// must be lower case
} }
if (vres.length() > 0) { if(vres.length()>0){
addGenericParameter(LIST_OF_VRES_PARAMETER, vres); addGenericParameter(LIST_OF_VRES_PARAMETER, vres);
} }
} }
@ -124,75 +121,27 @@ public class CkanConnectorAccessPoint implements Serializable {
* *
* @param pathInfo the path info * @param pathInfo the path info
*/ */
public void addPathInfo(String pathInfo) { public void addPathInfo(String pathInfo){
pathInfoParameter = pathInfo; pathInfoParameter = pathInfo;
} }
/** /**
* Builds the URI to contact the CKAN (connector in case of user logged). * Builds the URI to contact the CKAN (connector in case of user logged)
* *
* @return the string * @return the string
*/ */
public String buildURI() { public String buildURI(){
String path = ""; String path = "";
String query = ""; String query = "";
path = checkURLPathSeparator(pathInfoParameter, true, false); path = checkURLPathSeparator(pathInfoParameter, true, false);
query = checkNullString(queryStringParameters); query = checkNullString(queryStringParameters);
String url = getBaseUrlWithContext() + path; String url = getBaseUrlWithContext()+path;
url += !query.isEmpty() ? "?" + query : ""; url+= !query.isEmpty()?"?"+query:"";
return url; return url;
} }
/**
* Gets the operative scope.
*
* @return the operative scope
*/
public String getOperativeScope() {
return operativeScope;
}
/**
* Gets the logged in scope.
*
* @return the logged in scope
*/
public String getLoggedInScope() {
return loggedInScope;
}
public boolean isUserLoggedInVRE() {
return isUserLoggedInVRE;
}
/**
* Sets the user logged in VRE.
*
* @param isUserLoggedInVRE the new user logged in VRE
*/
public void setUserLoggedInVRE(boolean isUserLoggedInVRE) {
this.isUserLoggedInVRE = isUserLoggedInVRE;
}
/**
* Sets the operative scope.
*
* @param operativeScope the new operative scope
*/
public void setOperativeScope(String operativeScope) {
this.operativeScope = operativeScope;
}
/**
* Sets the logged in scope.
*
* @param loggedInScope the new logged in scope
*/
public void setLoggedInScope(String loggedInScope) {
this.loggedInScope = loggedInScope;
}
/** /**
* Gets the base url with context. * Gets the base url with context.
* *
@ -200,9 +149,10 @@ public class CkanConnectorAccessPoint implements Serializable {
*/ */
public String getBaseUrlWithContext() { public String getBaseUrlWithContext() {
return baseUrl + serviceContext; return baseUrl+serviceContext;
} }
/** /**
* Gets the path info parameter. * Gets the path info parameter.
* *
@ -213,6 +163,7 @@ public class CkanConnectorAccessPoint implements Serializable {
return pathInfoParameter; return pathInfoParameter;
} }
/** /**
* Gets the query string parameters. * Gets the query string parameters.
* *
@ -223,6 +174,7 @@ public class CkanConnectorAccessPoint implements Serializable {
return queryStringParameters; return queryStringParameters;
} }
/** /**
* Gets the gcube token value. * Gets the gcube token value.
* *
@ -233,6 +185,7 @@ public class CkanConnectorAccessPoint implements Serializable {
return gcubeTokenValue; return gcubeTokenValue;
} }
/** /**
* Gets the list of v res. * Gets the list of v res.
* *
@ -246,29 +199,25 @@ public class CkanConnectorAccessPoint implements Serializable {
/** /**
* Check url path separator. * Check url path separator.
* *
* @param url the url * @param url the url
* @param head - checks the * @param head - checks the {@link GcubeCkanDataCatalogServiceImpl.URL_PATH_SEPARATOR} in head adding if do not exist
* {@link GcubeCkanDataCatalogServiceImpl.URL_PATH_SEPARATOR} in * @param tail - checks the {@link GcubeCkanDataCatalogServiceImpl.URL_PATH_SEPARATOR} in tail adding if do not exist
* head adding if do not exist * @return the string - if null return an empty string otherwise a string with {@link GcubeCkanDataCatalogServiceImpl.URL_PATH_SEPARATOR}
* @param tail - checks the
* {@link GcubeCkanDataCatalogServiceImpl.URL_PATH_SEPARATOR} in
* tail adding if do not exist
* @return the string - if null return an empty string otherwise a string with
* {@link GcubeCkanDataCatalogServiceImpl.URL_PATH_SEPARATOR}
*/ */
public static String checkURLPathSeparator(String url, boolean head, boolean tail) { public static String checkURLPathSeparator(String url, boolean head, boolean tail){
if (url != null && url.length() > 0) { if(url!=null && url.length()>0){
if (head) if(head)
url = url.startsWith(URL_PATH_SEPARATOR) ? url : URL_PATH_SEPARATOR + url; url=url.startsWith(URL_PATH_SEPARATOR)?url:URL_PATH_SEPARATOR+url;
if (tail) if(tail)
url = url.endsWith(URL_PATH_SEPARATOR) ? url : url + URL_PATH_SEPARATOR; url=url.endsWith(URL_PATH_SEPARATOR)?url:url+URL_PATH_SEPARATOR;
} else }else
url = ""; url = "";
return url; return url;
} }
/** /**
* Gets the base url. * Gets the base url.
* *
@ -279,20 +228,23 @@ public class CkanConnectorAccessPoint implements Serializable {
return baseUrl; return baseUrl;
} }
/** /**
* Check null string. * Check null string.
* *
* @param value the value * @param value the value
* @return the string if is not null otherwise an empty string * @return the string if is not null otherwise an empty string
*/ */
public static String checkNullString(String value) { public static String checkNullString(String value){
if (value == null) if(value==null)
return ""; return "";
else else
return value; return value;
} }
/** /**
* Checks if is outside login on portal. * Checks if is outside login on portal.
* *
@ -303,6 +255,7 @@ public class CkanConnectorAccessPoint implements Serializable {
return outsideLoginOnPortal; return outsideLoginOnPortal;
} }
/** /**
* Sets the outside login on portal. * Sets the outside login on portal.
* *
@ -322,14 +275,8 @@ public class CkanConnectorAccessPoint implements Serializable {
return catalogueBaseUrl; return catalogueBaseUrl;
} }
/**
* To string. /* (non-Javadoc)
*
* @return the string
*/
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString() * @see java.lang.Object#toString()
*/ */
@Override @Override

View File

@ -20,10 +20,6 @@
<inherits <inherits
name='org.gcube.portlets_widgets.catalogue_sharing_widget.ShareCatalogue' /> name='org.gcube.portlets_widgets.catalogue_sharing_widget.ShareCatalogue' />
<inherits
name='org.gcube.portlets.widgets.mpformbuilder.MetadataProfileFormBuilder' />
<inherits <inherits
name='org.gcube.portlets.widgets.ckandatapublisherwidget.CKanMetadataPublisher' /> name='org.gcube.portlets.widgets.ckandatapublisherwidget.CKanMetadataPublisher' />
<inherits <inherits
@ -33,9 +29,6 @@
<inherits <inherits
name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' /> name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
<inherits
name='org.gcube.portlets.widgets.wsexplorer.WorkspaceExplorer' />
<inherits <inherits
name='org.gcube.portlets.widgets.switchbutton.SwitchButton' /> name='org.gcube.portlets.widgets.switchbutton.SwitchButton' />
<inherits <inherits
@ -43,6 +36,7 @@
<inherits <inherits
name='org.gcube.portlets.widgets.ckancontentmoderator.CkanContentModeratorWidget' /> name='org.gcube.portlets.widgets.ckancontentmoderator.CkanContentModeratorWidget' />
<!-- Specify the app entry point class. --> <!-- Specify the app entry point class. -->
<entry-point <entry-point
class='org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.GCubeCkanDataCatalog' /> class='org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.GCubeCkanDataCatalog' />

View File

@ -164,19 +164,4 @@ h1 {
margin-right: 10px; margin-right: 10px;
padding: 8px !important; padding: 8px !important;
border-radius: 12px !important; border-radius: 12px !important;
margin-top: 5px;
}
.nav_bar_catalogue {
background-color: none !important;
margin-bottom: 0px !important;
margin-left: 10px;
margin-right: 5px;
padding: 5px;
}
.nav_bar_catalogue .navbar-inner {
background-image: none !important;
padding: 10px 5px;
background-color: #FAFAFA;
} }

View File

@ -38,11 +38,6 @@
<servlet-class>org.gcube.portlets_widgets.catalogue_sharing_widget.server.ShareServicesImpl</servlet-class> <servlet-class>org.gcube.portlets_widgets.catalogue_sharing_widget.server.ShareServicesImpl</servlet-class>
</servlet> </servlet>
<servlet>
<servlet-name>workspaceExplorer</servlet-name>
<servlet-class>org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl</servlet-class>
</servlet>
<!-- Servlets --> <!-- Servlets -->
<servlet> <servlet>
<servlet-name>ckanToZenodoServlet</servlet-name> <servlet-name>ckanToZenodoServlet</servlet-name>
@ -54,23 +49,12 @@
<servlet-class>org.gcube.portlets.widgets.ckancontentmoderator.server.CkanContentModeratorServiceImpl</servlet-class> <servlet-class>org.gcube.portlets.widgets.ckancontentmoderator.server.CkanContentModeratorServiceImpl</servlet-class>
</servlet> </servlet>
<servlet>
<servlet-name>metadataProfileFormBuilderUploadServlet</servlet-name>
<servlet-class>org.gcube.portlets.widgets.mpformbuilder.server.MetadataProfileFormBuilderUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>metadataProfileFormBuilderUploadServlet</servlet-name>
<url-pattern>/gCubeCkanDataCatalog/metadataProfileFormBuilderUploadServlet</url-pattern>
</servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>ckanContentModeratorServlet</servlet-name> <servlet-name>ckanContentModeratorServlet</servlet-name>
<url-pattern>/gCubeCkanDataCatalog/ckanContentModeratorService</url-pattern> <url-pattern>/gCubeCkanDataCatalog/ckanContentModeratorService</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>ckanToZenodoServlet</servlet-name> <servlet-name>ckanToZenodoServlet</servlet-name>
<url-pattern>/gCubeCkanDataCatalog/ckantozenodo</url-pattern> <url-pattern>/gCubeCkanDataCatalog/ckantozenodo</url-pattern>
@ -96,12 +80,6 @@
<url-pattern>/gCubeCkanDataCatalog/grsfmanageservice</url-pattern> <url-pattern>/gCubeCkanDataCatalog/grsfmanageservice</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping>
<servlet-name>workspaceExplorer</servlet-name>
<url-pattern>/gCubeCkanDataCatalog/WorkspaceExplorerService</url-pattern>
</servlet-mapping>
<!-- <servlet-mapping> --> <!-- <servlet-mapping> -->
<!-- <servlet-name>gcubeckanlogout</servlet-name> --> <!-- <servlet-name>gcubeckanlogout</servlet-name> -->
<!-- <url-pattern>/gCubeCkanDataCatalog/gcubeckanlogout</url-pattern> --> <!-- <url-pattern>/gCubeCkanDataCatalog/gcubeckanlogout</url-pattern> -->