@@ -6,7 +6,8 @@ import {sanitizeRepoName} from './repo-common.ts';
6
6
const { appSubUrl} = window . config ;
7
7
8
8
function 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' ) ;
10
11
const elRepoTemplateDropdown = form . querySelector < HTMLInputElement > ( '#repo_template_search' ) ;
11
12
const inputRepoTemplate = form . querySelector < HTMLInputElement > ( '#repo_template' ) ;
12
13
const elTemplateUnits = form . querySelector ( '#template_units' ) ;
@@ -19,11 +20,20 @@ function initRepoNewTemplateSearch(form: HTMLFormElement) {
19
20
inputRepoTemplate . addEventListener ( 'change' , checkTemplate ) ;
20
21
checkTemplate ( ) ;
21
22
22
- const $dropdown = fomanticQuery ( elRepoTemplateDropdown ) ;
23
+ const $repoOwnerDropdown = fomanticQuery ( elRepoOwnerDropdown ) ;
24
+ const $repoTemplateDropdown = fomanticQuery ( elRepoTemplateDropdown ) ;
23
25
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' , {
25
35
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 } ` ,
27
37
onResponse ( response : any ) {
28
38
const results = [ ] ;
29
39
results . push ( { name : '' , value : '' } ) ; // empty item means not using template
@@ -33,14 +43,14 @@ function initRepoNewTemplateSearch(form: HTMLFormElement) {
33
43
value : String ( tmplRepo . repository . id ) ,
34
44
} ) ;
35
45
}
36
- $dropdown . fomanticExt . onResponseKeepSelectedItem ( $dropdown , inputRepoTemplate . value ) ;
46
+ $repoTemplateDropdown . fomanticExt . onResponseKeepSelectedItem ( $repoTemplateDropdown , inputRepoTemplate . value ) ;
37
47
return { results} ;
38
48
} ,
39
49
cache : false ,
40
50
} ,
41
51
} ) ;
42
52
} ;
43
- inputRepoOwnerUid . addEventListener ( 'change ', onChangeOwner ) ;
53
+ $repoOwnerDropdown . dropdown ( 'setting' , 'onChange ', onChangeOwner ) ;
44
54
onChangeOwner ( ) ;
45
55
}
46
56
0 commit comments