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/ProjectPage.java |   45 +++++++++++++--------------------------------
 1 files changed, 13 insertions(+), 32 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/ProjectPage.java b/src/com/gitblit/wicket/pages/ProjectPage.java
index 3679a6f..7eba033 100644
--- a/src/com/gitblit/wicket/pages/ProjectPage.java
+++ b/src/com/gitblit/wicket/pages/ProjectPage.java
@@ -15,9 +15,6 @@
  */
 package com.gitblit.wicket.pages;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -31,14 +28,12 @@
 
 import org.apache.wicket.Component;
 import org.apache.wicket.PageParameters;
-import org.apache.wicket.RedirectException;
 import org.apache.wicket.behavior.HeaderContributor;
 import org.apache.wicket.markup.html.basic.Label;
 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;
-import org.eclipse.jgit.lib.Constants;
 
 import com.gitblit.GitBlit;
 import com.gitblit.Keys;
@@ -47,12 +42,12 @@
 import com.gitblit.models.Metric;
 import com.gitblit.models.ProjectModel;
 import com.gitblit.models.RepositoryModel;
-import com.gitblit.models.UserModel;
 import com.gitblit.utils.ActivityUtils;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebApp;
 import com.gitblit.wicket.GitBlitWebSession;
+import com.gitblit.wicket.GitblitRedirectException;
 import com.gitblit.wicket.PageRegistration;
 import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
 import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
@@ -70,7 +65,7 @@
 
 	public ProjectPage() {
 		super();
-		throw new RedirectException(GitBlitWebApp.get().getHomePage());
+		throw new GitblitRedirectException(GitBlitWebApp.get().getHomePage());
 	}
 
 	public ProjectPage(PageParameters params) {
@@ -94,12 +89,12 @@
 
 		String projectName = WicketUtils.getProjectName(params);
 		if (StringUtils.isEmpty(projectName)) {
-			throw new RedirectException(GitBlitWebApp.get().getHomePage());
+			throw new GitblitRedirectException(GitBlitWebApp.get().getHomePage());
 		}
 		
 		ProjectModel project = getProjectModel(projectName);
 		if (project == null) {
-			throw new RedirectException(GitBlitWebApp.get().getHomePage());
+			throw new GitblitRedirectException(GitBlitWebApp.get().getHomePage());
 		}
 		
 		add(new Label("projectTitle", project.getDisplayName()));
@@ -111,23 +106,14 @@
 		add(WicketUtils.syndicationDiscoveryLink(SyndicationServlet.getTitle(project.getDisplayName(),
 				null), feedLink));
 		
-		final String projectPath;
-		if (project.isRoot) {
-			projectPath = "";
-		} else {
-			projectPath = projectName + "/";
-		}
-		
 		// project markdown message
-		File pmkd = new File(GitBlit.getRepositoriesFolder(),  projectPath + "project.mkd");
-		String pmessage = readMarkdown(projectName, pmkd);
+		String pmessage = transformMarkdown(project.projectMarkdown);
 		Component projectMessage = new Label("projectMessage", pmessage)
 				.setEscapeModelStrings(false).setVisible(pmessage.length() > 0);
 		add(projectMessage);
 
 		// markdown message above repositories list
-		File rmkd = new File(GitBlit.getRepositoriesFolder(),  projectPath + "repositories.mkd");
-		String rmessage = readMarkdown(projectName, rmkd);
+		String rmessage = transformMarkdown(project.repositoriesMarkdown);
 		Component repositoriesMessage = new Label("repositoriesMessage", rmessage)
 				.setEscapeModelStrings(false).setVisible(rmessage.length() > 0);
 		add(repositoriesMessage);
@@ -300,8 +286,8 @@
 	@Override
 	protected List<ProjectModel> getProjectModels() {
 		if (projectModels.isEmpty()) {
-			final UserModel user = GitBlitWebSession.get().getUser();
-			List<ProjectModel> projects = GitBlit.self().getProjectModels(user, false);
+			List<RepositoryModel> repositories = getRepositoryModels();
+			List<ProjectModel> projects = GitBlit.self().getProjectModels(repositories, false);
 			projectModels.addAll(projects);
 		}
 		return projectModels;
@@ -352,20 +338,15 @@
 		}
 		return menu;
 	}
-
-
-	private String readMarkdown(String projectName, File projectMessage) {
+	
+	private String transformMarkdown(String markdown) {
 		String message = "";
-		if (projectMessage.exists()) {
+		if (!StringUtils.isEmpty(markdown)) {
 			// Read user-supplied message
 			try {
-				FileInputStream fis = new FileInputStream(projectMessage);
-				InputStreamReader reader = new InputStreamReader(fis,
-						Constants.CHARACTER_ENCODING);
-				message = MarkdownUtils.transformMarkdown(reader);
-				reader.close();
+				message = MarkdownUtils.transformMarkdown(markdown);
 			} catch (Throwable t) {
-				message = getString("gb.failedToRead") + " " + projectMessage;
+				message = getString("gb.failedToRead") + " " + markdown;
 				warn(message, t);
 			}
 		}

--
Gitblit v1.9.1