From c3f4f124f1b9e45d7696f3c16f958d1c81ff280a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 21 Apr 2011 21:46:47 -0400
Subject: [PATCH] Use markdown for welcome message.  Simplify login page appearance.

---
 gitblit.properties                                 |    5 +-
 src/com/gitblit/wicket/pages/RepositoriesPage.java |   56 +++++++++++++++++++++++++++
 src/com/gitblit/wicket/resources/welcome.mkd       |    5 ++
 src/com/gitblit/wicket/pages/RepositoriesPage.html |    7 +++
 src/com/gitblit/wicket/LoginPage.html              |    6 +-
 5 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/gitblit.properties b/gitblit.properties
index 48515a1..427a9d5 100644
--- a/gitblit.properties
+++ b/gitblit.properties
@@ -47,8 +47,9 @@
 web.allowAdministration = true
 
 # This is the message display above the repositories table.
-# This can point to a file with HTML content.
-web.repositoriesMessage = Welcome to Git:Blit!<br>A quick and easy way to host your own Git repositories.<br>Built with <a href="http://eclipse.org/jgit">JGit</a>, <a href="http://wicket.apache.org">Wicket</a>, <a href="http://https://github.com/wicketstuff/core/wiki/GoogleCharts">WicketStuff googlecharts</a>, <a href="http://markdown.tautua.org">MarkdownPapers</a>, <a href="http://eclipse.org/jetty">Jetty</a>, <a href="http://www.slf4j.org">SLF4J</a>, <a href="http://logging.apache.org/log4j">Log4j</a>, <a href="http://code.google.com/p/google-code-prettify/">google-code-prettify</a>, and <a href="http://jcommander.org">JCommander</a>.
+# This can point to a file with Markdown content.
+# specifying "gitblit" uses the internal welcome message.
+web.repositoriesMessage = gitblit
 
 # Use the client timezone when formatting dates.
 # This uses AJAX to determine the browser's timezone and enables Wicket 
diff --git a/src/com/gitblit/wicket/LoginPage.html b/src/com/gitblit/wicket/LoginPage.html
index 41e2a26..f38e01d 100644
--- a/src/com/gitblit/wicket/LoginPage.html
+++ b/src/com/gitblit/wicket/LoginPage.html
@@ -15,11 +15,11 @@
 	
 	<body onload="document.getElementById('username').focus();">
 		<div>
-			<div style="text-align:center;">
+			<div style="padding-top: 10px;text-align:center;">
 				<wicket:link>
-					<img src="resources/gitblt2.png" alt="Git:Blit"/><br/>
+					<img src="resources/gitblt_25.png" alt="Git:Blit"/><br/>
 				</wicket:link>
-				<span style="font-weight:bold;" wicket:id="name">[name]</span><br/>
+				<div style="padding-top:30px;font-weight:bold;" wicket:id="name">[name]</div>
 			</div>
 
 			<form style="text-align:center;" wicket:id="loginForm">
diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.html b/src/com/gitblit/wicket/pages/RepositoriesPage.html
index 9bcb9b8..798836e 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.html
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.html
@@ -3,12 +3,17 @@
       xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"  
       xml:lang="en"  
       lang="en"> 
+<wicket:head>
+  <wicket:link>
+   	<link href="/com/gitblit/wicket/resources/markdown.css" type="text/css" rel="stylesheet" />
+  </wicket:link>
+</wicket:head>
 
 <body>
 <wicket:extend>
 	<div wicket:id="adminPanel">[admin links]</div>
 	
-	<div class="repositories_message" wicket:id="repositoriesMessage">[repositories message]</div>
+	<div class="markdown" wicket:id="repositoriesMessage">[repositories message]</div>
 		
 	<table class="repositories">
 		<tr>
diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index a0f7299..3ab6366 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -1,10 +1,16 @@
 package com.gitblit.wicket.pages;
 
+import java.io.File;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.wicket.Component;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByBorder;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
@@ -16,9 +22,12 @@
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.resource.ContextRelativeResource;
+import org.tautua.markdownpapers.Markdown;
 
 import com.gitblit.GitBlit;
 import com.gitblit.Keys;
+import com.gitblit.utils.StringUtils;
 import com.gitblit.utils.TimeUtils;
 import com.gitblit.wicket.BasePage;
 import com.gitblit.wicket.GitBlitWebSession;
@@ -45,7 +54,52 @@
 		adminLinks.add(new BookmarkablePageLink<Void>("newUser", RepositoriesPage.class));
 		add(adminLinks.setVisible(showAdmin));
 
-		add(new Label("repositoriesMessage", GitBlit.self().settings().getString(Keys.web.repositoriesMessage, "")).setEscapeModelStrings(false));
+		// Load the markdown welcome message
+		String messageSource = GitBlit.self().settings().getString(Keys.web.repositoriesMessage, "gitblit");
+		String message = "";
+		if (messageSource.equalsIgnoreCase("gitblit")) {
+			// Read default welcome message
+			try {
+				ContextRelativeResource res = new ContextRelativeResource("/com/gitblit/wicket/resources/welcome.mkd");
+				InputStream is = res.getResourceStream().getInputStream();
+				InputStreamReader reader = new InputStreamReader(is);
+				StringWriter writer = new StringWriter();
+				Markdown markdown = new Markdown();
+				markdown.transform(reader, writer);
+				message = writer.toString().trim();
+				reader.close();
+				writer.close();
+			} catch (Throwable t) {
+				message = "Failed to read default welcome message!";
+				error(message, t);
+			}
+		} else {
+			// Read user-supplied welcome message
+			if (!StringUtils.isEmpty(messageSource)) {
+				File file = new File(messageSource);
+				if (file.exists()) {
+					try {
+						FileReader reader = new FileReader(file);
+						StringWriter writer = new StringWriter();
+						Markdown markdown = new Markdown();
+						markdown.transform(reader, writer);
+						message = writer.toString().trim();
+						reader.close();
+						writer.close();
+					} catch (Throwable t) {
+						message = "Failed to read " + file;
+						error(message, t);
+					}
+				} else {
+					message = messageSource + " is not a valid file.";
+				}
+			}
+		}
+		Component repositoriesMessage = new Label("repositoriesMessage", message).setEscapeModelStrings(false);
+		if (!showAdmin) {
+			WicketUtils.setCssStyle(repositoriesMessage, "padding-top:10px");
+		}
+		add(repositoriesMessage);
 
 		List<RepositoryModel> rows = GitBlit.self().getRepositories(getRequest());
 		DataProvider dp = new DataProvider(rows);
diff --git a/src/com/gitblit/wicket/resources/welcome.mkd b/src/com/gitblit/wicket/resources/welcome.mkd
new file mode 100644
index 0000000..a38cbb5
--- /dev/null
+++ b/src/com/gitblit/wicket/resources/welcome.mkd
@@ -0,0 +1,5 @@
+## Welcome to Git:Blit ##
+
+A quick and easy way to host your own Git repositories.
+
+Built with [JGit](http://eclipse.org/jgit) [Wicket](http://wicket.apache.org) [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts) [MarkdownPapers](http://markdown.tautua.org) [Jetty](http://eclipse.org/jetty) [SLF4J](http://www.slf4j.org) [Log4j](http://logging.apache.org/log4j) [google-code-prettify](http://code.google.com/p/google-code-prettify) [JCommander](http://jcommander.org)
\ No newline at end of file

--
Gitblit v1.9.1