mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	Add the tag list page to the release page (#12096)
* Add the tag list page to the release page * Add the tags list view * Add the delete tag way on ui * Not delete tag and clear message when delete a release Signed-off-by: a1012112796 <1012112796@qq.com> * Apply suggestions from code review Co-authored-by: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: zeripath <art27@cantab.net> * fix ui * Add to header * ui * permission * ui * Update options/locale/locale_en-US.ini Co-authored-by: Lauris BH <lauris@nix.lv> * tweaks * monospace commit hashes * Add read permission check * fix permission * fix nit * Update web_src/less/_base.less Co-authored-by: silverwind <me@silverwind.io> * ui fixes * title tweaks * fix lint * fix test * fix test and some ui nits * Apply suggestions from code review Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		
					parent
					
						
							
								bcb94ed589
							
						
					
				
			
			
				commit
				
					
						b687707014
					
				
			
		
					 11 changed files with 213 additions and 65 deletions
				
			
		|  | @ -3,20 +3,67 @@ | |||
| 	{{template "repo/header" .}} | ||||
| 	<div class="ui container"> | ||||
| 		{{template "base/alert" .}} | ||||
| 		<h2 class="ui header"> | ||||
| 			{{.i18n.Tr "repo.release.releases"}} | ||||
| 			{{if .CanCreateRelease}} | ||||
| 				<div class="ui right"> | ||||
| 					<a class="ui small green button" href="{{$.RepoLink}}/releases/new"> | ||||
| 						{{.i18n.Tr "repo.release.new_release"}} | ||||
| 					</a> | ||||
| 				</div> | ||||
| 		<h2 class="ui compact small menu header"> | ||||
| 			{{if .Permission.CanRead $.UnitTypeReleases}} | ||||
| 				<a class="{{if (not .PageIsTagList)}}active{{end}} item" href="{{.RepoLink}}/releases">{{.i18n.Tr "repo.release.releases"}}</a> | ||||
| 			{{end}} | ||||
| 			{{if .Permission.CanRead $.UnitTypeCode}} | ||||
| 				<a class="{{if .PageIsTagList}}active{{end}} item" href="{{.RepoLink}}/tags">{{.i18n.Tr "repo.release.tags"}}</a> | ||||
| 			{{end}} | ||||
| 		</h2> | ||||
| 		{{if (and .CanCreateRelease (not .PageIsTagList))}} | ||||
| 			<a class="ui right small green button" href="{{$.RepoLink}}/releases/new"> | ||||
| 				{{.i18n.Tr "repo.release.new_release"}} | ||||
| 			</a> | ||||
| 		{{end}} | ||||
| 		{{if .PageIsTagList}} | ||||
| 		<div class="ui divider"></div> | ||||
| 		{{if gt .ReleasesNum 0}} | ||||
| 		<h4 class="ui top attached header"> | ||||
| 			<div class="five wide column df ac"> | ||||
| 				{{svg "octicon-tag" 16 "mr-2"}}{{.i18n.Tr "repo.release.tags"}} | ||||
| 			</div> | ||||
| 		</h4> | ||||
| 		<div class="ui attached table segment"> | ||||
| 			<table class="ui very basic striped fixed table single line" id="tags-table"> | ||||
| 				<thead></thead> | ||||
| 				<tbody class="tag-list"> | ||||
| 					{{range $idx, $release := .Releases}} | ||||
| 						<tr> | ||||
| 							<td class="tag"> | ||||
| 								<h3 class="release-tag-name mb-3"> | ||||
| 									<a class="df ac" href="{{$.RepoLink}}/src/tag/{{.TagName | EscapePound}}" rel="nofollow">{{.TagName}}</a> | ||||
| 								</h3> | ||||
| 								<div class="download df ac"> | ||||
| 									{{if $.Permission.CanRead $.UnitTypeCode}} | ||||
| 										<a class="mr-3 mono" href="{{$.RepoLink}}/src/commit/{{.Sha1}}" rel="nofollow">{{svg "octicon-git-commit" 16 "mr-2"}}{{ShortSha .Sha1}}</a> | ||||
| 										<a class="mr-3" href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16 "mr-2"}}ZIP</a> | ||||
| 										<a class="mr-3" href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz">{{svg "octicon-file-zip" 16 "mr-2"}}TAR.GZ</a> | ||||
| 										{{if (and $.CanCreateRelease $release.IsTag)}} | ||||
| 											<a class="mr-3" href="{{$.RepoLink}}/releases/new?tag={{.TagName | EscapePound}}">{{svg "octicon-tag" 16 "mr-2"}}{{$.i18n.Tr "repo.release.new_release"}}</a> | ||||
| 										{{end}} | ||||
| 										{{if (and ($.Permission.CanWrite $.UnitTypeCode) $release.IsTag)}} | ||||
| 											<a class="ui red delete-button mr-3" data-url="{{$.RepoLink}}/tags/delete" data-id="{{.ID}}"> | ||||
| 												{{svg "octicon-trashcan" 16 "mr-2"}}{{$.i18n.Tr "repo.release.delete_tag"}} | ||||
| 											</a> | ||||
| 										{{end}} | ||||
| 										{{if (not $release.IsTag)}} | ||||
| 											<a class="mr-3" href="{{$.RepoLink}}/releases/tag/{{.TagName | EscapePound}}">{{svg "octicon-tag" 16 "mr-2"}}{{$.i18n.Tr "repo.release.detail"}}</a> | ||||
| 										{{end}} | ||||
| 									{{end}} | ||||
| 								</div> | ||||
| 							</td> | ||||
| 						</tr> | ||||
| 					{{end}} | ||||
| 				</tbody> | ||||
| 			</table> | ||||
| 		</div> | ||||
| 		{{end}} | ||||
| 		{{else}} | ||||
| 		<ul id="release-list"> | ||||
| 			{{range $idx, $release := .Releases}} | ||||
| 				<li class="ui grid"> | ||||
| 					<div class="ui four wide column meta"> | ||||
| 					<div class="ui four wide column meta mt-2"> | ||||
| 						{{if .IsTag}} | ||||
| 							{{if .CreatedUnix}}<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span>{{end}} | ||||
| 						{{else}} | ||||
|  | @ -28,7 +75,7 @@ | |||
| 								<span class="ui green label">{{$.i18n.Tr "repo.release.stable"}}</span> | ||||
| 							{{end}} | ||||
| 							<span class="tag text blue"> | ||||
| 								<a href="{{$.RepoLink}}/src/tag/{{.TagName | EscapePound}}" rel="nofollow">{{svg "octicon-tag" 16 "mr-2"}}{{.TagName}}</a> | ||||
| 								<a class="df ac je" href="{{$.RepoLink}}/src/tag/{{.TagName | EscapePound}}" rel="nofollow">{{svg "octicon-tag" 16 "mr-2"}}{{.TagName}}</a> | ||||
| 							</span> | ||||
| 							<span class="commit"> | ||||
| 								<a class="mono" href="{{$.RepoLink}}/src/commit/{{.Sha1}}" rel="nofollow">{{svg "octicon-git-commit" 16 "mr-2"}}{{ShortSha .Sha1}}</a> | ||||
|  | @ -57,15 +104,18 @@ | |||
| 							{{end}} | ||||
| 							</div> | ||||
| 						{{else}} | ||||
| 							<h3> | ||||
| 							<h4 class="release-list-title df ac"> | ||||
| 								<a href="{{$.RepoLink}}/releases/tag/{{.TagName | EscapePound}}">{{.Title}}</a> | ||||
| 								{{if $.CanCreateRelease}}<small>(<a href="{{$.RepoLink}}/releases/edit/{{.TagName | EscapePound}}" rel="nofollow">{{$.i18n.Tr "repo.release.edit"}}</a>)</small>{{end}} | ||||
| 							</h3> | ||||
| 								{{if $.CanCreateRelease}} | ||||
| 									<small class="ml-2"> | ||||
| 										(<a href="{{$.RepoLink}}/releases/edit/{{.TagName | EscapePound}}" rel="nofollow">{{$.i18n.Tr "repo.release.edit"}}</a>) | ||||
| 									</small> | ||||
| 								{{end}} | ||||
| 							</h4> | ||||
| 							<p class="text grey"> | ||||
| 								<span class="author"> | ||||
| 								{{if .OriginalAuthor}} | ||||
| 									{{svg "octicon-mark-github"}} | ||||
| 									{{.OriginalAuthor}} | ||||
| 									{{svg "octicon-mark-github" 16 "mr-2"}}{{.OriginalAuthor}} | ||||
| 								{{else if .Publisher}} | ||||
| 									<img class="img-10" src="{{.Publisher.RelAvatarLink}}"> | ||||
| 									<a href="{{AppSubUrl}}/{{.Publisher.Name}}">{{.Publisher.Name}}</a> | ||||
|  | @ -73,41 +123,44 @@ | |||
| 									Ghost | ||||
| 								{{end}} | ||||
| 								</span> | ||||
| 								{{if .CreatedUnix}}<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span> | {{end}} | ||||
| 								<span class="released"> | ||||
| 									{{$.i18n.Tr "repo.released_this"}} | ||||
| 								</span> | ||||
| 								{{if .CreatedUnix}} | ||||
| 									<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span> |  | ||||
| 								{{end}} | ||||
| 								<span class="ahead"><a href="{{$.RepoLink}}/compare/{{.TagName | EscapePound}}...{{.Target}}">{{$.i18n.Tr "repo.release.ahead.commits" .NumCommitsBehind | Str2html}}</a> {{$.i18n.Tr "repo.release.ahead.target" .Target}}</span> | ||||
| 							</p> | ||||
| 							<div class="markdown desc"> | ||||
| 								{{Str2html .Note}} | ||||
| 							</div> | ||||
| 							<div class="download"> | ||||
| 								<div class="ui accordion"> | ||||
| 									<h2 class="title {{if eq $idx 0}}active{{end}}"> | ||||
| 										{{svg "octicon-triangle-down" 14 "dropdown icon"}} | ||||
| 										{{$.i18n.Tr "repo.release.downloads"}} | ||||
| 									</h2> | ||||
| 									<div class="content {{if eq $idx 0}}active{{end}}"> | ||||
| 										<ul class="list"> | ||||
| 											{{if $.Permission.CanRead $.UnitTypeCode}} | ||||
| 							<div class="ui accordion download"> | ||||
| 								<h2 class="title {{if eq $idx 0}}active{{end}} df ac mb-0"> | ||||
| 									{{svg "octicon-triangle-right" 14 "dropdown icon"}} | ||||
| 									{{$.i18n.Tr "repo.release.downloads"}} | ||||
| 								</h2> | ||||
| 								<div class="content {{if eq $idx 0}}active{{end}}"> | ||||
| 									<ul class="list"> | ||||
| 										{{if $.Permission.CanRead $.UnitTypeCode}} | ||||
| 											<li> | ||||
| 												<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><strong>{{svg "octicon-file-zip" 16 "mr-2"}}{{$.i18n.Tr "repo.release.source_code"}} (ZIP)</strong></a> | ||||
| 											</li> | ||||
| 											<li> | ||||
| 												<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><strong>{{svg "octicon-file-zip" 16 "mr-2"}}{{$.i18n.Tr "repo.release.source_code"}} (TAR.GZ)</strong></a> | ||||
| 											</li> | ||||
| 										{{end}} | ||||
| 										{{if .Attachments}} | ||||
| 											{{range .Attachments}} | ||||
| 												<li> | ||||
| 													<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><strong>{{svg "octicon-file-zip"}} {{$.i18n.Tr "repo.release.source_code"}} (ZIP)</strong></a> | ||||
| 												</li> | ||||
| 												<li> | ||||
| 													<a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><strong>{{svg "octicon-file-zip"}} {{$.i18n.Tr "repo.release.source_code"}} (TAR.GZ)</strong></a> | ||||
| 													<span class="ui text right" data-tooltip="{{$.i18n.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}" data-position="bottom right">{{svg "octicon-info"}}</span> | ||||
| 													<a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}"> | ||||
| 														<strong><span class="ui image" title='{{.Name}}'>{{svg "octicon-package" 16 "mr-2"}}</span>{{.Name}}</strong> | ||||
| 														<span class="ui text grey right">{{.Size | FileSize}}</span> | ||||
| 													</a> | ||||
| 												</li> | ||||
| 											{{end}} | ||||
| 											{{if .Attachments}} | ||||
| 												{{range .Attachments}} | ||||
| 													<li> | ||||
| 														<span class="ui text right" data-tooltip="{{$.i18n.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}" data-position="bottom right">{{svg "octicon-info"}}</span> | ||||
| 														<a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}"> | ||||
| 															<strong><span class="ui image" title='{{.Name}}'>{{svg "octicon-package"}}</span> {{.Name}}</strong> | ||||
| 															<span class="ui text grey right">{{.Size | FileSize}}</span> | ||||
| 														</a> | ||||
| 													</li> | ||||
| 												{{end}} | ||||
| 											{{end}} | ||||
| 										</ul> | ||||
| 									</div> | ||||
| 										{{end}} | ||||
| 									</ul> | ||||
| 								</div> | ||||
| 							</div> | ||||
| 						{{end}} | ||||
|  | @ -116,7 +169,22 @@ | |||
| 				</li> | ||||
| 			{{end}} | ||||
| 		</ul> | ||||
| 		{{end}} | ||||
| 		{{template "base/paginate" .}} | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| {{if (and ($.Permission.CanWrite $.UnitTypeCode) .PageIsTagList)}} | ||||
| 	<div class="ui small basic delete modal"> | ||||
| 		<div class="ui header"> | ||||
| 			{{svg "octicon-trashcan" 16 "mr-2"}} | ||||
| 			{{.i18n.Tr "repo.release.delete_tag"}} | ||||
| 		</div> | ||||
| 		<div class="content"> | ||||
| 			<p>{{.i18n.Tr "repo.release.deletion_tag_desc"}}</p> | ||||
| 		</div> | ||||
| 		{{template "base/delete_modal_actions" .}} | ||||
| 	</div> | ||||
| {{end}} | ||||
| 
 | ||||
| {{template "base/footer" .}} | ||||
|  |  | |||
|  | @ -5,11 +5,14 @@ | |||
| 				<div class="item{{if .PageIsCommits}} active{{end}}"> | ||||
| 					<a class="ui" href="{{.RepoLink}}/commits{{if .IsViewBranch}}/branch{{else if .IsViewTag}}/tag{{else if .IsViewCommit}}/commit{{end}}/{{EscapePound .BranchName}}">{{svg "octicon-history"}} <b>{{.CommitsCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .CommitsCount "repo.commit" "repo.commits") }}</a> | ||||
| 				</div> | ||||
| 			{{end}} | ||||
| 			{{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo) }} | ||||
| 				<div class="item{{if .PageIsBranches}} active{{end}}"> | ||||
| 					<a class="ui" href="{{.RepoLink}}/branches/">{{svg "octicon-git-branch"}} <b>{{.BranchesCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .BranchesCount "repo.branch" "repo.branches") }}</a> | ||||
| 				</div> | ||||
| 				{{if $.Permission.CanRead $.UnitTypeCode}} | ||||
| 					<div class="item"> | ||||
| 						<a class="ui" href="{{.RepoLink}}/tags">{{svg "octicon-tag"}} <b>{{.NumReleases}}</b> {{.i18n.Tr (TrN .i18n.Lang .NumReleases "repo.release" "repo.releases") }}</a> | ||||
| 					</div> | ||||
| 				{{end}} | ||||
| 				<div class="item"> | ||||
| 					<span class="ui">{{svg "octicon-database"}} <b>{{SizeFmt .Repository.Size}}</b></span> | ||||
| 				</div> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue