From 22027dd3a2daeddd1d5b1c8a3061102c8102ebcf Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Thu, 13 Jun 2013 10:53:27 +0200 Subject: [PATCH] Open first entry in project/group list on ENTER in filter box This allows the user to fastly open a project/group after having typed a sufficiently large filter string. Change-Id: I802a09ac623dc2cf681532dedd4ba481894b0c05 Signed-off-by: Edwin Kempin --- .../gerrit/client/admin/GroupListScreen.java | 16 +++++++++++----- .../gerrit/client/admin/ProjectListScreen.java | 14 ++++++++++---- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java index dac0b6a0dd..bed6b4a2d0 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupListScreen.java @@ -23,6 +23,7 @@ import com.google.gerrit.client.ui.AccountScreen; import com.google.gerrit.client.ui.FilteredUserInterface; import com.google.gerrit.client.ui.IgnoreOutdatedFilterResultsCallbackWrapper; import com.google.gerrit.common.PageLinks; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.http.client.URL; @@ -55,10 +56,10 @@ public class GroupListScreen extends AccountScreen implements FilteredUserInterf protected void onLoad() { super.onLoad(); display(); - refresh(); + refresh(false); } - private void refresh() { + private void refresh(final boolean open) { setToken(subname == null || "".equals(subname) ? ADMIN_GROUPS : ADMIN_GROUPS + "?filter=" + URL.encodeQueryString(subname)); GroupMap.match(subname, @@ -66,8 +67,13 @@ public class GroupListScreen extends AccountScreen implements FilteredUserInterf new GerritCallback() { @Override public void onSuccess(GroupMap result) { - groups.display(result, subname); - groups.finishDisplay(); + if (open && result.values().length() > 0) { + Gerrit.display(PageLinks.toGroup( + result.values().get(0).getGroupUUID())); + } else { + groups.display(result, subname); + groups.finishDisplay(); + } } })); } @@ -99,7 +105,7 @@ public class GroupListScreen extends AccountScreen implements FilteredUserInterf @Override public void onKeyUp(KeyUpEvent event) { subname = filterTxt.getValue(); - refresh(); + refresh(event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER); } }); hp.add(filterTxt); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java index ee58420282..331afee920 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java @@ -29,6 +29,7 @@ import com.google.gerrit.client.ui.ProjectSearchLink; import com.google.gerrit.client.ui.ProjectsTable; import com.google.gerrit.client.ui.Screen; import com.google.gerrit.common.PageLinks; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.http.client.URL; @@ -64,10 +65,10 @@ public class ProjectListScreen extends Screen implements FilteredUserInterface { protected void onLoad() { super.onLoad(); display(); - refresh(); + refresh(false); } - private void refresh() { + private void refresh(final boolean open) { setToken(subname == null || "".equals(subname) ? ADMIN_PROJECTS : ADMIN_PROJECTS + "?filter=" + URL.encodeQueryString(subname)); ProjectMap.match(subname, @@ -75,7 +76,12 @@ public class ProjectListScreen extends Screen implements FilteredUserInterface { new GerritCallback() { @Override public void onSuccess(ProjectMap result) { - projects.display(result); + if (open && result.values().length() > 0) { + Gerrit.display(PageLinks.toProject( + result.values().get(0).name_key())); + } else { + projects.display(result); + } } })); } @@ -153,7 +159,7 @@ public class ProjectListScreen extends Screen implements FilteredUserInterface { @Override public void onKeyUp(KeyUpEvent event) { subname = filterTxt.getValue(); - refresh(); + refresh(event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER); } }); hp.add(filterTxt);