diff --git a/src/main/scala/app/ControllerBase.scala b/src/main/scala/app/ControllerBase.scala index c31b90f..964d3e6 100644 --- a/src/main/scala/app/ControllerBase.scala +++ b/src/main/scala/app/ControllerBase.scala @@ -145,6 +145,11 @@ val currentPath = request.getRequestURI.substring(request.getContextPath.length) val baseUrl = settings.baseUrl(request) val host = new java.net.URL(baseUrl).getHost + val userAgent = request.getHeader("User-Agent") match { + case agent if agent.contains("Mac") => "mac" + case agent if agent.contains("Linux") => "linux" + case agent if agent.contains("Win") => "windows" + } /** * Get object from cache. diff --git a/src/main/scala/service/RepositoryService.scala b/src/main/scala/service/RepositoryService.scala index 8e204a8..6033a1f 100644 --- a/src/main/scala/service/RepositoryService.scala +++ b/src/main/scala/service/RepositoryService.scala @@ -329,6 +329,12 @@ def sshUrl(port: Int, userName: String) = s"ssh://${userName}@${host}:${port}/${owner}/${name}.git" + def sshOpenRepoUrl(userAgent: String, port: Int, userName: String) = openRepoUrl(userAgent, sshUrl(port, userName)) + + def httpOpenRepoUrl(userAgent: String) = openRepoUrl(userAgent, httpUrl) + + def openRepoUrl(userAgent: String, openUrl: String) = s"github-${userAgent}://openRepo/${openUrl}" + /** * Creates instance with issue count and pull request count. */ diff --git a/src/main/twirl/menu.scala.html b/src/main/twirl/menu.scala.html index 8076c82..233f4de 100644 --- a/src/main/twirl/menu.scala.html +++ b/src/main/twirl/menu.scala.html @@ -84,6 +84,11 @@ } @id.map { id => + @if(context.userAgent != "linux"){ +