From d5ee557ef1370b5b9953dca1c8d3b14d0bd68a98 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 02 May 2013 22:31:58 -0400 Subject: [PATCH] Do not use problematic WicketUtils fluid api --- src/main/java/com/gitblit/wicket/pages/SummaryPage.java | 46 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/SummaryPage.java b/src/main/java/com/gitblit/wicket/pages/SummaryPage.java index bd40a1b..f092a38 100644 --- a/src/main/java/com/gitblit/wicket/pages/SummaryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/SummaryPage.java @@ -42,6 +42,7 @@ import org.wicketstuff.googlecharts.MarkerType; import org.wicketstuff.googlecharts.ShapeMarker; +import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessRestrictionType; import com.gitblit.GitBlit; import com.gitblit.Keys; @@ -53,11 +54,13 @@ import com.gitblit.utils.JGitUtils; import com.gitblit.utils.MarkdownUtils; import com.gitblit.utils.StringUtils; +import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.BranchesPanel; +import com.gitblit.wicket.panels.DetailedRepositoryUrlPanel; import com.gitblit.wicket.panels.LinkPanel; import com.gitblit.wicket.panels.LogPanel; -import com.gitblit.wicket.panels.RepositoryUrlPanel; +import com.gitblit.wicket.panels.SparkleShareInvitePanel; import com.gitblit.wicket.panels.TagsPanel; public class SummaryPage extends RepositoryPage { @@ -72,7 +75,11 @@ int numberRefs = GitBlit.getInteger(Keys.web.summaryRefsCount, 5); Repository r = getRepository(); - RepositoryModel model = getRepositoryModel(); + final RepositoryModel model = getRepositoryModel(); + UserModel user = GitBlitWebSession.get().getUser(); + if (user == null) { + user = UserModel.ANONYMOUS; + } List<Metric> metrics = null; Metric metricsTotal = null; @@ -122,7 +129,9 @@ List<String> repositoryUrls = new ArrayList<String>(); - if (GitBlit.getBoolean(Keys.git.enableGitServlet, true)) { + AccessPermission accessPermission = null; + if (GitBlit.getBoolean(Keys.git.enableGitServlet, true)) { + accessPermission = user.getRepositoryPermission(model).permission; AccessRestrictionType accessRestriction = getRepositoryModel().accessRestriction; switch (accessRestriction) { case NONE: @@ -148,13 +157,36 @@ } else { add(WicketUtils.newClearPixel("accessRestrictionIcon").setVisible(false)); } - repositoryUrls.addAll(GitBlit.self().getOtherCloneUrls(repositoryName)); + repositoryUrls.addAll(GitBlit.self().getOtherCloneUrls(repositoryName, UserModel.ANONYMOUS.equals(user) ? "" : user.username)); String primaryUrl = ArrayUtils.isEmpty(repositoryUrls) ? "" : repositoryUrls.remove(0); - add(new RepositoryUrlPanel("repositoryCloneUrl", primaryUrl)); + add(new DetailedRepositoryUrlPanel("repositoryPrimaryUrl", getLocalizer(), this, model.name, primaryUrl, accessPermission)); - add(new Label("otherUrls", StringUtils.flattenStrings(repositoryUrls, "<br/>")) - .setEscapeModelStrings(false)); + Component gitDaemonUrlPanel = createGitDaemonUrlPanel("repositoryGitDaemonUrl", user, model); + if (!StringUtils.isEmpty(primaryUrl) && gitDaemonUrlPanel instanceof DetailedRepositoryUrlPanel) { + WicketUtils.setCssStyle(gitDaemonUrlPanel, "padding-top: 10px"); + } + add(gitDaemonUrlPanel); + + String sparkleshareUrl = getSparkleShareInviteUrl(model); + if (StringUtils.isEmpty(sparkleshareUrl)) { + add(new Label("repositorySparkleShareInviteUrl").setVisible(false)); + } else { + Component sparklesharePanel = new SparkleShareInvitePanel("repositorySparkleShareInviteUrl", getLocalizer(), this, sparkleshareUrl, accessPermission); + WicketUtils.setCssStyle(sparklesharePanel, "padding-top: 10px;"); + add(sparklesharePanel); + } + + ListDataProvider<String> urls = new ListDataProvider<String>(repositoryUrls); + DataView<String> otherUrlsView = new DataView<String>("otherUrls", urls) { + private static final long serialVersionUID = 1L; + + public void populateItem(final Item<String> item) { + final String url = item.getModelObject(); + item.add(new DetailedRepositoryUrlPanel("otherUrl", getLocalizer(), this, model.name, url)); + } + }; + add(otherUrlsView); add(new LogPanel("commitsPanel", repositoryName, getRepositoryModel().HEAD, r, numberCommits, 0, getRepositoryModel().showRemoteBranches)); add(new TagsPanel("tagsPanel", repositoryName, r, numberRefs).hideIfEmpty()); -- Gitblit v1.9.1