James Moger
2015-11-22 ed552ba47c02779c270ffd62841d6d1048dade70
src/main/java/com/gitblit/wicket/pages/ForksPage.java
@@ -27,7 +27,6 @@
import org.apache.wicket.markup.repeater.data.ListDataProvider;
import org.eclipse.jgit.lib.PersonIdent;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.models.ForkModel;
import com.gitblit.models.RepositoryModel;
@@ -35,31 +34,36 @@
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.GravatarImage;
import com.gitblit.wicket.panels.AvatarImage;
import com.gitblit.wicket.panels.LinkPanel;
public class ForksPage extends RepositoryPage {
   public ForksPage(PageParameters params) {
      super(params);
      final RepositoryModel pageRepository = getRepositoryModel();
      ForkModel root = GitBlit.self().getForkNetwork(pageRepository.name);
      ForkModel root = app().repositories().getForkNetwork(pageRepository.name);
      List<FlatFork> network = flatten(root);
      ListDataProvider<FlatFork> forksDp = new ListDataProvider<FlatFork>(network);
      DataView<FlatFork> forksList = new DataView<FlatFork>("fork", forksDp) {
         private static final long serialVersionUID = 1L;
         @Override
         public void populateItem(final Item<FlatFork> item) {
            FlatFork fork = item.getModelObject();
            RepositoryModel repository = fork.repository;
            if (repository.isPersonalRepository()) {
               UserModel user = GitBlit.self().getUserModel(repository.projectPath.substring(1));
               UserModel user = app().users().getUserModel(repository.projectPath.substring(1));
               if (user == null) {
                  // user account no longer exists
                  user = new UserModel(repository.projectPath.substring(1));
               }
               PersonIdent ident = new PersonIdent(user.getDisplayName(), user.emailAddress == null ? user.getDisplayName() : user.emailAddress);
               item.add(new GravatarImage("anAvatar", ident, 20));
               item.add(new AvatarImage("anAvatar", ident, 20));
               if (pageRepository.equals(repository)) {
                  // do not link to self
                  item.add(new Label("aProject", user.getDisplayName()));
@@ -79,7 +83,7 @@
               item.add(swatch);
               String projectName = repository.projectPath;
               if (StringUtils.isEmpty(projectName)) {
                  projectName = GitBlit.getString(Keys.web.repositoryRootGroupName, "main");
                  projectName = app().settings().getString(Keys.web.repositoryRootGroupName, "main");
               }
               if (pageRepository.equals(repository)) {
                  // do not link to self
@@ -88,7 +92,7 @@
                  item.add(new LinkPanel("aProject", null, projectName, ProjectPage.class, WicketUtils.newProjectParameter(projectName)));
               }
            }
            String repo = StringUtils.getLastPathElement(repository.name);
            UserModel user = GitBlitWebSession.get().getUser();
            if (user == null) {
@@ -106,7 +110,7 @@
               item.add(new Label("aFork", repo));
               item.add(new Label("lastChange").setVisible(false));
            }
            WicketUtils.setCssStyle(item, "margin-left:" + (32*fork.level) + "px;");
            if (fork.level == 0) {
               WicketUtils.setCssClass(item, "forkSource");
@@ -115,7 +119,7 @@
            }
         }
      };
      add(forksList);
   }
@@ -123,15 +127,18 @@
   protected String getPageName() {
      return getString("gb.forks");
   }
   protected List<FlatFork> flatten(ForkModel root) {
      List<FlatFork> list = new ArrayList<FlatFork>();
      list.addAll(flatten(root, 0));
      return list;
   }
   protected List<FlatFork> flatten(ForkModel node, int level) {
      List<FlatFork> list = new ArrayList<FlatFork>();
      if (node == null) {
         return list;
      }
      list.add(new FlatFork(node.repository, level));
      if (!node.isLeaf()) {
         for (ForkModel fork : node.forks) {
@@ -140,14 +147,14 @@
      }
      return list;
   }
   private class FlatFork implements Serializable {
      private static final long serialVersionUID = 1L;
      public final RepositoryModel repository;
      public final int level;
      public FlatFork(RepositoryModel repository, int level) {
         this.repository = repository;
         this.level = level;