mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-30 01:04:25 +01:00 
			
		
		
		
	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);
 | |
| }
 |