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 2d4c1b5..8a1e93c 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 @@ -48,11 +48,11 @@ public interface CkanContentModeratorService extends RemoteService { /** * Reject item. * - * @param itemName the item name + * @param itemNames the item names * @param permanentlyDelete the permanently delete * @param reasonMsg the reason msg */ - public void rejectItem(String itemName, boolean permanentlyDelete, String reasonMsg); + public void rejectItem(List itemNames, boolean permanentlyDelete, String reasonMsg); /** 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 ec21d77..52da20f 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 @@ -26,15 +26,7 @@ public interface CkanContentModeratorServiceAsync { void isContentModeratorEnabled(AsyncCallback callback); - /** - * Reject item. - * - * @param itemName the item name - * @param permanentlyDelete the permanently delete - * @param reasonMsg the reason msg - * @param callback the callback - */ - void rejectItem(String itemName, boolean permanentlyDelete, String reasonMsg, AsyncCallback callback); + void rejectItem(List itemNames, boolean permanentlyDelete, String reasonMsg, AsyncCallback callback); /** * Gets the list items for status. diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.java deleted file mode 100644 index 4753306..0000000 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.gcube.portlets.widgets.ckancontentmoderator.client.ui; - -import java.util.List; - -import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; -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.TextArea; -import com.google.gwt.core.client.GWT; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.HTML; -import com.google.gwt.user.client.ui.Widget; - -public class DoActionCMS extends Composite { - - private static DoActionCMSUiBinder uiBinder = GWT.create(DoActionCMSUiBinder.class); - - interface DoActionCMSUiBinder extends UiBinder { - } - - @UiField - HTML htmlDisplayMessage; - - @UiField - CheckBox checkBoxPermDelete; - - @UiField - TextArea txtMsgReason; - - @UiField - Button buttonActionConfirmYES; - - @UiField - Button buttonActionConfirmNO; - - @UiField - AlertBlock alertBlockDoAction; - - public DoActionCMS(ItemStatus fromStatus, ItemStatus toStatus, List listSelectItems) { - initWidget(uiBinder.createAndBindUi(this)); - - int count = listSelectItems.size(); - String msg = "Going to update status of"; - if (count > 0) { - if (count == 1) { - msg += " one item"; - } else { - msg += " " + count + " items"; - } - - msg += " from " + fromStatus.getLabel() + " to " + toStatus.getLabel() + ". Confirm?"; - } else - return; - - htmlDisplayMessage.setHTML(msg); - } - -} diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.ui.xml deleted file mode 100644 index a62b682..0000000 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.ui.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - .important { - font-weight: bold; - } - - - - - - - Permanently Delete - - YES - NO - - - - - \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMSView.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMSView.java new file mode 100644 index 0000000..1ca8d24 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMSView.java @@ -0,0 +1,225 @@ +package org.gcube.portlets.widgets.ckancontentmoderator.client.ui; + +import java.util.List; + +import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; +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.HelpBlock; +import com.github.gwtbootstrap.client.ui.TextArea; +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.logical.shared.ValueChangeEvent; +import com.google.gwt.event.logical.shared.ValueChangeHandler; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Widget; + +/** + * The Class DoActionCMSView. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Jun 29, 2021 + */ +public class DoActionCMSView extends Composite { + + private static DoActionCMSUiBinder uiBinder = GWT.create(DoActionCMSUiBinder.class); + + /** + * The Interface DoActionCMSUiBinder. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Jun 29, 2021 + */ + interface DoActionCMSUiBinder extends UiBinder { + } + + @UiField + HTML htmlDisplayMessage; + + @UiField + CheckBox checkBoxPermDelete; + + @UiField + TextArea txtMsgReason; + + @UiField + Button buttonActionConfirmYES; + + @UiField + Button buttonActionConfirmNO; + + @UiField + AlertBlock alertBlockDoAction; + + @UiField + HelpBlock helpPermDelete; + + + private List listSelectItems; + + private ItemStatus fromStatus; + + private ItemStatus toStatus; + + /** + * Instantiates a new do action CMS view. + * + * @param fromStatus the from status + * @param toStatus the to status + * @param listSelectItems the list select items + */ + public DoActionCMSView() { + initWidget(uiBinder.createAndBindUi(this)); + this.alertBlockDoAction.setClose(true); + this.alertBlockDoAction.setAnimation(true); + this.checkBoxPermDelete.setVisible(false); + this.txtMsgReason.setVisible(false); + + checkBoxPermDelete.addValueChangeHandler(new ValueChangeHandler() { + + @Override + public void onValueChange(ValueChangeEvent event) { + helpPermDelete.setVisible(false); + if(event.getValue()) { + helpPermDelete.setVisible(true); + } + } + }); + + } + + public void updateStatus(ItemStatus fromStatus, ItemStatus toStatus, List listSelectItems) { + this.fromStatus = fromStatus; + this.toStatus = toStatus; + this.listSelectItems = listSelectItems; + int count = listSelectItems.size(); + String msg = "Going to update the status of"; + if (count > 0) { + if (count == 1) { + msg += " one item"; + } else { + msg += " " + count + " items"; + } + + msg += " from " + fromStatus.getLabel() + " to " + toStatus.getLabel() + ". Confirm?"; + } else + return; + + switch (toStatus) { + case PENDING: + checkBoxPermDelete.setVisible(false); + txtMsgReason.setVisible(false); + break; + case APPROVED: + checkBoxPermDelete.setVisible(false); + txtMsgReason.setVisible(false); + break; + case REJECTED: + checkBoxPermDelete.setVisible(true); + txtMsgReason.setVisible(true); + break; + default: + break; + } + + htmlDisplayMessage.setHTML(msg); + } + + public void permanentlyDelete(List listSelectItems) { + this.listSelectItems = listSelectItems; + int count = listSelectItems.size(); + String msg = "Going to delete permanently "; + if (count > 0) { + if (count == 1) { + msg += " one item"; + } else { + msg += " " + count + " items"; + } + + msg += " from Catalogue. This operation cannot be undone. Would you like to proceed?"; + } else + return; + + htmlDisplayMessage.setHTML(msg); + } + + /** + * Checks if is permanently delete. + * + * @return true, if is permanently delete + */ + boolean isPermanentlyDelete() { + return checkBoxPermDelete.getValue(); + } + + /** + * Gets the txt reason msg. + * + * @return the txt reason msg + */ + String getTxtReasonMsg() { + return txtMsgReason.getValue(); + } + + /** + * Gets the list select items. + * + * @return the list select items + */ + public List getListSelectItems() { + return listSelectItems; + } + + /** + * Gets the from status. + * + * @return the from status + */ + public ItemStatus getFromStatus() { + return fromStatus; + } + + /** + * Gets the to status. + * + * @return the to status + */ + public ItemStatus getToStatus() { + return toStatus; + } + + /** + * Gets the button action confirm YES. + * + * @return the button action confirm YES + */ + public Button getButtonActionConfirmYES() { + return buttonActionConfirmYES; + } + + /** + * Gets the button action confirm NO. + * + * @return the button action confirm NO + */ + public Button getButtonActionConfirmNO() { + return buttonActionConfirmNO; + } + + /** + * Gets the alert block do action. + * + * @return the alert block do action + */ + public AlertBlock getAlertBlockDoAction() { + return alertBlockDoAction; + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMSView.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMSView.ui.xml new file mode 100644 index 0000000..e7e1c81 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMSView.ui.xml @@ -0,0 +1,41 @@ + + + + .important { + font-weight: bold; + } + + .fontsize-16 { + font-size: 16px; + } + + .margin-top-15 { + margin-top: 15px; + } + + .margin-left-10 { + margin-left: 10px; + } + + + + + + + Permanently Delete + This operation cannot be undone. The selected items will be permantently deleted from Catalogue + + YES + NO + + + + + \ No newline at end of file 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 fa23066..e04cb11 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 @@ -4,14 +4,21 @@ import java.util.ArrayList; import java.util.List; import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; +import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidgetController; import org.gcube.portlets.widgets.ckancontentmoderator.client.events.CheckBoxSelectIemsEvent; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD; +import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.util.UtilFunct; 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.github.gwtbootstrap.client.ui.base.AlertBase; +import com.github.gwtbootstrap.client.ui.event.ClosedEvent; +import com.github.gwtbootstrap.client.ui.event.ClosedHandler; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -20,12 +27,13 @@ import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.Widget; -// TODO: Auto-generated Javadoc + /** * The Class HomeView. * @@ -54,6 +62,9 @@ public class HomeView extends Composite { @UiField HTMLPanel confirmPanel; + @UiField + Button permanentlyDelete; + private ScrollPanel confirmPanelContainer = new ScrollPanel(); private List setStatusOptions = new ArrayList(); @@ -62,8 +73,6 @@ public class HomeView extends Composite { private HandlerManager eventBus; - private List selectedItems; - /** * The Interface HomeViewUiBinder. * @@ -92,25 +101,42 @@ public class HomeView extends Composite { cmsPanel.addToBottom(paginatedView.getPagerPanel()); panelContainer.add(cmsPanel.getPanel()); setVisibleUpdateStatusAction(false); - fillSetStatusOptions(); + setVisiblePermanentlyDelete(false); + + // Filling the Dropdown with status options + for (ItemStatus iStatus : ItemStatus.values()) { + NavLink nl = new NavLink(iStatus.getLabel()); + dropdownSetStatus.add(nl); + setStatusOptions.add(nl); + + } + + setStatusOptions(); bindEvents(); confirmPanel.add(confirmPanelContainer); + } /** - * Fill set status options. + * Sets the status options according to item status selected */ - private void fillSetStatusOptions() { - for (ItemStatus status : ItemStatus.values()) { - if (!status.equals(displayingItemStatus)) { - NavLink nl = new NavLink(status.getLabel()); - dropdownSetStatus.add(nl); - setStatusOptions.add(nl); + private void setStatusOptions() { + + // Fired when user clicks on CMS action + for (final NavLink navLink : setStatusOptions) { + navLink.setVisible(true); + // Hiding the status selected/displayed from navigation link + if (navLink.getText().trim().equals(displayingItemStatus.getLabel())) { + navLink.setVisible(false); } } - } + /** + * Sets the displaying with status. + * + * @param status the new displaying with status + */ private void setDisplayingWithStatus(ItemStatus status) { this.displayingItemStatus = status; this.pageHeader.setSubtext(status.getLabel()); @@ -131,32 +157,31 @@ public class HomeView extends Composite { } }); + // Fired when user clicks on CMS action for (final NavLink navLink : setStatusOptions) { navLink.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { -// selectedItems = paginatedView.getSelectItems(); -// int count = selectedItems.size(); -// String msg = "Going to update status of"; -// if (count > 0) { -// if (count == 1) { -// msg += " one item"; -// } else { -// msg += " " + count + " items"; -// } -// -// msg += " from " + displayingItemStatus.getLabel() + " to " + navLink.getText() -// + ". Confirm?"; -// } else -// return; - if(paginatedView.getSelectItems().size()>0) { - showConfirm(navLink); + if (paginatedView.getSelectItems().size() > 0) { + showDoActionView(navLink); } } }); } + + permanentlyDelete.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + if (paginatedView.getSelectItems().size() > 0) { + showDoActionViewDeletePermanently(); + + } + + } + }); } /** @@ -177,6 +202,15 @@ public class HomeView extends Composite { dropdownSetStatus.setVisible(bool); } + /** + * Sets the visible permanently delete. + * + * @param bool the new visible permanently delete + */ + public void setVisiblePermanentlyDelete(boolean bool) { + permanentlyDelete.setVisible(bool); + } + /** * Mark items as checked. * @@ -197,34 +231,24 @@ public class HomeView extends Composite { } /** - * Show confirm. + * Show do action view. * - * @param msg the msg + * @param navLink the nav link */ - public void showConfirm(NavLink navLink) { + private void showDoActionView(NavLink navLink) { confirmPanelContainer.clear(); - GWT.log("showConfirm clicked link: "+navLink.getText()); + GWT.log("showConfirm clicked link: " + navLink.getText()); ItemStatus fromStatus = displayingItemStatus; - ItemStatus toStatus = null; - - for (ItemStatus theStatus : ItemStatus.values()) { - if(theStatus.getLabel().compareTo(navLink.getText().trim())==0) { - toStatus = theStatus; - break; - } - } - - GWT.log("Do action on from: "+fromStatus + " to: "+toStatus); - if(toStatus==null) { + ItemStatus toStatus = UtilFunct.toStatusFromStatusLabel(navLink.getText().trim()); + GWT.log("Do action on from: " + fromStatus + " to: " + toStatus); + if (toStatus == null) { return; } - DoActionCMS doActionCMS = new DoActionCMS(fromStatus, toStatus, paginatedView.getSelectItems()); - - /*final AlertBlock newAlertBlock = new AlertBlock(AlertType.DEFAULT); - newAlertBlock.setAnimation(true); - newAlertBlock.setClose(true); + DoActionCMSView doActionCMS = new DoActionCMSView(); + doActionCMS.updateStatus(fromStatus, toStatus, paginatedView.getSelectItems()); + final AlertBlock newAlertBlock = doActionCMS.getAlertBlockDoAction(); newAlertBlock.addClosedHandler(new ClosedHandler() { @Override @@ -233,29 +257,67 @@ public class HomeView extends Composite { } }); - Button buttActionConfirmYes = new Button(new ClickHandler() { + Button buttActionConfirmYes = doActionCMS.getButtonActionConfirmYES(); + buttActionConfirmYes.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { confirmPanelContainer.clear(); + } }); - buttActionConfirmYes.getElement().getStyle().setMarginLeft(10, Unit.PX); - buttActionConfirmYes.setText("YES"); - newAlertBlock.add(buttActionConfirmYes); - Button buttonActionConfirmNo = new Button(new ClickHandler() { + Button buttonActionConfirmNo = doActionCMS.getButtonActionConfirmNO(); + buttonActionConfirmNo.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { confirmPanelContainer.clear(); + } }); - buttonActionConfirmNo.getElement().getStyle().setMarginLeft(10, Unit.PX); - buttonActionConfirmNo.setText("NO"); - newAlertBlock.add(buttonActionConfirmNo); - newAlertBlock.setHTML(msg);*/ + confirmPanelContainer.add(doActionCMS); + } + + /** + * Show do action delete permanently. + */ + private void showDoActionViewDeletePermanently() { + confirmPanelContainer.clear(); + GWT.log("showDoActionDeletePermanently..."); + + DoActionCMSView doActionCMS = new DoActionCMSView(); + doActionCMS.permanentlyDelete(paginatedView.getSelectItems()); + + final AlertBlock newAlertBlock = doActionCMS.getAlertBlockDoAction(); + newAlertBlock.addClosedHandler(new ClosedHandler() { + + @Override + public void onClosed(ClosedEvent event) { + confirmPanelContainer.clear(); + } + }); + + Button buttActionConfirmYes = doActionCMS.getButtonActionConfirmYES(); + buttActionConfirmYes.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + confirmPanelContainer.clear(); + + } + }); + + Button buttonActionConfirmNo = doActionCMS.getButtonActionConfirmNO(); + buttonActionConfirmNo.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + confirmPanelContainer.clear(); + + } + }); confirmPanelContainer.add(doActionCMS); } @@ -270,14 +332,87 @@ public class HomeView extends Composite { setDisplayingWithStatus(itemStatus); setCheckedCheckboxSelectAll(false); setVisibleUpdateStatusAction(false); - try { - confirmPanelContainer.clear(); - } catch (Exception e) { - GWT.log("error: " + e.getMessage() + " cause: " + e.getCause().toString()); - } + setVisiblePermanentlyDelete(false); + setStatusOptions(); + confirmPanelContainer.clear(); + if (itemStatus.equals(ItemStatus.REJECTED)) + setVisiblePermanentlyDelete(true); + paginatedView.loadItemsForStatus(itemStatus); GWT.log("loadItemsWithStatus end"); } + /** + * Perform CMS action. + * + * @param doActionCMSView the do action CMS view + */ + public void performCMSAction(DoActionCMSView doActionCMSView) { + + ItemStatus toStatus = doActionCMSView.getToStatus(); + List listDatasetNames = UtilFunct.toListDatasetNames(doActionCMSView.getListSelectItems()); + switch (toStatus) { + case PENDING: + + CkanContentModeratorWidgetController.contentModeratorService.setStatus(toStatus, listDatasetNames, + new AsyncCallback() { + + @Override + public void onSuccess(Void result) { + // TODO Auto-generated method stub + + } + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + }); + + break; + + case APPROVED: + + CkanContentModeratorWidgetController.contentModeratorService.approveItem(listDatasetNames, + new AsyncCallback() { + + @Override + public void onSuccess(Void result) { + // TODO Auto-generated method stub + + } + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + }); + + case REJECTED: + + CkanContentModeratorWidgetController.contentModeratorService.rejectItem(listDatasetNames, + doActionCMSView.isPermanentlyDelete(), doActionCMSView.getTxtReasonMsg(), + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + + @Override + public void onSuccess(Void result) { + // TODO Auto-generated method stub + + } + }); + + default: + break; + } + } + } 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 8e81cce..f232296 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 @@ -21,6 +21,19 @@ font-size: 16px !important; } + .button-style { + margin-left: 20px; + padding: 0px; + } + + .font-size-14 { + font-size: 14px; + } + + .font-size-14 li { + font-size: 14px; + } + .headinghome>small { font-size: 16px !important; } @@ -29,11 +42,17 @@ Items with status: - - - + addStyleNames="{style.font-size-14}"> + + + + + + Permanently + Delete diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/util/UtilFunct.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/util/UtilFunct.java index 0f8acc2..f261fdd 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/util/UtilFunct.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/util/UtilFunct.java @@ -1,12 +1,18 @@ package org.gcube.portlets.widgets.ckancontentmoderator.client.ui.util; +import java.util.ArrayList; +import java.util.List; + +import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; +import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; + /** * The Class UtilFunct. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Jun 22, 2021 + * Jun 22, 2021 */ public class UtilFunct { @@ -14,7 +20,7 @@ public class UtilFunct { * Ellipsis. * * @param value the value - * @param lenght the length + * @param length the length * @param left the left * @return the string */ @@ -31,4 +37,39 @@ public class UtilFunct { return value; } + /** + * To status from status label. + * + * @param label the label + * @return the item status + */ + public static ItemStatus toStatusFromStatusLabel(String label) { + + for (ItemStatus theStatus : ItemStatus.values()) { + if (theStatus.getLabel().compareTo(label.trim()) == 0) { + return theStatus; + + } + } + + return null; + } + + + /** + * To list dataset names. + * + * @param itemsSelected the items selected + * @return the list + */ + public static List toListDatasetNames(List itemsSelected) { + + List listDatasetNames = new ArrayList(itemsSelected.size()); + for (CatalogueDataset catalogueDataset : itemsSelected) { + listDatasetNames.add(catalogueDataset.getName()); + } + + return listDatasetNames; + } + } 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 eab2a74..72420eb 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 @@ -93,7 +93,7 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem } @Override - public void rejectItem(String itemId, boolean permanentlyDelete, String reasonMsg) { + public void rejectItem(List itemNames, boolean permanentlyDelete, String reasonMsg) { // TODO Auto-generated method stub }