From 86ed47e622dabf5c27d60f00883fff46bd349d95 Mon Sep 17 00:00:00 2001 From: Norwin <noerw@users.noreply.github.com> Date: Fri, 9 Sep 2022 08:38:51 +0200 Subject: [PATCH] Make the vscode clone link respect transport protocol (#20557) --- templates/repo/clone_script.tmpl | 5 +++++ templates/repo/home.tmpl | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/templates/repo/clone_script.tmpl b/templates/repo/clone_script.tmpl index 48b7ad3299..afd90040fb 100644 --- a/templates/repo/clone_script.tmpl +++ b/templates/repo/clone_script.tmpl @@ -1,6 +1,8 @@ <script> // synchronously set clone button states and urls here to avoid flickering // on page load. initRepoCloneLink calls this when proto changes. + // this applies the protocol-dependant clone url to all elements with the + // `js-clone-url` and `js-clone-url-vsc` classes. // TODO: This localStorage setting should be moved to backend user config // so it's available during rendering, then this inline script can be removed. (window.updateCloneStates = function() { @@ -19,5 +21,8 @@ for (const el of document.getElementsByClassName('js-clone-url')) { el[el.nodeName === 'INPUT' ? 'value' : 'textContent'] = link; } + for (const el of document.getElementsByClassName('js-clone-url-vsc')) { + el['href'] = 'vscode://vscode.git/clone?url=' + encodeURIComponent(link); + } })(); </script> diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl index 69af36ac68..fe5af82d1a 100644 --- a/templates/repo/home.tmpl +++ b/templates/repo/home.tmpl @@ -126,7 +126,7 @@ <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip" 16 "mr-3"}}{{.locale.Tr "repo.download_tar"}}</a> <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.bundle" rel="nofollow">{{svg "octicon-package" 16 "mr-3"}}{{.locale.Tr "repo.download_bundle"}}</a> {{end}} - <a class="item" href="vscode://vscode.git/clone?url={{$.RepoCloneLink.HTTPS}}">{{svg "gitea-vscode" 16 "mr-3"}}{{.locale.Tr "repo.clone_in_vsc"}}</a> + <a class="item js-clone-url-vsc" href="vscode://vscode.git/clone?url={{.CloneButtonOriginLink.HTTPS}}">{{svg "gitea-vscode" 16 "mr-3"}}{{.locale.Tr "repo.clone_in_vsc"}}</a> </div> </button> </div>