Porównaj commity

...

9 Commity

Autor SHA1 Wiadomość Data
Patrick Burns 96ed12cd89 Merge branch 'dev' into dockerize-for-development 2024-04-03 16:25:24 -05:00
Peter Goodhall f8eeaab064
Merge pull request #3042 from DanielBausset/sattimers_6_chars_grid
Limit Grid square to 6 chars in request to df2et.de API
2024-04-02 14:37:20 +01:00
Peter Goodhall 55d24cd52b
Prevent non-numeric input in contesting-serial fields 2024-04-02 13:45:00 +01:00
Peter Goodhall 3a8f424dc0
Contest "copy exchange to" 2024-04-02 13:44:08 +01:00
Peter Goodhall 7473a80332
Post-Contest-Logging: Fixes and focus to time-field 2024-04-02 13:34:56 +01:00
Danny 2c3408e522 Limit Grid square to 6 chars in request to df2et.de API 2024-03-31 18:00:32 +02:00
DJ3CE 3d22e3c949 Implement contesting copy-exchange-to(-nearly)-anything
- in contest-session, the (numeric-)id of the selected 'copy' is saved,
  compatible with the previous DOK-copy.
- UI changes
- Logbook_model enhancements
- Translation additions
2024-03-27 11:31:39 +01:00
DJ3CE f6681482ab Post-contest-logging focus and qso-list fix 2024-03-27 11:29:58 +01:00
DJ3CE f527be0af0 Prevent non-numeric entries in contesting-serial fields 2024-03-25 11:07:08 +01:00
20 zmienionych plików z 174 dodań i 28 usunięć

Wyświetl plik

