From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/wicket/panels/LogPanel.java | 44 +++++++++++++++++++++++++++++++++----------- 1 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/LogPanel.java b/src/main/java/com/gitblit/wicket/panels/LogPanel.java index 0539764..e9d240d 100644 --- a/src/main/java/com/gitblit/wicket/panels/LogPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/LogPanel.java @@ -19,6 +19,9 @@ import java.util.List; import java.util.Map; +import org.apache.wicket.MarkupContainer; +import org.apache.wicket.behavior.SimpleAttributeModifier; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.repeater.Item; @@ -30,16 +33,17 @@ import org.eclipse.jgit.revwalk.RevCommit; import com.gitblit.Constants; -import com.gitblit.GitBlit; import com.gitblit.Keys; import com.gitblit.models.RefModel; +import com.gitblit.servlet.BranchGraphServlet; import com.gitblit.utils.JGitUtils; import com.gitblit.utils.StringUtils; +import com.gitblit.wicket.ExternalImage; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.CommitDiffPage; import com.gitblit.wicket.pages.CommitPage; -import com.gitblit.wicket.pages.LogPage; import com.gitblit.wicket.pages.GitSearchPage; +import com.gitblit.wicket.pages.LogPage; import com.gitblit.wicket.pages.TreePage; public class LogPanel extends BasePanel { @@ -52,7 +56,7 @@ Repository r, int limit, int pageOffset, boolean showRemoteRefs) { super(wicketId); boolean pageResults = limit <= 0; - int itemsPerPage = GitBlit.getInteger(Keys.web.itemsPerPage, 50); + int itemsPerPage = app().settings().getInteger(Keys.web.itemsPerPage, 50); if (itemsPerPage <= 1) { itemsPerPage = 50; } @@ -71,6 +75,20 @@ // works unless commits.size() represents the exact end. hasMore = commits.size() >= itemsPerPage; + final String baseUrl = WicketUtils.getGitblitURL(getRequest()); + final boolean showGraph = app().settings().getBoolean(Keys.web.showBranchGraph, true); + + MarkupContainer graph = new WebMarkupContainer("graph"); + add(graph); + if (!showGraph || commits.isEmpty()) { + // not showing or nothing to show + graph.setVisible(false); + } else { + // set the rowspan on the graph row and +1 for the graph row itself + graph.add(new SimpleAttributeModifier("rowspan", "" + (commits.size() + 1))); + graph.add(new ExternalImage("image", BranchGraphServlet.asLink(baseUrl, repositoryName, commits.get(0).name(), commits.size()))); + } + // header if (pageResults) { // shortlog page @@ -82,15 +100,17 @@ WicketUtils.newRepositoryParameter(repositoryName))); } - final int hashLen = GitBlit.getInteger(Keys.web.shortCommitIdLength, 6); + final int hashLen = app().settings().getInteger(Keys.web.shortCommitIdLength, 6); ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits); DataView<RevCommit> logView = new DataView<RevCommit>("commit", dp) { private static final long serialVersionUID = 1L; int counter; + @Override public void populateItem(final Item<RevCommit> item) { final RevCommit entry = item.getModelObject(); - final Date date = JGitUtils.getCommitDate(entry); + final Date date = JGitUtils.getAuthorDate(entry); + final boolean isMerge = entry.getParentCount() > 1; item.add(WicketUtils.createDateLabel("commitDate", date, getTimeZone(), getTimeUtils())); @@ -98,12 +118,12 @@ String author = entry.getAuthorIdent().getName(); LinkPanel authorLink = new LinkPanel("commitAuthor", "list", author, GitSearchPage.class, WicketUtils.newSearchParameter(repositoryName, - objectId, author, Constants.SearchType.AUTHOR)); + null, author, Constants.SearchType.AUTHOR)); setPersonSearchTooltip(authorLink, author, Constants.SearchType.AUTHOR); item.add(authorLink); - + // merge icon - if (entry.getParentCount() > 1) { + if (isMerge) { item.add(WicketUtils.newImage("commitIcon", "commit_merge_16x16.png")); } else { item.add(WicketUtils.newBlankImage("commitIcon")); @@ -117,7 +137,7 @@ } else { trimmedMessage = StringUtils.trimString(shortMessage, Constants.LEN_SHORTLOG); } - LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", + LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject" + (isMerge ? " merge" : ""), trimmedMessage, CommitPage.class, WicketUtils.newObjectParameter( repositoryName, entry.getName())); if (!shortMessage.equals(trimmedMessage)) { @@ -134,14 +154,16 @@ WicketUtils.setCssClass(commitHash, "shortsha1"); WicketUtils.setHtmlTooltip(commitHash, entry.getName()); item.add(commitHash); - + item.add(new BookmarkablePageLink<Void>("diff", CommitDiffPage.class, WicketUtils .newObjectParameter(repositoryName, entry.getName())).setEnabled(entry .getParentCount() > 0)); item.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils .newObjectParameter(repositoryName, entry.getName()))); - WicketUtils.setAlternatingBackground(item, counter); + String clazz = counter % 2 == 0 ? "light commit" : "dark commit"; + WicketUtils.setCssClass(item, clazz); + counter++; } }; -- Gitblit v1.9.1