diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java b/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java index e4199c2d12..c0382da04f 100644 --- a/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java +++ b/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java @@ -44,6 +44,7 @@ public class PageLinks { public static final String ADMIN_PROJECTS = "/admin/projects/"; public static final String ADMIN_CREATE_PROJECT = "/admin/create-project/"; public static final String ADMIN_PLUGINS = "/admin/plugins/"; + public static final String MY_GROUPS = "/groups/self"; public static String toChange(final ChangeInfo c) { return toChange(c.getId()); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java index c85152458b..0a9bd24e2f 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java @@ -21,6 +21,7 @@ import static com.google.gerrit.common.PageLinks.ADMIN_PLUGINS; import static com.google.gerrit.common.PageLinks.ADMIN_PROJECTS; import static com.google.gerrit.common.PageLinks.DASHBOARDS; import static com.google.gerrit.common.PageLinks.MINE; +import static com.google.gerrit.common.PageLinks.MY_GROUPS; import static com.google.gerrit.common.PageLinks.PROJECTS; import static com.google.gerrit.common.PageLinks.QUERY; import static com.google.gerrit.common.PageLinks.REGISTER; @@ -55,6 +56,7 @@ import com.google.gerrit.client.admin.AccountGroupScreen; import com.google.gerrit.client.admin.CreateGroupScreen; import com.google.gerrit.client.admin.CreateProjectScreen; import com.google.gerrit.client.admin.GroupListScreen; +import com.google.gerrit.client.admin.MyGroupsListScreen; import com.google.gerrit.client.admin.PluginListScreen; import com.google.gerrit.client.admin.ProjectAccessScreen; import com.google.gerrit.client.admin.ProjectBranchesScreen; @@ -258,6 +260,9 @@ public class Dispatcher { } else if (matchPrefix("/admin/", token)) { admin(token); + } else if (matchExact(MY_GROUPS, token)) { + Gerrit.display(token, new MyGroupsListScreen()); + } else if (/* DEPRECATED URL */matchPrefix("/c2/", token)) { changeScreen2 = true; change(token); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/MyGroupsListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/MyGroupsListScreen.java new file mode 100644 index 0000000000..cabe2f5c89 --- /dev/null +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/MyGroupsListScreen.java @@ -0,0 +1,41 @@ +// Copyright (C) 2014 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.client.admin; + +import com.google.gerrit.client.groups.GroupList; +import com.google.gerrit.client.rpc.ScreenLoadCallback; +import com.google.gerrit.client.ui.AccountScreen; + +public class MyGroupsListScreen extends AccountScreen { + private GroupTable groups; + + @Override + protected void onInitUI() { + super.onInitUI(); + groups = new GroupTable(); + add(groups); + } + + @Override + protected void onLoad() { + super.onLoad(); + GroupList.my(new ScreenLoadCallback(this) { + @Override + protected void preDisplay(GroupList result) { + groups.display(result); + groups.finishDisplay(); + }}); + } +} diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetPreferences.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetPreferences.java index 401846ad03..5089c3ad06 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetPreferences.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetPreferences.java @@ -156,6 +156,7 @@ public class GetPreferences implements RestReadView { my.add(new TopMenu.MenuItem("Draft Comments", "#/q/has:draft", null)); my.add(new TopMenu.MenuItem("Watched Changes", "#/q/is:watched+is:open", null)); my.add(new TopMenu.MenuItem("Starred Changes", "#/q/is:starred", null)); + my.add(new TopMenu.MenuItem("Groups", "#/groups/self", null)); } return my; }