From 3daba4304dba818d54eb9b74d8d35df5aab8fee5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 22 Nov 2013 10:36:05 -0500 Subject: [PATCH] Add pull request linking in changelog to generated documentation --- src/main/java/com/gitblit/wicket/pages/RepositoryPage.java | 64 +++++++++++++++++++++++-------- 1 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java index afbed86..93af1be 100644 --- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java @@ -37,7 +37,6 @@ import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.protocol.http.RequestUtils; import org.apache.wicket.request.target.basic.RedirectRequestTarget; import org.eclipse.jgit.diff.DiffEntry.ChangeType; import org.eclipse.jgit.lib.PersonIdent; @@ -75,7 +74,7 @@ public abstract class RepositoryPage extends RootPage { - private final Logger logger = LoggerFactory.getLogger(getClass()); + protected final Logger logger = LoggerFactory.getLogger(getClass()); private final String PARAM_STAR = "star"; @@ -197,6 +196,7 @@ } pages.put("commits", new PageRegistration("gb.commits", LogPage.class, params)); pages.put("tree", new PageRegistration("gb.tree", TreePage.class, params)); + pages.put("docs", new PageRegistration("gb.docs", DocsPage.class, params, true)); pages.put("compare", new PageRegistration("gb.compare", ComparePage.class, params, true)); if (GitBlit.getBoolean(Keys.web.allowForking, true)) { pages.put("forks", new PageRegistration("gb.forks", ForksPage.class, params, true)); @@ -204,9 +204,6 @@ // conditional links // per-repository extra page links - if (model.showReadme || model.useDocs) { - pages.put("docs", new PageRegistration("gb.docs", DocsPage.class, params, true)); - } if (JGitUtils.getPagesBranch(r) != null) { OtherPageLink pagesLink = new OtherPageLink("gb.pages", PagesServlet.asLink( getRequest().getRelativePathPrefixToContextRoot(), repositoryName, null), true); @@ -261,7 +258,14 @@ // indicate origin repository RepositoryModel model = getRepositoryModel(); if (StringUtils.isEmpty(model.originRepository)) { - add(new Label("originRepository").setVisible(false)); + if (model.isMirror) { + Fragment mirrorFrag = new Fragment("originRepository", "mirrorFragment", this); + Label lbl = new Label("originRepository", MessageFormat.format(getString("gb.mirrorOf"), "<b>" + model.origin + "</b>")); + mirrorFrag.add(lbl.setEscapeModelStrings(false)); + add(mirrorFrag); + } else { + add(new Label("originRepository").setVisible(false)); + } } else { RepositoryModel origin = GitBlit.self().getRepositoryModel(model.originRepository); if (origin == null) { @@ -399,6 +403,30 @@ return commit; } + protected String getBestCommitId(RevCommit commit) { + String head = null; + try { + head = r.resolve(getRepositoryModel().HEAD).getName(); + } catch (Exception e) { + } + + String id = commit.getName(); + if (!StringUtils.isEmpty(head) && head.equals(id)) { + // match default branch + return Repository.shortenRefName(getRepositoryModel().HEAD); + } + + // find first branch match + for (RefModel ref : JGitUtils.getLocalBranches(r, false, -1)) { + if (ref.getObjectId().getName().equals(id)) { + return ref.getName(); + } + } + + // return sha + return id; + } + protected Map<String, SubmoduleModel> getSubmodules(RevCommit commit) { if (submodules == null) { submodules = new HashMap<String, SubmoduleModel>(); @@ -482,12 +510,17 @@ add(new RefsPanel("refsPanel", repositoryName, c, JGitUtils.getAllRefs(r, getRepositoryModel().showRemoteBranches))); } - protected void addFullText(String wicketId, String text, boolean substituteRegex) { - String html = StringUtils.escapeForHtml(text, false); - if (substituteRegex) { - html = GitBlit.self().processCommitMessage(repositoryName, html); - } else { - html = StringUtils.breakLinesForHtml(html); + protected void addFullText(String wicketId, String text) { + RepositoryModel model = getRepositoryModel(); + String content = GitBlit.self().processCommitMessage(model, text); + String html; + switch (model.commitMessageRenderer) { + case MARKDOWN: + html = MessageFormat.format("<div class='commit_message'>{0}</div>", content); + break; + default: + html = MessageFormat.format("<pre class='commit_message'>{0}</pre>", content); + break; } add(new Label(wicketId, html).setEscapeModelStrings(false)); } @@ -649,9 +682,7 @@ String searchString = searchBoxModel.getObject(); if (StringUtils.isEmpty(searchString)) { // redirect to self to avoid wicket page update bug - PageParameters params = RepositoryPage.this.getPageParameters(); - String relativeUrl = urlFor(RepositoryPage.this.getClass(), params).toString(); - String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl); + String absoluteUrl = getCanonicalUrl(); getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl)); return; } @@ -673,8 +704,7 @@ // use an absolute url to workaround Wicket-Tomcat problems with // mounted url parameters (issue-111) PageParameters params = WicketUtils.newSearchParameter(repositoryName, null, searchString, searchType); - String relativeUrl = urlFor(searchPageClass, params).toString(); - String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl); + String absoluteUrl = getCanonicalUrl(searchPageClass, params); getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl)); } } -- Gitblit v1.9.1