Paul Martin
2016-04-27 c2188a840bc4153ae92112b04b2e06a90d3944aa
src/main/java/com/gitblit/wicket/pages/BlobPage.java
@@ -21,13 +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.apache.wicket.markup.html.link.ExternalLink;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
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,6 +53,10 @@
      final String blobPath = WicketUtils.getPath(params);
      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
@@ -57,8 +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)));
         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));
@@ -72,7 +79,7 @@
         }
         // see if we should redirect to the doc page
         MarkupProcessor processor = new MarkupProcessor(app().settings());
         MarkupProcessor processor = new MarkupProcessor(app().settings(), app().xssFilter());
         for (String ext : processor.getMarkupExtensions()) {
            if (ext.equals(extension)) {
               setResponsePage(DocPage.class, params);
@@ -87,8 +94,8 @@
               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)));
         String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, objectId, blobPath);
         add(new ExternalLink("rawLink", rawUrl));
         add(new CommitHeaderPanel("commitHeader", repositoryName, commit));
@@ -115,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
@@ -130,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));
@@ -143,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));
@@ -186,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>");
@@ -217,6 +227,11 @@
   }
   @Override
   protected boolean isCommitPage() {
      return true;
   }
   @Override
   protected Class<? extends BasePage> getRepoNavPageClass() {
      return TreePage.class;
   }