Abort unfinished ajax before new calls in all search ajax

This commit is contained in:
Saptak S 2019-12-26 13:42:54 +05:30 committed by Dan Braghis
parent f5f841ed59
commit eda098de58
6 changed files with 54 additions and 7 deletions

View file

@ -36,6 +36,7 @@ Changelog
* Fix: Added verbose_name_plural for form submission model (Janneke Janssen)
* Fix: Prevent `update_index` failures and incorrect front-end rendering on blank `TableBlock` (Carlo Ascani)
* Fix: Dropdown initialisation on the search page after AJAX call (Eric Sherman)
* Fix: Make sure all modal chooser search results correspond to the latest search by canceling previous requests (Esper Kuijs)
2.7.1 (08.01.2020)

View file

@ -61,6 +61,7 @@ Bug fixes
* Added verbose_name_plural for form submission model (Janneke Janssen)
* Prevent ``update_index`` failures and incorrect front-end rendering on blank ``TableBlock`` (Carlo Ascani)
* Dropdown initialisation on the search page after AJAX call (Eric Sherman)
* Make sure all modal chooser search results correspond to the latest search by canceling previous requests (Esper Kuijs)
Upgrade considerations

View file

@ -26,16 +26,21 @@ DOCUMENT_CHOOSER_MODAL_ONLOAD_HANDLERS = {
};
var searchUrl = $('form.document-search', modal.body).attr('action');
var request;
function search() {
$.ajax({
request = $.ajax({
url: searchUrl,
data: {
q: $('#id_q').val(),
collection_id: $('#collection_chooser_collection_id').val()
},
success: function(data, status) {
request = null;
$('#search-results').html(data);
ajaxifyLinks($('#search-results'));
},
error: function() {
request = null;
}
});
return false;
@ -48,12 +53,16 @@ DOCUMENT_CHOOSER_MODAL_ONLOAD_HANDLERS = {
dataObj = {p: page};
}
$.ajax({
request = $.ajax({
url: searchUrl,
data: dataObj,
success: function(data, status) {
request = null;
$('#search-results').html(data);
ajaxifyLinks($('#search-results'));
},
error: function() {
request = null;
}
});
return false;
@ -86,6 +95,9 @@ DOCUMENT_CHOOSER_MODAL_ONLOAD_HANDLERS = {
$('form.document-search', modal.body).on('submit', search);
$('#id_q').on('input', function() {
if (request) {
request.abort();
}
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(search, 50);
$(this).data('timer', wait);

View file

@ -18,14 +18,19 @@ IMAGE_CHOOSER_MODAL_ONLOAD_HANDLERS = {
return false;
});
}
var request;
function fetchResults(requestData) {
$.ajax({
request = $.ajax({
url: searchUrl,
data: requestData,
success: function(data, status) {
request = null;
$('#image-results').html(data);
ajaxifyLinks($('#image-results'));
},
error: function() {
request = null;
}
});
}
@ -90,6 +95,9 @@ IMAGE_CHOOSER_MODAL_ONLOAD_HANDLERS = {
$('form.image-search', modal.body).on('submit', search);
$('#id_q').on('input', function() {
if (request) {
request.abort();
}
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(search, 200);
$(this).data('timer', wait);

View file

@ -12,13 +12,19 @@ QUERY_CHOOSER_MODAL_ONLOAD_HANDLERS = {
}
var searchUrl = $('form.query-search', modal.body).attr('action');
var request;
function search() {
$.ajax({
request = $.ajax({
url: searchUrl,
data: {q: $('#id_q').val()},
success: function(data, status) {
request = null;
$('#query-results').html(data);
ajaxifyLinks($('#query-results'));
},
error: function() {
request = null;
}
});
return false;
@ -31,12 +37,16 @@ QUERY_CHOOSER_MODAL_ONLOAD_HANDLERS = {
dataObj = {p: page};
}
$.ajax({
request = $.ajax({
url: searchUrl,
data: dataObj,
success: function(data, status) {
request = null;
$('#query-results').html(data);
ajaxifyLinks($('#query-results'));
},
error: function() {
request = null;
}
});
return false;
@ -53,6 +63,9 @@ QUERY_CHOOSER_MODAL_ONLOAD_HANDLERS = {
$('form.query-search', modal.body).on('submit', search);
$('#id_q').on('input', function() {
if (request) {
request.abort();
}
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(search, 200);
$(this).data('timer', wait);

View file

@ -14,14 +14,19 @@ SNIPPET_CHOOSER_MODAL_ONLOAD_HANDLERS = {
}
var searchUrl = $('form.snippet-search', modal.body).attr('action');
var request;
function search() {
$.ajax({
request = $.ajax({
url: searchUrl,
data: {q: $('#id_q').val(), results: 'true'},
success: function(data, status) {
request = null;
$('#search-results').html(data);
ajaxifyLinks($('#search-results'));
},
error: function() {
request = null;
}
});
return false;
@ -34,12 +39,16 @@ SNIPPET_CHOOSER_MODAL_ONLOAD_HANDLERS = {
dataObj.q = $('#id_q').val();
}
$.ajax({
request = $.ajax({
url: searchUrl,
data: dataObj,
success: function(data, status) {
request = null;
$('#search-results').html(data);
ajaxifyLinks($('#search-results'));
},
error: function() {
request = null;
}
});
return false;
@ -48,6 +57,9 @@ SNIPPET_CHOOSER_MODAL_ONLOAD_HANDLERS = {
$('form.snippet-search', modal.body).on('submit', search);
$('#id_q').on('input', function() {
if (request) {
request.abort();
}
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(search, 200);
$(this).data('timer', wait);