mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-03-16 22:10:28 +00:00
Abort unfinished ajax before new calls in all search ajax
This commit is contained in:
parent
f5f841ed59
commit
eda098de58
6 changed files with 54 additions and 7 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue