mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Backport #14962 Fix #14840 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Norwin Roosen <git@nroo.de> Co-authored-by: jaqra <48099350+jaqra@users.noreply.github.com> Co-authored-by: Norwin Roosen <git@nroo.de> Co-authored-by: jaqra <48099350+jaqra@users.noreply.github.com>
This commit is contained in:
		@@ -63,7 +63,7 @@
 | 
			
		||||
							<span class="info">{{.i18n.Tr "repo.issues.filter_label_exclude" | Safe}}</span>
 | 
			
		||||
							<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
 | 
			
		||||
							{{range .Labels}}
 | 
			
		||||
								<a class="item label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}">{{if .IsExcluded}}{{svg "octicon-circle-slash"}}{{else if contain $.SelLabelIDs .ID}}{{svg "octicon-check"}}{{end}}<span class="label color" style="background-color: {{.Color}}"></span> {{.Name | RenderEmoji}}</a>
 | 
			
		||||
								<a class="item label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}">{{if .IsExcluded}}{{svg "octicon-circle-slash"}}{{else if contain $.SelLabelIDs .ID}}{{svg "octicon-check"}}{{end}}<span class="label color" style="background-color: {{.Color}}"></span> {{.Name | RenderEmoji}}</a>
 | 
			
		||||
							{{end}}
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -3592,18 +3592,21 @@ function initIssueList() {
 | 
			
		||||
      fullTextSearch: true
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
  function excludeLabel (item) {
 | 
			
		||||
    const href = $(item).attr('href');
 | 
			
		||||
    const id = $(item).data('label-id');
 | 
			
		||||
 | 
			
		||||
    const regStr = `labels=((?:-?[0-9]+%2c)*)(${id})((?:%2c-?[0-9]+)*)&`;
 | 
			
		||||
    const newStr = 'labels=$1-$2$3&';
 | 
			
		||||
 | 
			
		||||
    window.location = href.replace(new RegExp(regStr), newStr);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $('.menu a.label-filter-item').each(function () {
 | 
			
		||||
    $(this).on('click', function (e) {
 | 
			
		||||
      if (e.altKey) {
 | 
			
		||||
        e.preventDefault();
 | 
			
		||||
 | 
			
		||||
        const href = $(this).attr('href');
 | 
			
		||||
        const id = $(this).data('label-id');
 | 
			
		||||
 | 
			
		||||
        const regStr = `labels=(-?[0-9]+%2c)*(${id})(%2c-?[0-9]+)*&`;
 | 
			
		||||
        const newStr = 'labels=$1-$2$3&';
 | 
			
		||||
 | 
			
		||||
        window.location = href.replace(new RegExp(regStr), newStr);
 | 
			
		||||
        excludeLabel(this);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
@@ -3611,17 +3614,8 @@ function initIssueList() {
 | 
			
		||||
  $('.menu .ui.dropdown.label-filter').on('keydown', (e) => {
 | 
			
		||||
    if (e.altKey && e.keyCode === 13) {
 | 
			
		||||
      const selectedItems = $('.menu .ui.dropdown.label-filter .menu .item.selected');
 | 
			
		||||
 | 
			
		||||
      if (selectedItems.length > 0) {
 | 
			
		||||
        const item = $(selectedItems[0]);
 | 
			
		||||
 | 
			
		||||
        const href = item.attr('href');
 | 
			
		||||
        const id = item.data('label-id');
 | 
			
		||||
 | 
			
		||||
        const regStr = `labels=(-?[0-9]+%2c)*(${id})(%2c-?[0-9]+)*&`;
 | 
			
		||||
        const newStr = 'labels=$1-$2$3&';
 | 
			
		||||
 | 
			
		||||
        window.location = href.replace(new RegExp(regStr), newStr);
 | 
			
		||||
        excludeLabel($(selectedItems[0]));
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user