Add support for branch web links

Change-Id: I1a56aa26c74a1bd6ac26aa6bc8c93adeac829e87
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2014-09-10 18:23:29 +02:00
parent cae1df3c59
commit 0f697bdbec
9 changed files with 94 additions and 4 deletions

View File

@@ -14,18 +14,22 @@
package com.google.gerrit.server.project;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.gerrit.extensions.common.ActionInfo;
import com.google.gerrit.extensions.common.WebLinkInfo;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.extensions.restapi.RestView;
import com.google.gerrit.extensions.webui.UiAction;
import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.server.WebLinks;
import com.google.gerrit.server.extensions.webui.UiActions;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.google.inject.util.Providers;
@@ -47,12 +51,15 @@ import java.util.TreeMap;
public class ListBranches implements RestReadView<ProjectResource> {
private final GitRepositoryManager repoManager;
private final DynamicMap<RestView<BranchResource>> branchViews;
private final Provider<WebLinks> webLinks;
@Inject
public ListBranches(GitRepositoryManager repoManager,
DynamicMap<RestView<BranchResource>> branchViews) {
DynamicMap<RestView<BranchResource>> branchViews,
Provider<WebLinks> webLinks) {
this.repoManager = repoManager;
this.branchViews = branchViews;
this.webLinks = webLinks;
}
@Override
@@ -161,6 +168,13 @@ public class ListBranches implements RestReadView<ProjectResource> {
}
info.actions.put(d.getId(), new ActionInfo(d));
}
info.webLinks = Lists.newArrayList();
for (WebLinkInfo link : webLinks.get().getBranchLinks(
refControl.getProjectControl().getProject().getName(), ref.getName())) {
if (!Strings.isNullOrEmpty(link.name) && !Strings.isNullOrEmpty(link.url)) {
info.webLinks.add(link);
}
}
return info;
}
@@ -169,6 +183,7 @@ public class ListBranches implements RestReadView<ProjectResource> {
public String revision;
public Boolean canDelete;
public Map<String, ActionInfo> actions;
public List<WebLinkInfo> webLinks;
public BranchInfo(String ref, String revision, boolean canDelete) {
this.ref = ref;