mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Close #22847 This PR: * introduce Gitea's own `showElem` and related functions * remove jQuery show/hide * remove .hide class * remove inline style=display:none From now on: do not use: * "[hidden]" attribute: it's too weak, can not be applied to an element with "display: flex" * ".hidden" class: it has been polluted by Fomantic UI in many cases * inline style="display: none": it's difficult to tweak * jQuery's show/hide/toggle: it can not show/hide elements with "display: xxx !important" only use: * this ".gt-hidden" class * showElem/hideElem/toggleElem functions in "utils/dom.js" cc: @silverwind , this is the all-in-one PR
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import $ from 'jquery';
 | 
						|
import {htmlEscape} from 'escape-goat';
 | 
						|
import {hideElem, showElem} from '../utils/dom.js';
 | 
						|
 | 
						|
const {appSubUrl} = window.config;
 | 
						|
 | 
						|
export function initRepoTemplateSearch() {
 | 
						|
  const $repoTemplate = $('#repo_template');
 | 
						|
  const checkTemplate = function () {
 | 
						|
    const $templateUnits = $('#template_units');
 | 
						|
    const $nonTemplate = $('#non_template');
 | 
						|
    if ($repoTemplate.val() !== '' && $repoTemplate.val() !== '0') {
 | 
						|
      showElem($templateUnits);
 | 
						|
      hideElem($nonTemplate);
 | 
						|
    } else {
 | 
						|
      hideElem($templateUnits);
 | 
						|
      showElem($nonTemplate);
 | 
						|
    }
 | 
						|
  };
 | 
						|
  $repoTemplate.on('change', checkTemplate);
 | 
						|
  checkTemplate();
 | 
						|
 | 
						|
  const changeOwner = function () {
 | 
						|
    $('#repo_template_search')
 | 
						|
      .dropdown({
 | 
						|
        apiSettings: {
 | 
						|
          url: `${appSubUrl}/repo/search?q={query}&template=true&priority_owner_id=${$('#uid').val()}`,
 | 
						|
          onResponse(response) {
 | 
						|
            const filteredResponse = {success: true, results: []};
 | 
						|
            filteredResponse.results.push({
 | 
						|
              name: '',
 | 
						|
              value: ''
 | 
						|
            });
 | 
						|
            // Parse the response from the api to work with our dropdown
 | 
						|
            $.each(response.data, (_r, repo) => {
 | 
						|
              filteredResponse.results.push({
 | 
						|
                name: htmlEscape(repo.full_name),
 | 
						|
                value: repo.id
 | 
						|
              });
 | 
						|
            });
 | 
						|
            return filteredResponse;
 | 
						|
          },
 | 
						|
          cache: false,
 | 
						|
        },
 | 
						|
 | 
						|
        fullTextSearch: true
 | 
						|
      });
 | 
						|
  };
 | 
						|
  $('#uid').on('change', changeOwner);
 | 
						|
  changeOwner();
 | 
						|
}
 |