mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-30 22:44:20 +01:00 
			
		
		
		
	Hide archived labels by default from the suggestions when assigning labels for an issue (#27451)
Followup of #27115 Finally closes #25237 ## Screenshots ### Issue Sidebar <img width="513" alt="image" src="https://github.com/go-gitea/gitea/assets/80308335/9f7fda2f-5a03-4684-8619-fd3498a95b41"> ### PR sidebar <img width="367" alt="image" src="https://github.com/go-gitea/gitea/assets/80308335/53db9b64-faec-4a67-91d6-76945596a469"> ### PR sidebar with archived labels shown <img width="352" alt="image" src="https://github.com/go-gitea/gitea/assets/80308335/9dc5050f-4e69-4f76-bb83-582480a2281e"> --------- Signed-off-by: puni9869 <punitinani1@hotmail.com> Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		
							parent
							
								
									d98c863884
								
							
						
					
					
						commit
						4adc2a828d
					
				| @ -29,11 +29,9 @@ | ||||
| 						<div class="divider"></div> | ||||
| 					{{end}} | ||||
| 					{{$previousExclusiveScope = $exclusiveScope}} | ||||
| 					<div class="item issue-action gt-df gt-items-start" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels"> | ||||
| 					<div class="item issue-action gt-df gt-sb" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels"> | ||||
| 						{{if SliceUtils.Contains $.SelLabelIDs .ID}}{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}{{end}} {{RenderLabel $.Context .}} | ||||
| 						{{if .IsArchived}} | ||||
| 							<i data-tooltip-content={{ctx.Locale.Tr "archived"}}>{{svg "octicon-info"}}</i> | ||||
| 						{{end}} | ||||
| 						{{template "repo/issue/labels/label_archived" .}} | ||||
| 					</div> | ||||
| 				{{end}} | ||||
| 			</div> | ||||
|  | ||||
| @ -21,8 +21,10 @@ | ||||
| 					<div class="divider"></div> | ||||
| 				{{end}} | ||||
| 				{{$previousExclusiveScope = $exclusiveScope}} | ||||
| 				<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}gt-invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} | ||||
| 				{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> | ||||
| 				<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" {{if .IsArchived}}data-is-archived{{end}} data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}gt-invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} | ||||
| 					{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}} | ||||
| 					<p class="archived-label-hint">{{template "repo/issue/labels/label_archived" .}}</p> | ||||
| 				</a> | ||||
| 			{{end}} | ||||
| 			<div class="divider"></div> | ||||
| 			{{$previousExclusiveScope = "_no_scope"}} | ||||
| @ -32,8 +34,10 @@ | ||||
| 					<div class="divider"></div> | ||||
| 				{{end}} | ||||
| 				{{$previousExclusiveScope = $exclusiveScope}} | ||||
| 				<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}gt-invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} | ||||
| 				{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> | ||||
| 				<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" {{if .IsArchived}}data-is-archived{{end}} data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}gt-invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} | ||||
| 					{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}} | ||||
| 					<p class="archived-label-hint">{{template "repo/issue/labels/label_archived" .}}</p> | ||||
| 				</a> | ||||
| 			{{end}} | ||||
| 		{{else}} | ||||
| 			<div class="disabled item">{{ctx.Locale.Tr "repo.issues.new.no_items"}}</div> | ||||
|  | ||||
| @ -45,3 +45,8 @@ | ||||
| .label-operation .label { | ||||
|   height: fit-content; | ||||
| } | ||||
| 
 | ||||
| .archived-label-hint { | ||||
|   float: right; | ||||
|   margin: -12px; | ||||
| } | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| import $ from 'jquery'; | ||||
| import {updateIssuesMeta} from './repo-issue.js'; | ||||
| import {toggleElem} from '../utils/dom.js'; | ||||
| import {toggleElem, hideElem} from '../utils/dom.js'; | ||||
| import {htmlEscape} from 'escape-goat'; | ||||
| import {confirmModal} from './comp/ConfirmModal.js'; | ||||
| import {showErrorToast} from '../modules/toast.js'; | ||||
| @ -194,6 +194,10 @@ function initArchivedLabelFilter() { | ||||
|   const url = new URL(window.location.href); | ||||
|   const archivedLabels = document.querySelectorAll('[data-is-archived]'); | ||||
| 
 | ||||
|   if (!archivedLabels.length) { | ||||
|     hideElem('.archived-label-filter'); | ||||
|     return; | ||||
|   } | ||||
|   const selectedLabels = (url.searchParams.get('labels') || '') | ||||
|     .split(',') | ||||
|     .map((id) => id < 0 ? `${~id + 1}` : id); // selectedLabels contains -ve ids, which are excluded so convert any -ve value id to +ve
 | ||||
|  | ||||
| @ -680,3 +680,16 @@ export function initIssueTemplateCommentEditors($commentForm) { | ||||
|     initCombo($(el)); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| // This function used to show and hide archived label on issue/pr
 | ||||
| //  page in the sidebar where we select the labels
 | ||||
| //  If we have any archived label tagged to issue and pr. We will show that
 | ||||
| //  archived label with checked classed otherwise we will hide it
 | ||||
| //  with the help of this function.
 | ||||
| //  This function runs globally.
 | ||||
| export function initArchivedLabelHandler() { | ||||
|   if (!document.querySelector('.archived-label-hint')) return; | ||||
|   for (const label of document.querySelectorAll('[data-is-archived]')) { | ||||
|     toggleElem(label, label.classList.contains('checked')); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -31,7 +31,7 @@ import { | ||||
|   initRepoIssueWipTitle, | ||||
|   initRepoPullRequestMergeInstruction, | ||||
|   initRepoPullRequestAllowMaintainerEdit, | ||||
|   initRepoPullRequestReview, initRepoIssueSidebarList | ||||
|   initRepoPullRequestReview, initRepoIssueSidebarList, initArchivedLabelHandler, | ||||
| } from './features/repo-issue.js'; | ||||
| import { | ||||
|   initRepoEllipsisButton, | ||||
| @ -152,6 +152,7 @@ onDomReady(() => { | ||||
|   initRepoIssueDue(); | ||||
|   initRepoIssueList(); | ||||
|   initRepoIssueSidebarList(); | ||||
|   initArchivedLabelHandler(); | ||||
|   initRepoIssueReferenceRepositorySearch(); | ||||
|   initRepoIssueTimeTracking(); | ||||
|   initRepoIssueWipTitle(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user