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 ```