diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index c6d8c45af10f1..dbc190928f946 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -185,6 +185,11 @@ func Releases(ctx *context.Context) { ctx.ServerError("getReleaseInfos", err) return } + for _, rel := range releases { + if rel.Release.IsTag && rel.Release.Title == "" { + rel.Release.Title = rel.Release.TagName + } + } ctx.Data["Releases"] = releases @@ -283,6 +288,7 @@ func SingleRelease(ctx *context.Context) { TagNames: []string{ctx.Params("*")}, // only show draft releases for users who can write, read-only users shouldn't see draft releases. IncludeDrafts: writeAccess, + IncludeTags: true, }) if err != nil { ctx.ServerError("getReleaseInfos", err) @@ -294,6 +300,9 @@ func SingleRelease(ctx *context.Context) { } release := releases[0].Release + if release.IsTag && release.Title == "" { + release.Title = release.TagName + } ctx.Data["PageIsSingleTag"] = release.IsTag if release.IsTag { diff --git a/templates/repo/release/list.tmpl b/templates/repo/release/list.tmpl index 7f38fa3ff05c3..873cccab79f55 100644 --- a/templates/repo/release/list.tmpl +++ b/templates/repo/release/list.tmpl @@ -18,18 +18,18 @@

- {{$release.Title}} + {{if $.PageIsSingleTag}}{{$release.Title}}{{else}}{{$release.Title}}{{end}} {{template "repo/commit_statuses" dict "Status" $info.CommitStatus "Statuses" $info.CommitStatuses "AdditionalClasses" "gt-df"}} {{if $release.IsDraft}} {{ctx.Locale.Tr "repo.release.draft"}} {{else if $release.IsPrerelease}} {{ctx.Locale.Tr "repo.release.prerelease"}} - {{else}} + {{else if (not $release.IsTag)}} {{ctx.Locale.Tr "repo.release.stable"}} {{end}}

- {{if $.CanCreateRelease}} + {{if and $.CanCreateRelease (not $.PageIsSingleTag)}} {{svg "octicon-pencil"}} diff --git a/templates/repo/release_tag_header.tmpl b/templates/repo/release_tag_header.tmpl index 31c151da08f39..8e6088790d080 100644 --- a/templates/repo/release_tag_header.tmpl +++ b/templates/repo/release_tag_header.tmpl @@ -5,9 +5,9 @@
@@ -17,7 +17,7 @@ {{end}} {{if and (not .PageIsTagList) .CanCreateRelease}} - + {{ctx.Locale.Tr "repo.release.new_release"}} {{end}} diff --git a/tests/integration/links_test.go b/tests/integration/links_test.go index a3937dd697eeb..d103e2b0a90bc 100644 --- a/tests/integration/links_test.go +++ b/tests/integration/links_test.go @@ -36,6 +36,7 @@ func TestLinksNoLogin(t *testing.T) { "/user2/repo1/", "/user2/repo1/projects", "/user2/repo1/projects/1", + "/user2/repo1/releases/tag/delete-tag", // It's the only one existing record on release.yml which has is_tag: true "/assets/img/404.png", "/assets/img/500.png", "/.well-known/security.txt", diff --git a/web_src/js/features/repo-release.js b/web_src/js/features/repo-release.js index 2db80790094f3..f3cfa7441815b 100644 --- a/web_src/js/features/repo-release.js +++ b/web_src/js/features/repo-release.js @@ -30,8 +30,9 @@ function initTagNameEditor() { const newTagHelperText = el.getAttribute('data-tag-helper-new'); const existingTagHelperText = el.getAttribute('data-tag-helper-existing'); - document.getElementById('tag-name').addEventListener('keyup', (e) => { - const value = e.target.value; + const tagNameInput = document.getElementById('tag-name'); + const hideTargetInput = function(tagNameInput) { + const value = tagNameInput.value; const tagHelper = document.getElementById('tag-helper'); if (existingTags.includes(value)) { // If the tag already exists, hide the target branch selector. @@ -41,6 +42,10 @@ function initTagNameEditor() { showElem('#tag-target-selector'); tagHelper.textContent = value ? newTagHelperText : defaultTagHelperText; } + }; + hideTargetInput(tagNameInput); // update on page load because the input may have a value + tagNameInput.addEventListener('input', (e) => { + hideTargetInput(e.target); }); }