From 34277dafb092b7405b0d85e7de8f87e0c3c97b8b Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Thu, 24 Jun 2021 15:02:49 +0200 Subject: [PATCH] in progress --- pom.xml | 2 +- .../client/CkanContentModeratorService.java | 24 ++++--- .../CkanContentModeratorServiceAsync.java | 71 +++++++++++-------- .../CkanContentModeratorWidgetController.java | 1 - .../client/ui/CkanFramePanel.java | 8 +-- .../client/ui/HomeView.java | 39 ++++++++++ .../client/ui/HomeView.ui.xml | 8 +++ .../client/ui/MainTabPanel.java | 1 - .../server/ActionRequired.java | 22 ++++++ .../CkanContentModeratorServiceImpl.java | 24 +++---- 10 files changed, 141 insertions(+), 59 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/ActionRequired.java diff --git a/pom.xml b/pom.xml index ca88d0d..92f60ea 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ org.gcube.distribution maven-portal-bom - 3.6.2-SNAPSHOT + 3.6.3-SNAPSHOT pom import diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorService.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorService.java index 8a0026f..2d4c1b5 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorService.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorService.java @@ -9,7 +9,7 @@ import org.gcube.portlets.widgets.ckancontentmoderator.shared.SearchedData; import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; -// TODO: Auto-generated Javadoc + /** * The client side stub for the RPC service. * @@ -27,36 +27,40 @@ public interface CkanContentModeratorService extends RemoteService { */ public boolean isContentModeratorEnabled(); + /** * Sets the status. * - * @param itemId the item id * @param theStatus the the status + * @param itemNames the item names */ - public void setStatus(String itemId, ItemStatus theStatus); + public void setStatus(ItemStatus theStatus, List itemNames); + /** * Approve item. * - * @param itemId the item id + * @param itemNames the item names */ - public void approveItem(String itemId); + public void approveItem(List itemNames); + /** * Reject item. * - * @param itemId the item id + * @param itemName the item name * @param permanentlyDelete the permanently delete * @param reasonMsg the reason msg */ - public void rejectItem(String itemId, boolean permanentlyDelete, String reasonMsg); + public void rejectItem(String itemName, boolean permanentlyDelete, String reasonMsg); + /** * Permanently delete. * - * @param itemId the item id + * @param itemNames the item names */ - public void permanentlyDelete(String itemId); + public void permanentlyDelete(List itemNames); /** * Gets the list items for status. @@ -77,7 +81,7 @@ public interface CkanContentModeratorService extends RemoteService { * @param lenght the lenght * @param serverIndex the server index * @return the data for status - * @throws Exception + * @throws Exception the exception */ SearchedData getDataForStatus(ItemStatus status, int startIndex, int lenght, int serverIndex) throws Exception; diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorServiceAsync.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorServiceAsync.java index 302a143..ec21d77 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorServiceAsync.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorServiceAsync.java @@ -8,12 +8,13 @@ import org.gcube.portlets.widgets.ckancontentmoderator.shared.SearchedData; import com.google.gwt.user.client.rpc.AsyncCallback; + /** * The Interface CkanContentModeratorServiceAsync. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Jun 14, 2021 + * Jun 23, 2021 */ public interface CkanContentModeratorServiceAsync { @@ -24,55 +25,65 @@ public interface CkanContentModeratorServiceAsync { */ void isContentModeratorEnabled(AsyncCallback callback); - /** - * Approve item. - * - * @param itemId the item id - * @param callback the callback - */ - void approveItem(String itemId, AsyncCallback callback); - - /** - * Permanently delete. - * - * @param itemId the item id - * @param callback the callback - */ - void permanentlyDelete(String itemId, AsyncCallback callback); /** * Reject item. * - * @param itemId the item id + * @param itemName the item name * @param permanentlyDelete the permanently delete * @param reasonMsg the reason msg * @param callback the callback */ - void rejectItem(String itemId, boolean permanentlyDelete, String reasonMsg, AsyncCallback callback); - - /** - * Sets the status. - * - * @param itemId the item id - * @param theStatus the the status - * @param callback the callback - */ - void setStatus(String itemId, ItemStatus theStatus, AsyncCallback callback); + void rejectItem(String itemName, boolean permanentlyDelete, String reasonMsg, AsyncCallback callback); /** * Gets the list items for status. * * @param theStatus the the status - * @param limit the limit - * @param offset the offset - * @param callback the callback + * @param limit the limit + * @param offset the offset + * @param callback the callback * @return the list items for status */ void getListItemsForStatus(ItemStatus theStatus, int limit, int offset, AsyncCallback> callback); + /** + * Gets the data for status. + * + * @param status the status + * @param startIndex the start index + * @param lenght the lenght + * @param serverIndex the server index + * @param asyncCallback the async callback + * @return the data for status + */ void getDataForStatus(ItemStatus status, int startIndex, int lenght, int serverIndex, AsyncCallback asyncCallback); + /** + * Approve item. + * + * @param itemNames the item names + * @param callback the callback + */ + void approveItem(List itemNames, AsyncCallback callback); + + /** + * Permanently delete. + * + * @param itemNames the item names + * @param callback the callback + */ + void permanentlyDelete(List itemNames, AsyncCallback callback); + + /** + * Sets the status. + * + * @param theStatus the the status + * @param itemNames the item names + * @param callback the callback + */ + void setStatus(ItemStatus theStatus, List itemNames, AsyncCallback callback); } diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java index 848d27b..126881d 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java @@ -14,7 +14,6 @@ import org.gcube.portlets.widgets.ckancontentmoderator.client.events.ShowItemEve import org.gcube.portlets.widgets.ckancontentmoderator.client.events.TableRangeViewChangedEvent; import org.gcube.portlets.widgets.ckancontentmoderator.client.events.TableRangeViewChangedEventHandler; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.CkanFramePanel; -import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.ContentModeratorPaginatedView; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.ContentModeratorToolbar; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.HomeView; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.MainTabPanel; diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/CkanFramePanel.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/CkanFramePanel.java index dfb87ea..d0e3548 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/CkanFramePanel.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/CkanFramePanel.java @@ -19,12 +19,12 @@ import com.google.gwt.user.client.ui.Frame; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.NamedFrame; -// TODO: Auto-generated Javadoc /** * The Class CkanFramePanel. * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Jun 9, 2016 + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Jun 23, 2021 */ public class CkanFramePanel extends FlowPanel{ @@ -96,7 +96,7 @@ public class CkanFramePanel extends FlowPanel{ frame.getElement().setId(iFrameRandomName); frame.setWidth("100%"); - frame.setHeight("500px"); + frame.setHeight("580px"); // frame.setHeight("100%"); // frame.getElement().getStyle().setOverflow(Overflow.HIDDEN); // frame.getElement().setAttribute("scrolling", "no"); diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.java index 636cfdb..2ca3023 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.java @@ -8,11 +8,15 @@ import org.gcube.portlets.widgets.ckancontentmoderator.client.events.CheckBoxSel import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; +import com.github.gwtbootstrap.client.ui.AlertBlock; +import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.CheckBox; import com.github.gwtbootstrap.client.ui.Dropdown; import com.github.gwtbootstrap.client.ui.Heading; import com.github.gwtbootstrap.client.ui.NavLink; import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerManager; @@ -47,6 +51,15 @@ public class HomeView extends Composite { @UiField Heading pageHeader; + + @UiField + AlertBlock actionConfirmAlert; + + @UiField + Button buttActionConfirmYes; + + @UiField + Button buttonActionConfirmNo; private List setStatusOptions = new ArrayList<>(); @@ -116,6 +129,25 @@ public class HomeView extends Composite { } }); + + + buttActionConfirmYes.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + // TODO Auto-generated method stub + + } + }); + + buttonActionConfirmNo.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + actionConfirmAlert.setVisible(false); + + } + }); } /** @@ -154,5 +186,12 @@ public class HomeView extends Composite { public void setCheckedCheckboxSelectAll(boolean bool) { cbSelectAll.setValue(bool); } + + + public void showConfirm(String msg) { + actionConfirmAlert.setVisible(true); + } + + } diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.ui.xml index 3a24749..1fe4762 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.ui.xml @@ -20,6 +20,7 @@ margin-bottom: 20px; font-size: 16px !important; } + .headinghome>small { font-size: 16px !important; } @@ -34,6 +35,13 @@ ui:field="dropdownSetStatus" addStyleNames="{style.margin-left-20}"> + + + Yes + No + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/MainTabPanel.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/MainTabPanel.java index 0e87c98..a055727 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/MainTabPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/MainTabPanel.java @@ -1,7 +1,6 @@ package org.gcube.portlets.widgets.ckancontentmoderator.client.ui; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.util.UtilFunct; diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/ActionRequired.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/ActionRequired.java new file mode 100644 index 0000000..84821a9 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/ActionRequired.java @@ -0,0 +1,22 @@ +package org.gcube.portlets.widgets.ckancontentmoderator.server; + +import java.io.Serializable; + +import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; + +public class ActionRequired implements Serializable{ + + + /** + * + */ + private static final long serialVersionUID = 6975224903479593671L; + + String reasonMsg; + + ItemStatus from; + + ItemStatus to; + + +} diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java index dac1e2a..eab2a74 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java @@ -34,8 +34,8 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem } @Override - public void setStatus(String itemId, ItemStatus theStatus) { - // TODO Auto-generated method stub + public void setStatus(ItemStatus theStatus, List itemNames) { + LOG.info("Called set status " + theStatus + " for Items with name: " + itemNames); } @@ -43,8 +43,8 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem * Gets the list items for status. * * @param theStatus the the status - * @param offset the offset - * @param limit the limit + * @param offset the offset + * @param limit the limit * @return the list items for status * @throws Exception the exception */ @@ -61,7 +61,7 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem ScopeProvider.instance.set(scope); SecurityTokenProvider.instance.set(token); DataCatalogueImpl catalogueImpl = CatalogueCMSFactory.getFactory().getCatalogueImplPerScope(scope); - CatalogueContentModeratorSystem cmsInstance = catalogueImpl.getCatalogueContentModerator(); + CatalogueContentModeratorSystem cmsInstance = catalogueImpl.getCatalogueContentModerator(); List datasets = cmsInstance.getListItemsForStatus(theStatus, limit, offset); if (datasets != null) { int size = datasets.size(); @@ -69,7 +69,7 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem LOG.info("datasetList for input parameters returned by CMS has size: " + size); for (CkanDataset ckanDataset : datasets) { CatalogueDataset ds = CatalogueBeansConverter.toCatalogueDataset.apply(ckanDataset); - String datasetURL = String.format("%s/dataset/%s", catalogueImpl.getCatalogueUrl(),ds.getName()); + String datasetURL = String.format("%s/dataset/%s", catalogueImpl.getCatalogueUrl(), ds.getName()); ds.setUrl(datasetURL); LOG.debug("converted dataset is: " + ds); datasetList.add(ds); @@ -81,14 +81,14 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem throw new Exception( "Error occurrend on reading items for status: " + theStatus + ". Caused by: " + e.getMessage()); } - - LOG.info("returning "+datasetList.size()+ " dataset"); + + LOG.info("returning " + datasetList.size() + " dataset"); return datasetList; } @Override - public void approveItem(String itemId) { - LOG.info("Called approve Item: " + itemId); + public void approveItem(List itemNames) { + LOG.info("Called approve Items with name: " + itemNames); } @@ -99,8 +99,8 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem } @Override - public void permanentlyDelete(String itemId) { - // TODO Auto-generated method stub + public void permanentlyDelete(List itemNames) { + LOG.info("Called approve Items with name: " + itemNames); }