Francesco Mangiacrapa 2014-07-11 13:56:35 +00:00
parent ae235cc7a3
commit 4e2612018a
6 changed files with 61 additions and 64 deletions

View File

@ -147,7 +147,6 @@ import org.gcube.portlets.widgets.workspacesharingwidget.client.SmartConstants;
import org.gcube.portlets.widgets.workspacesharingwidget.client.WorkspaceSmartSharingController;
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.SmartShare;
import org.gcube.portlets.widgets.workspacesharingwidget.shared.CredentialModel;
import org.gcube.vomanagement.usermanagement.ws.ListUsers;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.event.BaseEvent;
@ -2161,44 +2160,60 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
*/
private void showAddAdministratorsDialog(final FileModel file) {
org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel internalFile = new org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel(file.getIdentifier(), file.getName(), file.isDirectory());
WorkspaceSmartSharingController controller = new WorkspaceSmartSharingController(internalFile, null, false, false);
final org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel internalFile = new org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel(file.getIdentifier(), file.getName(), file.isDirectory());
SmartConstants.HEADER_TITLE = "Add Administrators to: "+file.getName();
SmartConstants.SHARE_WITH_USERS = "Manage with users";
SmartConstants.ERROR_NO_USER_SELECTED = "You must pick at least one user to add to Administrators";
final SmartShare sharingWindow = controller.getSharingDialog();
rpcWorkspaceService.getAdministratorsByFolderId(file.getIdentifier(), new AsyncCallback<List<InfoContactModel>>() {
sharingWindow.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
@Override
public void handleEvent(BaseEvent be) {
if(sharingWindow.isValidForm(true)){
//THAT'S OK
List<org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel> listUsers = sharingWindow.getSharedListUsers(); //@return the selected contacts (as InfoContactModel)
if(listUsers!=null && listUsers.size()>0){
List<String> logins = new ArrayList<String>(listUsers.size());
for (org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel infoContactModel : listUsers) {
logins.add(infoContactModel.getLogin());
}
doAddAdministratorToFolderId(file, logins);
}
public void onFailure(Throwable arg0) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(List<InfoContactModel> admins) {
List<CredentialModel> alreadyAdmins = new ArrayList<CredentialModel>();
for (InfoContactModel contact : admins) {
alreadyAdmins.add(new CredentialModel(contact.getId(), contact.getLogin(), contact.isGroup()));
}
WorkspaceSmartSharingController controller = new WorkspaceSmartSharingController(internalFile, alreadyAdmins, false, false);
final SmartShare sharingWindow = controller.getSharingDialog();
sharingWindow.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
@Override
public void handleEvent(BaseEvent be) {
if(sharingWindow.isValidForm(true)){
List<org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel> listUsers = sharingWindow.getSharedListUsers(); //@return the selected contacts (as InfoContactModel)
if(listUsers!=null && listUsers.size()>0){
List<String> logins = new ArrayList<String>(listUsers.size());
for (org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel infoContactModel : listUsers) {
logins.add(infoContactModel.getLogin());
}
doAddAdministratorToFolderId(file, logins);
}
}
}
});
sharingWindow.show();
}
});
sharingWindow.show();
}

View File

@ -7,7 +7,6 @@ import java.io.Serializable;
*
*/
public enum GXTFolderItemTypeEnum implements Serializable {
// AQUAMAPS_ITEM("AquaMaps Item"),
EXTERNAL_FILE("External File"),
EXTERNAL_IMAGE("External Image"),
EXTERNAL_PDF_FILE("External PDF File"),
@ -28,23 +27,6 @@ public enum GXTFolderItemTypeEnum implements Serializable {
ANNOTATION("Annotation"),
FOLDER("Folder"),
SHARED_FOLDER("Shared Folder");
// EXTERNAL_IMAGE,
// EXTERNAL_FILE,
// EXTERNAL_PDF_FILE,
// EXTERNAL_URL,
// QUERY,
// REPORT_TEMPLATE,
// REPORT,
// DOCUMENT,
// METADATA,
// PDF_DOCUMENT,
// IMAGE_DOCUMENT,
// URL_DOCUMENT,
// TIME_SERIES,
// AQUAMAPS_ITEM,
// WORKFLOW_REPORT,
// WORKFLOW_TEMPLATE,
// UNKNOWN_TYPE;
protected String label;

View File

@ -255,4 +255,6 @@ public interface GWTWorkspaceService extends RemoteService{
boolean addAdministratorsByFolderId(String folderId,
List<String> listContactIds) throws Exception;
List<InfoContactModel> getAdministratorsByFolderId(String identifier) throws Exception;
}

View File

@ -207,4 +207,9 @@ public interface GWTWorkspaceServiceAsync {
void addAdministratorsByFolderId(String folderId, List<String> listLogins,
AsyncCallback<Boolean> callback);
/**
* @param identifier
*/
void getAdministratorsByFolderId(String identifier, AsyncCallback<List<InfoContactModel>> callback);
}

View File

@ -899,9 +899,12 @@ public class GWTWorkspaceBuilder {
public List<InfoContactModel> buildGxtInfoContactsFromPortalLogins(List<String> listPortalLogin){
List<InfoContactModel> listContact = new ArrayList<InfoContactModel>();
for (String portalLogin : listPortalLogin)
listContact.add(buildGxtInfoContactFromPortalLogin(portalLogin));
if(listPortalLogin!=null && listPortalLogin.size()>0){
for (String portalLogin : listPortalLogin)
listContact.add(buildGxtInfoContactFromPortalLogin(portalLogin));
}
return listContact;
}

View File

@ -3084,19 +3084,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
//TODO GET ADMINISTRATORS FROM HL
//FAKE
// admins.add(new InfoContactModel("francesco.mangiacrapa","francesco.mangiacrapa", "Francesco Mangiacrapa", false));
/*
for (String login : listContactLogins) {
workspaceLogger.info("Setting administator: "+login);
sharedFolder.setAdmin(login);
}
return true;
*/
return admins;
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
sharedFolder.getAdministrators();
return builder.buildGxtInfoContactsFromPortalLogins(sharedFolder.getAdministrators());
}else
throw new Exception("The item is null or not instanceof "+WorkspaceItemType.SHARED_FOLDER);