Add 'My' > 'Groups' menu entry that shows list of own groups
Users can already see a list of the groups in which they are member under 'Settings' > 'Groups', but most users don't know about this. They rather expect this to be available from the top menu. Putting this under 'My' > 'Groups' and not under 'People' > 'My Groups' has the advantage that the menu entry is then configurable and users that don't need it, can remove it. The my groups screen is displayed for '#/groups/self'. There is no 'admin' prefix as we have it for the group list screen ('#/admin/groups/') since this prefix only exists due to historic reasons and should rather be removed. '#/groups/self' was chosen to make the URL similar to the URL of the user dashboard, which is '#/dashboard/self'. At the moment only '#/groups/self' is supported, but in future this may be extended to also support '#/groups/<account-id>'. Change-Id: I6d4d0722f0bf36fd5099a9bfc25258b8f5cc3ef9 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
parent
d8530c317a
commit
21e535d832
@ -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());
|
||||
|
@ -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);
|
||||
|
@ -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<GroupList>(this) {
|
||||
@Override
|
||||
protected void preDisplay(GroupList result) {
|
||||
groups.display(result);
|
||||
groups.finishDisplay();
|
||||
}});
|
||||
}
|
||||
}
|
@ -156,6 +156,7 @@ public class GetPreferences implements RestReadView<AccountResource> {
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user