James Moger
2014-10-10 a74ddc24545ec45d0bb82ca2bb8f628ffdaa9da3
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -191,14 +191,28 @@
   }
   private List<NavLink> registerNavLinks() {
      Repository r = getRepository();
      RepositoryModel model = getRepositoryModel();
      PageParameters params = null;
      PageParameters objectParams = null;
      if (!StringUtils.isEmpty(repositoryName)) {
         params = WicketUtils.newRepositoryParameter(getRepositoryName());
         objectParams = params;
         // preserve the objectid iff the objectid directly (or indirectly) refers to a ref
         if (isCommitPage() && !StringUtils.isEmpty(objectId)) {
            RevCommit commit = JGitUtils.getCommit(r, objectId);
            if (commit != null) {
               String bestId = getBestCommitId(commit);
               if (!commit.getName().equals(bestId)) {
                  objectParams = WicketUtils.newObjectParameter(getRepositoryName(), bestId);
               }
            }
         }
      }
      List<NavLink> navLinks = new ArrayList<NavLink>();
      Repository r = getRepository();
      RepositoryModel model = getRepositoryModel();
      // standard links
      if (RefLogUtils.getRefLogBranch(r) == null) {
@@ -213,13 +227,13 @@
         return navLinks;
      }
      navLinks.add(new PageNavLink("gb.commits", LogPage.class, params));
      navLinks.add(new PageNavLink("gb.tree", TreePage.class, params));
      navLinks.add(new PageNavLink("gb.commits", LogPage.class, objectParams));
      navLinks.add(new PageNavLink("gb.tree", TreePage.class, objectParams));
      if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(model) || app().tickets().hasTickets(model))) {
         PageParameters tParams = WicketUtils.newOpenTicketsParameter(getRepositoryName());
         navLinks.add(new PageNavLink("gb.tickets", TicketsPage.class, tParams));
      }
      navLinks.add(new PageNavLink("gb.docs", DocsPage.class, params, true));
      navLinks.add(new PageNavLink("gb.docs", DocsPage.class, objectParams, true));
      if (app().settings().getBoolean(Keys.web.allowForking, true)) {
         navLinks.add(new PageNavLink("gb.forks", ForksPage.class, params, true));
      }
@@ -453,7 +467,7 @@
      // find first branch match
      for (RefModel ref : JGitUtils.getLocalBranches(r, false, -1)) {
         if (ref.getObjectId().getName().equals(id)) {
            return ref.getName();
            return Repository.shortenRefName(ref.getName());
         }
      }
@@ -550,7 +564,8 @@
      String html;
      switch (model.commitMessageRenderer) {
      case MARKDOWN:
         html = MessageFormat.format("<div class='commit_message'>{0}</div>", content);
         String safeContent = app().xssFilter().relaxed(content);
         html = MessageFormat.format("<div class='commit_message'>{0}</div>", safeContent);
         break;
      default:
         html = MessageFormat.format("<pre class='commit_message'>{0}</pre>", content);
@@ -561,6 +576,10 @@
   protected abstract String getPageName();
   protected boolean isCommitPage() {
      return false;
   }
   protected Component createPersonPanel(String wicketId, PersonIdent identity,
         Constants.SearchType searchType) {
      String name = identity == null ? "" : identity.getName();