Allow to configure the link frame target name
The link frame target name can be set with `gerrit.target`. If
not set it defaults to `_blank`, for backwards compatibility with
the previous hard-coded behavior.
Change-Id: I645fb34aa29ede624d1f0f5c9cb8e910a8b97fe3
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
index 5933929..198611f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GitilesWeblinks.java
@@ -31,6 +31,7 @@
PatchSetWebLink, ProjectWebLink, FileHistoryWebLink {
private final String name;
private final String baseUrl;
+ private final String target;
@Inject
public GitilesWeblinks(@PluginName String pluginName,
@@ -40,36 +41,40 @@
config.getString("gerrit", null, "linkname"),
"browse");
baseUrl = "plugins/" + pluginName;
+
+ target = MoreObjects.firstNonNull(
+ config.getString("gerrit", null, "target"),
+ Target.BLANK);
}
@Override
public WebLinkInfo getProjectWeblink(String projectName) {
return new WebLinkInfo(name, null, String.format("%s/%s", baseUrl,
- projectName), Target.BLANK);
+ projectName), target);
}
@Override
public WebLinkInfo getPatchSetWebLink(String projectName, String commit) {
return new WebLinkInfo(name, null, String.format("%s/%s/+/%s", baseUrl,
- projectName, commit), Target.BLANK);
+ projectName, commit), target);
}
@Override
public WebLinkInfo getFileWebLink(String projectName, String revision,
String fileName) {
return new WebLinkInfo(name, null, String.format("%s/%s/+/%s/%s", baseUrl,
- projectName, revision, fileName), Target.BLANK);
+ projectName, revision, fileName), target);
}
@Override
public WebLinkInfo getBranchWebLink(String projectName, String branchName) {
return new WebLinkInfo(name, null, String.format("%s/%s/+/%s", baseUrl,
- projectName, branchName), Target.BLANK);
+ projectName, branchName), target);
}
@Override
public WebLinkInfo getFileHistoryWebLink(String projectName, String revision, String fileName) {
return new WebLinkInfo(name, null, String.format("%s/%s/+log/%s/%s", baseUrl,
- projectName, revision, fileName), Target.BLANK);
+ projectName, revision, fileName), target);
}
}
diff --git a/src/main/resources/+Documentation/config.md b/src/main/resources/+Documentation/config.md
index c5e9b54..386d6c6 100644
--- a/src/main/resources/+Documentation/config.md
+++ b/src/main/resources/+Documentation/config.md
@@ -32,7 +32,12 @@
The name of the link that appears in Gerrit can be configured with
`gerrit.linkname`.
+The link frame target name can be configured with `gerrit.target`. Valid values
+are defined in the [W3C HTML Specification](https://www.w3.org/TR/1999/REC-html401-19991224/types.html#type-frame-target).
+Defaults to `_blank` if not set.
+
```
[gerrit]
linkname = browse
+ target = _self
```