diff --git a/web_src/js/features/repo-new.ts b/web_src/js/features/repo-new.ts index e90da08eed..ea4245bbb3 100644 --- a/web_src/js/features/repo-new.ts +++ b/web_src/js/features/repo-new.ts @@ -1,10 +1,10 @@ import {hideElem, querySingleVisibleElem, showElem, toggleElem} from '../utils/dom.ts'; -import {htmlEscape} from '../utils/html.ts'; +import {html, htmlEscape} from '../utils/html.ts'; import {fomanticQuery} from '../modules/fomantic/base.ts'; import {sanitizeRepoName} from './repo-common.ts'; const {appSubUrl} = window.config; - +const $ = window.$; function initRepoNewTemplateSearch(form: HTMLFormElement) { const elSubmitButton = querySingleVisibleElem(form, '.ui.primary.button')!; const elCreateRepoErrorMessage = form.querySelector('#create-repo-error-message')!; @@ -59,18 +59,25 @@ function initRepoNewTemplateSearch(form: HTMLFormElement) { } function initRepoGroupSelector(form: HTMLFormElement) { - const inputRepoOwnerUid = form.querySelector('#uid'); + const inputRepoOwnerUid = form.querySelector('input[name="uid"]'); const elGroupDropdown = form.querySelector('#group_selector'); const $dropdown = fomanticQuery(elGroupDropdown); const onChangeRepoOwner = function () { - $dropdown.dropdown('setting', { + $dropdown.dropdown({ + keepSearchTerm: true, + fireOnInit: true, + saveRemoteData: false, apiSettings: { url: `${appSubUrl}/group/search?uid=${inputRepoOwnerUid.value}&recurse=true`, - onResponse(response) { + onResponse(response: {data: any}) { const results = []; - results.push({name: '', value: ''}); // empty item means not using template - const forEachFn = function({group, subgroups}, depth: number) { - results.push({name: group.name, value: String(group.id)}); + results.push({name: '', value: '0'}); + const forEachFn = function ({group, subgroups}: {group: any, subgroups: any[]}, depth: number) { + results.push({ + // eslint-disable-next-line github/unescaped-html-literal + name: `${html`${group.name}`}`, + value: String(group.id), + }); for (const sg of subgroups) { forEachFn(sg, depth + 1); }