From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 src/com/gitblit/wicket/pages/CommitPage.java |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/CommitPage.java b/src/com/gitblit/wicket/pages/CommitPage.java
index b2a8112..c5a24c8 100644
--- a/src/com/gitblit/wicket/pages/CommitPage.java
+++ b/src/com/gitblit/wicket/pages/CommitPage.java
@@ -22,6 +22,7 @@
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
@@ -169,25 +170,29 @@
 							WicketUtils.newPathParameter(submodulePath, submoduleId, "")).setEnabled(hasSubmodule));
 				} else {
 					// blob
-					item.add(new LinkPanel("pathName", "list", entry.path, BlobPage.class,
+					String displayPath = entry.path;
+					String path = entry.path;
+					if (entry.isSymlink()) {
+						path = JGitUtils.getStringContent(getRepository(), getCommit().getTree(), path);
+						displayPath = entry.path + " -> " + path;
+					}
+					item.add(new LinkPanel("pathName", "list", displayPath, BlobPage.class,
 							WicketUtils
-									.newPathParameter(repositoryName, entry.commitId, entry.path)));
+									.newPathParameter(repositoryName, entry.commitId, path)));
 				}
 				
 				// quick links
 				if (entry.isSubmodule()) {
 					// submodule					
 					item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class, WicketUtils
-							.newPathParameter(submodulePath, entry.objectId, entry.path))
-							.setEnabled(false));
+							.newPathParameter(repositoryName, entry.commitId, entry.path))
+							.setEnabled(!entry.changeType.equals(ChangeType.ADD)));
 					item.add(new BookmarkablePageLink<Void>("view", CommitPage.class, WicketUtils
 							.newObjectParameter(submodulePath, entry.objectId)).setEnabled(hasSubmodule));
-					item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class, WicketUtils
-							.newPathParameter(submodulePath, entry.objectId, entry.path))
-							.setEnabled(false));
+					item.add(new ExternalLink("blame", "").setEnabled(false));
 					item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class, WicketUtils
-							.newPathParameter(submodulePath, entry.objectId, entry.path))
-							.setEnabled(hasSubmodule));
+							.newPathParameter(repositoryName, entry.commitId, entry.path))
+							.setEnabled(!entry.changeType.equals(ChangeType.ADD)));
 				} else {
 					// tree or blob
 					item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class, WicketUtils

--
Gitblit v1.9.1