James Moger
2012-10-13 c658df9e87d65b08d5482cf04489cb0532ff83dd
src/com/gitblit/wicket/pages/RootPage.java
@@ -178,8 +178,14 @@
         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");
            // remove named user parameter
            params.remove("user");
            // remove days back parameter if it is the default value
            if (params.containsKey("db")
@@ -230,6 +236,7 @@
         final UserModel user = GitBlitWebSession.get().getUser();
         List<RepositoryModel> repositories = GitBlit.self().getRepositoryModels(user);
         repositoryModels.addAll(repositories);
         Collections.sort(repositoryModels);
      }
      return repositoryModels;
   }
@@ -322,6 +329,13 @@
      }
      boolean hasParameter = false;
      String projectName = WicketUtils.getProjectName(params);
      String userName = WicketUtils.getUsername(params);
      if (StringUtils.isEmpty(projectName)) {
         if (!StringUtils.isEmpty(userName)) {
            projectName = "~" + userName;
         }
      }
      String repositoryName = WicketUtils.getRepositoryName(params);
      String set = WicketUtils.getSet(params);
      String regex = WicketUtils.getRegEx(params);
@@ -338,6 +352,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);
               }
            }
         }
      }
@@ -383,7 +418,7 @@
         // brute-force our way through finding the matching models
         for (RepositoryModel repositoryModel : availableModels) {
            for (TeamModel teamModel : teamModels) {
               if (teamModel.hasRepository(repositoryModel.name)) {
               if (teamModel.hasRepositoryPermission(repositoryModel.name)) {
                  models.add(repositoryModel);
               }
            }
@@ -411,6 +446,9 @@
         }
         models = timeFiltered;
      }
      return new ArrayList<RepositoryModel>(models);
      List<RepositoryModel> list = new ArrayList<RepositoryModel>(models);
      Collections.sort(list);
      return list;
   }
}