From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/wicket/pages/RootPage.java | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/com/gitblit/wicket/pages/RootPage.java b/src/com/gitblit/wicket/pages/RootPage.java index 40f7aec..adcd7b1 100644 --- a/src/com/gitblit/wicket/pages/RootPage.java +++ b/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; } } -- Gitblit v1.9.1