James Moger
2012-03-17 e28b2f68fc38e4976a0e8bc11af45834bbde940c
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) {