From ae9f61a4f247b4fd86a1706bd68df06c7e4605f6 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Mon, 28 Jun 2021 18:41:52 +0200 Subject: [PATCH] Introducing the DoAction Form --- .../ui/ContentModeratorPaginatedView.java | 2 +- .../ui/ContentModeratorSystemBaseView.java | 6 +- .../client/ui/DoActionCMS.java | 63 +++++++++++++++ .../client/ui/DoActionCMS.ui.xml | 24 ++++++ .../client/ui/HomeView.java | 76 +++++++++++-------- 5 files changed, 133 insertions(+), 38 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.java create mode 100644 src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.ui.xml diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java index c6b79cf..7acbe8f 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java @@ -30,7 +30,7 @@ import com.google.gwt.view.client.Range; import com.google.gwt.view.client.SelectionModel; import com.google.gwt.view.client.SingleSelectionModel; -// TODO: Auto-generated Javadoc + /** * The Class ContentModeratorPaginatedView. * diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemBaseView.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemBaseView.java index 0e76c3b..3a41357 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemBaseView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemBaseView.java @@ -4,13 +4,12 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.Widget; - /** * The Class ContentModeratorSystemBaseView. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Jun 16, 2021 + * Jun 16, 2021 */ public class ContentModeratorSystemBaseView { @@ -41,8 +40,7 @@ public class ContentModeratorSystemBaseView { public void addToCenter(Widget w) { centerPanel.add(w); } - - + /** * Adds the to bottom. * 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 new file mode 100644 index 0000000..4753306 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.java @@ -0,0 +1,63 @@ +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 new file mode 100644 index 0000000..a62b682 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/DoActionCMS.ui.xml @@ -0,0 +1,24 @@ + + + + .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/HomeView.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/HomeView.java index bf28c65..fa23066 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,18 +8,11 @@ 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.github.gwtbootstrap.client.ui.base.AlertBase; -import com.github.gwtbootstrap.client.ui.constants.AlertType; -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.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.ValueChangeEvent; @@ -60,8 +53,8 @@ public class HomeView extends Composite { @UiField HTMLPanel confirmPanel; - - private ScrollPanel confirmPanelContainer = new ScrollPanel(); + + private ScrollPanel confirmPanelContainer = new ScrollPanel(); private List setStatusOptions = new ArrayList(); @@ -143,22 +136,23 @@ public class HomeView extends Composite { @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; - - showConfirm(msg); +// 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); + } } }); @@ -207,10 +201,27 @@ public class HomeView extends Composite { * * @param msg the msg */ - public void showConfirm(String msg) { + public void showConfirm(NavLink navLink) { confirmPanelContainer.clear(); + GWT.log("showConfirm clicked link: "+navLink.getText()); + ItemStatus fromStatus = displayingItemStatus; + ItemStatus toStatus = null; - final AlertBlock newAlertBlock = new AlertBlock(AlertType.DEFAULT); + 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) { + return; + } + + DoActionCMS doActionCMS = new DoActionCMS(fromStatus, toStatus, paginatedView.getSelectItems()); + + /*final AlertBlock newAlertBlock = new AlertBlock(AlertType.DEFAULT); newAlertBlock.setAnimation(true); newAlertBlock.setClose(true); @@ -243,10 +254,10 @@ public class HomeView extends Composite { buttonActionConfirmNo.getElement().getStyle().setMarginLeft(10, Unit.PX); buttonActionConfirmNo.setText("NO"); newAlertBlock.add(buttonActionConfirmNo); - - newAlertBlock.setHTML(msg); - confirmPanelContainer.add(newAlertBlock); + newAlertBlock.setHTML(msg);*/ + + confirmPanelContainer.add(doActionCMS); } /** @@ -261,12 +272,11 @@ public class HomeView extends Composite { setVisibleUpdateStatusAction(false); try { confirmPanelContainer.clear(); - }catch (Exception e) { - GWT.log("error: "+e.getMessage() + " cause: "+e.getCause().toString()); + } catch (Exception e) { + GWT.log("error: " + e.getMessage() + " cause: " + e.getCause().toString()); } paginatedView.loadItemsForStatus(itemStatus); - GWT.log("loadItemsWithStatus end"); }