import com.google.gwt.http.client.URL;\r
import com.google.gwt.user.client.Event.NativePreviewEvent;\r
import com.google.gwt.user.client.ui.*;\r
-import gr.grnet.pithos.web.client.catalog.UpdateUserCatalogs;\r
-import gr.grnet.pithos.web.client.catalog.UserCatalogs;\r
import gr.grnet.pithos.web.client.grouptree.Group;\r
-import gr.grnet.pithos.web.client.grouptree.User;\r
import gr.grnet.pithos.web.client.rest.PostRequest;\r
import gr.grnet.pithos.web.client.rest.RestException;\r
\r
/**\r
* The widget that holds the folderName of the folder.\r
*/\r
- TextBox userDisplayNameTextBox = new TextBox();\r
+ TextBox userName = new TextBox();\r
\r
final VerticalPanel inner;\r
\r
FlexTable generalTable = new FlexTable();\r
generalTable.setText(0, 0, "Username");\r
\r
- generalTable.setWidget(0, 1, userDisplayNameTextBox);\r
+ generalTable.setWidget(0, 1, userName);\r
\r
generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels");\r
generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values");\r
@Override\r
public void center() {\r
super.center();\r
- userDisplayNameTextBox.setFocus(true);\r
+ userName.setFocus(true);\r
}\r
\r
@Override\r
* Generate an RPC request to create a new folder.\r
*/\r
void addUser() {\r
- final String userDisplayName = userDisplayNameTextBox.getText().trim();\r
- if(userDisplayName.length() == 0) {\r
+ String name = userName.getText().trim();\r
+ if(name.length() == 0) {\r
return;\r
}\r
- if(!Const.EMAIL_REGEX.test(userDisplayName)) {\r
+ if(!Const.EMAIL_REGEX.test(name)) {\r
app.displayWarning("Username must be a valid email address");\r
return;\r
}\r
\r
- // Now get the userID\r
- final String userID = app.getUserIDForDisplayName(userDisplayName);\r
- if(userID != null) {\r
- doAddUser(userID, userDisplayName);\r
- }\r
- else {\r
- // Must call server to obtain userID\r
- new UpdateUserCatalogs(app, null, Helpers.toList(userDisplayName)) {\r
- @Override\r
- public void onSuccess(UserCatalogs requestedUserCatalogs, UserCatalogs updatedUserCatalogs) {\r
- final String userID = updatedUserCatalogs.getUserID(userDisplayName);\r
- if(userID != null) {\r
- doAddUser(userID, userDisplayName);\r
- }\r
- else {\r
- app.displayError("Unknown user " + userDisplayName);\r
- }\r
- }\r
- }.scheduleDeferred();\r
- }\r
- }\r
+ group.addMember(name);\r
+ String path = "?update=";\r
+ PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) {\r
\r
- private void doAddUser(String userID, String userDisplayName) {\r
- final User newUser = new User(userID, userDisplayName, group.getName());\r
- app.LOG("doAddUser() ", newUser);\r
- group.addUser(newUser);\r
- final String path = "?update=";\r
- PostRequest updateGroup = new PostRequest(app, app.getApiPath(), app.getUserID(), path) {\r
@Override\r
public void onSuccess(Resource result) {\r
app.updateGroupNode(group);\r
}\r
};\r
updateGroup.setHeader(Const.X_AUTH_TOKEN, app.getUserToken());\r
- final String groupMembers = group.encodeUserIDsForXAccountGroup();\r
+ String groupMembers = "";\r
+ for(String u : group.getMembers()) {\r
+ groupMembers += (URL.encodePathSegment(u) + ",");\r
+ }\r
updateGroup.setHeader(Const.X_ACCOUNT_GROUP_ + URL.encodePathSegment(group.getName()), groupMembers);\r
Scheduler.get().scheduleDeferred(updateGroup);\r
}\r