From b2331a89980a43a6be95cb72364c6bdd33caf98a Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sun, 07 Sep 2014 17:38:54 -0400 Subject: [PATCH] Merged #168 "Show account type in teams panel" --- src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java | 159 ++++++---------------------------------------------- 1 files changed, 19 insertions(+), 140 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java b/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java index 89fc02a..8573e1a 100644 --- a/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java @@ -15,7 +15,6 @@ */ package com.gitblit.wicket.panels; -import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -32,7 +31,6 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.Item; @@ -43,9 +41,7 @@ import org.apache.wicket.model.Model; import com.gitblit.Constants.AccessRestrictionType; -import com.gitblit.GitBlit; import com.gitblit.Keys; -import com.gitblit.SyndicationServlet; import com.gitblit.models.ProjectModel; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; @@ -55,8 +51,6 @@ import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.BasePage; -import com.gitblit.wicket.pages.EditRepositoryPage; -import com.gitblit.wicket.pages.EmptyRepositoryPage; import com.gitblit.wicket.pages.ProjectPage; import com.gitblit.wicket.pages.RepositoriesPage; import com.gitblit.wicket.pages.SummaryPage; @@ -72,7 +66,7 @@ super(wicketId); final boolean linksActive = enableLinks; - final boolean showSize = GitBlit.getBoolean(Keys.web.showRepositorySizes, true); + final boolean showSize = app().settings().getBoolean(Keys.web.showRepositorySizes, true); final UserModel user = GitBlitWebSession.get().getUser(); @@ -88,23 +82,23 @@ @Override public void onClick() { - GitBlit.self().resetRepositoryListCache(); + app().repositories().resetRepositoryListCache(); setResponsePage(RepositoriesPage.class); } - }.setVisible(GitBlit.getBoolean(Keys.git.cacheRepositoryList, true))); - managementLinks.add(new BookmarkablePageLink<Void>("newRepository", EditRepositoryPage.class)); + }.setVisible(app().settings().getBoolean(Keys.git.cacheRepositoryList, true))); + managementLinks.add(new BookmarkablePageLink<Void>("newRepository", app().getNewRepositoryPage())); add(managementLinks); } else if (showManagement && user != null && user.canCreate()) { // user can create personal repositories managementLinks = new Fragment("managementPanel", "personalLinks", this); - managementLinks.add(new BookmarkablePageLink<Void>("newRepository", EditRepositoryPage.class)); + managementLinks.add(new BookmarkablePageLink<Void>("newRepository", app().getNewRepositoryPage())); add(managementLinks); } else { // user has no management permissions add (new Label("managementPanel").setVisible(false)); } - if (GitBlit.getString(Keys.web.repositoryListType, "flat").equalsIgnoreCase("grouped")) { + if (app().settings().getString(Keys.web.repositoryListType, "flat").equalsIgnoreCase("grouped")) { List<RepositoryModel> rootRepositories = new ArrayList<RepositoryModel>(); Map<String, List<RepositoryModel>> groups = new HashMap<String, List<RepositoryModel>>(); for (RepositoryModel model : models) { @@ -132,7 +126,7 @@ List<RepositoryModel> groupedModels = new ArrayList<RepositoryModel>(); for (String root : roots) { List<RepositoryModel> subModels = groups.get(root); - ProjectModel project = GitBlit.self().getProjectModel(root); + ProjectModel project = app().projects().getProjectModel(root); GroupRepositoryModel group = new GroupRepositoryModel(project == null ? root : project.name, subModels.size()); if (project != null) { group.title = project.title; @@ -142,13 +136,12 @@ Collections.sort(subModels); groupedModels.addAll(subModels); } - dp = new RepositoriesProvider(groupedModels); + dp = new ListDataProvider<RepositoryModel>(groupedModels); } else { dp = new SortableRepositoriesProvider(models); } - final String baseUrl = WicketUtils.getGitblitURL(getRequest()); - final boolean showSwatch = GitBlit.getBoolean(Keys.web.repositoryListSwatches, true); + final boolean showSwatch = app().settings().getBoolean(Keys.web.repositoryListSwatches, true); DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("row", dp) { private static final long serialVersionUID = 1L; @@ -174,7 +167,7 @@ if (name.startsWith(ModelUtils.getUserRepoPrefix())) { // user page String username = ModelUtils.getUserNameFromRepoPath(name); - UserModel user = GitBlit.self().getUserModel(username); + UserModel user = app().users().getUserModel(username); row.add(new LinkPanel("groupName", null, (user == null ? username : user.getDisplayName()) + " (" + groupRow.count + ")", UserPage.class, WicketUtils.newUsernameParameter(username))); row.add(new Label("groupDescription", getString("gb.personalRepositories"))); } else { @@ -209,15 +202,7 @@ swatch.setVisible(showSwatch); if (linksActive) { - Class<? extends BasePage> linkPage; - if (entry.hasCommits) { - // repository has content - linkPage = SummaryPage.class; - } else { - // new/empty repository OR proposed repository - linkPage = EmptyRepositoryPage.class; - } - + Class<? extends BasePage> linkPage = SummaryPage.class; PageParameters pp = WicketUtils.newRepositoryParameter(entry.name); row.add(new LinkPanel("repositoryName", "list", repoName, linkPage, pp)); row.add(new LinkPanel("repositoryDescription", "list", entry.description, @@ -243,25 +228,18 @@ row.add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false)); } + if (entry.isMirror) { + row.add(WicketUtils.newImage("mirrorIcon", "mirror_16x16.png", + getString("gb.isMirror"))); + } else { + row.add(WicketUtils.newClearPixel("mirrorIcon").setVisible(false)); + } + if (entry.isFork()) { row.add(WicketUtils.newImage("forkIcon", "commit_divide_16x16.png", getString("gb.isFork"))); } else { row.add(WicketUtils.newClearPixel("forkIcon").setVisible(false)); - } - - if (entry.useTickets) { - row.add(WicketUtils.newImage("ticketsIcon", "bug_16x16.png", - getString("gb.tickets"))); - } else { - row.add(WicketUtils.newBlankImage("ticketsIcon")); - } - - if (entry.useDocs) { - row.add(WicketUtils - .newImage("docsIcon", "book_16x16.png", getString("gb.docs"))); - } else { - row.add(WicketUtils.newBlankImage("docsIcon")); } if (entry.isFrozen) { @@ -301,7 +279,7 @@ if (!ArrayUtils.isEmpty(entry.owners)) { // display first owner for (String username : entry.owners) { - UserModel ownerModel = GitBlit.self().getUserModel(username); + UserModel ownerModel = app().users().getUserModel(username); if (ownerModel != null) { owner = ownerModel.getDisplayName(); break; @@ -328,48 +306,6 @@ WicketUtils.setHtmlTooltip(lastChangeLabel, getString("gb.author") + ": " + entry.lastChangeAuthor); } - boolean showOwner = user != null && entry.isOwner(user.username); - boolean myPersonalRepository = showOwner && entry.isUsersPersonalRepository(user.username); - if (showAdmin || myPersonalRepository) { - Fragment repositoryLinks = new Fragment("repositoryLinks", - "repositoryAdminLinks", this); - repositoryLinks.add(new BookmarkablePageLink<Void>("editRepository", - EditRepositoryPage.class, WicketUtils - .newRepositoryParameter(entry.name))); - Link<Void> deleteLink = new Link<Void>("deleteRepository") { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick() { - if (GitBlit.self().deleteRepositoryModel(entry)) { - if (dp instanceof SortableRepositoriesProvider) { - info(MessageFormat.format(getString("gb.repositoryDeleted"), entry)); - ((SortableRepositoriesProvider) dp).remove(entry); - } else { - setResponsePage(getPage().getClass(), getPage().getPageParameters()); - } - } else { - error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), entry)); - } - } - }; - deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format( - getString("gb.deleteRepository"), entry))); - repositoryLinks.add(deleteLink); - row.add(repositoryLinks); - } else if (showOwner) { - Fragment repositoryLinks = new Fragment("repositoryLinks", - "repositoryOwnerLinks", this); - repositoryLinks.add(new BookmarkablePageLink<Void>("editRepository", - EditRepositoryPage.class, WicketUtils - .newRepositoryParameter(entry.name))); - row.add(repositoryLinks); - } else { - row.add(new Label("repositoryLinks")); - } - row.add(new ExternalLink("syndication", SyndicationServlet.asLink(baseUrl, - entry.name, null, 0)).setVisible(linksActive)); WicketUtils.setAlternatingBackground(item, counter); counter++; } @@ -426,59 +362,6 @@ }; } - private static class RepositoriesProvider extends ListDataProvider<RepositoryModel> { - - private static final long serialVersionUID = 1L; - - public RepositoriesProvider(List<RepositoryModel> list) { - super(list); - } - - @Override - public List<RepositoryModel> getData() { - return super.getData(); - } - - public void remove(RepositoryModel model) { - int index = getData().indexOf(model); - RepositoryModel groupModel = null; - if (index == (getData().size() - 1)) { - // last element - if (index > 0) { - // previous element is group header, then this is last - // repository in group. remove group too. - if (getData().get(index - 1) instanceof GroupRepositoryModel) { - groupModel = getData().get(index - 1); - } - } - } else if (index < (getData().size() - 1)) { - // not last element. check next element for group match. - if (getData().get(index - 1) instanceof GroupRepositoryModel - && getData().get(index + 1) instanceof GroupRepositoryModel) { - // repository is sandwiched by group headers so this - // repository is the only element in the group. remove - // group. - groupModel = getData().get(index - 1); - } - } - - if (groupModel == null) { - // Find the group and decrement the count - for (int i = index; i >= 0; i--) { - if (getData().get(i) instanceof GroupRepositoryModel) { - ((GroupRepositoryModel) getData().get(i)).count--; - break; - } - } - } else { - // Remove the group header - getData().remove(groupModel); - } - - getData().remove(model); - } - } - private static class SortableRepositoriesProvider extends SortableDataProvider<RepositoryModel> { private static final long serialVersionUID = 1L; @@ -488,10 +371,6 @@ protected SortableRepositoriesProvider(List<RepositoryModel> list) { this.list = list; setSort(SortBy.date.name(), false); - } - - public void remove(RepositoryModel model) { - list.remove(model); } @Override -- Gitblit v1.9.1