@ -15,10 +15,10 @@ class Sattimers extends CI_Controller {
$footerData['scripts'] = [
'assets/js/sections/sattimers.js?'
];
$url = 'https://www.df2et.de/tevel/api2.php?grid='.strtoupper($this->stations->find_gridsquare());
$data['gridsquare'] = substr(strtoupper($this->stations->find_gridsquare()), 0, 6);
$url = 'https://www.df2et.de/tevel/api2.php?grid=' . $data['gridsquare'];
$json = file_get_contents($url);
$data['activations'] = json_decode($json, true)['data'];
$data['gridsquare'] = strtoupper($this->stations->find_gridsquare());
$data['page_title'] = "Satellite Timers";

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Предложения за и
$lang['contesting_title_contest_logbook'] = 'Дневник на състезанието';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = '呼号建议';
$lang['contesting_title_contest_logbook'] = '竞赛日志簿';
$lang['contesting_copy_exch_to_dok'] = '将收到的交换信息复制到数据库中的 DOK 字段!';
$lang['contesting_copy_exch_to_none'] = '将收到的交换信息复制到数据库中的 no additional 字段!';
$lang['contesting_copy_exch_to_power'] = '将收到的交换信息复制到数据库中的 RX-Power 字段!';
$lang['contesting_copy_exch_to_state'] = '将收到的交换信息复制到数据库中的 US-State 字段!';
$lang['contesting_copy_exch_to_age'] = '将收到的交换信息复制到数据库中的 Age 字段!';
$lang['contesting_copy_exch_to_name'] = '将收到的交换信息复制到数据库中的 Name 字段!';
$lang['contesting_copy_exch_to_locator'] = '将收到的交换信息复制到数据库中的 Locator 字段!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Našeptávač značek';
$lang['contesting_title_contest_logbook'] = 'Závodní deník';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Roepnaam suggesties';
$lang['contesting_title_contest_logbook'] = 'Contest Logboek';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Callsign Suggestions';
$lang['contesting_title_contest_logbook'] = 'Contest Logbook';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Ehdotettu kutsu';
$lang['contesting_title_contest_logbook'] = 'Kilpailussa pidetyt yhteydet';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = "Suggestion d'indicatif";
$lang['contesting_title_contest_logbook'] = "Journal de trafic du concours";
$lang['contesting_copy_exch_to_dok'] = "Copiez l'échange reçu dans le champ DOK de la base de données !";
$lang['contesting_copy_exch_to_none'] = "Copiez l'échange reçu dans le champ no additional de la base de données !";
$lang['contesting_copy_exch_to_power'] = "Copiez l'échange reçu dans le champ RX-Power de la base de données !";
$lang['contesting_copy_exch_to_state'] = "Copiez l'échange reçu dans le champ US-State de la base de données !";
$lang['contesting_copy_exch_to_age'] = "Copiez l'échange reçu dans le champ Age de la base de données !";
$lang['contesting_copy_exch_to_name'] = "Copiez l'échange reçu dans le champ Name de la base de données !";
$lang['contesting_copy_exch_to_locator'] = "Copiez l'échange reçu dans le champ Locator de la base de données !";

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Rufzeichenvorschläge';
$lang['contesting_title_contest_logbook'] = 'Contest-Logbuch';
$lang['contesting_copy_exch_to_dok'] = 'Kopiere den erhaltenen Exchange in das DOK Feld der Datenbank!';
$lang['contesting_copy_exch_to_none'] = 'Kopiere den erhaltenen Exchange in kein weiteres Feld der Datenbank!';
$lang['contesting_copy_exch_to_power'] = 'Kopiere den erhaltenen Exchange in das RX-Power Feld der Datenbank!';
$lang['contesting_copy_exch_to_state'] = 'Kopiere den erhaltenen Exchange in das US-State Feld der Datenbank!';
$lang['contesting_copy_exch_to_age'] = 'Kopiere den erhaltenen Exchange in das Lebensalter Feld der Datenbank!';
$lang['contesting_copy_exch_to_name'] = 'Kopiere den erhaltenen Exchange in das Namens Feld der Datenbank!';
$lang['contesting_copy_exch_to_locator'] = 'Kopiere den erhaltenen Exchange in das Locator Feld der Datenbank!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Προτάσεις διακρ
$lang['contesting_title_contest_logbook'] = 'Αρχείο διαγωνισμού';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Suggerimenti Nominativi';
$lang['contesting_title_contest_logbook'] = 'Log del Contest';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Podpowiadanie znaków';
$lang['contesting_title_contest_logbook'] = 'Log zawodów';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Предложение поз
$lang['contesting_title_contest_logbook'] = 'Журнал контеста';
$lang['contesting_copy_exch_to_dok'] = 'Копировать принятую контроль в поле DOK базы данных!';
$lang['contesting_copy_exch_to_none'] = 'Копировать принятую контроль в поле no additional базы данных!';
$lang['contesting_copy_exch_to_power'] = 'Копировать принятую контроль в поле RX-Power базы данных!';
$lang['contesting_copy_exch_to_state'] = 'Копировать принятую контроль в поле US-State базы данных!';
$lang['contesting_copy_exch_to_age'] = 'Копировать принятую контроль в поле Age базы данных!';
$lang['contesting_copy_exch_to_name'] = 'Копировать принятую контроль в поле Name базы данных!';
$lang['contesting_copy_exch_to_locator'] = 'Копировать принятую контроль в поле Locator базы данных!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Indicativos sugeridos';
$lang['contesting_title_contest_logbook'] = 'Libro de guardia del concurso';
$lang['contesting_copy_exch_to_dok'] = '¡Copiar intercambio recibido al campo DOK de la base de datos!';
$lang['contesting_copy_exch_to_none'] = '¡Copiar intercambio recibido al campo no additional de la base de datos!';
$lang['contesting_copy_exch_to_power'] = '¡Copiar intercambio recibido al campo RX-Power de la base de datos!';
$lang['contesting_copy_exch_to_state'] = '¡Copiar intercambio recibido al campo US-State de la base de datos!';
$lang['contesting_copy_exch_to_age'] = '¡Copiar intercambio recibido al campo Age de la base de datos!';
$lang['contesting_copy_exch_to_name'] = '¡Copiar intercambio recibido al campo Name de la base de datos!';
$lang['contesting_copy_exch_to_locator'] = '¡Copiar intercambio recibido al campo Locator de la base de datos!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Signal-förslag';
$lang['contesting_title_contest_logbook'] = 'Contest loggbok';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -28,5 +28,11 @@ $lang['contesting_title_callsign_suggestions'] = 'Çağrı Kodu Önerileri';
$lang['contesting_title_contest_logbook'] = 'Yarışma kayıt defteri';
$lang['contesting_copy_exch_to_dok'] = 'Copy received exchange to DOK field in the database!';
$lang['contesting_copy_exch_to_none'] = 'Copy received exchange to no additional field in the database!';
$lang['contesting_copy_exch_to_power'] = 'Copy received exchange to RX-Power field in the database!';
$lang['contesting_copy_exch_to_state'] = 'Copy received exchange to US-State field in the database!';
$lang['contesting_copy_exch_to_age'] = 'Copy received exchange to Age field in the database!';
$lang['contesting_copy_exch_to_name'] = 'Copy received exchange to Name field in the database!';
$lang['contesting_copy_exch_to_locator'] = 'Copy received exchange to Locator field in the database!';

Wyświetl plik

@ -13,6 +13,7 @@ class Contesting_model extends CI_Model {
$contestid = $qsoarray[2];
$date = DateTime::createFromFormat('d-m-Y H:i:s', $qsoarray[0]);
if ($date == false) $date = DateTime::createFromFormat('d-m-Y H:i', $qsoarray[0]);
$date = $date->format('Y-m-d H:i:s');
$sql = "SELECT date_format(col_time_on, '%d-%m-%Y %H:%i:%s') as col_time_on, col_call, col_band, col_mode,
@ -65,6 +66,7 @@ class Contesting_model extends CI_Model {
$sql = "SELECT * from contest_session where station_id = " . $station_id;
$data = $this->db->query($sql);
return $data->row();
}
@ -102,6 +104,10 @@ class Contesting_model extends CI_Model {
'station_id' => $station_id,
);
if ($this->input->post('copyexchangeto')) {
$data['copytodok'] = xss_clean($this->input->post('copyexchangeto'));
}
$sql = "SELECT * from contest_session where station_id = " . $station_id;
$querydata = $this->db->query($sql);
@ -246,6 +252,7 @@ class Contesting_model extends CI_Model {
$qsoarray = explode(',', $contest_session->qso);
$date = DateTime::createFromFormat('d-m-Y H:i:s', $qsoarray[0]);
if ($date == false) $date = DateTime::createFromFormat('d-m-Y H:i', $qsoarray[0]);
$date = $date->format('Y-m-d H:i:s');
$this->db->select('timediff(UTC_TIMESTAMP(),col_time_off) b4, COL_TIME_OFF');

Wyświetl plik

@ -157,6 +157,44 @@ class Logbook_model extends CI_Model
$darc_dok = $this->input->post('darc_dok');
}
//$darc_dok = $this->input->post('darc_dok');
$qso_locator = strtoupper(trim(xss_clean($this->input->post('locator')) ?? ''));
$qso_name = $this->input->post('name');
$qso_age = null;
$qso_usa_state = $this->input->post('usa_state') == null ? '' : $this->input->post('usa_state');
$qso_rx_power = null;
if ($this->input->post('copyexchangeto')) {
switch($this->input->post('copyexchangeto')) {
case 'dok':
$darc_dok = $srx_string;
break;
case 'locator':
$qso_locator = strtoupper(trim(xss_clean($srx_string)));
break;
case 'name':
$qso_name = $srx_string;
break;
case 'age':
$qso_age = $srx_string;
break;
case 'state':
$qso_usa_state = $srx_string;
break;
case 'power':
$qso_rx_power = $srx_string;
break;
// Example for more sophisticated exchanges and their split into the db:
//case 'name/power':
// if (strlen($srx_string) == 0) break;
// $exch_pt = explode(" ",$srx_string);
// $qso_name = $exch_pt[0];
// if (count($exch_pt)>1) $qso_power = $exch_pt[1];
// break;
default:
}
}
if ($this->input->post('qsl_sent')) {
$qsl_sent = $this->input->post('qsl_sent');
} else {
@ -193,7 +231,7 @@ class Logbook_model extends CI_Model
'COL_SUBMODE' => $submode,
'COL_RST_RCVD' => $this->input->post('rst_rcvd'),
'COL_RST_SENT' => $this->input->post('rst_sent'),
'COL_NAME' => $this->input->post('name'),
'COL_NAME' => $qso_name,
'COL_COMMENT' => $this->input->post('comment'),
'COL_SAT_NAME' => $this->input->post('sat_name') == null ? '' : strtoupper($this->input->post('sat_name')),
'COL_SAT_MODE' => $this->input->post('sat_mode') == null ? '' : strtoupper($this->input->post('sat_mode')),
@ -216,7 +254,7 @@ class Logbook_model extends CI_Model
'COL_ANT_AZ' => null,
'COL_ANT_EL' => null,
'COL_A_INDEX' => null,
'COL_AGE' => null,
'COL_AGE' => $qso_age,
'COL_TEN_TEN' => null,
'COL_TX_PWR' => $tx_power,
'COL_STX' => $stx,
@ -229,12 +267,12 @@ class Logbook_model extends CI_Model
'COL_MAX_BURSTS' => null,
'COL_K_INDEX' => null,
'COL_SFI' => null,
'COL_RX_PWR' => null,
'COL_RX_PWR' => $qso_rx_power,
'COL_LAT' => null,
'COL_LON' => null,
'COL_DXCC' => $dxcc_id,
'COL_CQZ' => $cqz,
'COL_STATE' => $this->input->post('usa_state') == null ? '' : trim($this->input->post('usa_state')),
'COL_STATE' => $qso_usa_state,
'COL_CNTY' => $clean_county_input,
'COL_SOTA_REF' => $this->input->post('sota_ref') == null ? '' : trim($this->input->post('sota_ref')),
'COL_WWFF_REF' => $this->input->post('wwff_ref') == null ? '' : trim($this->input->post('wwff_ref')),
@ -302,10 +340,10 @@ class Logbook_model extends CI_Model
}
// Decide whether its single gridsquare or a multi which makes it vucc_grids
if (strpos(trim(xss_clean($this->input->post('locator')) ?? ''), ',') !== false) {
$data['COL_VUCC_GRIDS'] = strtoupper(preg_replace('/\s+/', '', xss_clean($this->input->post('locator')) ?? ''));
if (strpos($qso_locator, ',') !== false) {
$data['COL_VUCC_GRIDS'] = strtoupper(preg_replace('/\s+/', '', $qso_locator));
} else {
$data['COL_GRIDSQUARE'] = strtoupper(trim(xss_clean($this->input->post('locator')) ?? ''));
$data['COL_GRIDSQUARE'] = $qso_locator;
}
// if eQSL username set, default SENT & RCVD to 'N' else leave as null

Wyświetl plik

@ -164,8 +164,15 @@
<div class="mb-3 row">
<div class="col-md-12">
<div class="form-check-inline">
<input class="form-check-input" type="checkbox" name="copyexchangetodok" value="1" id="copyexchangetodok">
<label class="form-check-label" for="copyexchangetodok"><?php echo lang('contesting_copy_exch_to_dok'); ?></label>
<select class="form-select form-select-sm" id="copyexchangeto" name="copyexchangeto">
<option value='None'><?php echo lang('contesting_copy_exch_to_none'); ?></option>
<option value='dok'><?php echo lang('contesting_copy_exch_to_dok'); ?></option>
<option value='name'><?php echo lang('contesting_copy_exch_to_name'); ?></option>
<option value='age'><?php echo lang('contesting_copy_exch_to_age'); ?></option>
<option value='state'><?php echo lang('contesting_copy_exch_to_state'); ?></option>
<option value='power'><?php echo lang('contesting_copy_exch_to_power'); ?></option>
<option value='locator'><?php echo lang('contesting_copy_exch_to_locator'); ?></option>
</select>
</div>
</div>
</div>

Wyświetl plik

@ -27,7 +27,7 @@ function reset_contest_session() {
setExchangetype("None");
$("#contestname").val("Other").change();
$(".contest_qso_table_contents").empty();
$('#copyexchangetodok').prop('checked', false);
$('#copyexchangeto').val("None");
$.ajax({
url: base_url + 'index.php/contesting/deleteSession',
@ -39,7 +39,7 @@ function reset_contest_session() {
}
// Storing the contestid in contest session
$('#contestname').change(function () {
$('#contestname, #copyexchangeto').change(function () {
var formdata = new FormData(document.getElementById("qso_input"));
setSession(formdata);
});
@ -53,6 +53,7 @@ $('#exchangetype').change(function () {
});
function setSession(formdata) {
formdata.set('copyexchangeto',$("#copyexchangeto option:selected").index());
$.ajax({
url: base_url + 'index.php/contesting/setSession',
type: 'post',
@ -77,27 +78,20 @@ if (!manual) {
}
// We don't want spaces to be written in callsign
$(function () {
$('#callsign').on('keypress', function (e) {
if (e.which == 32) {
return false;
}
});
});
// We don't want spaces to be written in exchange
// We don't want spaces to be written in time :)
$(function () {
$('#exch_rcvd').on('keypress', function (e) {
$('#callsign, #exch_rcvd, #start_time').on('keypress', function (e) {
if (e.which == 32) {
return false;
}
});
});
// We don't want spaces to be written in serial
// We don't want anything but numbers to be written in serial
$(function () {
$('#exch_serial_r').on('keypress', function (e) {
if (e.which == 32) {
$('#exch_serial_r, #exch_serial_s').on('keypress', function (e) {
if (e.key.charCodeAt(0) < 48 || e.key.charCodeAt(0) > 57) {
return false;
}
});
@ -129,6 +123,12 @@ document.onkeyup = function (e) {
// Space to jump to either callsign or the various exchanges
} else if (e.which == 32) {
var exchangetype = $("#exchangetype").val();
if (manual && $(document.activeElement).attr("id") == "start_time") {
$("#callsign").focus();
return false;
}
if (exchangetype == 'Exchange') {
if ($(document.activeElement).attr("id") == "callsign") {
$("#exch_rcvd").focus();
@ -468,7 +468,11 @@ function logQso() {
$('#exch_rcvd').val("");
$('#exch_gridsquare_r').val("");
$('#exch_serial_r').val("");
$("#callsign").focus();
if (manual) {
$("#start_time").focus().select();
} else {
$("#callsign").focus();
}
setSession(formdata);
// try setting session data
@ -491,8 +495,8 @@ async function getSession() {
async function restoreContestSession(data) {
if (data) {
if (data.copytodok == "1") {
$('#copyexchangetodok').prop('checked', true);
if (data.copytodok != "") {
$('#copyexchangeto option')[data.copytodok].selected = true;
}
if (data.contestid != "") {