-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor repo clone button and repo clone links, fix JS error on empt…
…y repo page (#19208) The last PR about clone buttons introduced an JS error when visiting an empty repo page: * #19028 * `Uncaught ReferenceError: isSSH is not defined`, because the variables are scoped and doesn't share between sub templates. This: 1. Simplify `templates/repo/clone_buttons.tmpl` and make code clear 2. Move most JS code into `initRepoCloneLink` 3. Remove unused `CloneLink.Git` 4. Remove `ctx.Data["DisableSSH"] / ctx.Data["ExposeAnonSSH"] / ctx.Data["DisableHTTP"]`, and only set them when is is needed (eg: deploy keys / ssh keys) 5. Introduce `Data["CloneButton*"]` to provide data for clone buttons and links 6. Introduce `Data["RepoCloneLink"]` for the repo clone link (not the wiki) 7. Remove most `ctx.Data["PageIsWiki"]` because it has been set in the `/wiki` middleware 8. Remove incorrect `quickstart` class in `migrating.tmpl`
- Loading branch information
1 parent
90e0a40
commit d4c789d
Showing
12 changed files
with
99 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,24 @@ | ||
{{if not $.DisableHTTP}} | ||
<button class="ui basic clone button no-transition" id="repo-clone-https" data-link="{{if $.PageIsWiki}}{{$.WikiCloneLink.HTTPS}}{{else}}{{$.CloneLink.HTTPS}}{{end}}"> | ||
<!-- there is always at least one button (by context/repo.go) --> | ||
{{if $.CloneButtonShowHTTPS}} | ||
<button class="ui basic clone button no-transition" id="repo-clone-https" data-link="{{$.CloneButtonOriginLink.HTTPS}}"> | ||
{{if UseHTTPS}}HTTPS{{else}}HTTP{{end}} | ||
</button> | ||
{{end}} | ||
{{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}} | ||
<button class="ui basic clone button no-transition" id="repo-clone-ssh" data-link="{{if $.PageIsWiki}}{{$.WikiCloneLink.SSH}}{{else}}{{$.CloneLink.SSH}}{{end}}"> | ||
{{if $.CloneButtonShowSSH}} | ||
<button class="ui basic clone button no-transition" id="repo-clone-ssh" data-link="{{$.CloneButtonOriginLink.SSH}}"> | ||
SSH | ||
</button> | ||
{{end}} | ||
{{if not $.DisableHTTP}} | ||
<input id="repo-clone-url" value="{{if $.PageIsWiki}}{{$.WikiCloneLink.HTTPS}}{{else}}{{$.CloneLink.HTTPS}}{{end}}" readonly> | ||
{{else if and (not .DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}} | ||
<input id="repo-clone-url" value="{{if $.PageIsWiki}}{{$.WikiCloneLink.SSH}}{{else}}{{$.CloneLink.SSH}}{{end}}" readonly> | ||
{{end}} | ||
{{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}} | ||
<button class="ui basic icon button tooltip" id="clipboard-btn" data-content="{{.i18n.Tr "copy_url"}}" data-clipboard-target="#repo-clone-url"> | ||
{{svg "octicon-paste"}} | ||
</button> | ||
{{end}} | ||
{{if not (and $.DisableHTTP $.DisableSSH)}} | ||
<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}} | ||
<!-- the value will be updated by initRepoCloneLink, the code below is used to avoid UI flicking --> | ||
<input id="repo-clone-url" value="" readonly> | ||
<script> | ||
(() => { | ||
const proto = localStorage.getItem('repo-clone-protocol') || 'https'; | ||
const btn = document.getElementById(`repo-clone-${proto}`); | ||
// it's ok if we don't find the btn here, initRepoCloneLink will take care of it | ||
document.getElementById('repo-clone-url').value = btn ? btn.getAttribute('data-link') : ''; | ||
})(); | ||
</script> | ||
<button class="ui basic icon button tooltip" id="clipboard-btn" data-content="{{.i18n.Tr "copy_url"}}" data-clipboard-target="#repo-clone-url"> | ||
{{svg "octicon-paste"}} | ||
</button> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters