task_21363 #1

Closed
francesco.mangiacrapa wants to merge 53 commits from task_21363 into master
4 changed files with 79 additions and 8 deletions
Showing only changes of commit e758633752 - Show all commits

View File

@ -25,9 +25,12 @@ import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.MainTabPanel;
import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD;
import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset;
import com.github.gwtbootstrap.client.ui.Alert;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.FlowPanel;
@ -45,6 +48,7 @@ public class CkanContentModeratorWidgetController {
.create(CkanContentModeratorService.class); .create(CkanContentModeratorService.class);
private FlowPanel mainPanel = new FlowPanel(); private FlowPanel mainPanel = new FlowPanel();
private FlowPanel infoPanel = new FlowPanel();
private ContentModeratorToolbar toolbar; private ContentModeratorToolbar toolbar;
private MainTabPanel mainTabPanel = new MainTabPanel(); private MainTabPanel mainTabPanel = new MainTabPanel();
@ -65,6 +69,7 @@ public class CkanContentModeratorWidgetController {
howeView = new HomeView(eventBus, status, displayFields, sortByField); howeView = new HomeView(eventBus, status, displayFields, sortByField);
mainTabPanel.addHomeWidget(howeView.getPanel()); mainTabPanel.addHomeWidget(howeView.getPanel());
mainPanel.add(toolbar); mainPanel.add(toolbar);
mainPanel.add(infoPanel);
mainPanel.add(mainTabPanel); mainPanel.add(mainTabPanel);
bindEvents(); bindEvents();
} }
@ -160,10 +165,31 @@ public class CkanContentModeratorWidgetController {
@Override @Override
public void onValueChanged(SelectItemsWithItemStatusEvent statusSelectedEvent) { public void onValueChanged(SelectItemsWithItemStatusEvent statusSelectedEvent) {
GWT.log("On value changed: " + statusSelectedEvent.getItemStatus()); GWT.log("On value changed: " + statusSelectedEvent.getItemStatus());
infoPanel.clear();
if (statusSelectedEvent.getItemStatus() != null) { if (statusSelectedEvent.getItemStatus() != null) {
howeView.loadItemsWithStatus(statusSelectedEvent.getItemStatus()); howeView.loadItemsWithStatus(statusSelectedEvent.getItemStatus());
mainTabPanel.selectTab(0); mainTabPanel.selectTab(0);
} }
if(statusSelectedEvent.getDisplayMessage()!=null) {
final Alert alert = new Alert(statusSelectedEvent.getDisplayMessage());
alert.setType(AlertType.INFO);
alert.setClose(true);
alert.setAnimation(true);
infoPanel.add(alert);
//Cleans the info panel after 10 sec.
Timer t = new Timer() {
@Override
public void run() {
infoPanel.clear();
}
};
t.schedule(10000);
}
} }
}); });

View File

@ -14,14 +14,17 @@ import com.google.gwt.event.shared.GwtEvent;
public class SelectItemsWithItemStatusEvent extends GwtEvent<SelectItemsWithItemStatusEventHandler> { public class SelectItemsWithItemStatusEvent extends GwtEvent<SelectItemsWithItemStatusEventHandler> {
public static Type<SelectItemsWithItemStatusEventHandler> TYPE = new Type<SelectItemsWithItemStatusEventHandler>(); public static Type<SelectItemsWithItemStatusEventHandler> TYPE = new Type<SelectItemsWithItemStatusEventHandler>();
private ItemStatus itemStatus; private ItemStatus itemStatus;
private String displayMessage;
/** /**
* Instantiates a new click item event. * Instantiates a new click item event.
* *
* @param itemStatus the item status * @param itemStatus the item status
* @param displayMessage the display message
*/ */
public SelectItemsWithItemStatusEvent(ItemStatus itemStatus) { public SelectItemsWithItemStatusEvent(ItemStatus itemStatus, String displayMessage) {
this.itemStatus = itemStatus; this.itemStatus = itemStatus;
this.displayMessage = displayMessage;
} }
/** /**
@ -52,5 +55,14 @@ public class SelectItemsWithItemStatusEvent extends GwtEvent<SelectItemsWithItem
public ItemStatus getItemStatus() { public ItemStatus getItemStatus() {
return itemStatus; return itemStatus;
} }
/**
* Gets the display message.
*
* @return the display message
*/
public String getDisplayMessage() {
return displayMessage;
}
} }

View File

@ -67,7 +67,7 @@ public class ContentModeratorToolbar extends Composite {
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
GWT.log("clicked: "+status); GWT.log("clicked: "+status);
setActiveStatus(status); setActiveStatus(status);
eventBus.fireEvent(new SelectItemsWithItemStatusEvent(status)); eventBus.fireEvent(new SelectItemsWithItemStatusEvent(status, null));
} }
}); });

View File

@ -6,6 +6,7 @@ import java.util.List;
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidgetController; import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorWidgetController;
import org.gcube.portlets.widgets.ckancontentmoderator.client.events.CheckBoxSelectIemsEvent; import org.gcube.portlets.widgets.ckancontentmoderator.client.events.CheckBoxSelectIemsEvent;
import org.gcube.portlets.widgets.ckancontentmoderator.client.events.SelectItemsWithItemStatusEvent;
import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD; 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.client.ui.util.UtilFunct;
import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset;
@ -33,7 +34,6 @@ import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
/** /**
* The Class HomeView. * The Class HomeView.
* *
@ -237,16 +237,17 @@ public class HomeView extends Composite {
*/ */
private void showDoActionView(NavLink navLink) { private void showDoActionView(NavLink navLink) {
confirmPanelContainer.clear(); confirmPanelContainer.clear();
GWT.log("showConfirm clicked link: " + navLink.getText()); GWT.log("showDoActionView clicked link: " + navLink.getText());
ItemStatus fromStatus = displayingItemStatus; ItemStatus fromStatus = displayingItemStatus;
ItemStatus toStatus = UtilFunct.toStatusFromStatusLabel(navLink.getText().trim()); final ItemStatus toStatus = UtilFunct.toStatusFromStatusLabel(navLink.getText().trim());
GWT.log("Do action on from: " + fromStatus + " to: " + toStatus); GWT.log("Do action on from: " + fromStatus + " to: " + toStatus);
if (toStatus == null) { if (toStatus == null) {
return; return;
} }
DoActionCMSView doActionCMS = new DoActionCMSView(); DoActionCMSView doActionCMS = new DoActionCMSView();
doActionCMS.updateStatus(fromStatus, toStatus, paginatedView.getSelectItems()); final List<CatalogueDataset> selectedItems = paginatedView.getSelectItems();
doActionCMS.updateStatus(fromStatus, toStatus, selectedItems);
final AlertBlock newAlertBlock = doActionCMS.getAlertBlockDoAction(); final AlertBlock newAlertBlock = doActionCMS.getAlertBlockDoAction();
newAlertBlock.addClosedHandler(new ClosedHandler<AlertBase>() { newAlertBlock.addClosedHandler(new ClosedHandler<AlertBase>() {
@ -263,6 +264,22 @@ public class HomeView extends Composite {
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
confirmPanelContainer.clear(); confirmPanelContainer.clear();
//TODO DO ACTION UPDATE STATUS OR DELETE PERMANENTLY
int count = selectedItems.size();
String msg = "";
if (count > 0) {
if (count == 1) {
msg += "One item";
} else {
msg += count + " items";
}
msg += " moved to " + toStatus + " status";
}
eventBus.fireEvent(new SelectItemsWithItemStatusEvent(displayingItemStatus, msg));
} }
}); });
@ -285,10 +302,11 @@ public class HomeView extends Composite {
*/ */
private void showDoActionViewDeletePermanently() { private void showDoActionViewDeletePermanently() {
confirmPanelContainer.clear(); confirmPanelContainer.clear();
GWT.log("showDoActionDeletePermanently..."); GWT.log("showDoActionViewDeletePermanently...");
DoActionCMSView doActionCMS = new DoActionCMSView(); DoActionCMSView doActionCMS = new DoActionCMSView();
doActionCMS.permanentlyDelete(paginatedView.getSelectItems()); final List<CatalogueDataset> selectedItems = paginatedView.getSelectItems();
doActionCMS.permanentlyDelete(selectedItems);
final AlertBlock newAlertBlock = doActionCMS.getAlertBlockDoAction(); final AlertBlock newAlertBlock = doActionCMS.getAlertBlockDoAction();
newAlertBlock.addClosedHandler(new ClosedHandler<AlertBase>() { newAlertBlock.addClosedHandler(new ClosedHandler<AlertBase>() {
@ -305,7 +323,22 @@ public class HomeView extends Composite {
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
confirmPanelContainer.clear(); confirmPanelContainer.clear();
//TODO DO ACTION DELETE PERMANENTLY
int count = selectedItems.size();
String msg = "Deleted permanently";
if (count > 0) {
if (count == 1) {
msg += " one item";
} else {
msg += " " + count + " items";
}
msg += " from Catalogue";
}
eventBus.fireEvent(new SelectItemsWithItemStatusEvent(displayingItemStatus, msg));
} }
}); });