From cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 05 Jan 2012 17:34:05 -0500 Subject: [PATCH] Fixed bug in receive hook for repositories in subfolders --- src/com/gitblit/wicket/pages/LogPage.java | 101 ++++++++++++++++++++++++-------------------------- 1 files changed, 48 insertions(+), 53 deletions(-) diff --git a/src/com/gitblit/wicket/pages/LogPage.java b/src/com/gitblit/wicket/pages/LogPage.java index 325596a..c012538 100644 --- a/src/com/gitblit/wicket/pages/LogPage.java +++ b/src/com/gitblit/wicket/pages/LogPage.java @@ -1,69 +1,64 @@ +/* + * Copyright 2011 gitblit.com. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ 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.basic.Label; -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 org.apache.wicket.markup.html.link.BookmarkablePageLink; -import com.gitblit.utils.JGitUtils; -import com.gitblit.utils.Utils; -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.panels.RefsPanel; - +import com.gitblit.wicket.panels.LogPanel; public class LogPage extends RepositoryPage { public LogPage(PageParameters params) { - super(params, "log"); + super(params); - Repository r = getRepository(); - final Map<ObjectId, List<String>> allRefs = JGitUtils.getAllRefs(r); - List<RevCommit> commits = JGitUtils.getRevLog(r, 100); - r.close(); + addSyndicationDiscoveryLink(); - add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter())); + int pageNumber = WicketUtils.getPage(params); + int prevPage = Math.max(0, pageNumber - 1); + int nextPage = pageNumber + 1; + LogPanel logPanel = new LogPanel("logPanel", repositoryName, objectId, getRepository(), -1, + pageNumber - 1); + boolean hasMore = logPanel.hasMore(); + add(logPanel); - // log - ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits); - DataView<RevCommit> logView = new DataView<RevCommit>("commit", dp) { - private static final long serialVersionUID = 1L; + add(new BookmarkablePageLink<Void>("firstPageTop", LogPage.class, + WicketUtils.newObjectParameter(repositoryName, objectId)) + .setEnabled(pageNumber > 1)); + add(new BookmarkablePageLink<Void>("prevPageTop", LogPage.class, + WicketUtils.newLogPageParameter(repositoryName, objectId, prevPage)) + .setEnabled(pageNumber > 1)); + add(new BookmarkablePageLink<Void>("nextPageTop", LogPage.class, + WicketUtils.newLogPageParameter(repositoryName, objectId, nextPage)) + .setEnabled(hasMore)); - public void populateItem(final Item<RevCommit> item) { - final RevCommit entry = item.getModelObject(); - final Date date = JGitUtils.getCommitDate(entry); + add(new BookmarkablePageLink<Void>("firstPageBottom", LogPage.class, + WicketUtils.newObjectParameter(repositoryName, objectId)) + .setEnabled(pageNumber > 1)); + add(new BookmarkablePageLink<Void>("prevPageBottom", LogPage.class, + WicketUtils.newLogPageParameter(repositoryName, objectId, prevPage)) + .setEnabled(pageNumber > 1)); + add(new BookmarkablePageLink<Void>("nextPageBottom", LogPage.class, + WicketUtils.newLogPageParameter(repositoryName, objectId, nextPage)) + .setEnabled(hasMore)); + } - item.add(new Label("timeAgo", Utils.timeAgo(date))); - - item.add(new LinkPanel("link", "title", entry.getShortMessage(), CommitPage.class, newCommitParameter(entry.getName()))); - - item.add(new RefsPanel("commitRefs", entry, allRefs)); - - String author = entry.getAuthorIdent().getName(); - item.add(createAuthorLabel("commitAuthor", author)); - - item.add(new Label("commitDate", GitBlitWebSession.get().formatDateTimeLong(date))); - - item.add(new Label("fullMessage", WicketUtils.breakLines(entry.getFullMessage())).setEscapeModelStrings(false)); - } - }; - logView.setItemsPerPage(GitBlitWebApp.PAGING_ITEM_COUNT); - add(logView); - add(new PagingNavigator("navigator", logView)); - - // footer - addFooter(); + @Override + protected String getPageName() { + return getString("gb.log"); } } -- Gitblit v1.9.1