2023-03-11 00:42:38 +08:00
import { hideElem , showElem } from '../utils/dom.js' ;
2023-04-03 18:06:57 +08:00
import { initComboMarkdownEditor } from './comp/ComboMarkdownEditor.js' ;
2021-10-17 01:28:04 +08:00
export function initRepoRelease ( ) {
2024-02-18 03:22:09 +02:00
document . addEventListener ( 'click' , ( e ) => {
if ( e . target . matches ( '.remove-rel-attach' ) ) {
const uuid = e . target . getAttribute ( 'data-uuid' ) ;
const id = e . target . getAttribute ( 'data-id' ) ;
document . querySelector ( ` input[name='attachment-del- ${ uuid } '] ` ) . value = 'true' ;
hideElem ( ` #attachment- ${ id } ` ) ;
}
2021-10-17 01:28:04 +08:00
} ) ;
}
2023-03-11 00:42:38 +08:00
export function initRepoReleaseNew ( ) {
2024-02-18 03:22:09 +02:00
if ( ! document . querySelector ( '.repository.new.release' ) ) return ;
2021-10-17 01:28:04 +08:00
2023-03-11 00:42:38 +08:00
initTagNameEditor ( ) ;
initRepoReleaseEditor ( ) ;
}
function initTagNameEditor ( ) {
const el = document . getElementById ( 'tag-name-editor' ) ;
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' ) ;
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 22:03:39 +08:00
const tagNameInput = document . getElementById ( 'tag-name' ) ;
const hideTargetInput = function ( tagNameInput ) {
const value = tagNameInput . value ;
2023-05-09 04:35:49 +02:00
const tagHelper = document . getElementById ( 'tag-helper' ) ;
2023-03-11 00:42:38 +08:00
if ( existingTags . includes ( value ) ) {
// If the tag already exists, hide the target branch selector.
hideElem ( '#tag-target-selector' ) ;
2023-05-09 04:35:49 +02:00
tagHelper . textContent = existingTagHelperText ;
2023-03-11 00:42:38 +08:00
} else {
showElem ( '#tag-target-selector' ) ;
2023-05-09 04:35:49 +02:00
tagHelper . textContent = value ? newTagHelperText : defaultTagHelperText ;
2023-03-11 00:42:38 +08: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 22:03:39 +08:00
} ;
hideTargetInput ( tagNameInput ) ; // update on page load because the input may have a value
tagNameInput . addEventListener ( 'input' , ( e ) => {
hideTargetInput ( e . target ) ;
2023-03-11 00:42:38 +08:00
} ) ;
}
function initRepoReleaseEditor ( ) {
2024-02-18 03:22:09 +02:00
const editor = document . querySelector ( '.repository.new.release .combo-markdown-editor' ) ;
if ( ! editor ) {
2023-02-01 20:14:40 +01:00
return ;
2021-10-17 01:28:04 +08:00
}
2024-02-18 03:22:09 +02:00
initComboMarkdownEditor ( editor ) ;
2021-10-17 01:28:04 +08:00
}