From ed552ba47c02779c270ffd62841d6d1048dade70 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sun, 22 Nov 2015 14:37:16 -0500 Subject: [PATCH] Merge branch 'develop' --- src/main/java/com/gitblit/wicket/pages/BlobPage.java | 45 +++++++++++++++++++++++++++------------------ 1 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/BlobPage.java b/src/main/java/com/gitblit/wicket/pages/BlobPage.java index 56ad5b9..1ef8f22 100644 --- a/src/main/java/com/gitblit/wicket/pages/BlobPage.java +++ b/src/main/java/com/gitblit/wicket/pages/BlobPage.java @@ -21,15 +21,16 @@ import org.apache.wicket.Component; import org.apache.wicket.PageParameters; +import org.apache.wicket.RedirectException; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.eclipse.jgit.lib.Constants; +import org.apache.wicket.markup.html.link.ExternalLink; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; -import com.gitblit.GitBlit; import com.gitblit.Keys; +import com.gitblit.servlet.RawServlet; import com.gitblit.utils.JGitUtils; import com.gitblit.utils.StringUtils; import com.gitblit.wicket.CacheControl; @@ -50,7 +51,11 @@ Repository r = getRepository(); final String blobPath = WicketUtils.getPath(params); - String [] encodings = GitBlit.getEncodings(); + String [] encodings = getEncodings(); + + if (StringUtils.isEmpty(objectId) && StringUtils.isEmpty(blobPath)) { + throw new RedirectException(TreePage.class, WicketUtils.newRepositoryParameter(repositoryName)); + } if (StringUtils.isEmpty(blobPath)) { // blob by objectid @@ -59,9 +64,8 @@ WicketUtils.newPathParameter(repositoryName, objectId, blobPath)) .setEnabled(false)); add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class).setEnabled(false)); - add(new BookmarkablePageLink<Void>("rawLink", RawPage.class, - WicketUtils.newPathParameter(repositoryName, objectId, blobPath))); - add(new BookmarkablePageLink<Void>("headLink", BlobPage.class).setEnabled(false)); + String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, objectId, blobPath); + add(new ExternalLink("rawLink", rawUrl)); add(new CommitHeaderPanel("commitHeader", objectId)); add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, blobPath, objectId)); Component c = new Label("blobText", JGitUtils.getStringContent(r, objectId, encodings)); @@ -75,7 +79,7 @@ } // see if we should redirect to the doc page - MarkupProcessor processor = new MarkupProcessor(GitBlit.getSettings()); + MarkupProcessor processor = new MarkupProcessor(app().settings(), app().xssFilter()); for (String ext : processor.getMarkupExtensions()) { if (ext.equals(extension)) { setResponsePage(DocPage.class, params); @@ -83,18 +87,15 @@ } } - // manually get commit because it can be null - RevCommit commit = JGitUtils.getCommit(r, objectId); + RevCommit commit = getCommit(); // blob page links add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class, WicketUtils.newPathParameter(repositoryName, objectId, blobPath))); add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class, WicketUtils.newPathParameter(repositoryName, objectId, blobPath))); - add(new BookmarkablePageLink<Void>("rawLink", RawPage.class, - WicketUtils.newPathParameter(repositoryName, objectId, blobPath))); - add(new BookmarkablePageLink<Void>("headLink", BlobPage.class, - WicketUtils.newPathParameter(repositoryName, Constants.HEAD, blobPath))); + String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, objectId, blobPath); + add(new ExternalLink("rawLink", rawUrl)); add(new CommitHeaderPanel("commitHeader", repositoryName, commit)); @@ -102,13 +103,13 @@ // Map the extensions to types Map<String, Integer> map = new HashMap<String, Integer>(); - for (String ext : GitBlit.getStrings(Keys.web.prettyPrintExtensions)) { + for (String ext : app().settings().getStrings(Keys.web.prettyPrintExtensions)) { map.put(ext.toLowerCase(), 1); } - for (String ext : GitBlit.getStrings(Keys.web.imageExtensions)) { + for (String ext : app().settings().getStrings(Keys.web.imageExtensions)) { map.put(ext.toLowerCase(), 2); } - for (String ext : GitBlit.getStrings(Keys.web.binaryExtensions)) { + for (String ext : app().settings().getStrings(Keys.web.binaryExtensions)) { map.put(ext.toLowerCase(), 3); } @@ -121,7 +122,7 @@ case 2: // image blobs add(new Label("blobText").setVisible(false)); - add(new ExternalImage("blobImage", urlFor(RawPage.class, WicketUtils.newPathParameter(repositoryName, objectId, blobPath)).toString())); + add(new ExternalImage("blobImage", rawUrl)); break; case 3: // binary blobs @@ -136,6 +137,7 @@ table = missingBlob(blobPath, commit); } else { table = generateSourceView(source, extension, type == 1); + addBottomScriptInline("jQuery(prettyPrint);"); } add(new Label("blobText", table).setEscapeModelStrings(false)); add(new Image("blobImage").setVisible(false)); @@ -149,6 +151,7 @@ table = missingBlob(blobPath, commit); } else { table = generateSourceView(source, null, false); + addBottomScriptInline("jQuery(prettyPrint);"); } add(new Label("blobText", table).setEscapeModelStrings(false)); add(new Image("blobImage").setVisible(false)); @@ -192,7 +195,8 @@ } else { sb.append("<pre class=\"plainprint\">"); } - lines = StringUtils.escapeForHtml(source, true).split("\n"); + final int tabLength = app().settings().getInteger(Keys.web.tabLength, 4); + lines = StringUtils.escapeForHtml(source, true, tabLength).split("\n"); sb.append("<table width=\"100%\"><tbody>"); @@ -223,6 +227,11 @@ } @Override + protected boolean isCommitPage() { + return true; + } + + @Override protected Class<? extends BasePage> getRepoNavPageClass() { return TreePage.class; } -- Gitblit v1.9.1