mirror of https://sc.cryxtal.org/crystal/forgejo
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
import $ from 'jquery';
|
|
import {htmlEscape} from 'escape-goat';
|
|
|
|
const {appSubUrl} = window.config;
|
|
|
|
export function initRepoTemplateSearch() {
|
|
const $repoTemplate = $('#repo_template');
|
|
const checkTemplate = function () {
|
|
const $templateUnits = $('#template_units');
|
|
const $nonTemplate = $('#non_template');
|
|
if ($repoTemplate.val() !== '' && $repoTemplate.val() !== '0') {
|
|
$templateUnits.show();
|
|
$nonTemplate.hide();
|
|
} else {
|
|
$templateUnits.hide();
|
|
$nonTemplate.show();
|
|
}
|
|
};
|
|
$repoTemplate.on('change', checkTemplate);
|
|
checkTemplate();
|
|
|
|
const changeOwner = function () {
|
|
$('#repo_template_search')
|
|
.dropdown({
|
|
apiSettings: {
|
|
url: `${appSubUrl}/repo/search?q={query}&template=true&priority_owner_id=${$('#uid').val()}`,
|
|
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({
|
|
name: htmlEscape(repo.full_name),
|
|
value: repo.id
|
|
});
|
|
});
|
|
return filteredResponse;
|
|
},
|
|
cache: false,
|
|
},
|
|
|
|
fullTextSearch: true
|
|
});
|
|
};
|
|
$('#uid').on('change', changeOwner);
|
|
changeOwner();
|
|
}
|