diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java index 0fc550f..31d2987 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java @@ -928,16 +928,23 @@ public class AppController implements SubscriberInterface { idErros.add(gbi.getOldItemId()); } MessageBox.alert("Error", msg, null); - return; - } + + int diff = ids.size()-errors.size(); + + if(diff>0){ + + List deletable = new ArrayList(diff); + //Deleting item from grid + for (String id : ids) { + if(!idErros.contains(id)) //is not an error so is deletable + deletable.add(id); + } + + deleteItems(deletable); + } + }else + deleteItems(ids); //no error, delete all ids - //Deleting item from grid - for (String id : ids) { - if(!idErros.contains(id)) - deleteItem(id); - } -// wsPortlet.getGridGroupContainer().unmask(); - GWT.log("target: "+target); if(wsPortlet.getSearchAndFilterContainer().isSearchActive()){ @@ -1623,13 +1630,19 @@ public class AppController implements SubscriberInterface { } @Override - public boolean deleteItem(String itemIdentifier) { + public boolean deleteItems(List ids) { + if(ids==null || ids.size()==0) + return false; + + boolean deleted = false; + for (String itemIdentifier : ids) { + deleted = wsPortlet.getGridGroupContainer().deleteItem(itemIdentifier); + } executeTrashOperation(WorkspaceTrashOperation.REFRESH, null); - - return wsPortlet.getGridGroupContainer().deleteItem(itemIdentifier); - + return deleted; } + @Override public void rootLoaded(FileModel root) {