diff options
author | Shawn O. Pearce <sop@google.com> | 2010-07-26 12:29:08 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2010-07-26 12:29:08 -0700 |
commit | be87306f33885ed9ce5872518505979b16c178dc (patch) | |
tree | 66437bf8706cb9b95d176cda51c66f6c745cf573 | |
parent | d07c92cb49eac47240c23d2482503cd97984b169 (diff) |
Fix project links to be query links
Instead of using the older "#project,merged,name" anchor for a
project link and rewriting it in the dispatcher, use the search
query link directly.
Change-Id: I27c3cfe54bbb35f5b6197fd504a22a53c21adf4b
Signed-off-by: Shawn O. Pearce <sop@google.com>
5 files changed, 19 insertions, 31 deletions
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 358f6566a3..43541b7bb3 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 @@ -69,21 +69,28 @@ public class PageLinks { return "q," + KeyUtil.encode(query) + "," + TOP; } - public static String toProject(final Project.NameKey proj, Status status) { + public static String projectQuery(Project.NameKey proj, Status status) { switch (status) { case ABANDONED: - return "project,abandoned," + proj.toString() + ",n,z"; + return "status:abandoned " + op("project", proj.get()); case MERGED: - return "project,merged," + proj.toString() + ",n,z"; + return "status:merged " + op("project", proj.get()); case NEW: case SUBMITTED: default: - return "project,open," + proj.toString() + ",n,z"; + return "status:open " + op("project", proj.get()); } } + public static String op(String name, String value) { + if (value.indexOf(' ') >= 0) { + return name + ":\"" + value + "\""; + } + return name + ":" + value; + } + protected PageLinks() { } } 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 5c07a8050d..f93fd5eba2 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 @@ -30,6 +30,7 @@ import static com.google.gerrit.common.PageLinks.SETTINGS_PREFERENCES; import static com.google.gerrit.common.PageLinks.SETTINGS_PROJECTS; import static com.google.gerrit.common.PageLinks.SETTINGS_SSHKEYS; import static com.google.gerrit.common.PageLinks.SETTINGS_WEBIDENT; +import static com.google.gerrit.common.PageLinks.op; import com.google.gerrit.client.account.MyAgreementsScreen; import com.google.gerrit.client.account.MyContactInformationScreen; @@ -202,7 +203,7 @@ public class Dispatcher { final int c = s.indexOf(','); Project.NameKey proj = Project.NameKey.parse(s.substring(0, c)); return QueryScreen.forQuery( // - "status:open " + QueryScreen.op("project", proj.get()), // + "status:open " + op("project", proj.get()), // s.substring(c + 1)); } @@ -212,7 +213,7 @@ public class Dispatcher { final int c = s.indexOf(','); Project.NameKey proj = Project.NameKey.parse(s.substring(0, c)); return QueryScreen.forQuery( // - "status:merged " + QueryScreen.op("project", proj.get()), // + "status:merged " + op("project", proj.get()), // s.substring(c + 1)); } @@ -222,7 +223,7 @@ public class Dispatcher { final int c = s.indexOf(','); Project.NameKey proj = Project.NameKey.parse(s.substring(0, c)); return QueryScreen.forQuery( // - "status:abandoned " + QueryScreen.op("project", proj.get()), // + "status:abandoned " + op("project", proj.get()), // s.substring(c + 1)); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/QueryScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/QueryScreen.java index 3ddfeffe51..c600569ab7 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/QueryScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/QueryScreen.java @@ -24,13 +24,6 @@ import com.google.gwtorm.client.KeyUtil; public class QueryScreen extends PagedSingleListScreen { - public static String op(String name, String value) { - if (value.indexOf(' ') >= 0) { - return name + ":\"" + value + "\""; - } - return name + ":" + value; - } - public static QueryScreen forQuery(String query) { return forQuery(query, PageLinks.TOP); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectLink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectLink.java index 2c18448583..b2c4c3e96f 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectLink.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectLink.java @@ -32,7 +32,7 @@ public class ProjectLink extends InlineHyperlink { public ProjectLink(final String text, final Project.NameKey proj, Change.Status stat) { - super(text, PageLinks.toProject(proj, stat)); + super(text, PageLinks.toChangeQuery(PageLinks.projectQuery(proj, stat))); status = stat; project = proj; } @@ -43,20 +43,6 @@ public class ProjectLink extends InlineHyperlink { } private Screen createScreen() { - switch (status) { - case ABANDONED: - return QueryScreen.forQuery("status:abandoned " - + QueryScreen.op("project", project.get())); - - case MERGED: - return QueryScreen.forQuery("status:merged " - + QueryScreen.op("project", project.get())); - - case NEW: - case SUBMITTED: - default: - return QueryScreen.forQuery("status:open " - + QueryScreen.op("project", project.get())); - } + return QueryScreen.forQuery(PageLinks.projectQuery(project, status)); } } diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java index 336d2fec2b..3f7f68d527 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java @@ -115,7 +115,8 @@ public class ProjectServlet extends GitServlet { StringBuilder r = new StringBuilder(); r.append(urlProvider.get()); r.append('#'); - r.append(PageLinks.toProject(dst, Change.Status.NEW)); + r.append(PageLinks.toChangeQuery(PageLinks.projectQuery(dst, + Change.Status.NEW))); rsp.sendRedirect(r.toString()); } }); |