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 @@
+
+
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 @@
+
+
+
+
+
+
+ station_pota; } ?>">
+ Station POTA reference.
+
+
+
+
+
+
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'); ?> |
+ php echo $row->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