Merge pull request #3199 from magicbug/dev

tag 2.6.16
This commit is contained in:
Peter Goodhall 2024-10-03 15:23:10 +01:00 committed by GitHub
commit 2260b6fc54
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
49 changed files with 612 additions and 162 deletions

1
.gitignore vendored
View File

@ -23,3 +23,4 @@ sync.sh
.env
/node_modules
/.vs
.vscode/sftp.json

View File

@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE;
|
*/
$config['migration_version'] = 186;
$config['migration_version'] = 188;
/*
|--------------------------------------------------------------------------

View File

@ -17,8 +17,12 @@ class Distances extends CI_Controller {
$data['page_title'] = "Distances Worked";
$this->load->model('bands');
$this->load->model('gridmap_model');
$data['bands_available'] = $this->bands->get_worked_bands_distances();
$data['sats_available'] = $this->bands->get_worked_sats();
$data['modes'] = $this->gridmap_model->get_worked_modes();
$data['powers'] = $this->bands->get_worked_powers();
$this->load->view('interface_assets/header', $data);
$this->load->view('distances/index');
@ -72,12 +76,27 @@ class Distances extends CI_Controller {
$distance = $this->security->xss_clean($this->input->post('distance'));
$band = $this->security->xss_clean($this->input->post('band'));
$sat = $this->security->xss_clean($this->input->post('sat'));
$mode = $this->security->xss_clean($this->input->post('mode'));
$power = $this->security->xss_clean($this->input->post('pwr'));
$data['results'] = $this->distances_model->qso_details($distance, $band, $sat);
$data['results'] = $this->distances_model->qso_details($distance, $band, $sat, $mode, $power);
// Render Page
if (strtolower($band) == 'all') $band = lang('statistics_distances_bands_all');
(strtolower($mode) == 'all') ? $mode = lang('statistics_distances_modes_all') : $mode = strtoupper($mode);
switch (strtolower($power)) {
case 'all':
$power = lang('statistics_distances_bands_all');
break;
case '':
$power = lang('general_word_undefined');
break;
default:
$power .= 'W';
}
// Render Page
$data['page_title'] = "Log View - " . $distance;
$data['filter'] = lang('statistics_distances_qsos_with') . " " . $distance . " " . lang('statistics_distances_and_band'). " " . $band;
$data['filter'] = lang('statistics_distances_qsos_with') . " " . $distance . lang('statistics_distances_and_band') . " " . $band . lang('statistics_distances_and_mode') . $mode . lang('statistics_distances_and_power') . $power;
$this->load->view('awards/details', $data);
}
}

View File

@ -820,18 +820,25 @@ class Logbook extends CI_Controller {
$html .= "</div>";
return $html;
} else {
if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
// if session data callbook_type is qrz
if ($this->session->userdata('callbook_type') == "QRZ") {
// Lookup using QRZ
$this->load->library('qrz');
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('qrz_session_key')) {
$qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password'));
$qrz_session_key = $this->qrz->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
}
$callsign['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname'));
if (empty($callsign['callsign']['callsign'])) {
$qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password'));
$qrz_session_key = $this->qrz->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
$callsign['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname'));
}
@ -840,12 +847,19 @@ class Logbook extends CI_Controller {
$entity = $this->logbook_model->get_entity($callsign['callsign']['dxcc']);
$callsign['callsign']['dxcc_name'] = $entity['name'];
}
} else if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) {
} elseif ($this->session->userdata('callbook_type') == "HamQTH") {
// Load the HamQTH library
$this->load->library('hamqth');
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('hamqth_session_key')) {
$hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password'));
$hamqth_session_key = $this->hamqth->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
}
@ -853,7 +867,7 @@ class Logbook extends CI_Controller {
// If HamQTH session has expired, start a new session and retry the search.
if($callsign['callsign']['error'] == "Session does not exist or expired") {
$hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password'));
$hamqth_session_key = $this->hamqth->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
$callsign['callsign'] = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key'));
}
@ -873,13 +887,6 @@ class Logbook extends CI_Controller {
$callsign['error'] = 'Lookup not configured. Please review configuration.';
}
// There's no hamli integration? Disabled for now.
/*else {
// Lookup using hamli
$this->load->library('hamli');
$callsign['callsign'] = $this->hamli->callsign($id);
}*/
if (isset($callsign['callsign']['gridsquare'])) {
$this->load->model('logbook_model');
@ -929,44 +936,60 @@ class Logbook extends CI_Controller {
$this->load->view('view_log/partial/log_ajax.php', $data);
} else {
if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
// if session data callbook_type is qrz
if ($this->session->userdata('callbook_type') == "QRZ") {
// Lookup using QRZ
$this->load->library('qrz');
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('qrz_session_key')) {
$qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password'));
$qrz_session_key = $this->qrz->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
}
$data['callsign'] = $this->qrz->search($fixedid, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname'));
$data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname'));
if (isset($data['callsign']['gridsquare'])) {
$this->load->model('logbook_model');
$data['grid_worked'] = $this->logbook_model->check_if_grid_worked_in_logbook(strtoupper(substr($data['callsign']['gridsquare'],0,4)), 0, $this->session->userdata('user_default_band'));
if (empty($data['callsign']['callsign'])) {
$qrz_session_key = $this->qrz->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
$data['callsign'] = $this->qrz->search($fixedid, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname'));
}
if (isset($data['callsign']['dxcc'])) {
$this->load->model('logbook_model');
$entity = $this->logbook_model->get_entity($data['callsign']['dxcc']);
$data['callsign']['dxcc_name'] = $entity['name'];
}
if (isset($data['callsign']['error'])) {
$data['error'] = $data['callsign']['error'];
if (isset($data['callsign']['gridsquare'])) {
$this->load->model('logbook_model');
$data['grid_worked'] = $this->logbook_model->check_if_grid_worked_in_logbook(strtoupper(substr($data['callsign']['gridsquare'],0,4)), 0, $this->session->userdata('user_default_band'));
}
} else if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) {
} elseif ($this->session->userdata('callbook_type') == "HamQTH") {
// Load the HamQTH library
$this->load->library('hamqth');
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('hamqth_session_key')) {
$hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password'));
$hamqth_session_key = $this->hamqth->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
}
$data['callsign'] = $this->hamqth->search($id, $this->session->userdata('hamqth_session_key'));
$data['callsign'] = $this->hamqth->search($fixedid, $this->session->userdata('hamqth_session_key'));
// If HamQTH session has expired, start a new session and retry the search.
if($data['callsign']['error'] == "Session does not exist or expired") {
$hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password'));
$hamqth_session_key = $this->hamqth->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
$data['callsign'] = $this->hamqth->search($id, $this->session->userdata('hamqth_session_key'));
$data['callsign'] = $this->hamqth->search($fixedid, $this->session->userdata('hamqth_session_key'));
}
if (isset($data['callsign']['gridsquare'])) {
$this->load->model('logbook_model');
@ -982,12 +1005,7 @@ class Logbook extends CI_Controller {
}
} else {
$data['error'] = 'Lookup not configured. Please review configuration.';
} /*else {
// Lookup using hamli
$this->load->library('hamli');
$data['callsign'] = $this->hamli->callsign($id);
}*/
}
$data['id'] = strtoupper($id);

View File

@ -210,7 +210,10 @@ class User extends CI_Controller
$this->input->post('user_quicklog_enter'),
$this->input->post('language'),
$this->input->post('user_hamsat_key'),
$this->input->post('user_hamsat_workable_only')
$this->input->post('user_hamsat_workable_only'),
$this->input->post('user_callbook_type'),
$this->input->post('user_callbook_username'),
$this->input->post('user_callbook_password')
)) {
// Check for errors
case EUSERNAMEEXISTS:
@ -228,6 +231,8 @@ class User extends CI_Controller
redirect('user');
return;
}
$data['page_title'] = "Users";
$this->load->view('interface_assets/header', $data);
@ -571,6 +576,43 @@ class User extends CI_Controller
$data['user_winkey'] = $q->winkey;
}
$this->load->model('user_options_model');
$callbook_type_object = $this->user_options_model->get_options('callbook')->result();
if ($this->input->post('user_callbook_type', true)) {
$data['user_callbook_type'] = $this->input->post('user_callbook_type', true);
} else {
if (isset($callbook_type_object[1]->option_value)) {
$data['user_callbook_type'] = $callbook_type_object[1]->option_value;
} else {
$data['user_callbook_type'] = "";
}
}
// Handle user_callbook_username
if ($this->input->post('user_callbook_username', true)) {
$data['user_callbook_username'] = $this->input->post('user_callbook_username', true);
} else {
if (isset($callbook_type_object[2]->option_value)) {
$data['user_callbook_username'] = $callbook_type_object[2]->option_value;
} else {
$data['user_callbook_username'] = "";
}
}
// Handle user_callbook_password
if ($this->input->post('user_callbook_password', true)) {
$data['user_callbook_password'] = $this->input->post('user_callbook_password', true);
} else {
if (isset($callbook_type_object[0]->option_value)) {
$data['user_callbook_password'] = $callbook_type_object[0]->option_value;
} else {
$data['user_callbook_password'] = "";
}
}
$this->load->model('user_options_model');
$hamsat_user_object = $this->user_options_model->get_options('hamsat')->result();
@ -595,8 +637,6 @@ class User extends CI_Controller
}
}
// Get Settings for Dashboard
// Set defaults
$data['dashboard_upcoming_dx_card'] = false;
$data['dashboard_qslcard_card'] = false;
@ -715,6 +755,33 @@ class User extends CI_Controller
$this->input->set_cookie($cookie);
}
if ($this->session->userdata('user_id') == $this->input->post('id', true)) {
// Handle user_callbook_type
if (isset($_POST['user_callbook_type'])) {
$this->user_options_model->set_option('callbook', 'callbook_type', array('value' => $_POST['user_callbook_type']));
} else {
$this->user_options_model->set_option('callbook', 'callbook_type', array('value' => ''));
}
// Handle user_callbook_username
if (isset($_POST['user_callbook_username'])) {
$this->user_options_model->set_option('callbook', 'callbook_username', array('value' => $_POST['user_callbook_username']));
} else {
$this->user_options_model->set_option('callbook', 'callbook_username', array('value' => ''));
}
// Handle user_callbook_password
if (isset($_POST['user_callbook_password']) && !empty($_POST['user_callbook_password'])) {
// Load the encryption library
$this->load->library('encryption');
// Encrypt the password
$encrypted_password = $this->encryption->encrypt($_POST['user_callbook_password']);
// Save the encrypted password
$this->user_options_model->set_option('callbook', 'callbook_password', array('value' => $encrypted_password));
}
if (isset($_POST['user_dashboard_enable_dxpedition_card'])) {
$this->user_options_model->set_option('dashboard', 'dashboard_upcoming_dx_card', array('enabled' => 'true'));
} else {
@ -958,7 +1025,6 @@ class User extends CI_Controller
'secure' => FALSE
);
$this->input->set_cookie($cookie);
// Create a remember me cookie
if ($this->input->post('remember_me') == '1') {

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Дата';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "筛选打开";
$lang['general_word_not_display'] = "不显示";
$lang['general_word_icon'] = "图标";
$lang['general_word_never'] = "从不";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = '日期';
$lang['general_word_startdate'] = "开始时间";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "通联的 QSO 数量";
*/
$lang['statistics_distances_bands_all'] = "全部";
$lang['statistics_distances_modes_all'] = "全部";
$lang['statistics_distances_worked'] = "通联距离";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "次通联<br /> 您最远的通联是与";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "在网格";
@ -35,6 +36,8 @@ $lang['statistics_distances_number_of_qsos'] = "QSO 数量";
$lang['statistics_distances_callsigns_worked'] = "通联的呼号最多显示5个";
$lang['statistics_distances_qsos_with'] = "QSO 与";
$lang['statistics_distances_and_band'] = "和波段";
$lang['statistics_distances_and_mode'] = ", 模式 : ";
$lang['statistics_distances_and_power'] = ", 发射功率 : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Datum';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Datum';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Date';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Päivä';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtré sur";
$lang['general_word_not_display'] = "Ne pas afficher";
$lang['general_word_icon'] = "Icône";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Indéfini(e)";
$lang['general_word_date'] = "Date";
$lang['general_word_startdate'] = "Date début";
@ -124,8 +125,8 @@ $lang['gen_hamradio_station'] = "Station";
$lang['gen_hamradio_call'] = "QRZ";
$lang['gen_hamradio_callsign'] = "Indicatif";
$lang['gen_hamradio_prefix'] = "Préfix";
$lang['gen_hamradio_suffix'] = "Suffix";
$lang['gen_hamradio_prefix'] = "Préfixe";
$lang['gen_hamradio_suffix'] = "Suffixe";
$lang['gen_hamradio_de'] = "De";
$lang['gen_hamradio_dx'] = "Dx";
$lang['gen_hamradio_mode'] = "Mode";
@ -136,8 +137,8 @@ $lang['gen_hamradio_rst_rcvd'] = "Reçu";
$lang['gen_hamradio_band'] = "Bande";
$lang['gen_hamradio_bandgroup'] = "Groupe de Bandes";
$lang['gen_hamradio_band_rx'] = "Bande (RX)";
$lang['gen_hamradio_frequency'] = "Frequence";
$lang['gen_hamradio_frequency_rx'] = "Frequence (RX)";
$lang['gen_hamradio_frequency'] = "Fréquence";
$lang['gen_hamradio_frequency_rx'] = "Fréquence (RX)";
$lang['gen_hamradio_radio'] = "Radio";
$lang['gen_hamradio_rsts'] = "RST (S)";
$lang['gen_hamradio_rstr'] = "RST (R)";
@ -150,11 +151,11 @@ $lang['gen_hamradio_qsltype'] = "QSL Type";
$lang['gen_hamradio_qslvia'] = "QSL via";
$lang['gen_hamradio_qslmsg'] = "QSL Msg";
$lang['gen_hamradio_locator'] = "Locator";
$lang['gen_hamradio_transmit_power'] = "Puissance Emission (W)";
$lang['gen_hamradio_propagation_mode'] = "Mode Propagation";
$lang['gen_hamradio_transmit_power'] = "Puissance d'émission (W)";
$lang['gen_hamradio_propagation_mode'] = "Mode de propagation";
$lang['gen_hamradio_satellite_name'] = "Nom du Satellite";
$lang['gen_hamradio_satellite_mode'] = "Mode du Satellite";
$lang['gen_hamradio_satellite_name'] = "Nom du satellite";
$lang['gen_hamradio_satellite_mode'] = "Mode du satellite";
$lang['gen_hamradio_logbook'] = "Journal de trafic";
$lang['gen_hamradio_award'] = "Award";
@ -166,7 +167,7 @@ $lang['gen_hamradio_dxcc'] = "DXCC";
$lang['gen_hamradio_deleted_dxcc'] = "DXCC Supprimé";
$lang['gen_hamradio_continent'] = "Continent";
$lang['gen_hamradio_usa_state'] = "Etat USA";
$lang['gen_hamradio_county_reference'] = "Compté USA";
$lang['gen_hamradio_county_reference'] = "Comté USA";
$lang['gen_hamradio_iota_reference'] = "Référence IOTA";
$lang['gen_hamradio_sota_reference'] = "Référence SOTA";
$lang['gen_hamradio_wwff_reference'] = "Référence WWFF";

View File

@ -14,7 +14,7 @@ $lang['qso_previous_max_shown'] = "Max. 5 previous contacts are shown";
$lang['qso_quicklog_enter_callsign'] = 'QUICKLOG Enter Callsign';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Saisissez la ouissance en Watts en utilisant uniquement des chiffres.';
$lang['qso_transmit_power_helptext'] = 'Saisissez la puissance en Watts en utilisant uniquement des chiffres.';
$lang['qso_sota_ref_helptext'] = 'Par exemple: GM/NS-001.';
$lang['qso_wwff_ref_helptext'] = 'Par exemple: DLFF-0069.';

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "QSOs réalisés";
*/
$lang['statistics_distances_bands_all'] = "Toutes";
$lang['statistics_distances_modes_all'] = "Tous";
$lang['statistics_distances_worked'] = "Nombre de QSOs réalisés par plage de distance";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts utilisés pour le graphique.<br> Le contact le plus lointain réalisé est ";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "avec le locator";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "La distanc
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "La distance moyenne est de";
$lang['statistics_distances_number_of_qsos'] = "Nombre de QSOs";
$lang['statistics_distances_callsigns_worked'] = "Indicatif(s) contacté(s) (liste de 5 max)";
$lang['statistics_distances_qsos_with'] = "QSOs avec";
$lang['statistics_distances_and_band'] = "et bandes";
$lang['statistics_distances_qsos_with'] = "QSOs avec distance : ";
$lang['statistics_distances_and_band'] = ", bande : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", puissance : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtern auf";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Nie";
$lang['general_word_undefined'] = "Unbestimmt";
$lang['general_word_date'] = 'Datum';
$lang['general_word_startdate'] = "Start Datum";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# gearbeitete QSOs";
*/
$lang['statistics_distances_bands_all'] = "Alle";
$lang['statistics_distances_modes_all'] = "Alle";
$lang['statistics_distances_worked'] = "Gearbeitete Entfernungen";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "Kontakte wurden dargestellt.<br /> Der weiteste Kontakt war"; // make sure'<br />' stays there
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "im Planquadrat";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "Die Distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "Die durchschnittliche Distanz ist";
$lang['statistics_distances_number_of_qsos'] = "Anzahl der QSOs";
$lang['statistics_distances_callsigns_worked'] = "Gearbeitete(s) Rufzeichen (max 5 werden gezeigt)";
$lang['statistics_distances_qsos_with'] = "QSOs mit";
$lang['statistics_distances_and_band'] = "und Band";
$lang['statistics_distances_qsos_with'] = "QSOs mit Distanz : ";
$lang['statistics_distances_and_band'] = ", Band : ";
$lang['statistics_distances_and_mode'] = ", Mode : ";
$lang['statistics_distances_and_power'] = ", Sendeleistung : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Ημερομηνία';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtro attivo";
$lang['general_word_not_display'] = "Non visualizzare";
$lang['general_word_icon'] = "Icona";
$lang['general_word_never'] = "Mai";
$lang['general_word_undefined'] = "Indefinito";
$lang['general_word_date'] = 'Data';
$lang['general_word_startdate'] = "Data di inizio";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# di QSO effettuati";
*/
$lang['statistics_distances_bands_all'] = "Tutte";
$lang['statistics_distances_modes_all'] = "Tutte";
$lang['statistics_distances_worked'] = "Distanze percorse";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "i contatti sono stati tracciati.<br /> Il tuo contatto più lontano era con";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "nella griglia";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "La distanz
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "La distanza media è";
$lang['statistics_distances_number_of_qsos'] = "Numero di QSO";
$lang['statistics_distances_callsigns_worked'] = "Nominativo(i) funzionante(i max 5 mostrati)";
$lang['statistics_distances_qsos_with'] = "QSO con";
$lang['statistics_distances_and_band'] = "e banda";
$lang['statistics_distances_qsos_with'] = "QSO con distanza : ";
$lang['statistics_distances_and_band'] = ", banda : ";
$lang['statistics_distances_and_mode'] = ", modo : ";
$lang['statistics_distances_and_power'] = ", potenza : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Data';
$lang['general_word_startdate'] = "Start Date";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Отфильтровано по";
$lang['general_word_not_display'] = "Не отображать";
$lang['general_word_icon'] = "Иконка";
$lang['general_word_never'] = "Никогда";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Дата';
$lang['general_word_startdate'] = "Дата начала";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# QSO проведено";
*/
$lang['statistics_distances_bands_all'] = "все";
$lang['statistics_distances_modes_all'] = "все";
$lang['statistics_distances_worked'] = "Сработанные дистанции";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "контакты отображены.<br /> Наиболее дальний контакт с";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "в квадрате";
@ -34,7 +35,9 @@ $lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "Средн
$lang['statistics_distances_number_of_qsos'] = "Количество QSO";
$lang['statistics_distances_callsigns_worked'] = "Сработанные позывные(ной) (максимально 5 показано)";
$lang['statistics_distances_qsos_with'] = "QSOs с";
$lang['statistics_distances_and_band'] = "и диапазоне";
$lang['statistics_distances_and_band'] = ", диапазоне : ";
$lang['statistics_distances_and_mode'] = ", Вид модуляции : ";
$lang['statistics_distances_and_power'] = ", Мощность передачи : ";
/*
*

View File

@ -26,7 +26,8 @@ $lang['general_word_count'] = "Conteo";
$lang['general_word_filtering_on'] = "Filtrado por";
$lang['general_word_not_display'] = "No mostrar";
$lang['general_word_icon'] = "Icono";
$lang['general_word_never'] = "Nunca";
$lang['general_word_undefined'] = "Indefinido";
$lang['general_word_date'] = 'Fecha';
$lang['general_word_startdate'] = "Fecha de inicio";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# de QSOs logradas";
*/
$lang['statistics_distances_bands_all'] = "Todas";
$lang['statistics_distances_modes_all'] = "Todas";
$lang['statistics_distances_worked'] = "Distancias Logradas";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contactos fueron dibujados.<br /> Su contacto más lejano fue con";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "en gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "La distanc
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "La distancia promedio es";
$lang['statistics_distances_number_of_qsos'] = "Número de QSOs";
$lang['statistics_distances_callsigns_worked'] = "Indicativo(s) trabajados (se muestran máximo 5)";
$lang['statistics_distances_qsos_with'] = "QSOs con";
$lang['statistics_distances_and_band'] = "y banda";
$lang['statistics_distances_qsos_with'] = "QSOs con distancia : ";
$lang['statistics_distances_and_band'] = ", banda ; ";
$lang['statistics_distances_and_mode'] = ", modo : ";
$lang['statistics_distances_and_power'] = ", potencia : ";
/*
*

View File

@ -17,6 +17,8 @@ $lang['general_word_next'] = 'Next';
$lang['general_word_previous'] = 'Previous';
$lang['general_word_not_display'] = "Not display";
$lang['general_word_icon'] = "Icon";
$lang['general_word_never'] = "Never";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_cancel'] = "Cancel";
$lang['general_word_ok'] = "OK";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "# of QSO's worked";
*/
$lang['statistics_distances_bands_all'] = "All";
$lang['statistics_distances_modes_all'] = "All";
$lang['statistics_distances_worked'] = "Distances Worked";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "contacts were plotted.<br /> Your furthest contact was with";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "in gridsquare";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "The distan
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "The average distance is";
$lang['statistics_distances_number_of_qsos'] = "Number of QSOs";
$lang['statistics_distances_callsigns_worked'] = "Callsign(s) worked (max 5 shown)";
$lang['statistics_distances_qsos_with'] = "QSOs with";
$lang['statistics_distances_and_band'] = "and band";
$lang['statistics_distances_qsos_with'] = "QSOs with distance : ";
$lang['statistics_distances_and_band'] = ", band : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", power : ";
/*
*

View File

@ -26,6 +26,7 @@ $lang['general_word_filtering_on'] = "Filtrele";
$lang['general_word_not_display'] = "Gösterme";
$lang['general_word_icon'] = "Ikon";
$lang['general_word_never'] = "Asla";
$lang['general_word_undefined'] = "Undefined";
$lang['general_word_date'] = 'Tarih';
$lang['general_word_startdate'] = "Başlama Tarihi";

View File

@ -26,6 +26,7 @@ $lang['statistics_number_of_qso_worked'] = "Çalışan QSO sayısı";
*/
$lang['statistics_distances_bands_all'] = "Tüm";
$lang['statistics_distances_modes_all'] = "Tüm";
$lang['statistics_distances_worked'] = "Çalışılan Mesafeler";
$lang['statistics_distances_part1_contacts_were_plotted_furthest'] = "kişiler planlandı.<br /> En uzak bağlantınız şununlaydı";
$lang['statistics_distances_part2_contacts_were_plotted_furthest'] = "gridsquare'de";
@ -33,8 +34,10 @@ $lang['statistics_distances_part3_contacts_were_plotted_furthest'] = "Mesafe şu
$lang['statistics_distances_part4_contacts_were_plotted_furthest'] = "Ortalama mesafe";
$lang['statistics_distances_number_of_qsos'] = "QSO sayısı";
$lang['statistics_distances_callsigns_worked'] = "Çağrı işaretleri çalıştı (en fazla 5 tane gösterildi)";
$lang['statistics_distances_qsos_with'] = "QSO'lar ile";
$lang['statistics_distances_and_band'] = "ve bant";
$lang['statistics_distances_qsos_with'] = "mesafeli QSO'lar ile";
$lang['statistics_distances_and_band'] = ", bant : ";
$lang['statistics_distances_and_mode'] = ", mode : ";
$lang['statistics_distances_and_power'] = ", gücü : ";
/*
*

View File

@ -212,14 +212,36 @@ class AdifHelper {
$line .= $this->getAdifFieldLine("APP_CLOUDLOG_MY_WAB", $qso->station_wab);
$line .= $this->getAdifFieldLine("MY_ITU_ZONE", $qso->station_itu);
if($qso->state) {
if($qso->state) {
$line .= $this->getAdifFieldLine("MY_STATE", $qso->state);
}
if ($qso->station_cnty) {
switch ($qso->station_dxcc) {
case '291':
case '6':
case '110':
$county = trim($qso->state) . "," . trim($qso->station_cnty);
} else {
$county = trim($qso->station_cnty);
break;
case '54':
case '15':
case '61':
case '126':
case '151':
$county = trim($qso->station_cnty);
break;
default:
$county = trim($qso->station_cnty);
}
} else {
$county = '';
}
$line .= $this->getAdifFieldLine("MY_CNTY", $county);
$line .= $this->getAdifFieldLine("WWFF_REF", $qso->{'COL_WWFF_REF'});
$line .= $this->getAdifFieldLine("MY_WWFF_REF", $qso->station_wwff);
@ -259,7 +281,6 @@ class AdifHelper {
MY_NAME
MY_POSTAL_CODE
MY_RIG
MY_STATE
MY_STREET
MY_USACA_COUNTIES
*/

View File

@ -0,0 +1,28 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
* Change sat name from MESAT1 or MESAT-1 to MO-122
*/
class Migration_MESAT1_to_MO122 extends CI_Migration {
public function up()
{
$this->db->set('COL_SAT_NAME', 'MESAT1');
$this->db->where('COL_SAT_NAME', 'MO-122');
$this->db->update($this->config->item('table_name'));
$this->db->set('COL_SAT_NAME', 'MESAT-1');
$this->db->where('COL_SAT_NAME', 'MO-122');
$this->db->update($this->config->item('table_name'));
}
public function down()
{
// Not Possible
}
}

View File

@ -0,0 +1,30 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
* Tag Cloudlog as 2.6.16
*/
class Migration_tag_2_6_16 extends CI_Migration {
public function up()
{
// Tag Cloudlog 2.6.15
$this->db->where('option_name', 'version');
$this->db->update('options', array('option_value' => '2.6.16'));
// Trigger Version Info Dialog
$this->db->where('option_type', 'version_dialog');
$this->db->where('option_name', 'confirmed');
$this->db->update('user_options', array('option_value' => 'false'));
}
public function down()
{
$this->db->where('option_name', 'version');
$this->db->update('options', array('option_value' => '2.6.15'));
}
}

View File

@ -224,6 +224,28 @@ class Bands extends CI_Model {
return $results;
}
function get_worked_powers() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
if (!$logbooks_locations_array) {
return array();
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";
// get all worked powers from database
$sql = "SELECT distinct col_tx_pwr FROM ".$this->config->item('table_name')." WHERE station_id in (" . $location_list . ") ORDER BY col_tx_pwr";
$data = $this->db->query($sql);
$worked_powers = array();
foreach($data->result() as $row) array_push($worked_powers, $row->col_tx_pwr);
return $worked_powers;
}
function activateall() {
$data = array(
'active' => '1',

View File

@ -37,6 +37,19 @@ class Distances_model extends CI_Model
$this->db->where('col_band', $postdata['band']);
}
if ($postdata['mode'] != 'all') {
$this->db->group_start()->where('col_mode', $postdata['mode'])->or_where('col_submode', $postdata['mode'])->group_end();
}
if ($postdata['pwr'] != 'all') {
if ($postdata['pwr']) {
$this->db->where('col_tx_pwr', $postdata['pwr']);
} else {
$this->db->where('col_tx_pwr is NULL');
}
}
$this->db->where('station_id', $station_id);
$queryresult = $this->db->get($this->config->item('table_name'));
@ -83,6 +96,7 @@ class Distances_model extends CI_Model
if(isset($result['qsodata'][$i]['callcount'])) {
if ($result['qsodata'][$i]['callcount'] < 5 && $add['qsodata'][$i]['callcount'] > 0) {
$calls = explode(',', $add['qsodata'][$i]['calls']);
$calls = array_unique($calls);
foreach ($calls as $c) {
if ($result['qsodata'][$i]['callcount'] < 5) {
if ($result['qsodata'][$i]['callcount'] > 0) {
@ -178,19 +192,21 @@ class Distances_model extends CI_Model
$this->db->where('COL_PRIMARY_KEY', $qso['COL_PRIMARY_KEY']);
$this->db->update($this->config->item('table_name'), $data);
}
$arrayplacement = (int)($bearingdistance / 50); // Resolution is 50, calculates where to put result in array
$arrayplacement = (int)($bearingdistance / 50); // Resolution is 50, calculates where to put result in array
if ($bearingdistance > $qrb['Distance']) { // Saves the longest QSO
$qrb['Distance'] = $bearingdistance;
$qrb['Callsign'] = $qso['callsign'];
$qrb['Grid'] = $qso['grid'];
}
$dataarray[$arrayplacement]['count']++; // Used for counting total qsos plotted
$dataarray[$arrayplacement]['count']++; // Used for counting total qsos plotted
if ($dataarray[$arrayplacement]['callcount'] < 5) { // Used for tooltip in graph, set limit to 5 calls shown
if ($dataarray[$arrayplacement]['callcount'] > 0) {
$dataarray[$arrayplacement]['calls'] .= ', ';
if (strpos($dataarray[$arrayplacement]['calls'], $qso['callsign']) === false) { // Avoids duplicated callsigns
if ($dataarray[$arrayplacement]['callcount'] > 0) {
$dataarray[$arrayplacement]['calls'] .= ', ';
}
$dataarray[$arrayplacement]['calls'] .= $qso['callsign'];
$dataarray[$arrayplacement]['callcount']++;
}
$dataarray[$arrayplacement]['calls'] .= $qso['callsign'];
$dataarray[$arrayplacement]['callcount']++;
}
}
@ -223,7 +239,7 @@ class Distances_model extends CI_Model
/*
* Used to fetch QSOs from the logbook in the awards
*/
public function qso_details($distance, $band, $sat){
public function qso_details($distance, $band, $sat, $mode, $power){
$distarray = $this->getdistparams($distance);
$CI =& get_instance();
$CI->load->model('logbooks_model');
@ -238,8 +254,8 @@ class Distances_model extends CI_Model
$this->db->where_in($this->config->item('table_name').'.station_id', $logbooks_locations_array);
if ($band != 'All') {
if($band != "sat") {
if ($band != 'all') {
if ($band != "sat") {
$this->db->where('COL_PROP_MODE !=', 'SAT');
$this->db->where('COL_BAND', $band);
} else {
@ -249,6 +265,19 @@ class Distances_model extends CI_Model
}
}
}
if ($mode != 'all') {
$this->db->group_start()->where('COL_MODE', $mode)->or_where('COL_SUBMODE', $mode)->group_end();
}
if ($power != 'all') {
if ($power) {
$this->db->where('COL_TX_PWR', $power);
} else {
$this->db->where('COL_TX_PWR is NULL');
}
}
$this->db->order_by("COL_TIME_ON", "desc");
return $this->db->get($this->config->item('table_name'));

View File

@ -1024,6 +1024,10 @@ class Logbook_model extends CI_Model
if ($data['COL_BAND'] == '70cm' && $data['COL_BAND_RX'] == '2m') {
$sat_name = 'AO-7[B]';
}
} else if ($data['COL_SAT_NAME'] == 'MESAT-1') {
$sat_name = 'MESAT1';
} else if ($data['COL_SAT_NAME'] == 'SONATE-2') {
$sat_name = 'SONATE-2 APRS';
} else if ($data['COL_SAT_NAME'] == 'QO-100') {
$sat_name = 'QO-100_NB';
} else if ($data['COL_SAT_NAME'] == 'AO-92') {
@ -4433,30 +4437,38 @@ class Logbook_model extends CI_Model
if ($r->num_rows() > 0) {
foreach ($r->result_array() as $row) {
$callsign = $row['COL_CALL'];
if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
// Lookup using QRZ
if (!$this->load->is_loaded('qrz')) {
$this->load->library('qrz');
}
if ($this->session->userdata('callbook_type') == "QRZ") {
// Lookup using QRZ
$this->load->library('qrz');
if (!$this->session->userdata('qrz_session_key')) {
$qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password'));
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
}
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('qrz_session_key')) {
$qrz_session_key = $this->qrz->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
}
$callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'));
}
if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) {
// Load the HamQTH library
if (!$this->load->is_loaded('hamqth')) {
$this->load->library('hamqth');
}
if ($this->session->userdata('callbook_type') == "HamQTH") {
// Load the HamQTH library
$this->load->library('hamqth');
if (!$this->session->userdata('hamqth_session_key')) {
$hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password'));
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
}
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('hamqth_session_key')) {
$hamqth_session_key = $this->hamqth->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
}
$callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key'));
@ -4568,12 +4580,18 @@ class Logbook_model extends CI_Model
{
$callbook = null;
try {
if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
if ($this->session->userdata('callbook_type') == "QRZ") {
// Lookup using QRZ
$this->load->library('qrz');
if (!$this->session->userdata('qrz_session_key')) {
$qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password'));
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('qrz_session_key')) {
$qrz_session_key = $this->qrz->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('qrz_session_key', $qrz_session_key);
}
@ -4591,12 +4609,18 @@ class Logbook_model extends CI_Model
}
}
if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) {
if ($this->session->userdata('callbook_type') == "HamQTH") {
// Load the HamQTH library
$this->load->library('hamqth');
if (!$this->session->userdata('hamqth_session_key')) {
$hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password'));
// Load the encryption library
$this->load->library('encryption');
// Decrypt the password
$decrypted_password = $this->encryption->decrypt($this->session->userdata('callbook_password'));
if(!$this->session->userdata('hamqth_session_key')) {
$hamqth_session_key = $this->hamqth->session($this->session->userdata('callbook_username'), $decrypted_password);
$this->session->set_userdata('hamqth_session_key', $hamqth_session_key);
}

View File

@ -30,6 +30,8 @@ class Stations extends CI_Model {
$this->db->select('station_profile.*, dxcc_entities.name as station_country, dxcc_entities.end as dxcc_end');
$this->db->where('user_id', $userid);
$this->db->join('dxcc_entities','station_profile.station_dxcc = dxcc_entities.adif','left outer');
$this->db->order_by('station_profile.station_callsign');
$this->db->order_by('station_profile.station_profile_name');
return $this->db->get('station_profile');
}

View File

@ -150,7 +150,7 @@ class User_Model extends CI_Model {
$user_pota_lookup, $user_show_notes, $user_column1, $user_column2, $user_column3, $user_column4, $user_column5,
$user_show_profile_image, $user_previous_qsl_type, $user_amsat_status_upload, $user_mastodon_url,
$user_default_band, $user_default_confirmation, $user_qso_end_times, $user_quicklog, $user_quicklog_enter,
$language, $user_hamsat_key, $user_hamsat_workable_only) {
$language, $user_hamsat_key, $user_hamsat_workable_only, $callbook_type, $callbook_username, $callbook_password) {
// Check that the user isn't already used
if(!$this->exists($username)) {
$data = array(
@ -206,6 +206,19 @@ class User_Model extends CI_Model {
$this->db->query("insert into paper_types (user_id,paper_name,metric,width,orientation,height) SELECT ".$insert_id.", paper_name, metric, width, orientation,height FROM paper_types where user_id = -1;");
$this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'hamsat','hamsat_key','api','".xss_clean($user_hamsat_key)."');");
$this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'hamsat','hamsat_key','workable','".xss_clean($user_hamsat_workable_only)."');");
$this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'callbook','callbook_type','value','".xss_clean($callbook_type)."');");
$this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'callbook','callbook_username','value','".xss_clean($callbook_username)."');");
// Load the encryption library
$this->load->library('encryption');
// Encrypt the password
$encrypted_password = $this->encryption->encrypt($callbook_password);
// Insert the encrypted password into the database
$this->db->query("INSERT INTO user_options (user_id, option_type, option_name, option_key, option_value) VALUES (" . $insert_id . ", 'callbook', 'callbook_password', 'value', '" . xss_clean($encrypted_password) . "');");
return OK;
} else {
return EUSERNAMEEXISTS;
@ -348,6 +361,31 @@ class User_Model extends CI_Model {
// TODO: This should return bool TRUE/FALSE or 0/1
function update_session($id) {
$CI =& get_instance();
$CI->load->model('user_options_model');
$callbook_type_object = $CI->user_options_model->get_options('callbook')->result();
// Get the callbook type
if (isset($callbook_type_object[1]->option_value)) {
$callbook_type = $callbook_type_object[1]->option_value;
} else {
$callbook_type = "None";
}
// Get the callbook type
if (isset($callbook_type_object[2]->option_value)) {
$callbook_username = $callbook_type_object[2]->option_value;
} else {
$callbook_username = "";
}
// Get the callbook type
if (isset($callbook_type_object[0]->option_value)) {
$callbook_password = $callbook_type_object[0]->option_value;
} else {
$callbook_password = "";
}
$u = $this->get_by_id($id);
$userdata = array(
@ -388,7 +426,10 @@ class User_Model extends CI_Model {
'active_station_logbook' => $u->row()->active_station_logbook,
'language' => isset($u->row()->language) ? $u->row()->language: 'english',
'isWinkeyEnabled' => $u->row()->winkey,
'hasQrzKey' => $this->hasQrzKey($u->row()->user_id)
'hasQrzKey' => $this->hasQrzKey($u->row()->user_id),
'callbook_type' => $callbook_type,
'callbook_username' => $callbook_username,
'callbook_password' => $callbook_password,
);
$this->session->set_userdata($userdata);

View File

@ -17,7 +17,7 @@
</script>
<div id="distances_div">
<form class="d-flex align-items-center">
<label class="my-1 me-2" for="distplot_bands"><?php echo lang('gen_band_selection'); ?></label>
<label class="my-1 me-2" for="distplot_bands"><?php echo lang('gridsquares_band'); ?></label>
<select class="form-select my-1 me-sm-2 w-auto" id="distplot_bands">
<option value="all"><?php echo lang('statistics_distances_bands_all')?></option>
<?php if (count($sats_available) != 0) { ?>
@ -30,7 +30,7 @@
<?php if (count($sats_available) != 0) { ?>
<label class="my-1 me-2" for="distplot_sats"><?php echo lang('general_word_satellite')?></label>
<select class="form-select my-1 me-sm-2 w-auto" disabled id="distplot_sats">
<option value="All"><?php echo lang('general_word_all')?></option>
<option value="All"><?php echo lang('statistics_distances_modes_all')?></option>
<?php foreach($sats_available as $sat) {
echo '<option value="' . $sat . '"' . '>' . $sat . '</option>'."\n";
} ?>
@ -38,6 +38,25 @@
<?php } else { ?>
<input id="distplot_sats" type="hidden" value="All"></input>
<?php } ?>
<label class="my-1 me-2" for="distplot_modes"><?php echo lang('gridsquares_mode'); ?></label>
<select class="form-select my-1 me-sm-2 w-auto" id="distplot_modes">
<option value="all"><?php echo lang('general_word_all')?></option>
<?php
foreach($modes as $mode) {
if ($mode->submode ?? '' == '') {
echo '<option value="' . $mode . '">' . strtoupper($mode) . '</option>'."\n";
}
}
?>
</select>
<label class="my-1 me-2" for="distplot_powers"><?php echo lang('gen_hamradio_transmit_power'); ?></label>
<select class="form-select my-1 me-sm-2 w-auto" id="distplot_powers">
<option value="all"><?php echo lang('statistics_distances_bands_all')?></option>
<?php foreach($powers as $power) {
echo '<option value="' . $power . '">' . ($power ? $power : lang('general_word_undefined')) . '</option>'."\n";
}
?>
</select>
<button id="plot" type="button" name="plot" class="btn btn-primary" onclick="distPlot(this.form)"><?php echo lang('filter_options_show')?></button>
</form>
</div>

View File

@ -1,52 +1,51 @@
<div class="card-body">
<h2>Results for <?php echo $id; ?></h2>
<h2>Results for <?php echo $id; ?></h2>
<p>Sorry, but we didn't find any past QSOs with <?php echo $id; ?></p>
<p>Sorry, but we didn't find any past QSOs with <?php echo $id; ?></p>
<h3>Callbook Search for <?php echo $id; ?></h3>
<?php if(isset($callsign['callsign'])) { ?>
<table>
<?php if (!empty($error)) { ?>
<p><?php echo $error; ?></p>
<?php } else { ?>
<h3>Callbook Search for <?php echo $id; ?></h3>
<?php if (isset($callsign['callsign'])) { ?>
<table>
<tr>
<td align="left">Callsign</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo str_replace("0","&Oslash;",strtoupper($callsign['callsign'])); ?> <a target="_blank" href="https://www.qrz.com/db/<?php echo strtoupper($callsign['callsign']); ?>"><img style="vertical-align: baseline" width="16" height="16" src="<?php echo base_url(); ?>images/icons/qrz.png" alt="Lookup <?php echo strtoupper($callsign['callsign']); ?> on QRZ.com"></a> <a target="_blank" href="https://www.hamqth.com/<?php echo strtoupper($callsign['callsign']); ?>"><img style="vertical-align: baseline" width="16" height="16" src="<?php echo base_url(); ?>images/icons/hamqth.png" alt="Lookup <?php echo strtoupper($callsign['callsign']); ?> on HamQTH"></a></td>
</tr>
<tr>
<td align="left">Callsign</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo str_replace("0", "&Oslash;", strtoupper($callsign['callsign'])); ?> <a target="_blank" href="https://www.qrz.com/db/<?php echo strtoupper($callsign['callsign']); ?>"><img style="vertical-align: baseline" width="16" height="16" src="<?php echo base_url(); ?>images/icons/qrz.png" alt="Lookup <?php echo strtoupper($callsign['callsign']); ?> on QRZ.com"></a> <a target="_blank" href="https://www.hamqth.com/<?php echo strtoupper($callsign['callsign']); ?>"><img style="vertical-align: baseline" width="16" height="16" src="<?php echo base_url(); ?>images/icons/hamqth.png" alt="Lookup <?php echo strtoupper($callsign['callsign']); ?> on HamQTH"></a></td>
</tr>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">Name</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo $callsign['name']; ?></td>
</tr>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">Name</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo $callsign['name']; ?></td>
</tr>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">City</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo $callsign['city']; ?></td>
</tr>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">City</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo $callsign['city']; ?></td>
</tr>
<?php if(isset($callsign['dxcc_name'])) { ?>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">DXCC</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo $callsign['dxcc_name']; ?></td>
</tr>
<?php } ?>
<?php if (isset($callsign['dxcc_name'])) { ?>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">DXCC</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left"><?php echo $callsign['dxcc_name']; ?></td>
</tr>
<?php } ?>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">Gridsquare</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left">
<?php
if ($grid_worked != 0) {
echo " <span data-bs-toggle=\"tooltip\" title=\"Worked\" class=\"badge text-bg-success\" style=\"padding-left: 0.2em; padding-right: 0.2em;\">".strtoupper($callsign['gridsquare'])."</span>";
} else {
echo " <span data-bs-toggle=\"tooltip\" title=\"Not Worked\" class=\"badge text-bg-danger\" style=\"padding-left: 0.2em; padding-right: 0.2em;\">".strtoupper($callsign['gridsquare'])."</span>";
}
?>
</td>
</tr>
<tr>
<td style="padding: 0 0.3em 0 0;" align="left">Gridsquare</td>
<td style="padding: 0.3em 0 0.3em 0.5em;" align="left">
<?php
if ($grid_worked != 0) {
echo " <span data-bs-toggle=\"tooltip\" title=\"Worked\" class=\"badge text-bg-success\" style=\"padding-left: 0.2em; padding-right: 0.2em;\">" . strtoupper($callsign['gridsquare']) . "</span>";
} else {
echo " <span data-bs-toggle=\"tooltip\" title=\"Not Worked\" class=\"badge text-bg-danger\" style=\"padding-left: 0.2em; padding-right: 0.2em;\">" . strtoupper($callsign['gridsquare']) . "</span>";
}
?>
</td>
</tr>
</table>
<?php } else { ?>
<p><?php echo $error; ?></p>
<?php } ?>
</div>
</table>
<?php } ?>
<?php } ?>
</div>

View File

@ -1001,6 +1001,49 @@
</div>
</div>
<!-- QRZ -->
<div class="col-md">
<div class="card">
<div class="card-header">Callbook</div>
<div class="card-body">
<div class="mb-3">
<label>Callbook Provider</label>
<select class="form-control" name="user_callbook_type">
<option value="None" <?php if (isset($user_callbook_type) && $user_callbook_type == 'None') echo 'selected'; ?>>None</option>
<option value="QRZ" <?php if (isset($user_callbook_type) && $user_callbook_type == 'QRZ') echo 'selected'; ?>>QRZ</option>
<option value="HamQTH" <?php if (isset($user_callbook_type) && $user_callbook_type == 'HamQTH') echo 'selected'; ?>>HamQTH</option>
</select>
<?php if (isset($callbook_type_error)) {
echo "<small class=\"error\">" . $callbook_type_error . "</small>";
} ?>
</div>
<div class="mb-3">
<label>Callbook Username</label>
<input class="form-control" type="text" name="user_callbook_username" value="<?php if (isset($user_callbook_username)) {
echo $user_callbook_username;
} ?>" />
<?php if (isset($callbook_username_error)) {
echo "<small class=\"error\">" . $callbook_username_error . "</small>";
} ?>
</div>
<div class="mb-3">
<label>Callbook Password</label>
<div class="input-group">
<input class="form-control" type="password" name="user_callbook_password" />
<span class="input-group-btn"><button class="btn btn-default btn-pwd-showhide" type="button"><i class="fa fa-eye-slash"></i></button></span>
</div>
<?php if (isset($callbook_password_error)) {
echo "<small class=\"error\">" . $callbook_password_error . "</small>";
} else { ?>
<small class="form-text text-muted"><?php echo lang('account_leave_blank_to_keep_existing_password'); ?></small>
<?php } ?>
</div>
</div>
</div>
</div>
<!-- eQSL -->
<div class="col-md">
<div class="card">
@ -1031,7 +1074,9 @@
</div>
</div>
</div>
</div>
<div class="row">
<!-- Club Log -->
<div class="col-md">
<div class="card">

View File

@ -33,7 +33,7 @@ function echo_table_col($row, $name) {
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF) . '</td>'; break;
case 'POTA': echo '<td>' . ($row->COL_POTA_REF) . '</td>'; break;
case 'Grid': echo '<td>'; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo '</td>'; break;
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . '&nbsp;km' : '') . '</td>'; break;
case 'Distance':echo '<td><span data-bs-toggle="tooltip" title="'.$row->COL_GRIDSQUARE.'">' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . '&nbsp;km' : '') . '</span></td>'; break;
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank"><span data-bs-toggle="tooltip" title="'.$row->COL_BAND.'">'.$row->COL_SAT_NAME.'</span></a></td>'; } else { if ($row->COL_FREQ != null) { echo ' <span data-bs-toggle="tooltip" title="'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'">'. strtolower($row->COL_BAND).'</span>'; } else { echo strtolower($row->COL_BAND); } } echo '</td>'; break;
case 'Frequency': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank">'; if ($row->COL_FREQ != null) { echo ' <span data-bs-toggle="tooltip" title="'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'">'.$row->COL_SAT_NAME.'</span>'; } else { echo $row->COL_SAT_NAME; } echo '</a></td>'; } else { if ($row->COL_FREQ != null) { echo ' <span data-bs-toggle="tooltip" title="'.$row->COL_BAND.'">'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'</span>'; } else { echo strtolower($row->COL_BAND); } } echo '</td>'; break;
case 'State': echo '<td>' . ($row->COL_STATE) . '</td>'; break;

View File

@ -14,7 +14,9 @@ function distPlot(form) {
url: base_url+'index.php/distances/get_distances',
type: 'post',
data: {'band': form.distplot_bands.value,
'sat': form.distplot_sats.value},
'sat': form.distplot_sats.value,
'mode': form.distplot_modes.value,
'pwr': form.distplot_powers.value},
success: function(tmp) {
if (tmp.ok == 'OK') {
if (!($('#information').length > 0))
@ -142,6 +144,8 @@ function getDistanceQsos(distance) {
'distance': distance,
'band': $("#distplot_bands").val(),
'sat' : $("#distplot_sats").val(),
'mode': $("#distplot_modes").val(),
'pwr': $("#distplot_powers").val(),
},
success: function (html) {
BootstrapDialog.show({

View File

@ -351,6 +351,18 @@
]
}
},
"MO-122":{
"Modes":{
"V/U":[
{
"Uplink_Mode":"LSB",
"Uplink_Freq":"145925000",
"Downlink_Mode":"USB",
"Downlink_Freq":"435825000"
}
]
}
},
"NO-44":{
"Modes":{
"V":[
@ -475,6 +487,18 @@
]
}
},
"SONATE-2":{
"Modes":{
"V":[
{
"Uplink_Mode":"PKT",
"Uplink_Freq":"145825000",
"Downlink_Mode":"PKT",
"Downlink_Freq":"145825000"
}
]
}
},
"TEVEL-1":{
"Modes":{
"V/U":[