From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/pages/RepositoriesPage.java |   51 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoriesPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoriesPage.java
index 4bce77f..660b4ed 100644
--- a/src/main/java/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -21,27 +21,28 @@
 import java.io.InputStreamReader;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Iterator;
 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.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.eclipse.jgit.lib.Constants;
 
-import com.gitblit.GitBlit;
 import com.gitblit.Keys;
+import com.gitblit.models.Menu.ParameterMenuItem;
+import com.gitblit.models.NavLink;
+import com.gitblit.models.NavLink.DropDownPageMenuNavLink;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
+import com.gitblit.wicket.CacheControl;
+import com.gitblit.wicket.CacheControl.LastModified;
 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;
 
+@CacheControl(LastModified.ACTIVITY)
 public class RepositoriesPage extends RootPage {
 
 	public RepositoriesPage() {
@@ -62,9 +63,9 @@
 	private void setup(PageParameters params) {
 		setupPage("", "");
 		// check to see if we should display a login message
-		boolean authenticateView = GitBlit.getBoolean(Keys.web.authenticateViewPages, true);
+		boolean authenticateView = app().settings().getBoolean(Keys.web.authenticateViewPages, true);
 		if (authenticateView && !GitBlitWebSession.get().isLoggedIn()) {
-			String messageSource = GitBlit.getString(Keys.web.loginMessage, "gitblit");
+			String messageSource = app().settings().getString(Keys.web.loginMessage, "gitblit");
 			String message = readMarkdown(messageSource, "login.mkd");
 			Component repositoriesMessage = new Label("repositoriesMessage", message);
 			add(repositoriesMessage.setEscapeModelStrings(false));
@@ -73,13 +74,23 @@
 		}
 
 		// Load the markdown welcome message
-		String messageSource = GitBlit.getString(Keys.web.repositoriesMessage, "gitblit");
+		String messageSource = app().settings().getString(Keys.web.repositoriesMessage, "gitblit");
 		String message = readMarkdown(messageSource, "welcome.mkd");
 		Component repositoriesMessage = new Label("repositoriesMessage", message)
 				.setEscapeModelStrings(false).setVisible(message.length() > 0);
 		add(repositoriesMessage);
 
+		// conditionally include personal repositories in this page
 		List<RepositoryModel> repositories = getRepositories(params);
+		if (!app().settings().getBoolean(Keys.web.includePersonalRepositories, true)) {
+			Iterator<RepositoryModel> itr = repositories.iterator();
+			while (itr.hasNext()) {
+				RepositoryModel rm = itr.next();
+				if (rm.isPersonalRepository()) {
+					itr.remove();
+				}
+			}
+		}
 
 		RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", showAdmin,
 				true, repositories, true, getAccessRestrictions());
@@ -92,10 +103,10 @@
 	}
 
 	@Override
-	protected void addDropDownMenus(List<PageRegistration> pages) {
+	protected void addDropDownMenus(List<NavLink> navLinks) {
 		PageParameters params = getPageParameters();
 
-		DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters",
+		DropDownPageMenuNavLink menu = new DropDownPageMenuNavLink("gb.filters",
 				RepositoriesPage.class);
 		// preserve time filter option on repository choices
 		menu.menuItems.addAll(getRepositoryFilterItems(params));
@@ -105,10 +116,10 @@
 
 		if (menu.menuItems.size() > 0) {
 			// Reset Filter
-			menu.menuItems.add(new DropDownMenuItem(getString("gb.reset"), null, null));
+			menu.menuItems.add(new ParameterMenuItem(getString("gb.reset")));
 		}
 
-		pages.add(menu);
+		navLinks.add(menu);
 	}
 
 	private String readMarkdown(String messageSource, String resource) {
@@ -119,7 +130,7 @@
 		} else {
 			// Read user-supplied message
 			if (!StringUtils.isEmpty(messageSource)) {
-				File file = GitBlit.getFileOrFolder(messageSource);
+				File file = app().runtime().getFileOrFolder(messageSource);
 				if (file.exists()) {
 					try {
 						FileInputStream fis = new FileInputStream(file);
@@ -150,7 +161,7 @@
 		if (!StringUtils.isEmpty(lc)) {
 			if (!StringUtils.isEmpty(cc)) {
 				files.add(base + "_" + lc + "-" + cc + ext);
-				files.add(base + "_" + lc + "_" + cc + ext);
+				files.add(base + "_" + lc + "_" + cc.toUpperCase() + ext);
 			}
 			files.add(base + "_" + lc + ext);
 		}
@@ -160,14 +171,14 @@
 			String message;
 			InputStreamReader reader = null;
 			try {
-				ContextRelativeResource res = WicketUtils.getResource(name);
-				InputStream is = res.getResourceStream().getInputStream();
+				InputStream is = getClass().getResourceAsStream("/" + name);
+				if (is == null) {
+					continue;
+				}
 				reader = new InputStreamReader(is, Constants.CHARACTER_ENCODING);
 				message = MarkdownUtils.transformMarkdown(reader);
 				reader.close();
 				return message;
-			} catch (ResourceStreamNotFoundException t) {
-				continue;
 			} catch (Throwable t) {
 				message = MessageFormat.format(getString("gb.failedToReadMessage"), file);
 				error(message, t, false);
@@ -179,7 +190,7 @@
 					} catch (Exception e) {
 					}
 				}
-			}			
+			}
 		}
 		return MessageFormat.format(getString("gb.failedToReadMessage"), file);
 	}

--
Gitblit v1.9.1