mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
48 lines
1.8 KiB
import {hideElem, showElem} from '../utils/dom.ts'; |
|
|
|
export function initRepoRelease() { |
|
document.addEventListener('click', (e: Event) => { |
|
if ((e.target as HTMLElement).matches('.remove-rel-attach')) { |
|
const uuid = (e.target as HTMLElement).getAttribute('data-uuid'); |
|
const id = (e.target as HTMLElement).getAttribute('data-id'); |
|
document.querySelector<HTMLInputElement>(`input[name='attachment-del-${uuid}']`)!.value = 'true'; |
|
hideElem(`#attachment-${id}`); |
|
} |
|
}); |
|
} |
|
|
|
export function initRepoReleaseNew() { |
|
if (!document.querySelector('.repository.new.release')) return; |
|
|
|
initTagNameEditor(); |
|
} |
|
|
|
function initTagNameEditor() { |
|
const el = document.querySelector('#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'); |
|
|
|
const tagNameInput = document.querySelector<HTMLInputElement>('#tag-name')!; |
|
const hideTargetInput = function(tagNameInput: HTMLInputElement) { |
|
const value = tagNameInput.value; |
|
const tagHelper = document.querySelector('#tag-helper')!; |
|
if (existingTags.includes(value)) { |
|
// If the tag already exists, hide the target branch selector. |
|
hideElem('#tag-target-selector'); |
|
tagHelper.textContent = existingTagHelperText; |
|
} else { |
|
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 as HTMLInputElement); |
|
}); |
|
}
|
|
|