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  }