forked from Shiloh/githaven
cc27b50bdf
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.
59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
import {hideElem, showElem} from '../utils/dom.js';
|
|
import {initComboMarkdownEditor} from './comp/ComboMarkdownEditor.js';
|
|
|
|
export function initRepoRelease() {
|
|
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}`);
|
|
}
|
|
});
|
|
}
|
|
|
|
export function initRepoReleaseNew() {
|
|
if (!document.querySelector('.repository.new.release')) return;
|
|
|
|
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');
|
|
|
|
const tagNameInput = document.getElementById('tag-name');
|
|
const hideTargetInput = function(tagNameInput) {
|
|
const value = tagNameInput.value;
|
|
const tagHelper = document.getElementById('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);
|
|
});
|
|
}
|
|
|
|
function initRepoReleaseEditor() {
|
|
const editor = document.querySelector('.repository.new.release .combo-markdown-editor');
|
|
if (!editor) {
|
|
return;
|
|
}
|
|
initComboMarkdownEditor(editor);
|
|
}
|