From 5c0605d5665196b3726cc64bfd80b45ec963417b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 23 May 2013 23:10:43 -0400
Subject: [PATCH] Support relative links in commitdiff page and polish css

---
 src/main/resources/gitblit.css                             |   14 ++++++++++++++
 src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java  |    4 +++-
 src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java |   12 ++++--------
 3 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java b/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
index 2966aa8..f871e77 100644
--- a/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
+++ b/src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
@@ -20,6 +20,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.text.MessageFormat;
 
 import org.eclipse.jgit.diff.RawText;
 import org.eclipse.jgit.util.RawParseUtils;
@@ -150,7 +151,8 @@
 					sb.append("</tbody></table></div>\n");
 					inFile = false;
 				}
-				sb.append("<div class='header'>").append(line).append("</div>");
+				
+				sb.append(MessageFormat.format("<div class='header'><div class=\"diffHeader\" id=\"{0}\"><i class=\"icon-file\"></i> ", line)).append(line).append("</div></div>");
 				sb.append("<div class=\"diff\">");
 				sb.append("<table><tbody>");
 				inFile = true;
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
index eb1d5d8..f9c4e68 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
@@ -136,15 +136,11 @@
 					submodulePath = submodule.gitblitPath;
 					hasSubmodule = submodule.hasSubmodule;
 
-					item.add(new LinkPanel("pathName", "list", entry.path + " @ " +
-							getShortObjectId(submoduleId), TreePage.class,
-							WicketUtils
-									.newPathParameter(submodulePath, submoduleId, "")).setEnabled(hasSubmodule));
+					// add relative link
+					item.add(new LinkPanel("pathName", "list", entry.path + " @ " + getShortObjectId(submoduleId), "#" + entry.path));
 				} else {
-					// blob
-					item.add(new LinkPanel("pathName", "list", entry.path, BlobPage.class,
-							WicketUtils
-									.newPathParameter(repositoryName, entry.commitId, entry.path)));
+					// add relative link
+					item.add(new LinkPanel("pathName", "list", entry.path, "#" + entry.path));
 				}
 
 				// quick links
diff --git a/src/main/resources/gitblit.css b/src/main/resources/gitblit.css
index 26dc480..88f7930 100644
--- a/src/main/resources/gitblit.css
+++ b/src/main/resources/gitblit.css
@@ -703,6 +703,16 @@
 	border-bottom: 0;
 	border-radius: 3px 3px 0 0;
 	font-weight: bold;
+	font-family: Helvetica,arial,freesans,clean,sans-serif;
+}
+
+div.diffHeader {
+	/* CSS trick to workaround #link topOfWindow offset problem */
+    border-top: 65px solid transparent;
+    margin-top: -65px;
+    -webkit-background-clip: padding-box;
+    -moz-background-clip: padding;
+    background-clip: padding-box;
 }
 
 div.commitHeader {
@@ -858,6 +868,10 @@
     font-family: inherit;
 }
 
+div.diff table {
+	border: 1px solid #ddd;
+}
+
 span.diff.add {
 	color: #008800;
 	font-family: inherit;

--
Gitblit v1.9.1