James Moger
2012-09-10 fabe060d3a435f116128851f828e35c2af5fde67
src/com/gitblit/wicket/pages/RootPage.java
@@ -64,6 +64,7 @@
   IModel<String> username = new Model<String>("");
   IModel<String> password = new Model<String>("");
   List<RepositoryModel> repositoryModels = new ArrayList<RepositoryModel>();
   public RootPage() {
      super();
@@ -177,6 +178,9 @@
         PageParameters pp = getPageParameters();
         if (pp != null) {
            PageParameters params = new PageParameters(pp);
            // remove named project parameter
            params.remove("p");
            // remove named repository parameter
            params.remove("r");
@@ -209,7 +213,7 @@
            GitBlit.self().setCookie(response, user);
         }
         if (!continueToOriginalDestination()) {
         if (!session.continueRequest()) {
            PageParameters params = getPageParameters();
            if (params == null) {
               // redirect to this page
@@ -223,6 +227,16 @@
         }
      }
   }
   protected List<RepositoryModel> getRepositoryModels() {
      if (repositoryModels.isEmpty()) {
         final UserModel user = GitBlitWebSession.get().getUser();
         List<RepositoryModel> repositories = GitBlit.self().getRepositoryModels(user);
         repositoryModels.addAll(repositories);
         Collections.sort(repositoryModels);
      }
      return repositoryModels;
   }
   protected void addDropDownMenus(List<PageRegistration> pages) {
@@ -231,7 +245,7 @@
   protected List<DropDownMenuItem> getRepositoryFilterItems(PageParameters params) {
      final UserModel user = GitBlitWebSession.get().getUser();
      Set<DropDownMenuItem> filters = new LinkedHashSet<DropDownMenuItem>();
      List<RepositoryModel> repositories = GitBlit.self().getRepositoryModels(user);
      List<RepositoryModel> repositories = getRepositoryModels();
      // accessible repositories by federation set
      Map<String, AtomicInteger> setMap = new HashMap<String, AtomicInteger>();
@@ -307,19 +321,19 @@
   }
   protected List<RepositoryModel> getRepositories(PageParameters params) {
      final UserModel user = GitBlitWebSession.get().getUser();
      if (params == null) {
         return GitBlit.self().getRepositoryModels(user);
         return getRepositoryModels();
      }
      boolean hasParameter = false;
      String projectName = WicketUtils.getProjectName(params);
      String repositoryName = WicketUtils.getRepositoryName(params);
      String set = WicketUtils.getSet(params);
      String regex = WicketUtils.getRegEx(params);
      String team = WicketUtils.getTeam(params);
      int daysBack = params.getInt("db", 0);
      List<RepositoryModel> availableModels = GitBlit.self().getRepositoryModels(user);
      List<RepositoryModel> availableModels = getRepositoryModels();
      Set<RepositoryModel> models = new HashSet<RepositoryModel>();
      if (!StringUtils.isEmpty(repositoryName)) {
@@ -329,6 +343,27 @@
            if (model.name.equalsIgnoreCase(repositoryName)) {
               models.add(model);
               break;
            }
         }
      }
      if (!StringUtils.isEmpty(projectName)) {
         // try named project
         hasParameter = true;
         if (projectName.equalsIgnoreCase(GitBlit.getString(Keys.web.repositoryRootGroupName, "main"))) {
            // root project/group
            for (RepositoryModel model : availableModels) {
               if (model.name.indexOf('/') == -1) {
                  models.add(model);
               }
            }
         } else {
            // named project/group
            String group = projectName.toLowerCase() + "/";
            for (RepositoryModel model : availableModels) {
               if (model.name.toLowerCase().startsWith(group)) {
                  models.add(model);
               }
            }
         }
      }
@@ -402,6 +437,9 @@
         }
         models = timeFiltered;
      }
      return new ArrayList<RepositoryModel>(models);
      List<RepositoryModel> list = new ArrayList<RepositoryModel>(models);
      Collections.sort(list);
      return list;
   }
}