Merge "Allow to control target of web links"
This commit is contained in:
commit
4c51f70302
@ -1775,6 +1775,11 @@ public class MyWeblinkPlugin implements PatchSetWebLink {
|
|||||||
public String getImageUrl() {
|
public String getImageUrl() {
|
||||||
return imageUrl;
|
return imageUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTarget() {
|
||||||
|
return "_blank";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
|
@ -18,10 +18,12 @@ public class WebLinkInfo {
|
|||||||
public String name;
|
public String name;
|
||||||
public String imageUrl;
|
public String imageUrl;
|
||||||
public String url;
|
public String url;
|
||||||
|
public String target;
|
||||||
|
|
||||||
public WebLinkInfo(String name, String imageUrl, String url) {
|
public WebLinkInfo(String name, String imageUrl, String url, String target) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.imageUrl = imageUrl;
|
this.imageUrl = imageUrl;
|
||||||
this.url = url;
|
this.url = url;
|
||||||
|
this.target = target;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,12 @@ package com.google.gerrit.extensions.webui;
|
|||||||
|
|
||||||
public interface WebLink {
|
public interface WebLink {
|
||||||
|
|
||||||
|
public static class Target {
|
||||||
|
public final static String BLANK = "_blank";
|
||||||
|
public final static String SELF = "_self";
|
||||||
|
public final static String PARENT = "_parent";
|
||||||
|
public final static String TOP = "_top";
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* The link-name displayed in UI.
|
* The link-name displayed in UI.
|
||||||
*
|
*
|
||||||
@ -29,4 +35,11 @@ public interface WebLink {
|
|||||||
* Recommended image size is 16x16.
|
* Recommended image size is 16x16.
|
||||||
*/
|
*/
|
||||||
String getImageUrl();
|
String getImageUrl();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Target window in which the link should be opened (e.g. "_blank", "_self".).
|
||||||
|
*
|
||||||
|
* @return link target, if null the link is opened in the current window
|
||||||
|
*/
|
||||||
|
String getTarget();
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ public class WebLinkInfo extends JavaScriptObject {
|
|||||||
public final native String name() /*-{ return this.name; }-*/;
|
public final native String name() /*-{ return this.name; }-*/;
|
||||||
public final native String imageUrl() /*-{ return this.image_url; }-*/;
|
public final native String imageUrl() /*-{ return this.image_url; }-*/;
|
||||||
public final native String url() /*-{ return this.url; }-*/;
|
public final native String url() /*-{ return this.url; }-*/;
|
||||||
|
public final native String target() /*-{ return this.target; }-*/;
|
||||||
|
|
||||||
protected WebLinkInfo() {
|
protected WebLinkInfo() {
|
||||||
}
|
}
|
||||||
|
@ -399,6 +399,9 @@ public class ProjectBranchesScreen extends ProjectScreen {
|
|||||||
for (WebLinkInfo weblink : Natives.asList(k.web_links())) {
|
for (WebLinkInfo weblink : Natives.asList(k.web_links())) {
|
||||||
Anchor a = new Anchor();
|
Anchor a = new Anchor();
|
||||||
a.setHref(weblink.url());
|
a.setHref(weblink.url());
|
||||||
|
if (weblink.target() != null && !weblink.target().isEmpty()) {
|
||||||
|
a.setTarget(weblink.target());
|
||||||
|
}
|
||||||
if (weblink.imageUrl() != null && !weblink.imageUrl().isEmpty()) {
|
if (weblink.imageUrl() != null && !weblink.imageUrl().isEmpty()) {
|
||||||
Image img = new Image();
|
Image img = new Image();
|
||||||
img.setAltText(weblink.name());
|
img.setAltText(weblink.name());
|
||||||
|
@ -240,6 +240,9 @@ public class ProjectListScreen extends Screen implements FilteredUserInterface {
|
|||||||
for (WebLinkInfo weblink : webLinks) {
|
for (WebLinkInfo weblink : webLinks) {
|
||||||
Anchor a = new Anchor();
|
Anchor a = new Anchor();
|
||||||
a.setHref(weblink.url());
|
a.setHref(weblink.url());
|
||||||
|
if (weblink.target() != null && !weblink.target().isEmpty()) {
|
||||||
|
a.setTarget(weblink.target());
|
||||||
|
}
|
||||||
if (weblink.imageUrl() != null && !weblink.imageUrl().isEmpty()) {
|
if (weblink.imageUrl() != null && !weblink.imageUrl().isEmpty()) {
|
||||||
Image img = new Image();
|
Image img = new Image();
|
||||||
img.setAltText(weblink.name());
|
img.setAltText(weblink.name());
|
||||||
|
@ -127,20 +127,25 @@ class CommitBox extends Composite {
|
|||||||
GitwebLink gw = Gerrit.getGitwebLink();
|
GitwebLink gw = Gerrit.getGitwebLink();
|
||||||
if (gw != null && gw.canLink(revInfo)) {
|
if (gw != null && gw.canLink(revInfo)) {
|
||||||
addWebLink(gw.toRevision(change.project(), revision),
|
addWebLink(gw.toRevision(change.project(), revision),
|
||||||
gw.getLinkName(), null);
|
gw.getLinkName(), null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsArray<WebLinkInfo> links = revInfo.web_links();
|
JsArray<WebLinkInfo> links = revInfo.web_links();
|
||||||
if (links != null) {
|
if (links != null) {
|
||||||
for (WebLinkInfo link : Natives.asList(links)) {
|
for (WebLinkInfo link : Natives.asList(links)) {
|
||||||
addWebLink(link.url(), parenthesize(link.name()), link.imageUrl());
|
addWebLink(link.url(), parenthesize(link.name()), link.imageUrl(),
|
||||||
|
link.target());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addWebLink(String href, String name, String imageUrl) {
|
private void addWebLink(String href, String name, String imageUrl,
|
||||||
|
String target) {
|
||||||
Anchor a = new Anchor();
|
Anchor a = new Anchor();
|
||||||
a.setHref(href);
|
a.setHref(href);
|
||||||
|
if (target != null && !target.isEmpty()) {
|
||||||
|
a.setTarget(target);
|
||||||
|
}
|
||||||
if (imageUrl != null && !imageUrl.isEmpty()) {
|
if (imageUrl != null && !imageUrl.isEmpty()) {
|
||||||
Image img = new Image();
|
Image img = new Image();
|
||||||
img.setAltText(name);
|
img.setAltText(name);
|
||||||
|
@ -108,6 +108,9 @@ class PatchSetSelectBox2 extends Composite {
|
|||||||
for (WebLinkInfo weblink : webLinks) {
|
for (WebLinkInfo weblink : webLinks) {
|
||||||
Anchor a = new Anchor();
|
Anchor a = new Anchor();
|
||||||
a.setHref(weblink.url());
|
a.setHref(weblink.url());
|
||||||
|
if (weblink.target() != null && !weblink.target().isEmpty()) {
|
||||||
|
a.setTarget(weblink.target());
|
||||||
|
}
|
||||||
if (weblink.imageUrl() != null && !weblink.imageUrl().isEmpty()) {
|
if (weblink.imageUrl() != null && !weblink.imageUrl().isEmpty()) {
|
||||||
Image img = new Image();
|
Image img = new Image();
|
||||||
img.setAltText(weblink.name());
|
img.setAltText(weblink.name());
|
||||||
|
@ -46,7 +46,8 @@ public class WebLinks {
|
|||||||
for (PatchSetWebLink webLink : patchSetLinks) {
|
for (PatchSetWebLink webLink : patchSetLinks) {
|
||||||
links.add(new WebLinkInfo(webLink.getLinkName(),
|
links.add(new WebLinkInfo(webLink.getLinkName(),
|
||||||
webLink.getImageUrl(),
|
webLink.getImageUrl(),
|
||||||
webLink.getPatchSetUrl(project, commit)));
|
webLink.getPatchSetUrl(project, commit),
|
||||||
|
webLink.getTarget()));
|
||||||
}
|
}
|
||||||
return links;
|
return links;
|
||||||
}
|
}
|
||||||
@ -57,7 +58,8 @@ public class WebLinks {
|
|||||||
for (FileWebLink webLink : fileLinks) {
|
for (FileWebLink webLink : fileLinks) {
|
||||||
links.add(new WebLinkInfo(webLink.getLinkName(),
|
links.add(new WebLinkInfo(webLink.getLinkName(),
|
||||||
webLink.getImageUrl(),
|
webLink.getImageUrl(),
|
||||||
webLink.getFileUrl(project, revision, file)));
|
webLink.getFileUrl(project, revision, file),
|
||||||
|
webLink.getTarget()));
|
||||||
}
|
}
|
||||||
return links;
|
return links;
|
||||||
}
|
}
|
||||||
@ -67,7 +69,8 @@ public class WebLinks {
|
|||||||
for (ProjectWebLink webLink : projectLinks) {
|
for (ProjectWebLink webLink : projectLinks) {
|
||||||
links.add(new WebLinkInfo(webLink.getLinkName(),
|
links.add(new WebLinkInfo(webLink.getLinkName(),
|
||||||
webLink.getImageUrl(),
|
webLink.getImageUrl(),
|
||||||
webLink.getProjectUrl(project)));
|
webLink.getProjectUrl(project),
|
||||||
|
webLink.getTarget()));
|
||||||
}
|
}
|
||||||
return links;
|
return links;
|
||||||
}
|
}
|
||||||
@ -77,7 +80,8 @@ public class WebLinks {
|
|||||||
for (BranchWebLink webLink : branchLinks) {
|
for (BranchWebLink webLink : branchLinks) {
|
||||||
links.add(new WebLinkInfo(webLink.getLinkName(),
|
links.add(new WebLinkInfo(webLink.getLinkName(),
|
||||||
webLink.getImageUrl(),
|
webLink.getImageUrl(),
|
||||||
webLink.getBranchUrl(project, branch)));
|
webLink.getBranchUrl(project, branch),
|
||||||
|
webLink.getTarget()));
|
||||||
}
|
}
|
||||||
return links;
|
return links;
|
||||||
}
|
}
|
||||||
|
1
plugins/its-base
Submodule
1
plugins/its-base
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit e9135f64e4f38229124392e8007e45f8f4ad0e58
|
Loading…
Reference in New Issue
Block a user