From c21735b49a5dd8ab6a2f8f6085d650dcfb411fad Mon Sep 17 00:00:00 2001 From: wxiaoguang <wxiaoguang@gmail.com> Date: Wed, 9 Mar 2022 12:42:29 +0800 Subject: [PATCH] Ensure isSSH is set whenever DISABLE_HTTP_GIT is set (#19028) When DISABLE_HTTP_GIT is set we should always show the SSH button --- templates/repo/clone_buttons.tmpl | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/templates/repo/clone_buttons.tmpl b/templates/repo/clone_buttons.tmpl index 29d3fe76d7..d4b822521c 100644 --- a/templates/repo/clone_buttons.tmpl +++ b/templates/repo/clone_buttons.tmpl @@ -19,17 +19,24 @@ </button> {{end}} {{if not (and $.DisableHTTP $.DisableSSH)}} - <script defer> - const isSSH = localStorage.getItem('repo-clone-protocol') === 'ssh'; - const sshButton = document.getElementById('repo-clone-ssh'); - const httpsButton = document.getElementById('repo-clone-https'); - const input = document.getElementById('repo-clone-url'); - if (input) input.value = (isSSH ? sshButton : httpsButton).getAttribute('data-link'); - if (sshButton) sshButton.classList[isSSH ? 'add' : 'remove']('primary'); - if (httpsButton) httpsButton.classList[isSSH ? 'remove' : 'add']('primary'); - setTimeout(() => { - if (sshButton) sshButton.classList.remove('no-transition'); - if (httpsButton) httpsButton.classList.remove('no-transition'); - }, 100); + <script> + <!-- /* eslint-disable */ --> + window.config.pageData['repoCloneButtons']= {httpsDisabled: {{$.DisableHTTP}}}; + </script> + <script> + (() => { + const tmplData = window.config.pageData.repoCloneButtons; + const isSSH = tmplData.httpsDisabled || localStorage.getItem('repo-clone-protocol') === 'ssh'; + const sshButton = document.getElementById('repo-clone-ssh'); + const httpsButton = document.getElementById('repo-clone-https'); + const input = document.getElementById('repo-clone-url'); + if (input) input.value = (isSSH ? sshButton : httpsButton).getAttribute('data-link'); + if (sshButton) sshButton.classList[isSSH ? 'add' : 'remove']('primary'); + if (httpsButton) httpsButton.classList[isSSH ? 'remove' : 'add']('primary'); + setTimeout(() => { + if (sshButton) sshButton.classList.remove('no-transition'); + if (httpsButton) httpsButton.classList.remove('no-transition'); + }, 100); + })(); </script> {{end}}