From 73fba6ef98209406f1cf5f2ee00a9dc384b4a2fc Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 19 Mar 2012 23:11:11 -0400
Subject: [PATCH] Display fewer content fragments for blobs

---
 src/com/gitblit/wicket/pages/RepositoriesPage.java |   62 +++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index d5a21a7..839f4e3 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -16,20 +16,27 @@
 package com.gitblit.wicket.pages;
 
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.MessageFormat;
+import java.util.List;
 
 import org.apache.wicket.Component;
+import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.resource.ContextRelativeResource;
+import org.eclipse.jgit.lib.Constants;
 
 import com.gitblit.GitBlit;
 import com.gitblit.Keys;
+import com.gitblit.models.RepositoryModel;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
+import com.gitblit.wicket.PageRegistration;
+import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
+import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.RepositoriesPanel;
 
@@ -37,8 +44,21 @@
 
 	public RepositoriesPage() {
 		super();
-		setupPage("", "");
+		setup(null);
+	}
 
+	public RepositoriesPage(PageParameters params) {
+		super(params);
+		setup(params);
+	}
+
+	@Override
+	protected boolean reusePageParameters() {
+		return true;
+	}
+
+	private void setup(PageParameters params) {
+		setupPage("", "");
 		// check to see if we should display a login message
 		boolean authenticateView = GitBlit.getBoolean(Keys.web.authenticateViewPages, true);
 		if (authenticateView && !GitBlitWebSession.get().isLoggedIn()) {
@@ -56,14 +76,37 @@
 		Component repositoriesMessage = new Label("repositoriesMessage", message)
 				.setEscapeModelStrings(false).setVisible(message.length() > 0);
 		add(repositoriesMessage);
-		RepositoriesPanel repositories = new RepositoriesPanel("repositoriesPanel", showAdmin,
-				null, getAccessRestrictions());
+
+		List<RepositoryModel> repositories = getRepositories(params);
+
+		RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", showAdmin,
+				repositories, true, getAccessRestrictions());
 		// push the panel down if we are hiding the admin controls and the
 		// welcome message
 		if (!showAdmin && !repositoriesMessage.isVisible()) {
-			WicketUtils.setCssStyle(repositories, "padding-top:5px;");
+			WicketUtils.setCssStyle(repositoriesPanel, "padding-top:5px;");
 		}
-		add(repositories);
+		add(repositoriesPanel);
+	}
+
+	@Override
+	protected void addDropDownMenus(List<PageRegistration> pages) {
+		PageParameters params = getPageParameters();
+
+		DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters",
+				RepositoriesPage.class);
+		// preserve time filter option on repository choices
+		menu.menuItems.addAll(getRepositoryFilterItems(params));
+
+		// preserve repository filter option on time choices
+		menu.menuItems.addAll(getTimeFilterItems(params));
+
+		if (menu.menuItems.size() > 0) {
+			// Reset Filter
+			menu.menuItems.add(new DropDownMenuItem(getString("gb.reset"), null, null));
+		}
+
+		pages.add(menu);
 	}
 
 	private String readMarkdown(String messageSource, String resource) {
@@ -77,8 +120,11 @@
 				File file = new File(messageSource);
 				if (file.exists()) {
 					try {
-						FileReader reader = new FileReader(file);
+						FileInputStream fis = new FileInputStream(file);
+						InputStreamReader reader = new InputStreamReader(fis,
+								Constants.CHARACTER_ENCODING);
 						message = MarkdownUtils.transformMarkdown(reader);
+						reader.close();
 					} catch (Throwable t) {
 						message = "Failed to read " + file;
 						warn(message, t);
@@ -96,7 +142,7 @@
 		try {
 			ContextRelativeResource res = WicketUtils.getResource(file);
 			InputStream is = res.getResourceStream().getInputStream();
-			InputStreamReader reader = new InputStreamReader(is);
+			InputStreamReader reader = new InputStreamReader(is, Constants.CHARACTER_ENCODING);
 			message = MarkdownUtils.transformMarkdown(reader);
 			reader.close();
 		} catch (Throwable t) {

--
Gitblit v1.9.1