From d861865879b4c74716dfd8f71f163386a5a9aa3d Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Wed, 4 May 2022 11:07:11 +0200 Subject: [PATCH] Implemented the Moderation init reading the query_string parameter --- .../client/CkanEventHandlerManager.java | 4 ++-- .../client/GCubeCkanDataCatalog.java | 21 +++++++++--------- .../view/GCubeCkanDataCatalogPanel.java | 22 +++++++++++++++++-- 3 files changed, 32 insertions(+), 15 deletions(-) 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 decbf08..d3eac8b 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 @@ -37,6 +37,7 @@ import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZendoPublish import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem; import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorCheckConfigs; import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidgetTrusted; +import org.gcube.portlets.widgets.ckancontentmoderator.client.ContentModeratorWidgetConstants; import org.gcube.portlets.widgets.ckancontentmoderator.shared.DISPLAY_FIELD; import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.CreateDatasetForm; import org.gcube.portlets_widgets.catalogue_sharing_widget.client.ShareCatalogueWidget; @@ -248,8 +249,7 @@ public class CkanEventHandlerManager { } if (sortByFields == null) { - sortByFields = new DISPLAY_FIELD[] { DISPLAY_FIELD.NAME, DISPLAY_FIELD.TITLE, DISPLAY_FIELD.CREATED, - DISPLAY_FIELD.LAST_UPDATE, DISPLAY_FIELD.TYPE }; + sortByFields = ContentModeratorWidgetConstants.DEFAULT_SORT_BY_FIELDS; } final CkanContentModeratorWidgetTrusted cmsTrusted = new CkanContentModeratorWidgetTrusted( diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GCubeCkanDataCatalog.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GCubeCkanDataCatalog.java index ad03c47..be6b147 100644 --- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GCubeCkanDataCatalog.java +++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/GCubeCkanDataCatalog.java @@ -7,25 +7,23 @@ import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.RootPanel; - /** * The Class GCubeCkanDataCatalog. * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Nov 4, 2016 + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Nov 4, 2016 */ public class GCubeCkanDataCatalog implements EntryPoint { /** - * Create a remote service proxy to talk to the server-side Greeting - * service. + * Create a remote service proxy to talk to the server-side Greeting service. */ public static final GcubeCkanDataCatalogServiceAsync service = GWT.create(GcubeCkanDataCatalogService.class); - public static final String CKAN_LOGUT_SERVICE = GWT.getModuleBaseURL() +"gcubeckanlogout"; + public static final String CKAN_LOGUT_SERVICE = GWT.getModuleBaseURL() + "gcubeckanlogout"; private final String DIV_PORTLET_ID = "gCubeCkanDataCatalog"; private CkanEventHandlerManager eventManager = new CkanEventHandlerManager(); public static final String GET_PATH_PARAMETER = "path"; public static final String GET_QUERY_PARAMETER = "query"; + public static final String GET_QUERY_STRING_PARAMETER = "query_string"; public static final String REVERT_QUERY_PARAM = "manage"; public static final String GCUBE_CKAN_IFRAME = "gcube-ckan-iframe"; @@ -34,13 +32,14 @@ public class GCubeCkanDataCatalog implements EntryPoint { */ public void onModuleLoad() { - GCubeCkanDataCatalogPanel panel = new GCubeCkanDataCatalogPanel(RootPanel.get(DIV_PORTLET_ID), eventManager.getEventBus()); + GCubeCkanDataCatalogPanel panel = new GCubeCkanDataCatalogPanel(RootPanel.get(DIV_PORTLET_ID), + eventManager.getEventBus()); eventManager.setPanel(panel); - + /* - CkanContentModeratorWidget ccmw = new CkanContentModeratorWidget(); - ccmw.showAsModal("Manage Items"); - */ + * CkanContentModeratorWidget ccmw = new CkanContentModeratorWidget(); + * ccmw.showAsModal("Manage Items"); + */ } } 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 2f0ce3b..95780b6 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 @@ -17,6 +17,10 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAcc import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.ManageProductResponse; import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZenodoPublisherServiceAsync; import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorCheckConfigs; +import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidget; +import org.gcube.portlets.widgets.ckancontentmoderator.client.util.ModerationQueryStringUtil; +import org.gcube.portlets.widgets.ckancontentmoderator.client.util.ModerationQueryStringUtil.ModerationBuilder; +import org.gcube.portlets.widgets.ckancontentmoderator.client.util.QueryStringUtil; import com.google.gwt.core.client.GWT; import com.google.gwt.event.logical.shared.ResizeEvent; @@ -88,7 +92,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate { setTopPanelVisible(true); // decode parameters (they could have been encoded) - final Map paramsMap = new HashMap(2); + final Map paramsMap = new HashMap(3); String queryParameters = Window.Location.getQueryString(); if (queryParameters != null && !queryParameters.isEmpty()) { String decoded = URL.decodeQueryString(queryParameters); // equals should be encoded too (%3D) @@ -102,6 +106,20 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate { String pathParameter = paramsMap.get(GCubeCkanDataCatalog.GET_PATH_PARAMETER); // Window.Location.getParameter(GCubeCkanDataCatalog.GET_PATH_PARAMETER); String queryParameter = paramsMap.get(GCubeCkanDataCatalog.GET_QUERY_PARAMETER);// Window.Location.getParameter(GCubeCkanDataCatalog.GET_QUERY_PARAMETER); + String queryStringParameter = paramsMap.get(GCubeCkanDataCatalog.GET_QUERY_STRING_PARAMETER); + + if (queryStringParameter != null) { + GWT.log("Read "+GCubeCkanDataCatalog.GET_QUERY_STRING_PARAMETER+ " as: "+queryStringParameter); + String base64DecodeQueryString = QueryStringUtil.base64DecodeQueryString(queryStringParameter); + + ModerationBuilder moderationBuilder = new ModerationQueryStringUtil() + .toModerationBuilder(base64DecodeQueryString); + if (moderationBuilder != null) { + GWT.log("Moderation Builder is: "+moderationBuilder); + CkanContentModeratorWidget ccmw = new CkanContentModeratorWidget(moderationBuilder); + ccmw.showAsModal("Manage Items"); + } + } String browserLocationURL = getBrowserLocationURL(); @@ -243,7 +261,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate { } catch (Exception e) { GWT.log("Command - Check configs error: " + e.getMessage()); } - + ckanModeratorCheckConfig = moderatorcheckConfig; GWT.log("Moderation is enabled? " + isContentModerationEnabled);