@@ -6,7 +6,8 @@ import {sanitizeRepoName} from './repo-common.ts';
66const { appSubUrl} = window . config ;
77
88function initRepoNewTemplateSearch ( form : HTMLFormElement ) {
9- const inputRepoOwnerUid = form . querySelector < HTMLInputElement > ( '#uid' ) ;
9+ const elCreateRepoErrorMessage = form . querySelector ( '#create-repo-error-message' ) ;
10+ const elRepoOwnerDropdown = form . querySelector ( '#repo_owner_dropdown' ) ;
1011 const elRepoTemplateDropdown = form . querySelector < HTMLInputElement > ( '#repo_template_search' ) ;
1112 const inputRepoTemplate = form . querySelector < HTMLInputElement > ( '#repo_template' ) ;
1213 const elTemplateUnits = form . querySelector ( '#template_units' ) ;
@@ -19,11 +20,20 @@ function initRepoNewTemplateSearch(form: HTMLFormElement) {
1920 inputRepoTemplate . addEventListener ( 'change' , checkTemplate ) ;
2021 checkTemplate ( ) ;
2122
22- const $dropdown = fomanticQuery ( elRepoTemplateDropdown ) ;
23+ const $repoOwnerDropdown = fomanticQuery ( elRepoOwnerDropdown ) ;
24+ const $repoTemplateDropdown = fomanticQuery ( elRepoTemplateDropdown ) ;
2325 const onChangeOwner = function ( ) {
24- $dropdown . dropdown ( 'setting' , {
26+ const ownerId = $repoOwnerDropdown . dropdown ( 'get value' ) ;
27+ const $ownerItem = $repoOwnerDropdown . dropdown ( 'get item' , ownerId ) ;
28+ hideElem ( elCreateRepoErrorMessage ) ;
29+ if ( $ownerItem ?. length ) {
30+ const elOwnerItem = $ownerItem [ 0 ] ;
31+ elCreateRepoErrorMessage . textContent = elOwnerItem . getAttribute ( 'data-create-repo-disallowed-prompt' ) ?? '' ;
32+ toggleElem ( elCreateRepoErrorMessage , Boolean ( elCreateRepoErrorMessage . textContent ) ) ;
33+ }
34+ $repoTemplateDropdown . dropdown ( 'setting' , {
2535 apiSettings : {
26- url : `${ appSubUrl } /repo/search?q={query}&template=true&priority_owner_id=${ inputRepoOwnerUid . value } ` ,
36+ url : `${ appSubUrl } /repo/search?q={query}&template=true&priority_owner_id=${ ownerId } ` ,
2737 onResponse ( response : any ) {
2838 const results = [ ] ;
2939 results . push ( { name : '' , value : '' } ) ; // empty item means not using template
@@ -33,14 +43,14 @@ function initRepoNewTemplateSearch(form: HTMLFormElement) {
3343 value : String ( tmplRepo . repository . id ) ,
3444 } ) ;
3545 }
36- $dropdown . fomanticExt . onResponseKeepSelectedItem ( $dropdown , inputRepoTemplate . value ) ;
46+ $repoTemplateDropdown . fomanticExt . onResponseKeepSelectedItem ( $repoTemplateDropdown , inputRepoTemplate . value ) ;
3747 return { results} ;
3848 } ,
3949 cache : false ,
4050 } ,
4151 } ) ;
4252 } ;
43- inputRepoOwnerUid . addEventListener ( 'change ', onChangeOwner ) ;
53+ $repoOwnerDropdown . dropdown ( 'setting' , 'onChange ', onChangeOwner ) ;
4454 onChangeOwner ( ) ;
4555}
4656
0 commit comments