mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Fix some dropdown problems on the issue sidebar (#34308)
Also fix #34300
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
import {fomanticQuery} from '../modules/fomantic/base.ts';
 | 
			
		||||
import {POST} from '../modules/fetch.ts';
 | 
			
		||||
import {queryElemChildren, queryElems, toggleElem} from '../utils/dom.ts';
 | 
			
		||||
import {addDelegatedEventListener, queryElemChildren, queryElems, toggleElem} from '../utils/dom.ts';
 | 
			
		||||
 | 
			
		||||
// if there are draft comments, confirm before reloading, to avoid losing comments
 | 
			
		||||
function issueSidebarReloadConfirmDraftComment() {
 | 
			
		||||
@@ -22,7 +22,7 @@ function issueSidebarReloadConfirmDraftComment() {
 | 
			
		||||
  window.location.reload();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class IssueSidebarComboList {
 | 
			
		||||
export class IssueSidebarComboList {
 | 
			
		||||
  updateUrl: string;
 | 
			
		||||
  updateAlgo: string;
 | 
			
		||||
  selectionMode: string;
 | 
			
		||||
@@ -95,9 +95,7 @@ class IssueSidebarComboList {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async onItemClick(e: Event) {
 | 
			
		||||
    const elItem = (e.target as HTMLElement).closest('.item');
 | 
			
		||||
    if (!elItem) return;
 | 
			
		||||
  async onItemClick(elItem: HTMLElement, e: Event) {
 | 
			
		||||
    e.preventDefault();
 | 
			
		||||
    if (elItem.hasAttribute('data-can-change') && elItem.getAttribute('data-can-change') !== 'true') return;
 | 
			
		||||
 | 
			
		||||
@@ -146,16 +144,13 @@ class IssueSidebarComboList {
 | 
			
		||||
    }
 | 
			
		||||
    this.initialValues = this.collectCheckedValues();
 | 
			
		||||
 | 
			
		||||
    this.elDropdown.addEventListener('click', (e) => this.onItemClick(e));
 | 
			
		||||
    addDelegatedEventListener(this.elDropdown, 'click', '.item', (el, e) => this.onItemClick(el, e));
 | 
			
		||||
 | 
			
		||||
    fomanticQuery(this.elDropdown).dropdown('setting', {
 | 
			
		||||
      action: 'nothing', // do not hide the menu if user presses Enter
 | 
			
		||||
      fullTextSearch: 'exact',
 | 
			
		||||
      hideDividers: 'empty',
 | 
			
		||||
      onHide: () => this.onHide(),
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function initIssueSidebarComboList(container: HTMLElement) {
 | 
			
		||||
  new IssueSidebarComboList(container).init();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import {POST} from '../modules/fetch.ts';
 | 
			
		||||
import {queryElems, toggleElem} from '../utils/dom.ts';
 | 
			
		||||
import {initIssueSidebarComboList} from './repo-issue-sidebar-combolist.ts';
 | 
			
		||||
import {IssueSidebarComboList} from './repo-issue-sidebar-combolist.ts';
 | 
			
		||||
 | 
			
		||||
function initBranchSelector() {
 | 
			
		||||
  // TODO: RemoveIssueRef: see "repo/issue/branch_selector_field.tmpl"
 | 
			
		||||
@@ -48,5 +48,5 @@ export function initRepoIssueSidebar() {
 | 
			
		||||
  initRepoIssueDue();
 | 
			
		||||
 | 
			
		||||
  // init the combo list: a dropdown for selecting items, and a list for showing selected items and related actions
 | 
			
		||||
  queryElems<HTMLElement>(document, '.issue-sidebar-combo', (el) => initIssueSidebarComboList(el));
 | 
			
		||||
  queryElems<HTMLElement>(document, '.issue-sidebar-combo', (el) => new IssueSidebarComboList(el).init());
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user