Fixing URL rewrite for projects in MyDashboard page.

The GitBlit MyDashboard page contained broken links
on the project panel, because of the incorrect rewriting
of the URLs to the /static folder.

This fix includes an ignore list that excludes
summary/ and project/ from the URL rewriting: project
URLs are then correct and working.

Change-Id: I8baddf2cb033669fe70734c3b9c99b8c3232136b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java
index d291279..419487c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java
@@ -24,7 +24,7 @@
     protected IRequestCycleProcessor newRequestCycleProcessor() {
         return new WebRequestCycleProcessor() {
             protected IRequestCodingStrategy newRequestCodingStrategy() {
-                return new StaticCodingStrategy();
+                return new StaticCodingStrategy("summary/", "project/");
             }
         };
     }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java
index 5dd9e5f..f196e27 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java
@@ -17,8 +17,17 @@
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
 import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class StaticCodingStrategy extends WebRequestCodingStrategy {
+  private static final Logger LOG = LoggerFactory
+      .getLogger(StaticCodingStrategy.class);
+  private String[] ignoreResourceUrlPrefixes;
+
+  public StaticCodingStrategy(String... ignoreResourceUrlPrefixes) {
+    this.ignoreResourceUrlPrefixes = ignoreResourceUrlPrefixes;
+  }
 
   @Override
   public String rewriteStaticRelativeUrl(String url) {
@@ -28,12 +37,25 @@
       return url;
     }
 
+    if(isMatchingIgnoreUrlPrefixes(url)) {
+      return url;
+    }
+
     int depth =
         ((ServletWebRequest) RequestCycle.get().getRequest())
             .getDepthRelativeToWicketHandler();
     return getRelativeStaticUrl(url, depth);
   }
 
+  private boolean isMatchingIgnoreUrlPrefixes(String url) {
+    for (String ignoredUrlPrefix : ignoreResourceUrlPrefixes) {
+      if(url.startsWith(ignoredUrlPrefix)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
   public static String getRelativePrefix(Request request) {
     int depth = ((ServletWebRequest) request).getDepthRelativeToWicketHandler();
 
@@ -60,6 +82,8 @@
                                  // file
     urlBuffer.append(url);
 
+    LOG.debug("Rewriting URL " + url + " to " + urlBuffer);
+
     return urlBuffer.toString();
   }
 }