2024-07-07 18:32:30 +03:00
import { hideElem , showElem } from '../utils/dom.ts' ;
2021-10-16 20:28:04 +03:00
export function initRepoRelease() {
2024-12-11 11:29:04 +03:00
document . addEventListener ( 'click' , ( e : MouseEvent & { target : HTMLElement } ) = > {
2024-02-18 04:22:09 +03:00
if ( e . target . matches ( '.remove-rel-attach' ) ) {
const uuid = e . target . getAttribute ( 'data-uuid' ) ;
const id = e . target . getAttribute ( 'data-id' ) ;
2024-12-11 11:29:04 +03:00
document . querySelector < HTMLInputElement > ( ` input[name='attachment-del- ${ uuid } '] ` ) . value = 'true' ;
2024-02-18 04:22:09 +03:00
hideElem ( ` #attachment- ${ id } ` ) ;
}
2021-10-16 20:28:04 +03:00
} ) ;
}
2023-03-10 19:42:38 +03:00
export function initRepoReleaseNew() {
2024-02-18 04:22:09 +03:00
if ( ! document . querySelector ( '.repository.new.release' ) ) return ;
2021-10-16 20:28:04 +03:00
2023-03-10 19:42:38 +03:00
initTagNameEditor ( ) ;
}
function initTagNameEditor() {
2024-06-10 23:49:33 +03:00
const el = document . querySelector ( '#tag-name-editor' ) ;
2023-03-10 19:42:38 +03:00
if ( ! el ) return ;
const existingTags = JSON . parse ( el . getAttribute ( 'data-existing-tags' ) ) ;
if ( ! Array . isArray ( existingTags ) ) return ;
const defaultTagHelperText = el . getAttribute ( 'data-tag-helper' ) ;
const newTagHelperText = el . getAttribute ( 'data-tag-helper-new' ) ;
const existingTagHelperText = el . getAttribute ( 'data-tag-helper-existing' ) ;
2024-12-11 11:29:04 +03:00
const tagNameInput = document . querySelector < HTMLInputElement > ( '#tag-name' ) ;
const hideTargetInput = function ( tagNameInput : HTMLInputElement ) {
Fix a bug returning 404 when display a single tag with no release (#29466)
Partially caused by #29149
When use
```go
releases, err := getReleaseInfos(ctx, &repo_model.FindReleasesOptions{
ListOptions: db.ListOptions{Page: 1, PageSize: 1},
RepoID: ctx.Repo.Repository.ID,
TagNames: []string{ctx.Params("*")},
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
IncludeDrafts: writeAccess,
})
```
replace
```go
release, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, ctx.Params("*"))
```
It missed `IncludeTags: true,`. That means this bug will be occupied only when the release is a tag.
This PR will fix
- Get the right tag record when it's not a release
- Display correct tag tab but not release tag when it's a tag.
- The button will bring the tag name to the new page when it's a single tag page
- the new page will automatically hide the release target inputbox when the tag name is pre filled. This should be backport to v1.21.
2024-03-02 17:03:39 +03:00
const value = tagNameInput . value ;
2024-06-10 23:49:33 +03:00
const tagHelper = document . querySelector ( '#tag-helper' ) ;
2023-03-10 19:42:38 +03:00
if ( existingTags . includes ( value ) ) {
// If the tag already exists, hide the target branch selector.
hideElem ( '#tag-target-selector' ) ;
2023-05-09 05:35:49 +03:00
tagHelper . textContent = existingTagHelperText ;
2023-03-10 19:42:38 +03:00
} else {
showElem ( '#tag-target-selector' ) ;
2023-05-09 05:35:49 +03:00
tagHelper . textContent = value ? newTagHelperText : defaultTagHelperText ;
2023-03-10 19:42:38 +03:00
}
Fix a bug returning 404 when display a single tag with no release (#29466)
Partially caused by #29149
When use
```go
releases, err := getReleaseInfos(ctx, &repo_model.FindReleasesOptions{
ListOptions: db.ListOptions{Page: 1, PageSize: 1},
RepoID: ctx.Repo.Repository.ID,
TagNames: []string{ctx.Params("*")},
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
IncludeDrafts: writeAccess,
})
```
replace
```go
release, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, ctx.Params("*"))
```
It missed `IncludeTags: true,`. That means this bug will be occupied only when the release is a tag.
This PR will fix
- Get the right tag record when it's not a release
- Display correct tag tab but not release tag when it's a tag.
- The button will bring the tag name to the new page when it's a single tag page
- the new page will automatically hide the release target inputbox when the tag name is pre filled. This should be backport to v1.21.
2024-03-02 17:03:39 +03:00
} ;
hideTargetInput ( tagNameInput ) ; // update on page load because the input may have a value
2024-12-11 11:29:04 +03:00
tagNameInput . addEventListener ( 'input' , ( e : InputEvent & { target : HTMLInputElement } ) = > {
Fix a bug returning 404 when display a single tag with no release (#29466)
Partially caused by #29149
When use
```go
releases, err := getReleaseInfos(ctx, &repo_model.FindReleasesOptions{
ListOptions: db.ListOptions{Page: 1, PageSize: 1},
RepoID: ctx.Repo.Repository.ID,
TagNames: []string{ctx.Params("*")},
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
IncludeDrafts: writeAccess,
})
```
replace
```go
release, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, ctx.Params("*"))
```
It missed `IncludeTags: true,`. That means this bug will be occupied only when the release is a tag.
This PR will fix
- Get the right tag record when it's not a release
- Display correct tag tab but not release tag when it's a tag.
- The button will bring the tag name to the new page when it's a single tag page
- the new page will automatically hide the release target inputbox when the tag name is pre filled. This should be backport to v1.21.
2024-03-02 17:03:39 +03:00
hideTargetInput ( e . target ) ;
2023-03-10 19:42:38 +03:00
} ) ;
}