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:
		@@ -44,6 +44,7 @@ public class PageLinks {
 | 
				
			|||||||
  public static final String ADMIN_PROJECTS = "/admin/projects/";
 | 
					  public static final String ADMIN_PROJECTS = "/admin/projects/";
 | 
				
			||||||
  public static final String ADMIN_CREATE_PROJECT = "/admin/create-project/";
 | 
					  public static final String ADMIN_CREATE_PROJECT = "/admin/create-project/";
 | 
				
			||||||
  public static final String ADMIN_PLUGINS = "/admin/plugins/";
 | 
					  public static final String ADMIN_PLUGINS = "/admin/plugins/";
 | 
				
			||||||
 | 
					  public static final String MY_GROUPS = "/groups/self";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public static String toChange(final ChangeInfo c) {
 | 
					  public static String toChange(final ChangeInfo c) {
 | 
				
			||||||
    return toChange(c.getId());
 | 
					    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.ADMIN_PROJECTS;
 | 
				
			||||||
import static com.google.gerrit.common.PageLinks.DASHBOARDS;
 | 
					import static com.google.gerrit.common.PageLinks.DASHBOARDS;
 | 
				
			||||||
import static com.google.gerrit.common.PageLinks.MINE;
 | 
					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.PROJECTS;
 | 
				
			||||||
import static com.google.gerrit.common.PageLinks.QUERY;
 | 
					import static com.google.gerrit.common.PageLinks.QUERY;
 | 
				
			||||||
import static com.google.gerrit.common.PageLinks.REGISTER;
 | 
					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.CreateGroupScreen;
 | 
				
			||||||
import com.google.gerrit.client.admin.CreateProjectScreen;
 | 
					import com.google.gerrit.client.admin.CreateProjectScreen;
 | 
				
			||||||
import com.google.gerrit.client.admin.GroupListScreen;
 | 
					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.PluginListScreen;
 | 
				
			||||||
import com.google.gerrit.client.admin.ProjectAccessScreen;
 | 
					import com.google.gerrit.client.admin.ProjectAccessScreen;
 | 
				
			||||||
import com.google.gerrit.client.admin.ProjectBranchesScreen;
 | 
					import com.google.gerrit.client.admin.ProjectBranchesScreen;
 | 
				
			||||||
@@ -258,6 +260,9 @@ public class Dispatcher {
 | 
				
			|||||||
    } else if (matchPrefix("/admin/", token)) {
 | 
					    } else if (matchPrefix("/admin/", token)) {
 | 
				
			||||||
      admin(token);
 | 
					      admin(token);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } else if (matchExact(MY_GROUPS, token)) {
 | 
				
			||||||
 | 
					      Gerrit.display(token, new MyGroupsListScreen());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } else if (/* DEPRECATED URL */matchPrefix("/c2/", token)) {
 | 
					    } else if (/* DEPRECATED URL */matchPrefix("/c2/", token)) {
 | 
				
			||||||
      changeScreen2 = true;
 | 
					      changeScreen2 = true;
 | 
				
			||||||
      change(token);
 | 
					      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("Draft Comments", "#/q/has:draft", null));
 | 
				
			||||||
        my.add(new TopMenu.MenuItem("Watched Changes", "#/q/is:watched+is:open", 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("Starred Changes", "#/q/is:starred", null));
 | 
				
			||||||
 | 
					        my.add(new TopMenu.MenuItem("Groups", "#/groups/self", null));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      return my;
 | 
					      return my;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user