completed activity to https://support.social.isti.cnr.it/ticket/126
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@98563 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
ae235cc7a3
commit
4e2612018a
|
@ -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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue