diff --git a/application/config/migration.php b/application/config/migration.php index da99decf..7ccd0b37 100644 --- a/application/config/migration.php +++ b/application/config/migration.php @@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE; | be upgraded / downgraded to. | */ -$config['migration_version'] = 101; +$config['migration_version'] = 102; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/Qso.php b/application/controllers/Qso.php index 491da78d..36259168 100755 --- a/application/controllers/Qso.php +++ b/application/controllers/Qso.php @@ -368,6 +368,35 @@ class QSO extends CI_Controller { echo json_encode($json); } + public function get_pota() { + $json = []; + + if(!empty($this->input->get("query"))) { + $query = isset($_GET['query']) ? $_GET['query'] : FALSE; + $pota = strtoupper($query); + + $file = 'assets/json/pota.txt'; + + if (is_readable($file)) { + $lines = file($file, FILE_IGNORE_NEW_LINES); + $input = preg_quote($pota, '~'); + $reg = '~^'. $input .'(.*)$~'; + $result = preg_grep($reg, $lines); + $json = []; + $i = 0; + foreach ($result as &$value) { + // Limit to 100 as to not slowdown browser too much + if (count($json) <= 100) { + $json[] = ["name"=>$value]; + } + } + } + } + + header('Content-Type: application/json'); + echo json_encode($json); + } + /* * Function is used for autocompletion of DOK in the QSO entry form */ diff --git a/application/language/english/general_words_lang.php b/application/language/english/general_words_lang.php index da383fb9..dd8bf1d9 100644 --- a/application/language/english/general_words_lang.php +++ b/application/language/english/general_words_lang.php @@ -99,11 +99,13 @@ $lang['gen_hamradio_county_reference'] = 'USA County'; $lang['gen_hamradio_iota_reference'] = 'IOTA Reference'; $lang['gen_hamradio_sota_reference'] = 'SOTA Reference'; $lang['gen_hamradio_wwff_reference'] = 'WWFF Reference'; +$lang['gen_hamradio_pota_reference'] = 'POTA Reference'; $lang['gen_hamradio_dok'] = 'DOK'; $lang['gen_hamradio_state'] = 'State'; $lang['gen_hamradio_iota'] = 'IOTA'; $lang['gen_hamradio_sota'] = 'SOTA'; $lang['gen_hamradio_wwff'] = 'WWFF'; +$lang['gen_hamradio_pota'] = 'POTA'; $lang['gen_hamradio_gridsquare'] = 'Gridsquare'; $lang['gen_hamradio_operator'] = 'Operator'; diff --git a/application/language/english/qso_lang.php b/application/language/english/qso_lang.php index e3613182..47b95fb4 100644 --- a/application/language/english/qso_lang.php +++ b/application/language/english/qso_lang.php @@ -14,8 +14,8 @@ $lang['qso_transmit_power_helptext'] = 'Give power value in Watts. Include only $lang['qso_sota_ref_helptext'] = 'For example: GM/NS-001.'; $lang['qso_wwff_ref_helptext'] = 'For example: DLFF-0069.'; -$lang['qso_sig_helptext'] = 'For example: POTA'; -$lang['qso_sig_info_helptext'] = 'For example: PA-0150'; +$lang['qso_sig_helptext'] = 'For example: GMA'; +$lang['qso_sig_info_helptext'] = 'For example: DA/NW-357'; $lang['qso_dok_helptext'] = 'For example: Q03'; diff --git a/application/language/german/general_words_lang.php b/application/language/german/general_words_lang.php index c57c4a55..1cd5f8ed 100644 --- a/application/language/german/general_words_lang.php +++ b/application/language/german/general_words_lang.php @@ -99,10 +99,13 @@ $lang['gen_hamradio_county_reference'] = 'USA County'; $lang['gen_hamradio_iota_reference'] = 'IOTA Referenznummer'; $lang['gen_hamradio_sota_reference'] = 'SOTA Referenznummer'; $lang['gen_hamradio_wwff_reference'] = 'WWFF Referenznummer'; +$lang['gen_hamradio_pota_reference'] = 'POTA Referenznummer'; $lang['gen_hamradio_dok'] = 'DOK'; $lang['gen_hamradio_state'] = 'Staat'; $lang['gen_hamradio_iota'] = 'IOTA'; $lang['gen_hamradio_sota'] = 'SOTA'; +$lang['gen_hamradio_wwff'] = 'WWFF'; +$lang['gen_hamradio_pota'] = 'POTA'; $lang['gen_hamradio_gridsquare'] = 'Planquadrat'; $lang['gen_hamradio_operator'] = 'Operator'; diff --git a/application/language/german/qso_lang.php b/application/language/german/qso_lang.php index e45cb586..a9556f43 100644 --- a/application/language/german/qso_lang.php +++ b/application/language/german/qso_lang.php @@ -14,8 +14,8 @@ $lang['qso_transmit_power_helptext'] = 'Gib die Ausgangsleistung in Watt an. Erf $lang['qso_sota_ref_helptext'] = 'Zum Beispiel: GM/NS-001.'; $lang['qso_wwff_ref_helptext'] = 'Zum Beispiel: DLFF-0069.'; -$lang['qso_sig_helptext'] = 'Zum Beispiel: POTA'; -$lang['qso_sig_info_helptext'] = 'Zum Beispiel: PA-0150'; +$lang['qso_sig_helptext'] = 'Zum Beispiel: GMA'; +$lang['qso_sig_info_helptext'] = 'Zum Beispiel: DA/NW-357'; $lang['qso_dok_helptext'] = 'Zum Beispiel: Q03'; diff --git a/application/libraries/AdifHelper.php b/application/libraries/AdifHelper.php index 926f7ee4..cc936f08 100644 --- a/application/libraries/AdifHelper.php +++ b/application/libraries/AdifHelper.php @@ -88,6 +88,7 @@ class AdifHelper { 'SKCC', 'SOTA_REF', 'WWFF_REF', + 'POTA_REF', 'SRX', 'SRX_STRING', 'STATE', @@ -191,6 +192,8 @@ class AdifHelper { $line .= $this->getAdifFieldLine("MY_WWFF_REF", $qso->station_wwff); + $line .= $this->getAdifFieldLine("MY_POTA_REF", $qso->station_pota); + $line .= $this->getAdifFieldLine("MY_CQ_ZONE", $qso->station_cq); $line .= $this->getAdifFieldLine("MY_ITU_ZONE", $qso->station_itu); diff --git a/application/migrations/102_add_pota_columns.php b/application/migrations/102_add_pota_columns.php new file mode 100644 index 00000000..e918f0ff --- /dev/null +++ b/application/migrations/102_add_pota_columns.php @@ -0,0 +1,46 @@ +db->field_exists('COL_POTA_REF', 'TABLE_HRD_CONTACTS_V01')) { + $fields = array( + 'COL_POTA_REF VARCHAR(30) DEFAULT NULL', + 'COL_MY_POTA_REF VARCHAR(50) DEFAULT NULL', + ); + $this->dbforge->add_column('TABLE_HRD_CONTACTS_V01', $fields, 'COL_VUCC_GRIDS'); + + // Now copy over data from SIG_INFO fields and remove COL_SIG and COL_SIG_INFO only if COL_SIG is POTA + // This cannot be reverted on downgrade to prevent overwriting of other COL_SIG information + $this->db->set('COL_POTA_REF', 'COL_SIG_INFO', FALSE); + $this->db->set('COL_SIG_INFO', ''); + $this->db->set('COL_SIG', ''); + $this->db->where('COL_SIG', 'POTA'); + $this->db->update('TABLE_HRD_CONTACTS_V01'); + + // Add MY_POTA_REF to station profile + $fields = array( + 'station_pota varchar(50) DEFAULT NULL', + ); + $this->dbforge->add_column('station_profile', $fields); + } + } + + public function down() + { + $this->dbforge->drop_column('TABLE_HRD_CONTACTS_V01', 'COL_POTA_REF'); + $this->dbforge->drop_column('TABLE_HRD_CONTACTS_V01', 'COL_MY_POTA_REF'); + $this->dbforge->drop_column('station_profile', 'station_potpota'); + } +} diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 7891fa8c..9333f143 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -178,6 +178,7 @@ class Logbook_model extends CI_Model { 'COL_CNTY' => $clean_county_input, 'COL_SOTA_REF' => trim($this->input->post('sota_ref')), 'COL_WWFF_REF' => trim($this->input->post('wwff_ref')), + 'COL_POTA_REF' => trim($this->input->post('pota_ref')), 'COL_SIG' => trim($this->input->post('sig')), 'COL_SIG_INFO' => trim($this->input->post('sig_info')), 'COL_DARC_DOK' => strtoupper(trim($darc_dok)), @@ -211,6 +212,7 @@ class Logbook_model extends CI_Model { $data['COL_MY_IOTA'] = strtoupper(trim($station['station_iota'])); $data['COL_MY_SOTA_REF'] = strtoupper(trim($station['station_sota'])); $data['COL_MY_WWFF_REF'] = strtoupper(trim($station['station_wwff'])); + $data['COL_MY_POTA_REF'] = strtoupper(trim($station['station_pota'])); $data['COL_STATION_CALLSIGN'] = strtoupper(trim($station['station_callsign'])); $data['COL_MY_DXCC'] = strtoupper(trim($station['station_dxcc'])); @@ -287,6 +289,9 @@ class Logbook_model extends CI_Model { case 'WWFF': $this->db->where('COL_WWFF_REF', $searchphrase); break; + case 'POTA': + $this->db->where('COL_POTA_REF', $searchphrase); + break; } $this->db->where_in($this->config->item('table_name').'.station_id', $logbooks_locations_array); @@ -663,6 +668,7 @@ class Logbook_model extends CI_Model { 'COL_IOTA' => $this->input->post('iota_ref'), 'COL_SOTA_REF' => $this->input->post('sota_ref'), 'COL_WWFF_REF' => $this->input->post('wwff_ref'), + 'COL_POTA_REF' => $this->input->post('pota_ref'), 'COL_TX_PWR' => $txpower, 'COL_SIG' => $this->input->post('sig'), 'COL_SIG_INFO' => $this->input->post('sig_info'), @@ -2620,6 +2626,7 @@ class Logbook_model extends CI_Model { 'COL_MY_SIG_INTL' => (!empty($record['my_sig_intl'])) ? $record['my_sig_intl'] : '', 'COL_MY_SOTA_REF' => (!empty($record['my_sota_ref'])) ? $record['my_sota_ref'] : '', 'COL_MY_WWFF_REF' => (!empty($record['my_wwff_ref'])) ? $record['my_wwff_ref'] : '', + 'COL_MY_POTA_REF' => (!empty($record['my_pota_ref'])) ? $record['my_pota_ref'] : '', 'COL_MY_STATE' => (!empty($record['my_state'])) ? $record['my_state'] : '', 'COL_MY_STREET' => (!empty($record['my_street'])) ? $record['my_street'] : '', 'COL_MY_STREET_INTL' => (!empty($record['my_street_intl'])) ? $record['my_street_intl'] : '', @@ -2669,6 +2676,7 @@ class Logbook_model extends CI_Model { 'COL_SKCC' => (!empty($record['skcc'])) ? $record['skcc'] : '', 'COL_SOTA_REF' => (!empty($record['sota_ref'])) ? $record['sota_ref'] : '', 'COL_WWFF_REF' => (!empty($record['wwff_ref'])) ? $record['wwff_ref'] : '', + 'COL_POTA_REF' => (!empty($record['pota_ref'])) ? $record['pota_ref'] : '', 'COL_SRX' => (!empty($record['srx'])) ? $record['srx'] : null, 'COL_SRX_STRING' => (!empty($record['srx_string'])) ? $record['srx_string'] : '', 'COL_STATE' => (!empty($record['state'])) ? strtoupper($record['state']) : '', @@ -2707,6 +2715,7 @@ class Logbook_model extends CI_Model { $data['COL_MY_IOTA'] = strtoupper(trim($row['station_iota'])); $data['COL_MY_SOTA_REF'] = strtoupper(trim($row['station_sota'])); $data['COL_MY_WWFF_REF'] = strtoupper(trim($row['station_wwff'])); + $data['COL_MY_POTA_REF'] = strtoupper(trim($row['station_pota'])); $data['COL_STATION_CALLSIGN'] = strtoupper(trim($row['station_callsign'])); $data['COL_MY_DXCC'] = strtoupper(trim($row['station_dxcc'])); diff --git a/application/models/Stations.php b/application/models/Stations.php index f5834328..14866944 100644 --- a/application/models/Stations.php +++ b/application/models/Stations.php @@ -65,6 +65,7 @@ class Stations extends CI_Model { 'station_iota' => xss_clean(strtoupper($this->input->post('iota', true))), 'station_sota' => xss_clean(strtoupper($this->input->post('sota', true))), 'station_wwff' => xss_clean(strtoupper($this->input->post('wwff', true))), + 'station_pota' => xss_clean(strtoupper($this->input->post('pota', true))), 'station_sig' => xss_clean(strtoupper($this->input->post('sig', true))), 'station_sig_info' => xss_clean(strtoupper($this->input->post('sig_info', true))), 'station_callsign' => xss_clean($this->input->post('station_callsign', true)), @@ -91,6 +92,7 @@ class Stations extends CI_Model { 'station_iota' => xss_clean($this->input->post('iota', true)), 'station_sota' => xss_clean($this->input->post('sota', true)), 'station_wwff' => xss_clean($this->input->post('wwff', true)), + 'station_pota' => xss_clean($this->input->post('pota', true)), 'station_sig' => xss_clean($this->input->post('sig', true)), 'station_sig_info' => xss_clean($this->input->post('sig_info', true)), 'station_callsign' => xss_clean($this->input->post('station_callsign', true)), @@ -248,6 +250,10 @@ class Stations extends CI_Model { $this->db->where('COL_MY_WWFF_REF', $row->station_wwff); } + if($row->station_pota != "") { + $this->db->where('COL_MY_POTA_REF', $row->station_pota); + } + if($row->station_sig != "") { $this->db->where('COL_MY_SIG', $row->station_sig); } diff --git a/application/views/dashboard/index.php b/application/views/dashboard/index.php index 28b0a24e..8f8b1cff 100644 --- a/application/views/dashboard/index.php +++ b/application/views/dashboard/index.php @@ -8,6 +8,7 @@ function echo_table_header_col($ctx, $name) { case 'IOTA': echo ''.$ctx->lang->line('gen_hamradio_iota').''; break; case 'SOTA': echo ''.$ctx->lang->line('gen_hamradio_sota').''; break; case 'WWFF': echo ''.$ctx->lang->line('gen_hamradio_wwff').''; break; + case 'POTA': echo ''.$ctx->lang->line('gen_hamradio_pota').''; break; case 'State': echo ''.$ctx->lang->line('gen_hamradio_state').''; break; case 'Grid': echo ''.$ctx->lang->line('gen_hamradio_gridsquare').''; break; case 'Band': echo ''.$ctx->lang->line('gen_hamradio_band').''; break; @@ -24,6 +25,7 @@ function echo_table_col($row, $name) { case 'IOTA': echo '' . ($row->COL_IOTA) . ''; break; case 'SOTA': echo '' . ($row->COL_SOTA_REF) . ''; break; case 'WWFF': echo '' . ($row->COL_WWFF_REF) . ''; break; + case 'POTA': echo '' . ($row->COL_POTA_REF) . ''; break; case 'Grid': echo ''; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo ''; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo ''.$row->COL_SAT_NAME.''; } else { echo strtolower($row->COL_BAND); } echo ''; break; case 'State': echo '' . ($row->COL_STATE) . ''; break; diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 73e4c99a..b49bbe1f 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -2048,6 +2048,34 @@ $(document).ready(function(){ } }); + $('#pota_ref_edit').selectize({ + maxItems: 1, + closeAfterSelect: true, + loadThrottle: 250, + valueField: 'name', + labelField: 'name', + searchField: 'name', + options: [], + create: false, + load: function(query, callback) { + if (!query || query.length < 3) return callback(); // Only trigger if 3 or more characters are entered + $.ajax({ + url: baseURL+'index.php/qso/get_pota', + type: 'GET', + dataType: 'json', + data: { + query: query, + }, + error: function() { + callback(); + }, + success: function(res) { + callback(res); + } + }); + } + }); + $('#darc_dok_edit').selectize({ maxItems: 1, closeAfterSelect: true, diff --git a/application/views/qslcard/searchresult.php b/application/views/qslcard/searchresult.php index 6fcb6e69..451999ed 100644 --- a/application/views/qslcard/searchresult.php +++ b/application/views/qslcard/searchresult.php @@ -107,6 +107,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -121,6 +122,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -136,6 +138,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -150,6 +153,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -164,6 +168,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; diff --git a/application/views/qso/edit_ajax.php b/application/views/qso/edit_ajax.php index 10220922..1f4642c2 100644 --- a/application/views/qso/edit_ajax.php +++ b/application/views/qso/edit_ajax.php @@ -358,6 +358,11 @@ +
+ + +
+
diff --git a/application/views/qso/index.php b/application/views/qso/index.php index 30e1fe6d..e65da641 100755 --- a/application/views/qso/index.php +++ b/application/views/qso/index.php @@ -355,6 +355,17 @@
+
+
+ + + lang->line('qso_pota_ref_helptext'); ?> +
+
+ +
+
+
diff --git a/application/views/search/search_result_ajax.php b/application/views/search/search_result_ajax.php index 08a656f7..30c053b1 100644 --- a/application/views/search/search_result_ajax.php +++ b/application/views/search/search_result_ajax.php @@ -125,6 +125,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -139,6 +140,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -154,6 +156,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -168,6 +171,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; @@ -182,6 +186,7 @@ case 'IOTA': echo '' . ($row->COL_IOTA); break; case 'SOTA': echo '' . ($row->COL_SOTA_REF); break; case 'WWFF': echo '' . ($row->COL_WWFF_REF); break; + case 'POTA': echo '' . ($row->COL_POTA_REF); break; case 'Grid': echo ''; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break; case 'State': echo '' . ($row->COL_STATE); break; diff --git a/application/views/station_profile/create.php b/application/views/station_profile/create.php index 1d67d84e..f166952f 100644 --- a/application/views/station_profile/create.php +++ b/application/views/station_profile/create.php @@ -198,16 +198,22 @@ Station WWFF reference (e.g. DLFF-0069).
+
+ + + Station POTA reference (e.g. PA-0150). +
+
- Station Signature (e.g. POTA). + Station Signature (e.g. GMA).
- Station Signature Info (e.g. PA-0150). + Station Signature Info (e.g. DA/NW-357).
diff --git a/application/views/station_profile/edit.php b/application/views/station_profile/edit.php index 38ae078f..cbbc3ba6 100644 --- a/application/views/station_profile/edit.php +++ b/application/views/station_profile/edit.php @@ -286,6 +286,20 @@
+
+
+
POTA
+
+
+ + station_pota; } ?>"> + Station POTA reference. +
+
+
+
+ +
@@ -294,13 +308,13 @@
station_sig; } ?>"> - Station Signature (e.g. WWFF).. + Station Signature (e.g. GMA)..
station_sig_info; } ?>"> - Station Signature Info (e.g. DLFF-0029). + Station Signature Info (e.g. DA/NW-357).
diff --git a/application/views/user/edit.php b/application/views/user/edit.php index ad20e890..1327337a 100644 --- a/application/views/user/edit.php +++ b/application/views/user/edit.php @@ -341,6 +341,7 @@ + @@ -358,6 +359,7 @@ + @@ -375,6 +377,7 @@ + @@ -392,6 +395,7 @@ + @@ -408,6 +412,7 @@ + diff --git a/application/views/view_log/partial/log_ajax.php b/application/views/view_log/partial/log_ajax.php index ae0959f8..e52e6249 100644 --- a/application/views/view_log/partial/log_ajax.php +++ b/application/views/view_log/partial/log_ajax.php @@ -8,6 +8,7 @@ function echo_table_header_col($ctx, $name) { case 'IOTA': echo ''.$ctx->lang->line('gen_hamradio_iota').''; break; case 'SOTA': echo ''.$ctx->lang->line('gen_hamradio_sota').''; break; case 'WWFF': echo ''.$ctx->lang->line('gen_hamradio_wwff').''; break; + case 'POTA': echo ''.$ctx->lang->line('gen_hamradio_pota').''; break; case 'State': echo ''.$ctx->lang->line('gen_hamradio_state').''; break; case 'Grid': echo ''.$ctx->lang->line('gen_hamradio_gridsquare').''; break; case 'Band': echo ''.$ctx->lang->line('gen_hamradio_band').''; break; @@ -25,6 +26,7 @@ function echo_table_col($row, $name) { case 'IOTA': echo '' . ($row->COL_IOTA) . ''; break; case 'SOTA': echo '' . ($row->COL_SOTA_REF) . ''; break; case 'WWFF': echo '' . ($row->COL_WWFF_REF) . ''; break; + case 'POTA': echo '' . ($row->COL_POTA_REF) . ''; break; case 'Grid': echo ''; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo ''; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo ''.$row->COL_SAT_NAME.''; } else { echo strtolower($row->COL_BAND); } echo ''; break; case 'State': echo '' . ($row->COL_STATE) . ''; break; diff --git a/application/views/view_log/qso.php b/application/views/view_log/qso.php index 44a4e92c..cfc78177 100644 --- a/application/views/view_log/qso.php +++ b/application/views/view_log/qso.php @@ -216,6 +216,13 @@ + COL_POTA_REF != null) { ?> + + lang->line('gen_hamradio_pota_reference'); ?> + COL_SIG_INFO; ?> + + + COL_SIG != null) { ?> lang->line('gen_hamradio_sig'); ?> @@ -234,12 +241,6 @@ case "MQC": echo "COL_SIG_INFO."\" target=\"_blank\">".$row->COL_SIG_INFO.""; break; - case "WWFF": - echo "COL_SIG_INFO."\" target=\"_blank\">".$row->COL_SIG_INFO.""; - break; - case "POTA": - echo "COL_SIG_INFO."\" target=\"_blank\">".$row->COL_SIG_INFO.""; - break; default: echo "".$row->COL_SIG_INFO.""; break; @@ -373,6 +374,13 @@ COL_MY_WWFF_REF; ?> + + COL_MY_POTA_REF) { ?> + + Station POTA Reference + COL_MY_POTA_REF; ?> + +
diff --git a/application/views/visitor/index.php b/application/views/visitor/index.php index b456b99c..608997ad 100644 --- a/application/views/visitor/index.php +++ b/application/views/visitor/index.php @@ -23,6 +23,7 @@ function echo_table_col($row, $name) { case 'IOTA': echo '' . ($row->COL_IOTA) . ''; break; case 'SOTA': echo '' . ($row->COL_SOTA_REF) . ''; break; case 'WWFF': echo '' . ($row->COL_WWFF_REF) . ''; break; + case 'POTA': echo '' . ($row->COL_POTA_REF) . ''; break; case 'Grid': echo ''; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo ''; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo ''.$row->COL_SAT_NAME.''; } else { echo strtolower($row->COL_BAND); } echo ''; break; case 'State': echo '' . ($row->COL_STATE) . ''; break; diff --git a/assets/css/general.css b/assets/css/general.css index 6c163ebf..354f2127 100644 --- a/assets/css/general.css +++ b/assets/css/general.css @@ -87,6 +87,10 @@ thead > tr > td { text-transform: uppercase; } +.qso_panel #pota_ref-selectized { + text-transform: uppercase; +} + .qso_panel #darc_dok-selectized { text-transform: uppercase; } @@ -111,6 +115,10 @@ thead > tr > td { text-transform: uppercase; } +.card-body #pota_ref_edit-selectized { + text-transform: uppercase; +} + .card-body #darc_dok_edit-selectized { text-transform: uppercase; } diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index 8b123d08..acdbb85b 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -126,6 +126,39 @@ $( document ).ready(function() { $('#wwff_info').attr('title', 'Lookup '+$('#wwff_ref').val()+' reference info on wwff.co'); }); + $('#pota_ref').selectize({ + maxItems: 1, + closeAfterSelect: true, + loadThrottle: 250, + valueField: 'name', + labelField: 'name', + searchField: 'name', + options: [], + create: false, + load: function(query, callback) { + if (!query || query.length < 3) return callback(); // Only trigger if 3 or more characters are entered + $.ajax({ + url: base_url+'index.php/qso/get_pota', + type: 'GET', + dataType: 'json', + data: { + query: query, + }, + error: function() { + callback(); + }, + success: function(res) { + callback(res); + } + }); + } + }); + + $('#pota_ref').change(function(){ + $('#pota_info').html(''); + $('#pota_info').attr('title', 'Lookup '+$('#pota_ref').val()+' reference info on pota.co'); + }); + $('#darc_dok').selectize({ maxItems: 1, closeAfterSelect: true, @@ -322,6 +355,9 @@ function reset_fields() { var $select = $('#wwff_ref').selectize(); var selectize = $select[0].selectize; selectize.clear(); + var $select = $('#pota_ref').selectize(); + var selectize = $select[0].selectize; + selectize.clear(); var $select = $('#darc_dok').selectize(); var selectize = $select[0].selectize; selectize.clear(); diff --git a/images/icons/pota.app.png b/images/icons/pota.app.png new file mode 100644 index 00000000..e53e399b Binary files /dev/null and b/images/icons/pota.app.png differ