2022-01-29 00:00:11 +03:00
import $ from 'jquery' ;
2021-10-16 20:28:04 +03:00
import { htmlEscape } from 'escape-goat' ;
2023-02-19 07:06:14 +03:00
import { hideElem , showElem } from '../utils/dom.js' ;
2021-10-16 20:28:04 +03:00
2021-10-21 10:37:43 +03:00
const { appSubUrl } = window . config ;
2021-10-16 20:28:04 +03:00
export function initRepoTemplateSearch ( ) {
const $repoTemplate = $ ( '#repo_template' ) ;
const checkTemplate = function ( ) {
const $templateUnits = $ ( '#template_units' ) ;
const $nonTemplate = $ ( '#non_template' ) ;
if ( $repoTemplate . val ( ) !== '' && $repoTemplate . val ( ) !== '0' ) {
2023-02-19 07:06:14 +03:00
showElem ( $templateUnits ) ;
hideElem ( $nonTemplate ) ;
2021-10-16 20:28:04 +03:00
} else {
2023-02-19 07:06:14 +03:00
hideElem ( $templateUnits ) ;
showElem ( $nonTemplate ) ;
2021-10-16 20:28:04 +03:00
}
} ;
$repoTemplate . on ( 'change' , checkTemplate ) ;
checkTemplate ( ) ;
const changeOwner = function ( ) {
$ ( '#repo_template_search' )
. dropdown ( {
apiSettings : {
2022-04-07 21:59:56 +03:00
url : ` ${ appSubUrl } /repo/search?q={query}&template=true&priority_owner_id= ${ $ ( '#uid' ) . val ( ) } ` ,
2021-10-16 20:28:04 +03:00
onResponse ( response ) {
const filteredResponse = { success : true , results : [ ] } ;
filteredResponse . results . push ( {
name : '' ,
value : ''
} ) ;
// Parse the response from the api to work with our dropdown
$ . each ( response . data , ( _r , repo ) => {
filteredResponse . results . push ( {
2023-05-14 00:59:01 +03:00
name : htmlEscape ( repo . repository . full _name ) ,
value : repo . repository . id
2021-10-16 20:28:04 +03:00
} ) ;
} ) ;
return filteredResponse ;
} ,
cache : false ,
} ,
fullTextSearch : true
} ) ;
} ;
$ ( '#uid' ) . on ( 'change' , changeOwner ) ;
changeOwner ( ) ;
}