James Moger
2011-05-11 dfb88962fdbd29f59abe92178bb042738d57c3e1
src/com/gitblit/wicket/pages/BlobPage.java
@@ -11,12 +11,12 @@
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.StoredSettings;
import com.gitblit.utils.JGitUtils;
import com.gitblit.wicket.LinkPanel;
import com.gitblit.wicket.RepositoryPage;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
public class BlobPage extends RepositoryPage {
@@ -26,32 +26,42 @@
      final String blobPath = WicketUtils.getPath(params);
      String extension = null;
      if (blobPath.lastIndexOf('.') > -1) {
         extension = blobPath.substring(blobPath.lastIndexOf('.') + 1).toLowerCase();
      }
      // see if we should redirect to the markdown page
      for (String ext : GitBlit.self().settings().getStrings(Keys.web.markdownExtensions)) {
         if (ext.equals(extension)) {
            setResponsePage(MarkdownPage.class, params);
            return;
         }
      }
      // standard blob view
      Repository r = getRepository();
      RevCommit commit = JGitUtils.getCommit(r, objectId);
      RevCommit commit = getCommit();
      // blob page links
      add(new Label("blameLink", getString("gb.blame")));
      add(new Label("historyLink", getString("gb.history")));
      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)));
      add(new LinkPanel("shortlog", "title", commit.getShortMessage(), CommitPage.class, newCommitParameter()));
      add(new CommitHeaderPanel("commitHeader", repositoryName, commit));
      add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, blobPath, objectId));
      String extension = null;
      if (blobPath.lastIndexOf('.') > -1) {
         extension = blobPath.substring(blobPath.lastIndexOf('.') + 1);
      }
      // Map the extensions to types
      Map<String, Integer> map = new HashMap<String, Integer>();
      for (String ext : StoredSettings.getStrings(Keys.web_prettyPrintExtensions)) {
      for (String ext : GitBlit.self().settings().getStrings(Keys.web.prettyPrintExtensions)) {
         map.put(ext.toLowerCase(), 1);
      }
      for (String ext : StoredSettings.getStrings(Keys.web_imageExtensions)) {
      for (String ext : GitBlit.self().settings().getStrings(Keys.web.imageExtensions)) {
         map.put(ext.toLowerCase(), 2);
      }
      for (String ext : StoredSettings.getStrings(Keys.web_binaryExtensions)) {
      for (String ext : GitBlit.self().settings().getStrings(Keys.web.binaryExtensions)) {
         map.put(ext.toLowerCase(), 3);
      }