diff --git a/application/controllers/logbook.php b/application/controllers/logbook.php new file mode 100644 index 00000000..167c6015 --- /dev/null +++ b/application/controllers/logbook.php @@ -0,0 +1,348 @@ +load->model('user_model'); + if(!$this->user_model->authorize($this->config->item('auth_mode'))) { + if($this->user_model->validate_session()) { + $this->user_model->clear_session(); + show_error('Access denied
Click here to log in as another user', 403);
+ } else {
+ redirect('user/login');
+ }
+ }
+
+ $this->load->library('pagination');
+ $config['base_url'] = base_url().'index.php/logbook/index/';
+ $config['total_rows'] = $this->db->count_all($this->config->item('table_name'));
+ $config['per_page'] = '25';
+ $config['num_links'] = 6;
+ $config['full_tag_open'] = '';
+ $config['full_tag_close'] = '';
+ $config['cur_tag_open'] = '';
+ $config['cur_tag_close'] = '';
+
+ $this->pagination->initialize($config);
+
+ //load the model and get results
+ $this->load->model('logbook_model');
+ $data['results'] = $this->logbook_model->get_qsos($config['per_page'],$this->uri->segment(3));
+
+
+ // load the view
+ $data['page_title'] = "Logbook";
+
+ $this->load->view('layout/header', $data);
+ $this->load->view('view_log/index');
+ $this->load->view('layout/footer');
+
+ }
+
+ /* Used to generate maps for displaying on /logbook/ */
+ function qso_map() {
+ $this->load->model('logbook_model');
+
+ $this->load->library('qra');
+
+ $data['qsos'] = $this->logbook_model->get_qsos($this->uri->segment(3),$this->uri->segment(4));
+
+ echo "{\"markers\": [";
+ $count = 1;
+ foreach ($data['qsos']->result() as $row) {
+ //print_r($row);
+ if($row->COL_GRIDSQUARE != null) {
+ $stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE);
+ if($count != 1) {
+ echo ",";
+ }
+
+ if($row->COL_SAT_NAME != null) {
+ echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
SAT: ".$row->COL_SAT_NAME."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
+ } else {
+ echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
Band: ".$row->COL_BAND."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
+ }
+
+ $count++;
+
+ } else {
+ $query = $this->db->query('
+ SELECT *
+ FROM dxcc
+ WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) )
+ ORDER BY LENGTH( prefix ) DESC
+ LIMIT 1
+ ');
+
+ foreach ($query->result() as $dxcc) {
+ if($count != 1) {
+ echo ",";
+ }
+ echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
Band: ".$row->COL_BAND."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
+ $count++;
+ }
+ }
+
+ }
+ echo "]";
+ echo "}";
+ }
+
+ function view($id) {
+ $this->load->model('user_model');
+ if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
+
+ $this->load->library('qra');
+
+ $this->db->where('COL_PRIMARY_KEY', $id);
+ $data['query'] = $this->db->get($this->config->item('table_name'));
+
+ $this->load->view('view_log/qso', $data);
+ }
+
+ function callsign_qra($qra) {
+ $this->load->model('user_model');
+ if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
+
+ $this->load->model('logbook_model');
+
+ if($this->logbook_model->call_qra($qra)) {
+ echo $this->logbook_model->call_qra($qra);
+ } else {
+ if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
+ // 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);
+ }
+
+ $callbook = $this->qrz->search($qra, $this->session->userdata('qrz_session_key'));
+ echo $callbook['gridsquare'];
+
+ } else {
+ // Lookup using Callbytxt
+ $this->load->library('callbytxt');
+
+ $callbook = $this->callbytxt->callsign($qra);
+
+ echo $callbook['gridsquare'];
+ }
+ }
+ }
+
+ function callsign_qth($callsign) {
+ if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
+ // 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);
+ }
+
+ $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'));
+ echo $callbook['city'];
+
+ } else {
+ // Lookup using Callbytxt
+ $this->load->library('callbytxt');
+
+ $callbook = $this->callbytxt->callsign($qra);
+
+ echo $callbook['city'];
+ }
+ }
+
+ function callsign_iota($callsign) {
+ if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
+ // 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);
+ }
+
+ $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'));
+ echo $callbook['iota'];
+
+ }
+ }
+
+ function callsign_name($callsign) {
+ $this->load->model('user_model');
+ if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
+
+ $this->load->model('logbook_model');
+
+ if($this->logbook_model->call_name($callsign) != null) {
+ echo $this->logbook_model->call_name($callsign);
+ } else {
+ if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) {
+ // 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);
+ }
+
+ $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'));
+ echo $callbook['name'];
+ } else {
+ // Lookup using Callbytxt
+ $this->load->library('callbytxt');
+
+ $callbook = $this->callbytxt->callsign($qra);
+
+ echo $callbook['name'];
+ }
+ }
+ }
+
+ function partial($id) {
+ $this->load->model('user_model');
+ if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
+
+ $this->db->like('COL_CALL', $id);
+ $this->db->limit(5);
+ $query = $this->db->get($this->config->item('table_name'));
+
+ if ($query->num_rows() > 0)
+ {
+ echo "
| Date | "; + echo "Callsign | "; + echo "RST Sent | "; + echo "RST Recv | "; + echo "Band | "; + echo "Mode | "; + echo "
| ".$row->COL_TIME_ON." | "; + echo "".$row->COL_CALL." | "; + echo "".$row->COL_RST_SENT." | "; + echo "".$row->COL_RST_RCVD." | "; + echo "".$row->COL_BAND." | "; + echo "".$row->COL_MODE." | "; + echo "
| Date | "; + echo "Callsign | "; + echo "RST Sent | "; + echo "RST Recv | "; + echo "Band | "; + echo "Mode | "; + echo ""; + echo " | ||
| ".$row->COL_TIME_ON." | "; + echo "".$row->COL_CALL." | "; + echo "".$row->COL_RST_SENT." | "; + echo "".$row->COL_RST_RCVD." | "; + + if($row->COL_SAT_NAME != null) { + echo "".$row->COL_SAT_NAME." | "; + } else { + echo "".$row->COL_BAND." | "; + } + echo "".$row->COL_MODE." | "; + if($this->user_model->authorize(2)) { + echo "COL_PRIMARY_KEY."\" >![]() | ";
+ } else {
+ echo ""; + } + echo " |