Porównaj commity

...

5 Commity

Autor SHA1 Wiadomość Data
DJ3CE a8c9625f02
Merge 181dcbe53c into fd3ba41d26 2024-04-14 06:54:43 +02:00
Peter Goodhall fd3ba41d26 Switch to local htmx library instead of CDN 2024-04-12 14:59:04 +01:00
DJ3CE 181dcbe53c Fixes matching to 'anywhere', isolates and restructures code
- server side matches anywhere, thus replace `startsWith` by `includes`,
- callsigns *should* be with stroked-0, improving consistency here,
- code restructuring (reduce nesting a lot),
- isolating code, same codebase for qso.js and contesting.js, could
  be put in a 'lib'-like file
2024-04-04 19:09:22 +02:00
DJ3CE aaf7f994aa Updates, refinements, etc
- fix '0'
- improvements in data handling
- filter allows prefixes
2024-03-29 16:13:10 +01:00
DJ3CE 15e2e10528 Reduce calling scp, cache result 2024-03-25 11:34:35 +01:00
5 zmienionych plików z 143 dodań i 41 usunięć

Wyświetl plik

@ -55,7 +55,7 @@ class Lookup extends CI_Controller {
public function scp() {
if($_POST['callsign']) {
$uppercase_callsign = strtoupper($_POST['callsign']);
$uppercase_callsign = str_replace('Ø', '0', strtoupper($_POST['callsign']));
}
// SCP results from logbook
@ -106,7 +106,7 @@ class Lookup extends CI_Controller {
foreach ($arCalls as $strCall)
{
echo " " . $strCall . " ";
echo $strCall . " ";
}
}

Wyświetl plik

@ -47,7 +47,7 @@
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/sections/eqslcharcounter.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/sections/version_dialog.js"></script>
<script src="https://unpkg.com/htmx.org@1.6.1"></script>
<script src="<?php echo base_url(); ?>assets/js/htmx.min.js"></script>
<script>
// Reinitialize tooltips after new content has been loaded

1
assets/js/htmx.min.js vendored 100644

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -207,31 +207,23 @@ $('#start_date').change(function () {
});
// On Key up check and suggest callsigns
$("#callsign").keyup(function () {
var call = $(this).val();
if (call.length >= 3) {
$("#callsign").keyup(scp_keyup({
selector: $("#callsign"),
showSuggestions: function (call, text) {
$('.callsign-suggestions').text(text);
highlight(call);
}
}));
$.ajax({
url: 'lookup/scp',
method: 'POST',
data: {
callsign: $(this).val().toUpperCase()
},
success: function (result) {
$('.callsign-suggestions').text(result);
highlight(call.toUpperCase());
}
});
// moved to blur
// checkIfWorkedBefore();
var qTable = $('.qsotable').DataTable();
qTable.search(call).draw();
}
else if (call.length <= 2) {
$('.callsign-suggestions').text("");
}
$("#callsign").keyup(function() {
const call = $(this).val().toUpperCase();
if (call.length >= 3) {
var qTable = $('.qsotable').DataTable();
qTable.search(call).draw();
}
});
function checkIfWorkedBefore() {
var call = $("#callsign").val();
if (call.length >= 3) {
@ -670,3 +662,62 @@ function getUTCDateStamp(el) {
var utc = localTime + (now.getTimezoneOffset() * 60000);
$(el).attr('value', ("0" + now.getUTCDate()).slice(-2) + '-' + ("0" + (now.getUTCMonth() + 1)).slice(-2) + '-' + now.getUTCFullYear());
}
function scp_keyup(options) {
// options must have two keys:
// * selector - element, with .val() which gives the entered callsign
// * showSuggestions - function(call, text), where the text is
// the list of callsign-suggestions
const scp = {
request: "",
data: []
};
const callFromInput = (el) => el.val().toUpperCase().replace('0','Ø');
const checkCacheValid = (call) => (scp.request != "" && call.includes(scp.request));
const filterCallsignList = function (call) {
return scp.data?.filter((el) => (el.includes(call) == true)).join(' ') || '';
};
const updateSuggestions = function (call) {
const suggestions = filterCallsignList(call);
options.showSuggestions(call, suggestions);
}
const keyup = function(){
const call = callFromInput(options.selector);
if (call.length < 3) {
options.showSuggestions("", "");
return;
}
if ( checkCacheValid(call) ) {
updateSuggestions(call);
return;
}
// Cache invalid, so update it and reset suggestions
options.showSuggestions("");
scp.request = call;
scp.data = [];
$.ajax({
url: 'lookup/scp',
method: 'POST',
data: {
callsign: call
},
success: function (result) {
const call_now = callFromInput(options.selector);
if (checkCacheValid(call_now)) {
scp.data = result.split(" ");
updateSuggestions(call_now);
}
}
});
};
return keyup;
}

Wyświetl plik

@ -1017,22 +1017,13 @@ $("#callsign").on("keypress", function(e) {
});
// On Key up check and suggest callsigns
$("#callsign").keyup(function() {
if ($(this).val().length >= 3) {
$('.callsign-suggest').show();
$callsign = $(this).val().replace('Ø', '0');
$.ajax({
url: 'lookup/scp',
method: 'POST',
data: {
callsign: $callsign.toUpperCase()
},
success: function(result) {
$('.callsign-suggestions').text(result);
}
});
}
});
$("#callsign").keyup( scp_keyup({
selector: $(this),
showSuggestions: function (call, text) {
$('.callsign-suggestions').text(text);
$('.callsign-suggest').show();
}
}));
//Reset QSO form Fields function
function resetDefaultQSOFields() {
@ -1094,3 +1085,62 @@ function testTimeOffConsistency() {
}
return true;
}
function scp_keyup(options) {
// options must have two keys:
// * selector - element, with .val() which gives the entered callsign
// * showSuggestions - function(call, text), where the text is
// the list of callsign-suggestions
const scp = {
request: "",
data: []
};
const callFromInput = (el) => el.val().toUpperCase().replace('0','Ø');
const checkCacheValid = (call) => (scp.request != "" && call.includes(scp.request));
const filterCallsignList = function (call) {
return scp.data?.filter((el) => (el.includes(call) == true)).join(' ') || '';
};
const updateSuggestions = function (call) {
const suggestions = filterCallsignList(call);
options.showSuggestions(call, suggestions);
}
const keyup = function(){
const call = callFromInput(options.selector);
if (call.length < 3) {
options.showSuggestions("", "");
return;
}
if ( checkCacheValid(call) ) {
updateSuggestions(call);
return;
}
// Cache invalid, so update it and reset suggestions
options.showSuggestions("");
scp.request = call;
scp.data = [];
$.ajax({
url: 'lookup/scp',
method: 'POST',
data: {
callsign: call
},
success: function (result) {
const call_now = callFromInput(options.selector);
if (checkCacheValid(call_now)) {
scp.data = result.split(" ");
updateSuggestions(call_now);
}
}
});
};
return keyup;
}