enhancements on "Edit Administrators"
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@100132 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
cf2a2443a3
commit
a06d57950a
|
@ -143,10 +143,9 @@ import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEve
|
||||||
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEventHandler;
|
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEventHandler;
|
||||||
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEvent;
|
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEvent;
|
||||||
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEventHandler;
|
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEventHandler;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.SmartConstants;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.SimpleMultiDragConstants;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.WorkspaceSmartSharingController;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.SimpleMultiDragWorkspaceContact;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.SmartShare;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.SimpleMultiDragWorkspaceContact.LOAD_CONTACTS_AS;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.CredentialModel;
|
|
||||||
|
|
||||||
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;
|
||||||
|
@ -311,7 +310,7 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
||||||
if(AppControllerExplorer.myLogin.compareToIgnoreCase(infoContactModel.getLogin())==0)
|
if(AppControllerExplorer.myLogin.compareToIgnoreCase(infoContactModel.getLogin())==0)
|
||||||
showAddAdministratorsDialog(file);
|
showAddAdministratorsDialog(file);
|
||||||
else
|
else
|
||||||
new MessageBoxAlert("Permission denied", "You have no permissions to add administrators. You are not manager of \""+file.getName()+"\"", null);
|
new MessageBoxAlert("Permission denied", "You have no permissions to manage administrators. You are not manager of \""+file.getName()+"\"", null);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2110,60 +2109,73 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
||||||
*/
|
*/
|
||||||
private void showAddAdministratorsDialog(final FileModel file) {
|
private void showAddAdministratorsDialog(final FileModel file) {
|
||||||
|
|
||||||
final org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel internalFile = new org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel(file.getIdentifier(), file.getName(), file.isDirectory());
|
SimpleMultiDragConstants.HEADING_DIALOG = "Edit Administrator/s to: "+file.getName();
|
||||||
|
SimpleMultiDragConstants.ALL_CONTACTS_LEFT_LIST = "All Contacts";
|
||||||
SmartConstants.HEADER_TITLE = "Add Administrators to: "+file.getName();
|
SimpleMultiDragConstants.SHARE_WITH_RIGHT_LIST = "New Administrator/s";
|
||||||
SmartConstants.SHARE_WITH_USERS = "Manage with users";
|
|
||||||
SmartConstants.ERROR_NO_USER_SELECTED = "You must pick at least one user to add to Administrators";
|
|
||||||
|
|
||||||
rpcWorkspaceService.getAdministratorsByFolderId(file.getIdentifier(), new AsyncCallback<List<InfoContactModel>>() {
|
final SimpleMultiDragWorkspaceContact multiDragContact = new SimpleMultiDragWorkspaceContact(LOAD_CONTACTS_AS.ADMINISTRATOR, file.getIdentifier(), true, false, true);
|
||||||
|
final Dialog multidrag = multiDragContact.getMultiDragContact();
|
||||||
|
|
||||||
|
multidrag.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable arg0) {
|
public void handleEvent(BaseEvent be) {
|
||||||
// TODO Auto-generated method stub
|
List<org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel> targets = multiDragContact.getTargetContactsWithMyLogin();
|
||||||
|
|
||||||
}
|
if(targets.size()==1){
|
||||||
|
MessageBox info = MessageBox.info("Any Administrator/s?", "You have not selected any Administrator, confirm exit?", null);
|
||||||
|
|
||||||
|
info.addCallback(new Listener<MessageBoxEvent>() {
|
||||||
|
|
||||||
@Override
|
public void handleEvent(MessageBoxEvent be) {
|
||||||
public void onSuccess(List<InfoContactModel> admins) {
|
//IF NOT CANCELLED
|
||||||
|
String clickedButton = be.getButtonClicked().getItemId();
|
||||||
List<CredentialModel> alreadyAdmins = new ArrayList<CredentialModel>();
|
if(clickedButton.equals(Dialog.OK)){
|
||||||
for (InfoContactModel contact : admins) {
|
multidrag.hide();
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
info.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(targets.size()>1){
|
||||||
|
|
||||||
|
final List<String> logins = new ArrayList<String>(targets.size());
|
||||||
|
String names = "<ul>";
|
||||||
|
for (org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel infoContactModel : targets) {
|
||||||
|
logins.add(infoContactModel.getLogin());
|
||||||
|
names+="<li><i>"+infoContactModel.getName() +";</i></li>";
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
String tail = "</ul>as new ";
|
||||||
sharingWindow.show();
|
tail += logins.size()>1?"administrators":"administrator";
|
||||||
|
tail+= ", confirm?";
|
||||||
|
MessageBoxConfirm confirm = new MessageBoxConfirm("Setting new Administrator/s?", "You have selected: <br/>"+names +tail);
|
||||||
|
|
||||||
|
confirm.getMessageBoxConfirm().addCallback(new Listener<MessageBoxEvent>() {
|
||||||
|
|
||||||
|
public void handleEvent(MessageBoxEvent be) {
|
||||||
|
|
||||||
|
//IF NOT CANCELLED
|
||||||
|
String clickedButton = be.getButtonClicked().getItemId();
|
||||||
|
if(clickedButton.equals(Dialog.YES)){
|
||||||
|
doAddAdministratorToFolderId(file, logins);
|
||||||
|
multidrag.hide();
|
||||||
|
}
|
||||||
|
if(clickedButton.equals(Dialog.CANCEL)){
|
||||||
|
multidrag.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
multidrag.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -317,6 +317,9 @@ public interface Icons extends ClientBundle {
|
||||||
@Source("icons/add_admin.png")
|
@Source("icons/add_admin.png")
|
||||||
ImageResource addAdmin();
|
ImageResource addAdmin();
|
||||||
|
|
||||||
|
@Source("icons/admin_keys.png")
|
||||||
|
ImageResource manageAdmin();
|
||||||
|
|
||||||
@Source("icons/specialfolder2.png")
|
@Source("icons/specialfolder2.png")
|
||||||
ImageResource specialFolder();
|
ImageResource specialFolder();
|
||||||
|
|
||||||
|
|
|
@ -530,6 +530,13 @@ public class Resources {
|
||||||
public static AbstractImagePrototype getIconAddAdministrator() {
|
public static AbstractImagePrototype getIconAddAdministrator() {
|
||||||
return AbstractImagePrototype.create(ICONS.addAdmin());
|
return AbstractImagePrototype.create(ICONS.addAdmin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static AbstractImagePrototype getIconManageAdministrator() {
|
||||||
|
return AbstractImagePrototype.create(ICONS.manageAdmin());
|
||||||
|
}
|
||||||
|
|
||||||
//ImageResources
|
//ImageResources
|
||||||
public static ImageResource getImagePathSeparator(){
|
public static ImageResource getImagePathSeparator(){
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -588,8 +588,8 @@ public class ContextMenuTree {
|
||||||
|
|
||||||
MenuItem addAdministrator = new MenuItem();
|
MenuItem addAdministrator = new MenuItem();
|
||||||
// addAdministrator.setId(WorkspaceOperation.ADD_ADMINISTRATOR.getId());
|
// addAdministrator.setId(WorkspaceOperation.ADD_ADMINISTRATOR.getId());
|
||||||
addAdministrator.setText("Add Administrator/s");
|
addAdministrator.setText("Manage Administrator/s");
|
||||||
addAdministrator.setIcon(Resources.getIconAddAdministrator());
|
addAdministrator.setIcon(Resources.getIconManageAdministrator());
|
||||||
|
|
||||||
addAdministrator.addSelectionListener(new SelectionListener<MenuEvent>() {
|
addAdministrator.addSelectionListener(new SelectionListener<MenuEvent>() {
|
||||||
public void componentSelected(MenuEvent ce) {
|
public void componentSelected(MenuEvent ce) {
|
||||||
|
|
Loading…
Reference in New Issue