@ -71,18 +71,6 @@ func calReleaseNumCommitsBehind(repoCtx *context.Repository, release *repo_model
func Releases ( ctx * context . Context ) {
ctx . Data [ "PageIsReleaseList" ] = true
ctx . Data [ "Title" ] = ctx . Tr ( "repo.release.releases" )
releasesOrTags ( ctx , false )
}
// TagsList render tags list page
func TagsList ( ctx * context . Context ) {
ctx . Data [ "PageIsTagList" ] = true
ctx . Data [ "Title" ] = ctx . Tr ( "repo.release.tags" )
releasesOrTags ( ctx , true )
}
func releasesOrTags ( ctx * context . Context , isTagList bool ) {
ctx . Data [ "DefaultBranch" ] = ctx . Repo . Repository . DefaultBranch
ctx . Data [ "IsViewBranch" ] = false
ctx . Data [ "IsViewTag" ] = true
// Disable the showCreateNewBranch form in the dropdown on this page.
@ -100,35 +88,13 @@ func releasesOrTags(ctx *context.Context, isTagList bool) {
listOptions . PageSize = setting . API . MaxResponseItems
}
// TODO(20073) tags are used for compare feature which needs all tags
// filtering is done on the client-side atm
tagListStart , tagListEnd := 0 , 0
if isTagList {
tagListStart , tagListEnd = listOptions . GetStartEnd ( )
}
tags , err := ctx . Repo . GitRepo . GetTags ( tagListStart , tagListEnd )
if err != nil {
ctx . ServerError ( "GetTags" , err )
return
}
ctx . Data [ "Tags" ] = tags
writeAccess := ctx . Repo . CanWrite ( unit . TypeReleases )
ctx . Data [ "CanCreateRelease" ] = writeAccess && ! ctx . Repo . Repository . IsArchived
opts := repo_model . FindReleasesOptions {
ListOptions : listOptions ,
}
if isTagList {
// for the tags list page, show all releases with real tags (having real commit-id),
// the drafts should also be included because a real tag might be used as a draft.
opts . IncludeDrafts = true
opts . IncludeTags = true
opts . HasSha1 = util . OptionalBoolTrue
} else {
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
opts. IncludeDrafts = writeAccess
IncludeDrafts : writeAccess ,
}
releases , err := repo_model . GetReleasesByRepoID ( ctx , ctx . Repo . Repository . ID , opts )
@ -137,12 +103,6 @@ func releasesOrTags(ctx *context.Context, isTagList bool) {
return
}
count , err := repo_model . GetReleaseCountByRepoID ( ctx , ctx . Repo . Repository . ID , opts )
if err != nil {
ctx . ServerError ( "GetReleaseCountByRepoID" , err )
return
}
for _ , release := range releases {
release . Repo = ctx . Repo . Repository
}
@ -197,16 +157,59 @@ func releasesOrTags(ctx *context.Context, isTagList bool) {
ctx . Data [ "Releases" ] = releases
pager := context . NewPagination ( int ( count ) , opts . PageSize , opts . Page , 5 )
numReleases := ctx . Data [ "NumReleases" ] . ( int64 )
pager := context . NewPagination ( int ( numReleases ) , opts . PageSize , opts . Page , 5 )
pager . SetDefaultParams ( ctx )
ctx . Data [ "Page" ] = pager
if isTagList {
ctx . Data [ "PageIsViewCode" ] = ! ctx . Repo . Repository . UnitEnabled ( ctx , unit . TypeReleases )
ctx . HTML ( http . StatusOK , tplTagsList )
} else {
ctx . HTML ( http . StatusOK , tplReleasesList )
ctx . HTML ( http . StatusOK , tplReleasesList )
}
// TagsList render tags list page
func TagsList ( ctx * context . Context ) {
ctx . Data [ "PageIsTagList" ] = true
ctx . Data [ "Title" ] = ctx . Tr ( "repo.release.tags" )
ctx . Data [ "IsViewBranch" ] = false
ctx . Data [ "IsViewTag" ] = true
// Disable the showCreateNewBranch form in the dropdown on this page.
ctx . Data [ "CanCreateBranch" ] = false
ctx . Data [ "HideBranchesInDropdown" ] = true
listOptions := db . ListOptions {
Page : ctx . FormInt ( "page" ) ,
PageSize : ctx . FormInt ( "limit" ) ,
}
if listOptions . PageSize == 0 {
listOptions . PageSize = setting . Repository . Release . DefaultPagingNum
}
if listOptions . PageSize > setting . API . MaxResponseItems {
listOptions . PageSize = setting . API . MaxResponseItems
}
opts := repo_model . FindReleasesOptions {
ListOptions : listOptions ,
// for the tags list page, show all releases with real tags (having real commit-id),
// the drafts should also be included because a real tag might be used as a draft.
IncludeDrafts : true ,
IncludeTags : true ,
HasSha1 : util . OptionalBoolTrue ,
}
releases , err := repo_model . GetReleasesByRepoID ( ctx , ctx . Repo . Repository . ID , opts )
if err != nil {
ctx . ServerError ( "GetReleasesByRepoID" , err )
return
}
ctx . Data [ "Releases" ] = releases
numTags := ctx . Data [ "NumTags" ] . ( int64 )
pager := context . NewPagination ( int ( numTags ) , opts . PageSize , opts . Page , 5 )
pager . SetDefaultParams ( ctx )
ctx . Data [ "Page" ] = pager
ctx . Data [ "PageIsViewCode" ] = ! ctx . Repo . Repository . UnitEnabled ( ctx , unit . TypeReleases )
ctx . HTML ( http . StatusOK , tplTagsList )
}
// ReleasesFeedRSS get feeds for releases in RSS format