Reduce calling scp, cache result

pull/3025/head
DJ3CE 2024-03-25 00:40:27 +01:00
rodzic 40dc26c120
commit 15e2e10528
3 zmienionych plików z 64 dodań i 25 usunięć

Wyświetl plik

@ -106,7 +106,7 @@ class Lookup extends CI_Controller {
foreach ($arCalls as $strCall) foreach ($arCalls as $strCall)
{ {
echo " " . $strCall . " "; echo $strCall . " ";
} }
} }

Wyświetl plik

@ -8,6 +8,12 @@ $(document).ready(async function () {
setRst($("#mode").val()); setRst($("#mode").val());
}); });
var scp_data = {
request: "",
status: -1 , // -1 - never req, 0 - req in progress, 1 - request done
data: [],
};
// Resets the logging form and deletes session from database // Resets the logging form and deletes session from database
function reset_contest_session() { function reset_contest_session() {
$('#name').val(""); $('#name').val("");
@ -208,20 +214,35 @@ $('#start_date').change(function () {
// On Key up check and suggest callsigns // On Key up check and suggest callsigns
$("#callsign").keyup(function () { $("#callsign").keyup(function () {
var call = $(this).val(); var call = $(this).val().toUpperCase();
if (call.length >= 3) { if (call.length >= 3) {
$.ajax({ if (scp_data.status < 0 || scp_data.request != call.substr(0, scp_data.request.length)) {
url: 'lookup/scp', scp_data.status = 0;
method: 'POST', scp_data.request = call;
data: { scp_data.data = [];
callsign: $(this).val().toUpperCase() $.ajax({
}, url: 'lookup/scp',
success: function (result) { method: 'POST',
$('.callsign-suggestions').text(result); data: {
highlight(call.toUpperCase()); callsign: call
} },
}); success: function (result) {
scp_data.status = 1;
scp_data.data = result.split(" ");
var call = $("#callsign").val().toUpperCase(); // Might have changed while running the query...
$('.callsign-suggestions').text(scp_data.data.filter((el) => el.startsWith(call)).join(' '));
highlight(call);
}
});
} else {
// Filter the already obtained list:
$('.callsign-suggestions').text(scp_data.data.filter((el) => el.startsWith(call)).join(' '));
highlight(call);
}
// moved to blur // moved to blur
// checkIfWorkedBefore(); // checkIfWorkedBefore();
var qTable = $('.qsotable').DataTable(); var qTable = $('.qsotable').DataTable();

Wyświetl plik

@ -1,4 +1,9 @@
var lastCallsignUpdated="" var lastCallsignUpdated=""
var scp_data = {
request: "",
status: -1 , // -1 - never req, 0 - req in progress, 1 - request done
data: [],
};
$( document ).ready(function() { $( document ).ready(function() {
setTimeout(function() { setTimeout(function() {
@ -1019,18 +1024,31 @@ $("#callsign").on("keypress", function(e) {
// On Key up check and suggest callsigns // On Key up check and suggest callsigns
$("#callsign").keyup(function() { $("#callsign").keyup(function() {
if ($(this).val().length >= 3) { if ($(this).val().length >= 3) {
$('.callsign-suggest').show(); $callsign = $(this).val().replace('Ø', '0').toUpperCase();
$callsign = $(this).val().replace('Ø', '0');
$.ajax({ if (scp_data.status < 0 || scp_data.request != $callsign.substr(0, scp_data.request.length)) {
url: 'lookup/scp', scp_data.status = 0;
method: 'POST', scp_data.request = $callsign;
data: { scp_data.data = [];
callsign: $callsign.toUpperCase() $.ajax({
}, url: 'lookup/scp',
success: function(result) { method: 'POST',
$('.callsign-suggestions').text(result); data: {
} callsign: $callsign
}); },
success: function(result) {
scp_data.status = 1;
scp_data.data = result.split(" ");
var call = $("#callsign").val().replace('Ø', '0').toUpperCase();
$('.callsign-suggestions').text(scp_data.data.filter((el) => el.startsWith(call)).join(' '));
$('.callsign-suggest').show();
}
});
} else {
$('.callsign-suggestions').text(scp_data.data.filter((el) => el.startsWith($callsign)).join(' '));
$('.callsign-suggest').show();
}
} }
}); });