mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 19:38:23 +00:00 
			
		
		
		
	Show branches and tags that contain a commit (#25180)
Now, you can see for a commit which existing branches and tags contain it. You first have to click on the `load branches and tags` button, they are not preloaded by default. All branches and tags are ordered descending by creation date. You can even see without much hassle if the given commit is already part of the default branch. Closes #25152 ## Screenshots ### Initial  ### Loaded  --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		| @@ -5,7 +5,7 @@ import {toggleElem} from '../utils/dom.js'; | ||||
| const {csrfToken} = window.config; | ||||
|  | ||||
| export function initRepoEllipsisButton() { | ||||
|   $('.ellipsis-button').on('click', function (e) { | ||||
|   $('.js-toggle-commit-body').on('click', function (e) { | ||||
|     e.preventDefault(); | ||||
|     const expanded = $(this).attr('aria-expanded') === 'true'; | ||||
|     toggleElem($(this).parent().find('.commit-body')); | ||||
|   | ||||
							
								
								
									
										52
									
								
								web_src/js/features/repo-diff-commit.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								web_src/js/features/repo-diff-commit.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| import {hideElem, showElem, toggleElem} from '../utils/dom.js'; | ||||
|  | ||||
| async function loadBranchesAndTags(area, loadingButton) { | ||||
|   loadingButton.classList.add('disabled'); | ||||
|   try { | ||||
|     const res = await fetch(loadingButton.getAttribute('data-fetch-url')); | ||||
|     const data = await res.json(); | ||||
|     hideElem(loadingButton); | ||||
|     addTags(area, data.tags); | ||||
|     addBranches(area, data.branches, data.default_branch); | ||||
|     showElem(area.querySelectorAll('.branch-and-tag-detail')); | ||||
|   } finally { | ||||
|     loadingButton.classList.remove('disabled'); | ||||
|   } | ||||
| } | ||||
|  | ||||
| function addTags(area, tags) { | ||||
|   const tagArea = area.querySelector('.tag-area'); | ||||
|   toggleElem(tagArea, tags.length > 0); | ||||
|   for (const tag of tags) { | ||||
|     addLink(tagArea, tag.web_link, tag.name); | ||||
|   } | ||||
| } | ||||
|  | ||||
| function addBranches(area, branches, defaultBranch) { | ||||
|   const defaultBranchTooltip = area.getAttribute('data-text-default-branch-tooltip'); | ||||
|   const branchArea = area.querySelector('.branch-area'); | ||||
|   toggleElem(branchArea, branches.length > 0); | ||||
|   for (const branch of branches) { | ||||
|     const tooltip = defaultBranch === branch.name ? defaultBranchTooltip : null; | ||||
|     addLink(branchArea, branch.web_link, branch.name, tooltip); | ||||
|   } | ||||
| } | ||||
|  | ||||
| function addLink(parent, href, text, tooltip) { | ||||
|   const link = document.createElement('a'); | ||||
|   link.classList.add('muted', 'gt-px-2'); | ||||
|   link.href = href; | ||||
|   link.textContent = text; | ||||
|   if (tooltip) { | ||||
|     link.classList.add('gt-border-secondary', 'gt-rounded'); | ||||
|     link.setAttribute('data-tooltip-content', tooltip); | ||||
|   } | ||||
|   parent.append(link); | ||||
| } | ||||
|  | ||||
| export function initRepoDiffCommitBranchesAndTags() { | ||||
|   for (const area of document.querySelectorAll('.branch-and-tag-area')) { | ||||
|     const btn = area.querySelector('.load-branches-and-tags'); | ||||
|     btn.addEventListener('click', () => loadBranchesAndTags(area, btn)); | ||||
|   } | ||||
| } | ||||
| @@ -459,7 +459,7 @@ async function onEditContent(event) { | ||||
| } | ||||
|  | ||||
| export function initRepository() { | ||||
|   if ($('.repository').length === 0) { | ||||
|   if ($('.page-content.repository').length === 0) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -83,6 +83,7 @@ import {initGiteaFomantic} from './modules/fomantic.js'; | ||||
| import {onDomReady} from './utils/dom.js'; | ||||
| import {initRepoIssueList} from './features/repo-issue-list.js'; | ||||
| import {initCommonIssueListQuickGoto} from './features/common-issue-list.js'; | ||||
| import {initRepoDiffCommitBranchesAndTags} from './features/repo-diff-commit.js'; | ||||
|  | ||||
| // Init Gitea's Fomantic settings | ||||
| initGiteaFomantic(); | ||||
| @@ -141,6 +142,7 @@ onDomReady(() => { | ||||
|   initRepoCodeView(); | ||||
|   initRepoCommentForm(); | ||||
|   initRepoEllipsisButton(); | ||||
|   initRepoDiffCommitBranchesAndTags(); | ||||
|   initRepoCommitLastCommitLoader(); | ||||
|   initRepoEditor(); | ||||
|   initRepoGraphGit(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user