summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-07-26 12:29:08 -0700
committerShawn O. Pearce <sop@google.com>2010-07-26 12:29:08 -0700
commitbe87306f33885ed9ce5872518505979b16c178dc (patch)
tree66437bf8706cb9b95d176cda51c66f6c745cf573
parentd07c92cb49eac47240c23d2482503cd97984b169 (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>
-rw-r--r--gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java15
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java7
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/QueryScreen.java7
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectLink.java18
-rw-r--r--gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java3
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());
}
});