diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/data/GroupAdminService.java b/gerrit-common/src/main/java/com/google/gerrit/common/data/GroupAdminService.java index b83bc7d669..f4fa721f31 100644 --- a/gerrit-common/src/main/java/com/google/gerrit/common/data/GroupAdminService.java +++ b/gerrit-common/src/main/java/com/google/gerrit/common/data/GroupAdminService.java @@ -47,7 +47,7 @@ public interface GroupAdminService extends RemoteJsonService { @SignInRequired void renameGroup(AccountGroup.Id groupId, String newName, - AsyncCallback callback); + AsyncCallback callback); @SignInRequired void changeGroupType(AccountGroup.Id groupId, AccountGroup.Type newType, diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java index 389f22b7b5..fd06cdbf02 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java @@ -124,10 +124,10 @@ public class AccountGroupScreen extends AccountScreen { public void onClick(final ClickEvent event) { final String newName = groupNameTxt.getText().trim(); Util.GROUP_SVC.renameGroup(groupId, newName, - new GerritCallback() { - public void onSuccess(final VoidResult result) { + new GerritCallback() { + public void onSuccess(final GroupDetail groupDetail) { saveName.setEnabled(false); - setPageTitle(Util.M.group(newName)); + display(groupDetail); } }); } diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/GroupAdminServiceImpl.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/GroupAdminServiceImpl.java index 870d77ce91..80fe678b50 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/GroupAdminServiceImpl.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/GroupAdminServiceImpl.java @@ -163,7 +163,7 @@ class GroupAdminServiceImpl extends BaseServiceImplementation implements } public void renameGroup(final AccountGroup.Id groupId, final String newName, - final AsyncCallback callback) { + final AsyncCallback callback) { renameGroupFactory.create(groupId, newName).to(callback); } diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/RenameGroup.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/RenameGroup.java index 63b5bceb10..19cd29fb6a 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/RenameGroup.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/RenameGroup.java @@ -14,6 +14,7 @@ package com.google.gerrit.httpd.rpc.account; +import com.google.gerrit.common.data.GroupDetail; import com.google.gerrit.common.errors.NameAlreadyUsedException; import com.google.gerrit.httpd.rpc.Handler; import com.google.gerrit.reviewdb.AccountGroup; @@ -22,7 +23,6 @@ import com.google.gerrit.reviewdb.ReviewDb; import com.google.gerrit.server.account.GroupCache; import com.google.gerrit.server.account.GroupControl; import com.google.gerrit.server.account.NoSuchGroupException; -import com.google.gwtjsonrpc.client.VoidResult; import com.google.gwtorm.client.OrmDuplicateKeyException; import com.google.gwtorm.client.OrmException; import com.google.inject.Inject; @@ -30,7 +30,7 @@ import com.google.inject.assistedinject.Assisted; import java.util.Collections; -class RenameGroup extends Handler { +class RenameGroup extends Handler { interface Factory { RenameGroup create(AccountGroup.Id id, String newName); } @@ -38,6 +38,7 @@ class RenameGroup extends Handler { private final ReviewDb db; private final GroupCache groupCache; private final GroupControl.Factory groupControlFactory; + private final GroupDetailFactory.Factory groupDetailFactory; private final AccountGroup.Id groupId; private final String newName; @@ -45,18 +46,18 @@ class RenameGroup extends Handler { @Inject RenameGroup(final ReviewDb db, final GroupCache groupCache, final GroupControl.Factory groupControlFactory, - + final GroupDetailFactory.Factory groupDetailFactory, @Assisted final AccountGroup.Id groupId, @Assisted final String newName) { this.db = db; this.groupCache = groupCache; this.groupControlFactory = groupControlFactory; - + this.groupDetailFactory = groupDetailFactory; this.groupId = groupId; this.newName = newName; } @Override - public VoidResult call() throws OrmException, NameAlreadyUsedException, + public GroupDetail call() throws OrmException, NameAlreadyUsedException, NoSuchGroupException { final GroupControl ctl = groupControlFactory.validateFor(groupId); final AccountGroup group = db.accountGroups().get(groupId); @@ -75,7 +76,7 @@ class RenameGroup extends Handler { // AccountGroupName other = db.accountGroupNames().get(key); if (other != null && other.getId().equals(groupId)) { - return VoidResult.INSTANCE; + return groupDetailFactory.create(groupId).call(); } // Otherwise, someone else has this identity. @@ -94,6 +95,6 @@ class RenameGroup extends Handler { groupCache.evict(group); groupCache.evictAfterRename(old); - return VoidResult.INSTANCE; + return groupDetailFactory.create(groupId).call(); } }