From 9de1a56ac4a888289cd758d033cb02ece2bbca76 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gmail.com>
Date: Wed, 13 Nov 2013 20:16:59 -0500
Subject: [PATCH] Tweak pull request ref display
---
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java | 62 +++++++++++++++++++++++-------
1 files changed, 47 insertions(+), 15 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..70a2b9e 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";
@@ -204,7 +203,7 @@
// conditional links
// per-repository extra page links
- if (model.showReadme || model.useDocs) {
+ if (model.useDocs) {
pages.put("docs", new PageRegistration("gb.docs", DocsPage.class, params, true));
}
if (JGitUtils.getPagesBranch(r) != null) {
@@ -261,7 +260,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 +405,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 +512,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 +684,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 +706,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