Use SearchController on snippet chooser modal

pull/7897/head
Matt Westcott 2022-05-12 13:26:36 +01:00 zatwierdzone przez LB (Ben Johnston)
rodzic 1fc66294a4
commit fc31a6711d
1 zmienionych plików z 10 dodań i 38 usunięć
client/src/entrypoints/snippets

Wyświetl plik

@ -1,4 +1,5 @@
import $ from 'jquery';
import { SearchController } from '../../includes/chooserModal';
window.SNIPPET_CHOOSER_MODAL_ONLOAD_HANDLERS = {
choose: function (modal) {
@ -9,49 +10,20 @@ window.SNIPPET_CHOOSER_MODAL_ONLOAD_HANDLERS = {
});
$('.pagination a', context).on('click', function () {
loadResults(this.href);
searchController.fetchResults(this.href);
return false;
});
}
var searchForm$ = $('form.snippet-search', modal.body);
var searchUrl = searchForm$.attr('action');
var request;
function search() {
loadResults(searchUrl, searchForm$.serialize());
return false;
}
function loadResults(url, data) {
var opts = {
url: url,
success: function (resultsData, status) {
request = null;
$('#search-results').html(resultsData);
ajaxifyLinks($('#search-results'));
},
error: function () {
request = null;
},
};
if (data) {
opts.data = data;
}
request = $.ajax(opts);
}
$('form.snippet-search', modal.body).on('submit', search);
$('#snippet-chooser-locale', modal.body).on('change', search);
$('#id_q').on('input', function () {
if (request) {
request.abort();
}
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(search, 200);
$(this).data('timer', wait);
const searchController = new SearchController({
form: $('form.snippet-search', modal.body),
resultsContainerSelector: '#search-results',
onLoadResults: (context) => {
ajaxifyLinks(context);
},
});
searchController.attachSearchInput('#id_q');
searchController.attachSearchFilter('#snippet-chooser-locale');
ajaxifyLinks(modal.body);
},