From 6b18b0761b726fd9aef1ebcc21b760378f7d4b5c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 16 Jun 2014 17:36:12 -0400 Subject: [PATCH] Merge release 1.6.0 --- src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java | 121 +--------------------------------------- 1 files changed, 4 insertions(+), 117 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java b/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java index be5d960..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; @@ -47,15 +45,12 @@ import com.gitblit.models.ProjectModel; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; -import com.gitblit.servlet.SyndicationServlet; import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.ModelUtils; import com.gitblit.utils.StringUtils; 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; @@ -91,12 +86,12 @@ setResponsePage(RepositoriesPage.class); } }.setVisible(app().settings().getBoolean(Keys.git.cacheRepositoryList, true))); - managementLinks.add(new BookmarkablePageLink<Void>("newRepository", EditRepositoryPage.class)); + 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 @@ -141,12 +136,11 @@ 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 = app().settings().getBoolean(Keys.web.repositoryListSwatches, true); DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("row", dp) { @@ -208,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, @@ -320,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 (app().repositories().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++; } @@ -418,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; @@ -480,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