From 698678268f53067c239a11e928dfd16761a2f9f7 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 08 Apr 2011 17:17:28 -0400 Subject: [PATCH] created panels for logs, tags, and branches. --- src/com/gitblit/wicket/pages/TagsPage.java | 48 -- src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java | 4 src/com/gitblit/wicket/panels/TagsPanel.html | 33 + src/com/gitblit/wicket/panels/PageLinksPanel.html | 2 src/com/gitblit/wicket/panels/TagsPanel.java | 81 ++++ src/com/gitblit/wicket/GitBlitWebApp.properties | 8 src/com/gitblit/wicket/WicketUtils.java | 67 +++ src/com/gitblit/wicket/pages/CommitPage.java | 13 src/com/gitblit/wicket/pages/BranchesPage.java | 55 -- src/com/gitblit/wicket/panels/AdminLinksPanel.java | 3 src/com/gitblit/wicket/pages/BlobPage.html | 2 src/com/gitblit/wicket/panels/TreeLinksPanel.java | 9 src/com/gitblit/wicket/panels/TreeBlobLinksPanel.java | 11 src/com/gitblit/wicket/pages/BranchesPage.html | 16 src/com/gitblit/wicket/pages/SummaryPage.html | 49 -- src/com/gitblit/wicket/models/RefModel.java | 3 src/com/gitblit/wicket/RepositoryPage.java | 16 src/com/gitblit/wicket/pages/TicGitPage.java | 17 src/com/gitblit/wicket/pages/CommitPage.html | 6 src/com/gitblit/wicket/pages/LogPage.html | 18 + src/com/gitblit/wicket/BasePage.java | 47 -- src/com/gitblit/wicket/resources/gitblit.css | 10 src/com/gitblit/wicket/pages/LogPage.java | 21 + src/com/gitblit/wicket/panels/LogPanel.html | 34 + /dev/null | 20 - src/com/gitblit/wicket/pages/TicGitTicketPage.java | 4 src/com/gitblit/wicket/panels/PageLinksPanel.java | 27 src/com/gitblit/wicket/pages/TagsPage.html | 14 src/com/gitblit/wicket/panels/BranchesPanel.java | 84 ++++ src/com/gitblit/wicket/pages/TicGitTicketPage.html | 2 src/com/gitblit/wicket/panels/LogPanel.java | 118 ++++++ src/com/gitblit/wicket/GitBlitWebApp.java | 4 src/com/gitblit/wicket/pages/TicGitPage.html | 2 src/com/gitblit/wicket/pages/SummaryPage.java | 140 ------- src/com/gitblit/wicket/panels/BranchesPanel.html | 34 + 35 files changed, 594 insertions(+), 428 deletions(-) diff --git a/src/com/gitblit/wicket/BasePage.java b/src/com/gitblit/wicket/BasePage.java index d24485f..d795c61 100644 --- a/src/com/gitblit/wicket/BasePage.java +++ b/src/com/gitblit/wicket/BasePage.java @@ -1,10 +1,7 @@ package com.gitblit.wicket; -import java.util.Date; - import javax.servlet.http.HttpServletRequest; -import org.apache.wicket.Component; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; @@ -14,9 +11,7 @@ import com.gitblit.Constants; import com.gitblit.StoredSettings; -import com.gitblit.utils.Utils; import com.gitblit.wicket.pages.SummaryPage; - public abstract class BasePage extends WebPage { @@ -58,49 +53,7 @@ HttpServletRequest req = servletWebRequest.getHttpServletRequest(); return req.getServerName(); } - - protected Label createAuthorLabel(String wicketId, String author) { - Label label = new Label(wicketId, author); - WicketUtils.setHtmlTitle(label, author); - return label; - } - - protected Label createDateLabel(String wicketId, Date date) { - Label label = new Label(wicketId, GitBlitWebSession.get().formatDate(date)); - WicketUtils.setCssClass(label, Utils.timeAgoCss(date)); - WicketUtils.setHtmlTitle(label, Utils.timeAgo(date)); - return label; - } - - protected Label createShortlogDateLabel(String wicketId, Date date) { - String dateString = GitBlitWebSession.get().formatDate(date); - String title = Utils.timeAgo(date); - if ((System.currentTimeMillis() - date.getTime()) < 10 * 24 * 60 * 60 * 1000l) { - dateString = title; - title = GitBlitWebSession.get().formatDate(date); - } - Label label = new Label(wicketId, dateString); - WicketUtils.setCssClass(label, Utils.timeAgoCss(date)); - WicketUtils.setHtmlTitle(label, title); - return label; - } - - protected void setAlternatingBackground(Component c, int i) { - String clazz = i % 2 == 0 ? "dark" : "light"; - WicketUtils.setCssClass(c, clazz); - } - - protected String trimShortLog(String string) { - return trimString(string, 60); - } - protected String trimString(String value, int max) { - if (value.length() <= max) { - return value; - } - return value.substring(0, max - 3) + "..."; - } - public void error(String message, Throwable t) { super.error(message); logger.error(message, t); diff --git a/src/com/gitblit/wicket/GitBlitWebApp.java b/src/com/gitblit/wicket/GitBlitWebApp.java index 70bb970..caaf221 100644 --- a/src/com/gitblit/wicket/GitBlitWebApp.java +++ b/src/com/gitblit/wicket/GitBlitWebApp.java @@ -33,7 +33,7 @@ import com.gitblit.wicket.pages.CommitPage; import com.gitblit.wicket.pages.DiffPage; import com.gitblit.wicket.pages.RepositoriesPage; -import com.gitblit.wicket.pages.ShortLogPage; +import com.gitblit.wicket.pages.LogPage; import com.gitblit.wicket.pages.SummaryPage; import com.gitblit.wicket.pages.TagPage; import com.gitblit.wicket.pages.TagsPage; @@ -63,7 +63,7 @@ // setup the standard gitweb-ish urls mount(new MixedParamUrlCodingStrategy("/summary", SummaryPage.class, new String[] { "p" })); - mount(new MixedParamUrlCodingStrategy("/shortlog", ShortLogPage.class, new String[] { "p", "h" })); + mount(new MixedParamUrlCodingStrategy("/shortlog", LogPage.class, new String[] { "p", "h" })); mount(new MixedParamUrlCodingStrategy("/tags", TagsPage.class, new String[] { "p" })); mount(new MixedParamUrlCodingStrategy("/branches", BranchesPage.class, new String[] { "p" })); mount(new MixedParamUrlCodingStrategy("/commit", CommitPage.class, new String[] { "p", "h" })); diff --git a/src/com/gitblit/wicket/GitBlitWebApp.properties b/src/com/gitblit/wicket/GitBlitWebApp.properties index ba077c7..621cb71 100644 --- a/src/com/gitblit/wicket/GitBlitWebApp.properties +++ b/src/com/gitblit/wicket/GitBlitWebApp.properties @@ -25,10 +25,10 @@ gb.branches = branches gb.patch = patch gb.diff = diff -gb.shortlog = shortlog -gb.more = more -gb.allTags = all tags -gb.allBranches = all branches +gb.log = log +gb.moreLogs = more commits... +gb.allTags = all tags... +gb.allBranches = all branches... gb.summary = summary gb.ticket = ticket gb.newRepository = new repository diff --git a/src/com/gitblit/wicket/RepositoryPage.java b/src/com/gitblit/wicket/RepositoryPage.java index 1a764a3..0cbda3d 100644 --- a/src/com/gitblit/wicket/RepositoryPage.java +++ b/src/com/gitblit/wicket/RepositoryPage.java @@ -33,7 +33,7 @@ redirectToInterceptPage(new RepositoriesPage()); } repositoryName = params.getString("p", ""); - commitId = params.getString("h", ""); + commitId = params.getString("h", "HEAD"); Repository r = getRepository(); @@ -112,24 +112,18 @@ } protected PageParameters newRepositoryParameter() { - return new PageParameters("p=" + repositoryName); + return WicketUtils.newRepositoryParameter(repositoryName); } protected PageParameters newCommitParameter() { - return newCommitParameter(commitId); + return WicketUtils.newCommitParameter(repositoryName, commitId); } protected PageParameters newCommitParameter(String commitId) { - if (commitId == null || commitId.trim().length() == 0) { - return newRepositoryParameter(); - } - return new PageParameters("p=" + repositoryName + ",h=" + commitId); + return WicketUtils.newCommitParameter(repositoryName, commitId); } protected PageParameters newPathParameter(String path) { - if (path == null || path.trim().length() == 0) { - return newCommitParameter(); - } - return new PageParameters("p=" + repositoryName + ",h=" + commitId + ",f=" + path); + return WicketUtils.newPathParameter(repositoryName, commitId, path); } } diff --git a/src/com/gitblit/wicket/WicketUtils.java b/src/com/gitblit/wicket/WicketUtils.java index ee055c1..63efd54 100644 --- a/src/com/gitblit/wicket/WicketUtils.java +++ b/src/com/gitblit/wicket/WicketUtils.java @@ -1,9 +1,18 @@ package com.gitblit.wicket; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.TimeZone; import org.apache.wicket.Component; +import org.apache.wicket.PageParameters; import org.apache.wicket.behavior.SimpleAttributeModifier; +import org.apache.wicket.markup.html.basic.Label; + +import com.gitblit.StoredSettings; +import com.gitblit.utils.Utils; public class WicketUtils { @@ -46,4 +55,62 @@ } return sb.toString().trim(); } + + public static void setAlternatingBackground(Component c, int i) { + String clazz = i % 2 == 0 ? "dark" : "light"; + setCssClass(c, clazz); + } + + public static Label createAuthorLabel(String wicketId, String author) { + Label label = new Label(wicketId, author); + WicketUtils.setHtmlTitle(label, author); + return label; + } + + public static String trimShortLog(String string) { + return trimString(string, 60); + } + + public static String trimString(String value, int max) { + if (value.length() <= max) { + return value; + } + return value.substring(0, max - 3) + "..."; + } + + public static PageParameters newRepositoryParameter(String repositoryName) { + return new PageParameters("p=" + repositoryName); + } + + public static PageParameters newCommitParameter(String repositoryName, String commitId) { + if (commitId == null || commitId.trim().length() == 0) { + return newRepositoryParameter(repositoryName); + } + return new PageParameters("p=" + repositoryName + ",h=" + commitId); + } + + public static PageParameters newPathParameter(String repositoryName, String commitId, String path) { + if (path == null || path.trim().length() == 0) { + return newCommitParameter(repositoryName, commitId); + } + return new PageParameters("p=" + repositoryName + ",h=" + commitId + ",f=" + path); + } + + public static Label createDateLabel(String wicketId, Date date, TimeZone timeZone) { + DateFormat df = new SimpleDateFormat(StoredSettings.getString("datestampShortFormat", "MM/dd/yy")); + if (timeZone != null) { + df.setTimeZone(timeZone); + } + String dateString = df.format(date); + String title = Utils.timeAgo(date); + if ((System.currentTimeMillis() - date.getTime()) < 10 * 24 * 60 * 60 * 1000l) { + String tmp = dateString; + dateString = title; + title = tmp; + } + Label label = new Label(wicketId, dateString); + WicketUtils.setCssClass(label, Utils.timeAgoCss(date)); + WicketUtils.setHtmlTitle(label, title); + return label; + } } diff --git a/src/com/gitblit/wicket/models/RefModel.java b/src/com/gitblit/wicket/models/RefModel.java index 08de110..0c78434 100644 --- a/src/com/gitblit/wicket/models/RefModel.java +++ b/src/com/gitblit/wicket/models/RefModel.java @@ -52,7 +52,8 @@ } public boolean isAnnotatedTag() { - return ref.isPeeled(); + // ref.isPeeled() ?? + return !getCommitId().equals(getObjectId()); } @Override diff --git a/src/com/gitblit/wicket/pages/BlobPage.html b/src/com/gitblit/wicket/pages/BlobPage.html index 913ab0b..82ba320 100644 --- a/src/com/gitblit/wicket/pages/BlobPage.html +++ b/src/com/gitblit/wicket/pages/BlobPage.html @@ -31,7 +31,7 @@ <div wicket:id="breadcrumbs">[breadcrumbs]</div> <!-- blob content --> - <pre wicket:id="blobText">[blob content]</pre> + <pre style="border:0px;" wicket:id="blobText">[blob content]</pre> </body> </wicket:extend> diff --git a/src/com/gitblit/wicket/pages/BranchesPage.html b/src/com/gitblit/wicket/pages/BranchesPage.html index 33d5082..606cbf4 100644 --- a/src/com/gitblit/wicket/pages/BranchesPage.html +++ b/src/com/gitblit/wicket/pages/BranchesPage.html @@ -9,20 +9,10 @@ <!-- page nav links --> <div wicket:id="pageLinks">[page links]</div> - - <!-- shortlog --> - <div style="margin-top:5px;" class="header" wicket:id="summary">[header]</div> - <table class="pretty"> - <tbody> - <tr wicket:id="branch"> - <td class="date"><span wicket:id="branchDate">[branch date]</span></td> - <td><div wicket:id="branchName">[branch name]</div></td> - <td><div wicket:id="branchType">[branch type]</div></td> - <td class="rightAlign"><span wicket:id="branchLinks">[branch links]</span></td> - </tr> - </tbody> - </table> + <!-- branches --> + <div style="margin-top:5px;" wicket:id="branchesPanel">[branches panel]</div> + </wicket:extend> </body> </html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/pages/BranchesPage.java b/src/com/gitblit/wicket/pages/BranchesPage.java index 30fac1a..f4359d8 100644 --- a/src/com/gitblit/wicket/pages/BranchesPage.java +++ b/src/com/gitblit/wicket/pages/BranchesPage.java @@ -1,23 +1,9 @@ package com.gitblit.wicket.pages; -import java.util.ArrayList; -import java.util.List; - import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.markup.repeater.data.DataView; -import org.apache.wicket.markup.repeater.data.ListDataProvider; -import org.eclipse.jgit.lib.Constants; -import org.eclipse.jgit.lib.Repository; -import com.gitblit.utils.JGitUtils; -import com.gitblit.utils.Utils; -import com.gitblit.wicket.LinkPanel; import com.gitblit.wicket.RepositoryPage; -import com.gitblit.wicket.WicketUtils; -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.panels.BranchLinksPanel; +import com.gitblit.wicket.panels.BranchesPanel; public class BranchesPage extends RepositoryPage { @@ -25,44 +11,7 @@ public BranchesPage(PageParameters params) { super(params); - Repository r = getRepository(); - List<RefModel> branches = new ArrayList<RefModel>(); - branches.addAll(JGitUtils.getLocalBranches(r, -1)); - branches.addAll(JGitUtils.getRemoteBranches(r, -1)); - - // shortlog - add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter())); - - ListDataProvider<RefModel> branchesDp = new ListDataProvider<RefModel>(branches); - DataView<RefModel> branchView = new DataView<RefModel>("branch", branchesDp) { - private static final long serialVersionUID = 1L; - int counter = 0; - - public void populateItem(final Item<RefModel> item) { - final RefModel entry = item.getModelObject(); - String date; - if (entry.getDate() != null) { - date = Utils.timeAgo(entry.getDate()); - } else { - date = ""; - } - Label branchDateLabel = new Label("branchDate", date); - item.add(branchDateLabel); - WicketUtils.setCssClass(branchDateLabel, Utils.timeAgoCss(entry.getDate())); - - item.add(new LinkPanel("branchName", "list name", entry.getDisplayName(), ShortLogPage.class, newCommitParameter(entry.getName()))); - - boolean remote = entry.getName().startsWith(Constants.R_REMOTES); - item.add(new Label("branchType", remote ? getString("gb.remote"):getString("gb.local"))); - - item.add(new BranchLinksPanel("branchLinks", repositoryName, entry)); - - String clazz = counter % 2 == 0 ? "dark" : "light"; - WicketUtils.setCssClass(item, clazz); - counter++; - } - }; - add(branchView); + add(new BranchesPanel("branchesPanel", repositoryName, getRepository(), -1)); } @Override diff --git a/src/com/gitblit/wicket/pages/CommitPage.html b/src/com/gitblit/wicket/pages/CommitPage.html index 1b79e63..e49cd57 100644 --- a/src/com/gitblit/wicket/pages/CommitPage.html +++ b/src/com/gitblit/wicket/pages/CommitPage.html @@ -38,7 +38,11 @@ <table class="pretty"> <tr wicket:id="changedPath"> <td class="path"><span wicket:id="pathName">[commit path]</span></td> - <td><span wicket:id="pathLinks">[path links]</span></td> + <td> + <div class="link"> + <a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a> + </div> + </td> </tr> </table> diff --git a/src/com/gitblit/wicket/pages/CommitPage.java b/src/com/gitblit/wicket/pages/CommitPage.java index f460827..b0a92b0 100644 --- a/src/com/gitblit/wicket/pages/CommitPage.java +++ b/src/com/gitblit/wicket/pages/CommitPage.java @@ -5,6 +5,7 @@ import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; @@ -17,7 +18,6 @@ import com.gitblit.wicket.RepositoryPage; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.models.PathModel; -import com.gitblit.wicket.panels.PathLinksPanel; public class CommitPage extends RepositoryPage { @@ -45,7 +45,7 @@ } add(new Label("patchLink", getString("gb.patch"))); - add(new LinkPanel("shortlog", "title", c.getShortMessage(), ShortLogPage.class, newRepositoryParameter())); + add(new LinkPanel("shortlog", "title", c.getShortMessage(), LogPage.class, newRepositoryParameter())); addRefs(r, c); @@ -89,9 +89,12 @@ } else { item.add(new LinkPanel("pathName", "list", entry.path, BlobPage.class, newPathParameter(entry.path))); } - item.add(new PathLinksPanel("pathLinks", repositoryName, entry)); - String clazz = counter % 2 == 0 ? "dark" : "light"; - WicketUtils.setCssClass(item, clazz); + + item.add(new BookmarkablePageLink<Void>("diff", DiffPage.class, newPathParameter(entry.path))); + item.add(new BookmarkablePageLink<Void>("view", BlobPage.class, newPathParameter(entry.path))); + item.add(new BookmarkablePageLink<Void>("history", BlobPage.class).setEnabled(false)); + + WicketUtils.setAlternatingBackground(item, counter); counter++; } }; diff --git a/src/com/gitblit/wicket/pages/LogPage.html b/src/com/gitblit/wicket/pages/LogPage.html new file mode 100644 index 0000000..82abb1b --- /dev/null +++ b/src/com/gitblit/wicket/pages/LogPage.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" + xml:lang="en" + lang="en"> + +<body> +<wicket:extend> + + <!-- page nav links --> + <div wicket:id="pageLinks">[page links]</div> + + <!-- log --> + <div style="margin-top:5px;" wicket:id="logPanel">[log panel]</div> + +</wicket:extend> +</body> +</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/pages/LogPage.java b/src/com/gitblit/wicket/pages/LogPage.java new file mode 100644 index 0000000..56ab07a --- /dev/null +++ b/src/com/gitblit/wicket/pages/LogPage.java @@ -0,0 +1,21 @@ +package com.gitblit.wicket.pages; + +import org.apache.wicket.PageParameters; + +import com.gitblit.wicket.RepositoryPage; +import com.gitblit.wicket.panels.LogPanel; + + +public class LogPage extends RepositoryPage { + + public LogPage(PageParameters params) { + super(params); + + add(new LogPanel("logPanel", repositoryName, getRepository(), 100, true)); + } + + @Override + protected String getPageName() { + return getString("gb.log"); + } +} diff --git a/src/com/gitblit/wicket/pages/ShortLogPage.html b/src/com/gitblit/wicket/pages/ShortLogPage.html deleted file mode 100644 index 3336931..0000000 --- a/src/com/gitblit/wicket/pages/ShortLogPage.html +++ /dev/null @@ -1,30 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> - -<body> -<wicket:extend> - - <!-- page nav links --> - <div wicket:id="pageLinks">[page links]</div> - - <!-- shortlog --> - <div style="margin-top:5px;" class="header" wicket:id="summary">[shortlog header]</div> - <table style="width:100%" "class="pretty"> - <tbody> - <tr wicket:id="commit"> - <td class="date"><span wicket:id="commitDate">[commit date]</span></td> - <td class="author"><span wicket:id="commitAuthor">[commit author]</span></td> - <td><div wicket:id="commitShortMessage">[commit short message]</div></td> - <td class="rightAlign"><div wicket:id="commitRefs">[commit refs]</div></td> - <td class="rightAlign"><span wicket:id="commitLinks">[commit links]</span></td> - </tr> - </tbody> - </table> - <div class="pager" wicket:id="navigator">[pager]</div> - -</wicket:extend> -</body> -</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/pages/ShortLogPage.java b/src/com/gitblit/wicket/pages/ShortLogPage.java deleted file mode 100644 index c83050d..0000000 --- a/src/com/gitblit/wicket/pages/ShortLogPage.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gitblit.wicket.pages; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.navigation.paging.PagingNavigator; -import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.markup.repeater.data.DataView; -import org.apache.wicket.markup.repeater.data.ListDataProvider; -import org.eclipse.jgit.lib.ObjectId; -import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.revwalk.RevCommit; - -import com.gitblit.utils.JGitUtils; -import com.gitblit.wicket.GitBlitWebApp; -import com.gitblit.wicket.LinkPanel; -import com.gitblit.wicket.RepositoryPage; -import com.gitblit.wicket.WicketUtils; -import com.gitblit.wicket.panels.RefsPanel; -import com.gitblit.wicket.panels.ShortLogLinksPanel; - - -public class ShortLogPage extends RepositoryPage { - - public ShortLogPage(PageParameters params) { - super(params); - - Repository r = getRepository(); - final Map<ObjectId, List<String>> allRefs = JGitUtils.getAllRefs(r); - List<RevCommit> commits = JGitUtils.getRevLog(r, 100); - - // shortlog - add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter())); - - ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits); - DataView<RevCommit> shortlogView = new DataView<RevCommit>("commit", dp) { - private static final long serialVersionUID = 1L; - int counter = 0; - - public void populateItem(final Item<RevCommit> item) { - final RevCommit entry = item.getModelObject(); - final Date date = JGitUtils.getCommitDate(entry); - - item.add(createShortlogDateLabel("commitDate", date)); - - String author = entry.getAuthorIdent().getName(); - item.add(createAuthorLabel("commitAuthor", author)); - - String shortMessage = entry.getShortMessage(); - String trimmedMessage = trimShortLog(shortMessage); - LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, newCommitParameter(entry.getName())); - if (!shortMessage.equals(trimmedMessage)) { - WicketUtils.setHtmlTitle(shortlog, shortMessage); - } - item.add(shortlog); - - item.add(new RefsPanel("commitRefs", entry, allRefs)); - - item.add(new ShortLogLinksPanel("commitLinks", repositoryName, entry.getName())); - - String clazz = counter % 2 == 0 ? "dark" : "light"; - WicketUtils.setCssClass(item, clazz); - counter++; - } - }; - shortlogView.setItemsPerPage(GitBlitWebApp.PAGING_ITEM_COUNT); - add(shortlogView); - add(new PagingNavigator("navigator", shortlogView)); - } - - @Override - protected String getPageName() { - return getString("gb.shortlog"); - } -} diff --git a/src/com/gitblit/wicket/pages/SummaryPage.html b/src/com/gitblit/wicket/pages/SummaryPage.html index cba149e..4151640 100644 --- a/src/com/gitblit/wicket/pages/SummaryPage.html +++ b/src/com/gitblit/wicket/pages/SummaryPage.html @@ -27,54 +27,17 @@ </div> </div> - <!-- shortlog --> - <div class="header" wicket:id="shortlog">[shortlog header]</div> - <table style="width:100%" class="pretty"> - <tbody> - <tr wicket:id="commit"> - <td class="date"><span wicket:id="commitDate">[commit date]</span></td> - <td class="author"><span wicket:id="commitAuthor">[commit author]</span></td> - <td><div wicket:id="commitShortMessage">[commit short message]</div></td> - <td class="rightAlign"><div wicket:id="commitRefs">[commit refs]</div></td> - <td class="rightAlign"><span wicket:id="commitLinks">[commit links]</span></td> - </tr> - </tbody> - </table> - <div class="pager" wicket:id="shortlogMore">[more shortlogs]</div> + <!-- commits --> + <div wicket:id="commitsPanel">[commits panel]</div> - <!-- Open Branches Body --> + <!-- branches --> <div style="width:400px; float:left;"> - <!-- heads --> - <div class="header" wicket:id="branches">[branches header]</div> - <table style="width:100%" class="pretty"> - <tbody> - <tr wicket:id="branch"> - <td class="date"><span wicket:id="branchDate">[branch date]</span></td> - <td><div wicket:id="branchName">[branch name]</div></td> - <td class="rightAlign"><span wicket:id="branchLinks">[branch links]</span></td> - </tr> - </tbody> - </table> - <div class="pager" wicket:id="allBranches">[all branches]</div> - <!-- Close Branches Body --> + <div wicket:id="branchesPanel">[branches panel]</div> </div> - <!-- Open Tags body --> + <!-- tags --> <div style="margin-left:405px;"> - <!-- tags --> - <div class="header" wicket:id="tags">[tags header]</div> - <table style="width:100%" class="pretty"> - <tbody> - <tr wicket:id="tag"> - <td class="date"><span wicket:id="tagDate">[tag date]</span></td> - <td><b><div wicket:id="tagName">[tag name]</div></b></td> - <td><div wicket:id="tagDescription">[tag description]</div></td> - <td class="rightAlign"><span wicket:id="tagLinks">[tag links]</span></td> - </tr> - </tbody> - </table> - <div class="pager" wicket:id="allTags">[all tags]</div> - <!-- Close Tags Body --> + <div wicket:id="tagsPanel">[tags panel]</div> </div> </wicket:extend> diff --git a/src/com/gitblit/wicket/pages/SummaryPage.java b/src/com/gitblit/wicket/pages/SummaryPage.java index 0fef375..72643a7 100644 --- a/src/com/gitblit/wicket/pages/SummaryPage.java +++ b/src/com/gitblit/wicket/pages/SummaryPage.java @@ -1,21 +1,12 @@ package com.gitblit.wicket.pages; import java.awt.Dimension; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; import java.util.List; -import java.util.Map; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.image.ContextImage; -import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.markup.repeater.data.DataView; -import org.apache.wicket.markup.repeater.data.ListDataProvider; -import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.revwalk.RevCommit; import com.codecommit.wicket.AbstractChartData; import com.codecommit.wicket.Chart; @@ -28,16 +19,11 @@ import com.gitblit.utils.JGitUtils; import com.gitblit.wicket.GitBlitWebApp; import com.gitblit.wicket.GitBlitWebSession; -import com.gitblit.wicket.LinkPanel; import com.gitblit.wicket.RepositoryPage; -import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.models.Metric; -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.panels.AnnotatedTagLinksPanel; -import com.gitblit.wicket.panels.BranchLinksPanel; -import com.gitblit.wicket.panels.RefsPanel; -import com.gitblit.wicket.panels.ShortLogLinksPanel; -import com.gitblit.wicket.panels.TagLinksPanel; +import com.gitblit.wicket.panels.BranchesPanel; +import com.gitblit.wicket.panels.LogPanel; +import com.gitblit.wicket.panels.TagsPanel; public class SummaryPage extends RepositoryPage { @@ -57,8 +43,7 @@ numberRefs = numRefsDef; } - Repository r = getRepository(); - final Map<ObjectId, List<String>> allRefs = JGitUtils.getAllRefs(r); + Repository r = getRepository(); String owner = JGitUtils.getRepositoryOwner(r); GitBlitWebSession session = GitBlitWebSession.get(); @@ -71,120 +56,9 @@ add(new Label("repositoryLastChange", lastchange)); add(new Label("repositoryCloneUrl", cloneurl)); - // shortlog - add(new LinkPanel("shortlog", "title", getString("gb.shortlog"), ShortLogPage.class, newRepositoryParameter())); - - List<RevCommit> commits = JGitUtils.getRevLog(r, numberCommits); - ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits); - DataView<RevCommit> shortlogView = new DataView<RevCommit>("commit", dp) { - private static final long serialVersionUID = 1L; - int counter = 0; - - public void populateItem(final Item<RevCommit> item) { - RevCommit entry = item.getModelObject(); - Date date = JGitUtils.getCommitDate(entry); - - item.add(createShortlogDateLabel("commitDate", date)); - - String author = entry.getAuthorIdent().getName(); - item.add(createAuthorLabel("commitAuthor", author)); - - String shortMessage = entry.getShortMessage(); - String trimmedMessage = trimShortLog(shortMessage); - LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, newCommitParameter(entry.getName())); - if (!shortMessage.equals(trimmedMessage)) { - WicketUtils.setHtmlTitle(shortlog, shortMessage); - } - item.add(shortlog); - - item.add(new RefsPanel("commitRefs", entry, allRefs)); - - item.add(new ShortLogLinksPanel("commitLinks", repositoryName, entry.getName())); - - setAlternatingBackground(item, counter); - counter++; - } - }; - add(shortlogView); - if (commits.size() < numberCommits) { - add(new Label("shortlogMore", "").setVisible(false)); - } else { - add(new LinkPanel("shortlogMore", "link", getString("gb.more") + "...", ShortLogPage.class, newRepositoryParameter())); - } - - // tags - List<RefModel> tags = JGitUtils.getTags(r, numberRefs); - add(new LinkPanel("tags", "title", getString("gb.tags"), TagsPage.class, newRepositoryParameter())); - - ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags); - DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) { - private static final long serialVersionUID = 1L; - int counter = 0; - - public void populateItem(final Item<RefModel> item) { - final RefModel entry = item.getModelObject(); - - item.add(createDateLabel("tagDate", entry.getDate())); - - item.add(new LinkPanel("tagName", "list name", entry.getDisplayName(), CommitPage.class, newCommitParameter(entry.getCommitId().getName()))); - - if (entry.isAnnotatedTag()) { - // annotated tag - item.add(new LinkPanel("tagDescription", "list subject", entry.getShortLog(), TagPage.class, newCommitParameter(entry.getObjectId().getName()))); - item.add(new AnnotatedTagLinksPanel("tagLinks", repositoryName, entry)); - } else { - // simple tag on commit object - item.add(new Label("tagDescription", "")); - item.add(new TagLinksPanel("tagLinks", repositoryName, entry)); - } - - setAlternatingBackground(item, counter); - counter++; - } - }; - add(tagView); - if (tags.size() < numberRefs) { - add(new Label("allTags", "").setVisible(false)); - } else { - add(new LinkPanel("allTags", "link", getString("gb.allTags") + "...", TagsPage.class, newRepositoryParameter())); - } - - // branches - List<RefModel> branches = new ArrayList<RefModel>(); - branches.addAll(JGitUtils.getLocalBranches(r, numberRefs)); - branches.addAll(JGitUtils.getRemoteBranches(r, numberRefs)); - Collections.sort(branches); - Collections.reverse(branches); - if (numberRefs > 0 && branches.size() > numberRefs) { - branches = new ArrayList<RefModel>(branches.subList(0, numberRefs)); - } - - add(new LinkPanel("branches", "title", getString("gb.branches"), BranchesPage.class, newRepositoryParameter())); - - ListDataProvider<RefModel> branchesDp = new ListDataProvider<RefModel>(branches); - DataView<RefModel> branchesView = new DataView<RefModel>("branch", branchesDp) { - private static final long serialVersionUID = 1L; - int counter = 0; - - public void populateItem(final Item<RefModel> item) { - final RefModel entry = item.getModelObject(); - - item.add(createDateLabel("branchDate", entry.getDate())); - - item.add(new LinkPanel("branchName", "list name", trimString(entry.getDisplayName(), 28), ShortLogPage.class, newCommitParameter(entry.getName()))); - - item.add(new BranchLinksPanel("branchLinks", repositoryName, entry)); - - setAlternatingBackground(item, counter); - counter++; - } - }; - add(branchesView); - if (branches.size() < numberRefs) { - add(new Label("allBranches", "").setVisible(false)); - } else { - add(new LinkPanel("allBranches", "link", getString("gb.allBranches") + "...", BranchesPage.class, newRepositoryParameter())); - } + add(new LogPanel("commitsPanel", repositoryName, r, numberCommits, false)); + add(new TagsPanel("tagsPanel", repositoryName, r, numberRefs)); + add(new BranchesPanel("branchesPanel", repositoryName, r, numberRefs)); // Display an activity line graph insertActivityGraph(r); diff --git a/src/com/gitblit/wicket/pages/TagsPage.html b/src/com/gitblit/wicket/pages/TagsPage.html index f2bce49..3a49a74 100644 --- a/src/com/gitblit/wicket/pages/TagsPage.html +++ b/src/com/gitblit/wicket/pages/TagsPage.html @@ -10,18 +10,8 @@ <!-- page nav links --> <div wicket:id="pageLinks">[page links]</div> - <!-- shortlog --> - <div style="margin-top:5px;" class="header" wicket:id="summary">[header]</div> - <table class="pretty"> - <tbody> - <tr wicket:id="tag"> - <td class="date"><span wicket:id="tagDate">[tag date]</span></td> - <td><b><div wicket:id="tagName">[tag name]</div></b></td> - <td><div wicket:id="tagDescription">[tag description]</div></td> - <td class="rightAlign"><span wicket:id="tagLinks">[tag links]</span></td> - </tr> - </tbody> - </table> + <!-- tags panel --> + <div style="margin-top:5px;" wicket:id="tagsPanel">[tags panel]</div> </wicket:extend> </body> diff --git a/src/com/gitblit/wicket/pages/TagsPage.java b/src/com/gitblit/wicket/pages/TagsPage.java index 2f5b029..eb1742d 100644 --- a/src/com/gitblit/wicket/pages/TagsPage.java +++ b/src/com/gitblit/wicket/pages/TagsPage.java @@ -1,58 +1,18 @@ package com.gitblit.wicket.pages; -import java.util.List; - import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.markup.repeater.data.DataView; -import org.apache.wicket.markup.repeater.data.ListDataProvider; -import org.eclipse.jgit.lib.Repository; -import com.gitblit.utils.JGitUtils; -import com.gitblit.wicket.LinkPanel; import com.gitblit.wicket.RepositoryPage; -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.panels.AnnotatedTagLinksPanel; -import com.gitblit.wicket.panels.TagLinksPanel; +import com.gitblit.wicket.panels.TagsPanel; public class TagsPage extends RepositoryPage { public TagsPage(PageParameters params) { super(params); - Repository r = getRepository(); - List<RefModel> tags = JGitUtils.getTags(r, -1); - - // shortlog - add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter())); - - ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags); - DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) { - private static final long serialVersionUID = 1L; - int counter = 0; - - public void populateItem(final Item<RefModel> item) { - final RefModel entry = item.getModelObject(); - item.add(createDateLabel("tagDate", entry.getDate())); - - item.add(new LinkPanel("tagName", "list name", entry.getDisplayName(), CommitPage.class, newCommitParameter(entry.getObjectId().getName()))); - - if (entry.isAnnotatedTag()) { - // annotated tag - item.add(new LinkPanel("tagDescription", "list subject", entry.getShortLog(), TagPage.class, newCommitParameter(entry.getObjectId().getName()))); - item.add(new AnnotatedTagLinksPanel("tagLinks", repositoryName, entry)); - } else { - // simple tag on commit object - item.add(new Label("tagDescription", "")); - item.add(new TagLinksPanel("tagLinks", repositoryName, entry)); - } - - setAlternatingBackground(item, counter); - counter++; - } - }; - add(tagView); + + add(new TagsPanel("tagsPanel", repositoryName, getRepository(), -1)); + } @Override diff --git a/src/com/gitblit/wicket/pages/TicGitPage.html b/src/com/gitblit/wicket/pages/TicGitPage.html index 262257e..e339232 100644 --- a/src/com/gitblit/wicket/pages/TicGitPage.html +++ b/src/com/gitblit/wicket/pages/TicGitPage.html @@ -11,7 +11,7 @@ <div wicket:id="pageLinks">[page links]</div> <!-- header --> - <div style="margin-top:5px;" class="header" wicket:id="summary">[header]</div> + <div style="margin-top:5px;" class="header" wicket:id="header">[header]</div> <!-- tickets --> <table style="width:100%" class="pretty"> diff --git a/src/com/gitblit/wicket/pages/TicGitPage.java b/src/com/gitblit/wicket/pages/TicGitPage.java index 001002c..2cfb772 100644 --- a/src/com/gitblit/wicket/pages/TicGitPage.java +++ b/src/com/gitblit/wicket/pages/TicGitPage.java @@ -7,10 +7,10 @@ import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; -import org.eclipse.jgit.lib.Repository; import com.gitblit.utils.JGitUtils; import com.gitblit.utils.TicGitTicket; +import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.LinkPanel; import com.gitblit.wicket.RepositoryPage; import com.gitblit.wicket.WicketUtils; @@ -20,11 +20,10 @@ public TicGitPage(PageParameters params) { super(params); - Repository r = getRepository(); - List<TicGitTicket> tickets = JGitUtils.getTicGitTickets(r); + List<TicGitTicket> tickets = JGitUtils.getTicGitTickets(getRepository()); - // shortlog - add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter())); + // header + add(new LinkPanel("header", "title", repositoryName, SummaryPage.class, newRepositoryParameter())); ListDataProvider<TicGitTicket> ticketsDp = new ListDataProvider<TicGitTicket>(tickets); DataView<TicGitTicket> ticketsView = new DataView<TicGitTicket>("ticket", ticketsDp) { @@ -36,11 +35,11 @@ Label stateLabel = new Label("ticketState", entry.state); WicketUtils.setTicketCssClass(stateLabel, entry.state); item.add(stateLabel); - item.add(createDateLabel("ticketDate", entry.date)); - item.add(new Label("ticketHandler", trimString(entry.handler, 30))); - item.add(new LinkPanel("ticketTitle", null, trimString(entry.title, 80), TicGitTicketPage.class, newPathParameter(entry.name))); + item.add(WicketUtils.createDateLabel("ticketDate", entry.date, GitBlitWebSession.get().getTimezone())); + item.add(new Label("ticketHandler", WicketUtils.trimString(entry.handler, 30))); + item.add(new LinkPanel("ticketTitle", null, WicketUtils.trimString(entry.title, 80), TicGitTicketPage.class, newPathParameter(entry.name))); - setAlternatingBackground(item, counter); + WicketUtils.setAlternatingBackground(item, counter); counter++; } }; diff --git a/src/com/gitblit/wicket/pages/TicGitTicketPage.html b/src/com/gitblit/wicket/pages/TicGitTicketPage.html index 5b39268..47fa87b 100644 --- a/src/com/gitblit/wicket/pages/TicGitTicketPage.html +++ b/src/com/gitblit/wicket/pages/TicGitTicketPage.html @@ -30,7 +30,7 @@ <tbody> <tr wicket:id="comment"> <td class="date"><span wicket:id="commentDate">[comment date]</span></td> - <td><b><div wicket:id="commentAuthor">[comment author]</div></b></td> + <td class="author"><span wicket:id="commentAuthor">[comment author]</span></td> <td><div wicket:id="commentText">[comment text]</div></td> </tr> </tbody> diff --git a/src/com/gitblit/wicket/pages/TicGitTicketPage.java b/src/com/gitblit/wicket/pages/TicGitTicketPage.java index 06a7a5a..5d3ceb4 100644 --- a/src/com/gitblit/wicket/pages/TicGitTicketPage.java +++ b/src/com/gitblit/wicket/pages/TicGitTicketPage.java @@ -41,10 +41,10 @@ public void populateItem(final Item<Comment> item) { final Comment entry = item.getModelObject(); - item.add(createDateLabel("commentDate", entry.date)); + item.add(WicketUtils.createDateLabel("commentDate", entry.date, GitBlitWebSession.get().getTimezone())); item.add(new Label("commentAuthor", entry.author)); item.add(new Label("commentText", prepareComment(entry.text)).setEscapeModelStrings(false)); - setAlternatingBackground(item, counter); + WicketUtils.setAlternatingBackground(item, counter); counter++; } }; diff --git a/src/com/gitblit/wicket/panels/AdminLinksPanel.java b/src/com/gitblit/wicket/panels/AdminLinksPanel.java index 628036f..3199447 100644 --- a/src/com/gitblit/wicket/panels/AdminLinksPanel.java +++ b/src/com/gitblit/wicket/panels/AdminLinksPanel.java @@ -1,10 +1,11 @@ package com.gitblit.wicket.panels; import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.panel.Panel; import com.gitblit.wicket.pages.RepositoriesPage; -public class AdminLinksPanel extends BasePanel { +public class AdminLinksPanel extends Panel { private static final long serialVersionUID = 1L; diff --git a/src/com/gitblit/wicket/panels/AnnotatedTagLinksPanel.html b/src/com/gitblit/wicket/panels/AnnotatedTagLinksPanel.html deleted file mode 100644 index 1bedc69..0000000 --- a/src/com/gitblit/wicket/panels/AnnotatedTagLinksPanel.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> - -<wicket:panel> - <div class="link"> - <a wicket:id="tag"><wicket:message key="gb.tag"></wicket:message></a> | <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a> - </div> -</wicket:panel> -</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/AnnotatedTagLinksPanel.java b/src/com/gitblit/wicket/panels/AnnotatedTagLinksPanel.java deleted file mode 100644 index 3a494df..0000000 --- a/src/com/gitblit/wicket/panels/AnnotatedTagLinksPanel.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gitblit.wicket.panels; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.pages.CommitPage; -import com.gitblit.wicket.pages.ShortLogPage; -import com.gitblit.wicket.pages.TagPage; - - -public class AnnotatedTagLinksPanel extends BasePanel { - - private static final long serialVersionUID = 1L; - - public AnnotatedTagLinksPanel(String id, String repositoryName, RefModel tag) { - super(id); - add(new BookmarkablePageLink<Void>("tag", TagPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getObjectId().getName()))); - add(new BookmarkablePageLink<Void>("commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getCommitId().getName()))); - add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName()))); - } -} \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/BasePanel.java b/src/com/gitblit/wicket/panels/BasePanel.java deleted file mode 100644 index 48f5218..0000000 --- a/src/com/gitblit/wicket/panels/BasePanel.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gitblit.wicket.panels; - -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.StringResourceModel; - -public abstract class BasePanel extends Panel { - - private static final long serialVersionUID = 1L; - - public BasePanel(String id) { - super(id); - } - - public StringResourceModel stringModel(String key) { - return new StringResourceModel(key, this, null); - } -} diff --git a/src/com/gitblit/wicket/panels/BranchLinksPanel.html b/src/com/gitblit/wicket/panels/BranchLinksPanel.html deleted file mode 100644 index 3e51948..0000000 --- a/src/com/gitblit/wicket/panels/BranchLinksPanel.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> - -<wicket:panel> - <div class="link"> - <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> - </div> -</wicket:panel> -</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/BranchLinksPanel.java b/src/com/gitblit/wicket/panels/BranchLinksPanel.java deleted file mode 100644 index ccc8f4e..0000000 --- a/src/com/gitblit/wicket/panels/BranchLinksPanel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.gitblit.wicket.panels; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.pages.ShortLogPage; -import com.gitblit.wicket.pages.TreePage; - -public class BranchLinksPanel extends BasePanel { - - private static final long serialVersionUID = 1L; - - public BranchLinksPanel(String id, String repositoryName, RefModel tag) { - super(id); - add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName()))); - add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName()))); - } -} \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.html b/src/com/gitblit/wicket/panels/BranchesPanel.html new file mode 100644 index 0000000..50a1681 --- /dev/null +++ b/src/com/gitblit/wicket/panels/BranchesPanel.html @@ -0,0 +1,34 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" + xml:lang="en" + lang="en"> + +<body> +<wicket:panel> + + <!-- header --> + <div class="header" wicket:id="branches">[branches header]</div> + + <table style="width:100%;" class="pretty"> + <tbody> + <tr wicket:id="branch"> + <td class="date"><span wicket:id="branchDate">[branch date]</span></td> + <td><span wicket:id="branchName">[branch name]</span></td> + <td><span wicket:id="branchType">[branch type]</span></td> + <td class="rightAlign"> + <div class="link"> + <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> + </div> + </td> + </tr> + </tbody> + </table> + + <div wicket:id="allBranches">[all branches]</div> + + <!-- spacer --> + <div style="padding:5px;"></div> +</wicket:panel> +</body> +</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.java b/src/com/gitblit/wicket/panels/BranchesPanel.java new file mode 100644 index 0000000..dd4596d --- /dev/null +++ b/src/com/gitblit/wicket/panels/BranchesPanel.java @@ -0,0 +1,84 @@ +package com.gitblit.wicket.panels; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.markup.repeater.data.DataView; +import org.apache.wicket.markup.repeater.data.ListDataProvider; +import org.apache.wicket.model.StringResourceModel; +import org.eclipse.jgit.lib.Constants; +import org.eclipse.jgit.lib.Repository; + +import com.gitblit.utils.JGitUtils; +import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.LinkPanel; +import com.gitblit.wicket.WicketUtils; +import com.gitblit.wicket.models.RefModel; +import com.gitblit.wicket.pages.BranchesPage; +import com.gitblit.wicket.pages.LogPage; +import com.gitblit.wicket.pages.SummaryPage; +import com.gitblit.wicket.pages.TreePage; + +public class BranchesPanel extends Panel { + + private static final long serialVersionUID = 1L; + + public BranchesPanel(String wicketId, final String repositoryName, Repository r, final int maxCount) { + super(wicketId); + + // branches + List<RefModel> branches = new ArrayList<RefModel>(); + branches.addAll(JGitUtils.getLocalBranches(r, maxCount)); + branches.addAll(JGitUtils.getRemoteBranches(r, maxCount)); + Collections.sort(branches); + Collections.reverse(branches); + if (maxCount > 0 && branches.size() > maxCount) { + branches = new ArrayList<RefModel>(branches.subList(0, maxCount)); + } + + if (maxCount > 0) { + // summary page + // show branches page link + add(new LinkPanel("branches", "title", new StringResourceModel("gb.branches", this, null), BranchesPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } else { + // branches page + // show repository summary page link + add(new LinkPanel("branches", "title", repositoryName, SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } + + ListDataProvider<RefModel> branchesDp = new ListDataProvider<RefModel>(branches); + DataView<RefModel> branchesView = new DataView<RefModel>("branch", branchesDp) { + private static final long serialVersionUID = 1L; + int counter = 0; + + public void populateItem(final Item<RefModel> item) { + final RefModel entry = item.getModelObject(); + + item.add(WicketUtils.createDateLabel("branchDate", entry.getDate(), GitBlitWebSession.get().getTimezone())); + + item.add(new LinkPanel("branchName", "list name", WicketUtils.trimString(entry.getDisplayName(), 28), LogPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + + // only show branch type on the branches page + boolean remote = entry.getName().startsWith(Constants.R_REMOTES); + item.add(new Label("branchType", remote ? getString("gb.remote"):getString("gb.local")).setVisible(maxCount <= 0)); + + item.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + item.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + + WicketUtils.setAlternatingBackground(item, counter); + counter++; + } + }; + add(branchesView); + if (branches.size() < maxCount || maxCount <= 0) { + add(new Label("allBranches", "").setVisible(false)); + } else { + add(new LinkPanel("allBranches", "link", new StringResourceModel("gb.allBranches", this, null), BranchesPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } + } +} diff --git a/src/com/gitblit/wicket/panels/LogPanel.html b/src/com/gitblit/wicket/panels/LogPanel.html new file mode 100644 index 0000000..e342f00 --- /dev/null +++ b/src/com/gitblit/wicket/panels/LogPanel.html @@ -0,0 +1,34 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" + xml:lang="en" + lang="en"> + +<body> +<wicket:panel> + + <!-- header --> + <div class="header" wicket:id="header">[log header]</div> + + <table style="width:100%" class="pretty"> + <tbody> + <tr wicket:id="commit"> + <td class="date"><span wicket:id="commitDate">[commit date]</span></td> + <td class="author"><span wicket:id="commitAuthor">[commit author]</span></td> + <td><div wicket:id="commitShortMessage">[commit short message]</div></td> + <td class="rightAlign"><div wicket:id="commitRefs">[commit refs]</div></td> + <td class="rightAlign"><div class="link"> + <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> + </div> + </td> + </tr> + </tbody> + </table> + <div class="pager" wicket:id="pageLogs">[pager]</div> + <div wicket:id="moreLogs">[more...]</div> + + <!-- spacer --> + <div style="padding:5px;"></div> +</wicket:panel> +</body> +</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/LogPanel.java b/src/com/gitblit/wicket/panels/LogPanel.java new file mode 100644 index 0000000..630be61 --- /dev/null +++ b/src/com/gitblit/wicket/panels/LogPanel.java @@ -0,0 +1,118 @@ +package com.gitblit.wicket.panels; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.navigation.paging.PagingNavigator; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.markup.repeater.data.DataView; +import org.apache.wicket.markup.repeater.data.ListDataProvider; +import org.apache.wicket.model.StringResourceModel; +import org.eclipse.jgit.lib.ObjectId; +import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.revwalk.RevCommit; + +import com.gitblit.utils.JGitUtils; +import com.gitblit.wicket.GitBlitWebApp; +import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.LinkPanel; +import com.gitblit.wicket.WicketUtils; +import com.gitblit.wicket.pages.CommitPage; +import com.gitblit.wicket.pages.DiffPage; +import com.gitblit.wicket.pages.LogPage; +import com.gitblit.wicket.pages.SummaryPage; +import com.gitblit.wicket.pages.TreePage; + +public class LogPanel extends Panel { + + private static final long serialVersionUID = 1L; + + public LogPanel(String wicketId, final String repositoryName, Repository r, int maxCount, boolean showPager) { + super(wicketId); + + final Map<ObjectId, List<String>> allRefs = JGitUtils.getAllRefs(r); + List<RevCommit> commits = JGitUtils.getRevLog(r, maxCount); + + // header + if (showPager) { + // shortlog page + // show repository summary page link + add(new LinkPanel("header", "title", repositoryName, SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } else { + // summary page + // show shortlog page link + add(new LinkPanel("header", "title", new StringResourceModel("gb.log", this, null), LogPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } + + ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits); + DataView<RevCommit> logView = new DataView<RevCommit>("commit", dp) { + private static final long serialVersionUID = 1L; + int counter = 0; + + public void populateItem(final Item<RevCommit> item) { + final RevCommit entry = item.getModelObject(); + final Date date = JGitUtils.getCommitDate(entry); + + item.add(WicketUtils.createDateLabel("commitDate", date, GitBlitWebSession.get().getTimezone())); + + String author = entry.getAuthorIdent().getName(); + item.add(WicketUtils.createAuthorLabel("commitAuthor", author)); + + String shortMessage = entry.getShortMessage(); + String trimmedMessage = WicketUtils.trimShortLog(shortMessage); + LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName())); + if (!shortMessage.equals(trimmedMessage)) { + WicketUtils.setHtmlTitle(shortlog, shortMessage); + } + item.add(shortlog); + + item.add(new RefsPanel("commitRefs", entry, allRefs)); + + item.add(new BookmarkablePageLink<Void>("view", CommitPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + item.add(new BookmarkablePageLink<Void>("diff", DiffPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + item.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + + WicketUtils.setAlternatingBackground(item, counter); + counter++; + } + }; + add(logView); + + // determine to show pager, more, or neither + if (maxCount <= 0) { + // no display limit + add(new Label("moreLogs", "").setVisible(false)); + add(new Label("pageLogs", "").setVisible(false)); + } else { + if (commits.size() == maxCount) { + + } + if (showPager) { + // paging + add(new Label("moreLogs", "").setVisible(false)); + if (commits.size() == maxCount) { + // show pager + logView.setItemsPerPage(GitBlitWebApp.PAGING_ITEM_COUNT); + add(new PagingNavigator("pageLogs", logView)); + } else { + // nothing to page + add(new Label("pageLogs", "").setVisible(false)); + } + } else { + // more + add(new Label("pageLogs", "").setVisible(false)); + if (commits.size() == maxCount) { + // show more + add(new LinkPanel("moreLogs", "link", new StringResourceModel("gb.moreLogs", this, null), LogPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } else { + // no more + add(new Label("moreLogs", "").setVisible(false)); + } + } + } + } +} diff --git a/src/com/gitblit/wicket/panels/PageLinksPanel.html b/src/com/gitblit/wicket/panels/PageLinksPanel.html index db82728..f2e4d31 100644 --- a/src/com/gitblit/wicket/panels/PageLinksPanel.html +++ b/src/com/gitblit/wicket/panels/PageLinksPanel.html @@ -7,7 +7,7 @@ <wicket:panel> <!-- page nav links --> <div class="page_nav"> - <a wicket:id="summary"><wicket:message key="gb.summary"></wicket:message></a> | <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a> | <a wicket:id="branches"><wicket:message key="gb.branches"></wicket:message></a> | <a wicket:id="tags"><wicket:message key="gb.tags"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> <span wicket:id="extra"><span wicket:id="extraSeparator"></span><span wicket:id="extraLink"></span></span> + <a wicket:id="summary"><wicket:message key="gb.summary"></wicket:message></a> | <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> | <a wicket:id="branches"><wicket:message key="gb.branches"></wicket:message></a> | <a wicket:id="tags"><wicket:message key="gb.tags"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> <span wicket:id="extra"><span wicket:id="extraSeparator"></span><span wicket:id="extraLink"></span></span> </div> </wicket:panel> </html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/PageLinksPanel.java b/src/com/gitblit/wicket/panels/PageLinksPanel.java index d9c2527..9c6298c 100644 --- a/src/com/gitblit/wicket/panels/PageLinksPanel.java +++ b/src/com/gitblit/wicket/panels/PageLinksPanel.java @@ -6,9 +6,9 @@ import java.util.Map; import org.apache.wicket.Component; -import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; @@ -16,14 +16,15 @@ import com.gitblit.utils.JGitUtils; import com.gitblit.wicket.LinkPanel; +import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.BranchesPage; -import com.gitblit.wicket.pages.ShortLogPage; +import com.gitblit.wicket.pages.LogPage; import com.gitblit.wicket.pages.SummaryPage; import com.gitblit.wicket.pages.TagsPage; import com.gitblit.wicket.pages.TicGitPage; import com.gitblit.wicket.pages.TreePage; -public class PageLinksPanel extends BasePanel { +public class PageLinksPanel extends Panel { private static final long serialVersionUID = 1L; @@ -33,7 +34,7 @@ { put("summary", "gb.summary"); - put("shortlog", "gb.shortlog"); + put("log", "gb.log"); put("branches", "gb.branches"); put("tags", "gb.tags"); put("tree", "gb.tree"); @@ -45,11 +46,11 @@ super(id); // summary - add(new BookmarkablePageLink<Void>("summary", SummaryPage.class, new PageParameters("p=" + repositoryName))); - add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName))); - add(new BookmarkablePageLink<Void>("branches", BranchesPage.class, new PageParameters("p=" + repositoryName))); - add(new BookmarkablePageLink<Void>("tags", TagsPage.class, new PageParameters("p=" + repositoryName))); - add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=HEAD"))); + add(new BookmarkablePageLink<Void>("summary", SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + add(new BookmarkablePageLink<Void>("branches", BranchesPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + add(new BookmarkablePageLink<Void>("tags", TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newRepositoryParameter(repositoryName))); // Add dynamic repository extras List<String> extras = new ArrayList<String>(); @@ -65,7 +66,7 @@ String extra = item.getModelObject(); if (extra.equals("ticgit")) { item.add(new Label("extraSeparator", " | ")); - item.add(new LinkPanel("extraLink", null, "ticgit", TicGitPage.class, new PageParameters("p=" + repositoryName))); + item.add(new LinkPanel("extraLink", null, "ticgit", TicGitPage.class, WicketUtils.newRepositoryParameter(repositoryName))); } } }; @@ -77,8 +78,10 @@ String key = knownPages.get(wicketId); String linkName = getString(key); if (linkName.equals(pageName)) { - Component c = get(wicketId); - c.setEnabled(false); + Component c = get(wicketId); + if (c != null) { + c.setEnabled(false); + } break; } } diff --git a/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java b/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java index a8a5c28..d27133c 100644 --- a/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java +++ b/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; -import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.repeater.Item; @@ -12,6 +11,7 @@ import org.apache.wicket.markup.repeater.data.ListDataProvider; import com.gitblit.wicket.LinkPanel; +import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.TreePage; public class PathBreadcrumbsPanel extends Panel { @@ -49,7 +49,7 @@ parameters += ",f=" + path; } - item.add(new LinkPanel("pathLink", null, entry.name, TreePage.class, new PageParameters(parameters))); + item.add(new LinkPanel("pathLink", null, entry.name, TreePage.class, WicketUtils.newPathParameter(repositoryName, commitId, path))); item.add(new Label("pathSeparator", entry.isLeaf ? "" : "/")); } }; diff --git a/src/com/gitblit/wicket/panels/PathLinksPanel.html b/src/com/gitblit/wicket/panels/PathLinksPanel.html deleted file mode 100644 index 8079ecc..0000000 --- a/src/com/gitblit/wicket/panels/PathLinksPanel.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> - -<wicket:panel> - <div class="link"> - <a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a> - </div> -</wicket:panel> -</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/PathLinksPanel.java b/src/com/gitblit/wicket/panels/PathLinksPanel.java deleted file mode 100644 index e1c489f..0000000 --- a/src/com/gitblit/wicket/panels/PathLinksPanel.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gitblit.wicket.panels; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import com.gitblit.wicket.models.PathModel; -import com.gitblit.wicket.pages.BlobPage; -import com.gitblit.wicket.pages.DiffPage; - - -public class PathLinksPanel extends BasePanel { - - private static final long serialVersionUID = 1L; - - public PathLinksPanel(String id, String repositoryName, PathModel path) { - super(id); - add(new BookmarkablePageLink<Void>("diff", DiffPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path))); - add(new BookmarkablePageLink<Void>("view", BlobPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path))); - add(new BookmarkablePageLink<Void>("history", BlobPage.class, new PageParameters()).setEnabled(false)); - } -} \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/ShortLogLinksPanel.html b/src/com/gitblit/wicket/panels/ShortLogLinksPanel.html deleted file mode 100644 index 2208ceb..0000000 --- a/src/com/gitblit/wicket/panels/ShortLogLinksPanel.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> - -<wicket:panel> - <div class="link"> - <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitdiff"><wicket:message key="gb.commitdiff"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> - </div> -</wicket:panel> -</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/ShortLogLinksPanel.java b/src/com/gitblit/wicket/panels/ShortLogLinksPanel.java deleted file mode 100644 index bf2c772..0000000 --- a/src/com/gitblit/wicket/panels/ShortLogLinksPanel.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gitblit.wicket.panels; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import com.gitblit.wicket.pages.CommitPage; -import com.gitblit.wicket.pages.DiffPage; -import com.gitblit.wicket.pages.TreePage; - - -public class ShortLogLinksPanel extends BasePanel { - - private static final long serialVersionUID = 1L; - - public ShortLogLinksPanel(String id, String repositoryName, String commitId) { - super(id); - - add(new BookmarkablePageLink<Void>("commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId))); - add(new BookmarkablePageLink<Void>("commitdiff", DiffPage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId))); - add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId))); - } -} \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/TagLinksPanel.html b/src/com/gitblit/wicket/panels/TagLinksPanel.html deleted file mode 100644 index 34a39c9..0000000 --- a/src/com/gitblit/wicket/panels/TagLinksPanel.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> - -<wicket:panel> - <div class="link"> - <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a> - </div> -</wicket:panel> -</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/TagLinksPanel.java b/src/com/gitblit/wicket/panels/TagLinksPanel.java deleted file mode 100644 index e7f7c8d..0000000 --- a/src/com/gitblit/wicket/panels/TagLinksPanel.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gitblit.wicket.panels; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.pages.CommitPage; -import com.gitblit.wicket.pages.ShortLogPage; - - -public class TagLinksPanel extends BasePanel { - - private static final long serialVersionUID = 1L; - - public TagLinksPanel(String id, String repositoryName, RefModel tag) { - super(id); - add(new BookmarkablePageLink<Void>("commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getCommitId().getName()))); - add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName()))); - } -} \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/TagsPanel.html b/src/com/gitblit/wicket/panels/TagsPanel.html new file mode 100644 index 0000000..599412d --- /dev/null +++ b/src/com/gitblit/wicket/panels/TagsPanel.html @@ -0,0 +1,33 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" + xml:lang="en" + lang="en"> + +<body> +<wicket:panel> + + <!-- tags --> + <div class="header" wicket:id="header">[tags header]</div> + <table style="width:100%" class="pretty"> + <tbody> + <tr wicket:id="tag"> + <td class="date"><span wicket:id="tagDate">[tag date]</span></td> + <td><b><span wicket:id="tagName">[tag name]</span></b></td> + <td><span wicket:id="tagDescription">[tag description]</span></td> + <td class="rightAlign"> + <div class="link"> + <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> + </div> + </td> + </tr> + </tbody> + </table> + + <div wicket:id="allTags">[all tags]</div> + + <!-- spacer --> + <div style="padding:5px;"></div> +</wicket:panel> +</body> +</html> \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/TagsPanel.java b/src/com/gitblit/wicket/panels/TagsPanel.java new file mode 100644 index 0000000..92307b4 --- /dev/null +++ b/src/com/gitblit/wicket/panels/TagsPanel.java @@ -0,0 +1,81 @@ +package com.gitblit.wicket.panels; + +import java.util.List; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.markup.repeater.data.DataView; +import org.apache.wicket.markup.repeater.data.ListDataProvider; +import org.apache.wicket.model.StringResourceModel; +import org.eclipse.jgit.lib.Repository; + +import com.gitblit.utils.JGitUtils; +import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.LinkPanel; +import com.gitblit.wicket.WicketUtils; +import com.gitblit.wicket.models.RefModel; +import com.gitblit.wicket.pages.CommitPage; +import com.gitblit.wicket.pages.LogPage; +import com.gitblit.wicket.pages.SummaryPage; +import com.gitblit.wicket.pages.TagPage; +import com.gitblit.wicket.pages.TagsPage; + +public class TagsPanel extends Panel { + + private static final long serialVersionUID = 1L; + + public TagsPanel(String wicketId, final String repositoryName, Repository r, final int maxCount) { + super(wicketId); + + // header + List<RefModel> tags = JGitUtils.getTags(r, maxCount); + if (maxCount > 0) { + // summary page + // show tags page link + add(new LinkPanel("header", "title", new StringResourceModel("gb.tags", this, null), TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } else { + // tags page + // show repository summary page link + add(new LinkPanel("header", "title", repositoryName, SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } + + ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags); + DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) { + private static final long serialVersionUID = 1L; + int counter = 0; + + public void populateItem(final Item<RefModel> item) { + RefModel entry = item.getModelObject(); + + item.add(WicketUtils.createDateLabel("tagDate", entry.getDate(), GitBlitWebSession.get().getTimezone())); + + item.add(new LinkPanel("tagName", "list name", entry.getDisplayName(), CommitPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getCommitId().getName()))); + String message; + if (maxCount > 0) { + message = WicketUtils.trimString(entry.getShortLog(), 40); + } else { + message = entry.getShortLog(); + } + if (entry.isAnnotatedTag()) { + item.add(new LinkPanel("tagDescription", "list subject", message, TagPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getObjectId().getName()))); + } else { + item.add(new LinkPanel("tagDescription", "list subject", message, CommitPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getObjectId().getName()))); + } + item.add(new BookmarkablePageLink<Void>("view", TagPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getObjectId().getName())).setEnabled(entry.isAnnotatedTag())); + item.add(new BookmarkablePageLink<Void>("commit", CommitPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getCommitId().getName()))); + item.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newCommitParameter(repositoryName, entry.getName()))); + + WicketUtils.setAlternatingBackground(item, counter); + counter++; + } + }; + add(tagView); + if (tags.size() < maxCount || maxCount <= 0) { + add(new Label("allTags", "").setVisible(false)); + } else { + add(new LinkPanel("allTags", "link", new StringResourceModel("gb.allTags", this, null), TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); + } + } +} diff --git a/src/com/gitblit/wicket/panels/TreeBlobLinksPanel.java b/src/com/gitblit/wicket/panels/TreeBlobLinksPanel.java index c8277ae..e1e6f79 100644 --- a/src/com/gitblit/wicket/panels/TreeBlobLinksPanel.java +++ b/src/com/gitblit/wicket/panels/TreeBlobLinksPanel.java @@ -1,20 +1,21 @@ package com.gitblit.wicket.panels; -import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.panel.Panel; +import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.models.PathModel; import com.gitblit.wicket.pages.BlobPage; -public class TreeBlobLinksPanel extends BasePanel { +public class TreeBlobLinksPanel extends Panel { private static final long serialVersionUID = 1L; public TreeBlobLinksPanel(String id, String repositoryName, PathModel path) { super(id); - add(new BookmarkablePageLink<Void>("view", BlobPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path))); - add(new BookmarkablePageLink<Void>("raw", BlobPage.class, new PageParameters()).setEnabled(false)); - add(new BookmarkablePageLink<Void>("history", BlobPage.class, new PageParameters()).setEnabled(false)); + add(new BookmarkablePageLink<Void>("view", BlobPage.class, WicketUtils.newPathParameter(repositoryName, path.commitId, path.path))); + add(new BookmarkablePageLink<Void>("raw", BlobPage.class).setEnabled(false)); + add(new BookmarkablePageLink<Void>("history", BlobPage.class).setEnabled(false)); } } \ No newline at end of file diff --git a/src/com/gitblit/wicket/panels/TreeLinksPanel.java b/src/com/gitblit/wicket/panels/TreeLinksPanel.java index 9a42943..4965004 100644 --- a/src/com/gitblit/wicket/panels/TreeLinksPanel.java +++ b/src/com/gitblit/wicket/panels/TreeLinksPanel.java @@ -1,19 +1,20 @@ package com.gitblit.wicket.panels; -import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.panel.Panel; +import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.models.PathModel; import com.gitblit.wicket.pages.TreePage; -public class TreeLinksPanel extends BasePanel { +public class TreeLinksPanel extends Panel { private static final long serialVersionUID = 1L; public TreeLinksPanel(String id, String repositoryName, PathModel path) { super(id); - add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path))); - add(new BookmarkablePageLink<Void>("history", TreePage.class, new PageParameters()).setEnabled(false)); + add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newPathParameter(repositoryName, path.commitId, path.path))); + add(new BookmarkablePageLink<Void>("history", TreePage.class).setEnabled(false)); } } \ No newline at end of file diff --git a/src/com/gitblit/wicket/resources/gitblit.css b/src/com/gitblit/wicket/resources/gitblit.css index 6e1717c..42ab2c0 100644 --- a/src/com/gitblit/wicket/resources/gitblit.css +++ b/src/com/gitblit/wicket/resources/gitblit.css @@ -103,6 +103,12 @@ font-size: inherit; } +div.link em, div.link span em { + font-style: normal; + font-family: inherit; + font-size: inherit; +} + div.page_header { height: 25px; padding: 5px; @@ -157,6 +163,10 @@ text-decoration: underline; } +div.page_nav em { + font-style: normal; +} + div.page_nav2 { padding: 2px 5px 7px 5px; } -- Gitblit v1.9.1