code.gitea.io/gitea@v1.22.3/web_src/js/features/repo-template.js (about) 1 import $ from 'jquery'; 2 import {htmlEscape} from 'escape-goat'; 3 import {hideElem, showElem} from '../utils/dom.js'; 4 5 const {appSubUrl} = window.config; 6 7 export function initRepoTemplateSearch() { 8 const $repoTemplate = $('#repo_template'); 9 const checkTemplate = function () { 10 const $templateUnits = $('#template_units'); 11 const $nonTemplate = $('#non_template'); 12 if ($repoTemplate.val() !== '' && $repoTemplate.val() !== '0') { 13 showElem($templateUnits); 14 hideElem($nonTemplate); 15 } else { 16 hideElem($templateUnits); 17 showElem($nonTemplate); 18 } 19 }; 20 $repoTemplate.on('change', checkTemplate); 21 checkTemplate(); 22 23 const changeOwner = function () { 24 $('#repo_template_search') 25 .dropdown({ 26 apiSettings: { 27 url: `${appSubUrl}/repo/search?q={query}&template=true&priority_owner_id=${$('#uid').val()}`, 28 onResponse(response) { 29 const filteredResponse = {success: true, results: []}; 30 filteredResponse.results.push({ 31 name: '', 32 value: '', 33 }); 34 // Parse the response from the api to work with our dropdown 35 $.each(response.data, (_r, repo) => { 36 filteredResponse.results.push({ 37 name: htmlEscape(repo.repository.full_name), 38 value: repo.repository.id, 39 }); 40 }); 41 return filteredResponse; 42 }, 43 cache: false, 44 }, 45 46 fullTextSearch: true, 47 }); 48 }; 49 $('#uid').on('change', changeOwner); 50 changeOwner(); 51 }