From b94965e87929c6b4e42f9a2078dc0d910cc2637d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 09 May 2012 07:59:00 -0400 Subject: [PATCH] Merge pull request #17 from peterloron/master --- src/com/gitblit/wicket/pages/RepositoriesPage.java | 68 ++++++++++++++++++++++++++++----- 1 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java index d5a21a7..40d1a65 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,14 +120,17 @@ 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; + message = getString("gb.failedToRead") + " " + file; warn(message, t); } } else { - message = messageSource + " is not a valid file."; + message = messageSource + " " + getString("gb.isNotValidFile"); } } } @@ -96,11 +142,11 @@ 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) { - message = MessageFormat.format("Failed to read default message from {0}!", file); + message = MessageFormat.format(getString("gb.failedToReadMessage"), file); error(message, t, false); } return message; -- Gitblit v1.9.1