diff --git a/.classpath b/.classpath
index 5bf4492..e589261 100644
--- a/.classpath
+++ b/.classpath
@@ -1,6 +1,6 @@
-
+
@@ -25,5 +25,5 @@
-
+
diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs
index e622e7e..b0171bc 100644
--- a/.settings/com.google.gdt.eclipse.core.prefs
+++ b/.settings/com.google.gdt.eclipse.core.prefs
@@ -3,6 +3,6 @@
>>>>>>>=.r93212
eclipse.preferences.version=1
jarsExcludedFromWebInfLib=
-lastWarOutDir=/home/francesco-mangiacrapa/wseclipse/workspace-TRUNK/target/workspace-6.6.5-SNAPSHOT
+lastWarOutDir=/home/francesco-mangiacrapa/wseclipse/workspace-TRUNK/target/workspace-6.6.7-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index cd739a2..e7bf8c1 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -5,7 +5,10 @@
-
+
+ uses
+
+
uses
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 53eebe9..9d027be 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
@@ -14,6 +14,8 @@ import org.gcube.portlets.user.workspace.client.event.AccountingReadersEvent;
import org.gcube.portlets.user.workspace.client.event.AccountingReadersEventHandler;
import org.gcube.portlets.user.workspace.client.event.ActiveGroupingView;
import org.gcube.portlets.user.workspace.client.event.ActiveGroupingViewHandler;
+import org.gcube.portlets.user.workspace.client.event.AddAdministratorEvent;
+import org.gcube.portlets.user.workspace.client.event.AddAdministratorEventHandler;
import org.gcube.portlets.user.workspace.client.event.AddFolderEvent;
import org.gcube.portlets.user.workspace.client.event.AddFolderEventHandler;
import org.gcube.portlets.user.workspace.client.event.AddSmartFolderEvent;
@@ -184,6 +186,18 @@ public class AppController implements SubscriberInterface {
}
});
+ eventBus.addHandler(AddAdministratorEvent.TYPE, new AddAdministratorEventHandler() {
+
+ @Override
+ public void onAddAdministrator(AddAdministratorEvent addAdministratorEvent) {
+ FileModel parent = wsPortlet.getToolBarPath().getLastParent();
+
+ if(parent!=null)
+ AppControllerExplorer.getEventBus().fireEvent(new AddAdministratorEvent(parent));
+
+ }
+ });
+
eventBus.addHandler(TrashEvent.TYPE, new TrashEventHandler() {
@Override
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java
index 31ebcfa..127d104 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java
@@ -3,12 +3,14 @@ package org.gcube.portlets.user.workspace.client.view.toolbars;
import org.gcube.portlets.user.workspace.client.AppController;
import org.gcube.portlets.user.workspace.client.event.AccountingHistoryEvent;
import org.gcube.portlets.user.workspace.client.event.AccountingReadersEvent;
+import org.gcube.portlets.user.workspace.client.event.AddAdministratorEvent;
import org.gcube.portlets.user.workspace.client.event.GetInfoEvent;
import org.gcube.portlets.user.workspace.client.event.TrashEvent;
import org.gcube.portlets.user.workspace.client.resources.Resources;
import org.gcube.portlets.user.workspace.client.util.GetPermissionIconByACL;
import org.gcube.portlets.user.workspace.shared.WorkspaceACL;
import org.gcube.portlets.user.workspace.shared.WorkspaceTrashOperation;
+import org.gcube.portlets.user.workspace.shared.WorkspaceACL.USER_TYPE;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.event.BaseEvent;
@@ -44,6 +46,8 @@ public class GxtBottomToolBarItem extends ToolBar{
*
*/
protected static final String HISTORY = "History";
+ private static final String ADD_ADMINISTRATOR = "Add Admnistrator/s";
+
private TextField txfName = new TextField();
private Text txtOwner = new Text("Empty");
private Text txtCreationTime = new Text("Empty");
@@ -56,6 +60,7 @@ public class GxtBottomToolBarItem extends ToolBar{
private ACLDivInfo aclDivInfo;
private Label labelItemsNumber = new Label();
private HorizontalPanel hpItemsNumber;
+ private Button btnAddAdmin;
public GxtBottomToolBarItem(){
super();
@@ -113,6 +118,20 @@ public class GxtBottomToolBarItem extends ToolBar{
}
});
+
+
+ btnAddAdmin = new Button(ADD_ADMINISTRATOR);
+ btnAddAdmin.setIcon(Resources.getIconAddAdministrator());
+ btnAddAdmin.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+
+ AppController.getEventBus().fireEvent(new AddAdministratorEvent(null));
+ }
+ });
+
+ setVisibleAddAdministrators(false);
aclDivInfo = new ACLDivInfo("", null);
@@ -148,12 +167,17 @@ public class GxtBottomToolBarItem extends ToolBar{
FillToolItem filler = new FillToolItem();
filler.setId("filler-item");
add(filler);
+ add(btnAddAdmin);
add(aclDivInfo);
enableInfoHistoryButtons(false);
}
+ private void setVisibleAddAdministrators(boolean bool){
+ btnAddAdmin.setVisible(bool);
+ }
+
public void resetDetails(){
@@ -194,12 +218,18 @@ public class GxtBottomToolBarItem extends ToolBar{
public void updateACLInfo(WorkspaceACL acl){
+ setVisibleAddAdministrators(false);
if(acl==null){
aclDivInfo.updateInfo(null, null);
return;
}
AbstractImagePrototype img = GetPermissionIconByACL.getImage(acl);
+
+ if(acl.getUserType().equals(USER_TYPE.ADMINISTRATOR)){
+ setVisibleAddAdministrators(true);
+ }
+
aclDivInfo.updateInfo(acl.getLabel(), img);
this.layout();
}
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 912dccc..29095ec 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -17,25 +17,30 @@
uploadprogress
org.gcube.portlets.widgets.fileupload.server.UploadProgressServlet
-
+
uploadprogress
/workspace/uploadprogress
-
+
upload
org.gcube.portlets.widgets.fileupload.server.UploadServlet
-
+
upload
/FileUpload/upload
-
+
+
+ workspacesharing
+ org.gcube.portlets.widgets.workspacesharingwidget.server.WorkspaceSharingServiceImpl
+
+
-
+
UploadService
org.gcube.portlets.user.workspace.server.UploadServlet
@@ -45,22 +50,21 @@
UploadService
/workspace/UploadService
-
-
-
-
- LocalUploadService
- org.gcube.portlets.user.workspace.server.LocalUploadServlet
-
+
+ workspacesharing
+ /workspace/workspacesharing
+
LocalUploadService
/workspace/LocalUploadService
-
-
-
+
+
+ LocalUploadService
+ org.gcube.portlets.user.workspace.server.LocalUploadServlet
+
DownloadService
@@ -153,7 +157,7 @@
quicktourServlet
org.gcube.portlets.widgets.guidedtour.server.TourServiceImpl
-
+
quicktourServlet
/workspace/quicktourServlet