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.WorkspaceSmartSharingController;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.SmartShare;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.SmartShare;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.CredentialModel;
|
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.Registry;
|
||||||
import com.extjs.gxt.ui.client.event.BaseEvent;
|
import com.extjs.gxt.ui.client.event.BaseEvent;
|
||||||
|
@ -2161,44 +2160,60 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
||||||
*/
|
*/
|
||||||
private void showAddAdministratorsDialog(final FileModel file) {
|
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());
|
final 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);
|
|
||||||
|
|
||||||
SmartConstants.HEADER_TITLE = "Add Administrators to: "+file.getName();
|
SmartConstants.HEADER_TITLE = "Add Administrators to: "+file.getName();
|
||||||
SmartConstants.SHARE_WITH_USERS = "Manage with users";
|
SmartConstants.SHARE_WITH_USERS = "Manage with users";
|
||||||
SmartConstants.ERROR_NO_USER_SELECTED = "You must pick at least one user to add to Administrators";
|
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
|
@Override
|
||||||
public void handleEvent(BaseEvent be) {
|
public void onFailure(Throwable arg0) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
if(sharingWindow.isValidForm(true)){
|
|
||||||
//THAT'S OK
|
}
|
||||||
|
|
||||||
List<org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel> listUsers = sharingWindow.getSharedListUsers(); //@return the selected contacts (as InfoContactModel)
|
@Override
|
||||||
|
public void onSuccess(List<InfoContactModel> admins) {
|
||||||
if(listUsers!=null && listUsers.size()>0){
|
|
||||||
|
List<CredentialModel> alreadyAdmins = new ArrayList<CredentialModel>();
|
||||||
List<String> logins = new ArrayList<String>(listUsers.size());
|
for (InfoContactModel contact : admins) {
|
||||||
|
alreadyAdmins.add(new CredentialModel(contact.getId(), contact.getLogin(), contact.isGroup()));
|
||||||
for (org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel infoContactModel : listUsers) {
|
|
||||||
logins.add(infoContactModel.getLogin());
|
|
||||||
}
|
|
||||||
|
|
||||||
doAddAdministratorToFolderId(file, logins);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 {
|
public enum GXTFolderItemTypeEnum implements Serializable {
|
||||||
// AQUAMAPS_ITEM("AquaMaps Item"),
|
|
||||||
EXTERNAL_FILE("External File"),
|
EXTERNAL_FILE("External File"),
|
||||||
EXTERNAL_IMAGE("External Image"),
|
EXTERNAL_IMAGE("External Image"),
|
||||||
EXTERNAL_PDF_FILE("External PDF File"),
|
EXTERNAL_PDF_FILE("External PDF File"),
|
||||||
|
@ -28,23 +27,6 @@ public enum GXTFolderItemTypeEnum implements Serializable {
|
||||||
ANNOTATION("Annotation"),
|
ANNOTATION("Annotation"),
|
||||||
FOLDER("Folder"),
|
FOLDER("Folder"),
|
||||||
SHARED_FOLDER("Shared 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;
|
protected String label;
|
||||||
|
|
||||||
|
|
|
@ -255,4 +255,6 @@ public interface GWTWorkspaceService extends RemoteService{
|
||||||
boolean addAdministratorsByFolderId(String folderId,
|
boolean addAdministratorsByFolderId(String folderId,
|
||||||
List<String> listContactIds) throws Exception;
|
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,
|
void addAdministratorsByFolderId(String folderId, List<String> listLogins,
|
||||||
AsyncCallback<Boolean> callback);
|
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){
|
public List<InfoContactModel> buildGxtInfoContactsFromPortalLogins(List<String> listPortalLogin){
|
||||||
|
|
||||||
List<InfoContactModel> listContact = new ArrayList<InfoContactModel>();
|
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;
|
return listContact;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3084,19 +3084,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
|
|
||||||
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
||||||
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
|
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
|
||||||
|
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
||||||
//TODO GET ADMINISTRATORS FROM HL
|
sharedFolder.getAdministrators();
|
||||||
//FAKE
|
return builder.buildGxtInfoContactsFromPortalLogins(sharedFolder.getAdministrators());
|
||||||
// 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;
|
|
||||||
}else
|
}else
|
||||||
throw new Exception("The item is null or not instanceof "+WorkspaceItemType.SHARED_FOLDER);
|
throw new Exception("The item is null or not instanceof "+WorkspaceItemType.SHARED_FOLDER);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue