mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08: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:
		@@ -29,11 +29,9 @@
 | 
				
			|||||||
						<div class="divider"></div>
 | 
											<div class="divider"></div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					{{$previousExclusiveScope = $exclusiveScope}}
 | 
										{{$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 SliceUtils.Contains $.SelLabelIDs .ID}}{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}{{end}} {{RenderLabel $.Context .}}
 | 
				
			||||||
						{{if .IsArchived}}
 | 
											{{template "repo/issue/labels/label_archived" .}}
 | 
				
			||||||
							<i data-tooltip-content={{ctx.Locale.Tr "archived"}}>{{svg "octicon-info"}}</i>
 | 
					 | 
				
			||||||
						{{end}}
 | 
					 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,8 +21,10 @@
 | 
				
			|||||||
					<div class="divider"></div>
 | 
										<div class="divider"></div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{$previousExclusiveScope = $exclusiveScope}}
 | 
									{{$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 .}}
 | 
									<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}}</a>
 | 
										{{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}}
 | 
								{{end}}
 | 
				
			||||||
			<div class="divider"></div>
 | 
								<div class="divider"></div>
 | 
				
			||||||
			{{$previousExclusiveScope = "_no_scope"}}
 | 
								{{$previousExclusiveScope = "_no_scope"}}
 | 
				
			||||||
@@ -32,8 +34,10 @@
 | 
				
			|||||||
					<div class="divider"></div>
 | 
										<div class="divider"></div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{$previousExclusiveScope = $exclusiveScope}}
 | 
									{{$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 .}}
 | 
									<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}}</a>
 | 
										{{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}}
 | 
								{{end}}
 | 
				
			||||||
		{{else}}
 | 
							{{else}}
 | 
				
			||||||
			<div class="disabled item">{{ctx.Locale.Tr "repo.issues.new.no_items"}}</div>
 | 
								<div class="disabled item">{{ctx.Locale.Tr "repo.issues.new.no_items"}}</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,3 +45,8 @@
 | 
				
			|||||||
.label-operation .label {
 | 
					.label-operation .label {
 | 
				
			||||||
  height: fit-content;
 | 
					  height: fit-content;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.archived-label-hint {
 | 
				
			||||||
 | 
					  float: right;
 | 
				
			||||||
 | 
					  margin: -12px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
import $ from 'jquery';
 | 
					import $ from 'jquery';
 | 
				
			||||||
import {updateIssuesMeta} from './repo-issue.js';
 | 
					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 {htmlEscape} from 'escape-goat';
 | 
				
			||||||
import {confirmModal} from './comp/ConfirmModal.js';
 | 
					import {confirmModal} from './comp/ConfirmModal.js';
 | 
				
			||||||
import {showErrorToast} from '../modules/toast.js';
 | 
					import {showErrorToast} from '../modules/toast.js';
 | 
				
			||||||
@@ -194,6 +194,10 @@ function initArchivedLabelFilter() {
 | 
				
			|||||||
  const url = new URL(window.location.href);
 | 
					  const url = new URL(window.location.href);
 | 
				
			||||||
  const archivedLabels = document.querySelectorAll('[data-is-archived]');
 | 
					  const archivedLabels = document.querySelectorAll('[data-is-archived]');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!archivedLabels.length) {
 | 
				
			||||||
 | 
					    hideElem('.archived-label-filter');
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  const selectedLabels = (url.searchParams.get('labels') || '')
 | 
					  const selectedLabels = (url.searchParams.get('labels') || '')
 | 
				
			||||||
    .split(',')
 | 
					    .split(',')
 | 
				
			||||||
    .map((id) => id < 0 ? `${~id + 1}` : id); // selectedLabels contains -ve ids, which are excluded so convert any -ve value id to +ve
 | 
					    .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));
 | 
					    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,
 | 
					  initRepoIssueWipTitle,
 | 
				
			||||||
  initRepoPullRequestMergeInstruction,
 | 
					  initRepoPullRequestMergeInstruction,
 | 
				
			||||||
  initRepoPullRequestAllowMaintainerEdit,
 | 
					  initRepoPullRequestAllowMaintainerEdit,
 | 
				
			||||||
  initRepoPullRequestReview, initRepoIssueSidebarList
 | 
					  initRepoPullRequestReview, initRepoIssueSidebarList, initArchivedLabelHandler,
 | 
				
			||||||
} from './features/repo-issue.js';
 | 
					} from './features/repo-issue.js';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  initRepoEllipsisButton,
 | 
					  initRepoEllipsisButton,
 | 
				
			||||||
@@ -152,6 +152,7 @@ onDomReady(() => {
 | 
				
			|||||||
  initRepoIssueDue();
 | 
					  initRepoIssueDue();
 | 
				
			||||||
  initRepoIssueList();
 | 
					  initRepoIssueList();
 | 
				
			||||||
  initRepoIssueSidebarList();
 | 
					  initRepoIssueSidebarList();
 | 
				
			||||||
 | 
					  initArchivedLabelHandler();
 | 
				
			||||||
  initRepoIssueReferenceRepositorySearch();
 | 
					  initRepoIssueReferenceRepositorySearch();
 | 
				
			||||||
  initRepoIssueTimeTracking();
 | 
					  initRepoIssueTimeTracking();
 | 
				
			||||||
  initRepoIssueWipTitle();
 | 
					  initRepoIssueWipTitle();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user