diff --git a/application/controllers/Cabrillo.php b/application/controllers/Cabrillo.php index 5cf61dde..eb921baf 100644 --- a/application/controllers/Cabrillo.php +++ b/application/controllers/Cabrillo.php @@ -9,21 +9,24 @@ if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Cabrillo extends CI_Controller { - function __construct() - { + function __construct() { parent::__construct(); $this->load->model('user_model'); if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } } - public function index() - { + public function index() { $data['page_title'] = "Export Cabrillo"; $this->load->model('Contesting_model'); + $this->load->model('stations'); - $data['contestyears'] = $this->Contesting_model->get_logged_years(); + $data['station_profile'] = $this->stations->all_of_user(); + $active_station_id = $this->stations->find_active(); + $station_profile = $this->stations->profile($active_station_id); + + $data['active_station_info'] = $station_profile->row(); $footerData = []; $footerData['scripts'] = [ @@ -37,7 +40,20 @@ class Cabrillo extends CI_Controller { public function getContests() { $this->load->model('Contesting_model'); - $result = $this->Contesting_model->get_logged_contests($this->input->post('year')); + + $station_id = $this->security->xss_clean($this->input->post('station_id')); + $year = $this->security->xss_clean($this->input->post('year')); + $result = $this->Contesting_model->get_logged_contests($station_id, $year); + + header('Content-Type: application/json'); + echo json_encode($result); + } + + public function getYears() { + $this->load->model('Contesting_model'); + $station_id = $this->security->xss_clean($this->input->post('station_id')); + + $result = $this->Contesting_model->get_logged_years($station_id); header('Content-Type: application/json'); echo json_encode($result); @@ -45,7 +61,11 @@ class Cabrillo extends CI_Controller { public function getContestDates() { $this->load->model('Contesting_model'); - $result = $this->Contesting_model->get_contest_dates($this->input->post('year'), $this->input->post('contestid')); + $station_id = $this->security->xss_clean($this->input->post('station_id')); + $year = $this->security->xss_clean($this->input->post('year')); + $contestid = $this->security->xss_clean($this->input->post('contestid')); + + $result = $this->Contesting_model->get_contest_dates($station_id, $year, $contestid); header('Content-Type: application/json'); echo json_encode($result); @@ -56,6 +76,11 @@ class Cabrillo extends CI_Controller { ini_set('memory_limit', '-1'); $this->load->model('Contesting_model'); + $this->load->model('stations'); + + + + $station_id = $this->security->xss_clean($this->input->post('station_id')); $contest_id = $this->security->xss_clean($this->input->post('contestid')); $fromto = $this->security->xss_clean($this->input->post('contestdates')); @@ -64,10 +89,14 @@ class Cabrillo extends CI_Controller { $from = $fromto[0]; $to = $fromto[1]; - $data['qsos'] = $this->Contesting_model->export_custom($from, $to, $contest_id); + $station = $this->stations->profile($station_id); + + $station = $station->row(); + + $data['qsos'] = $this->Contesting_model->export_custom($from, $to, $contest_id, $station_id); $data['contest_id'] = $contest_id; - $data['callsign'] = ''; + $data['callsign'] = $station->station_callsign; $data['claimed_score'] = ''; $data['operators'] = ''; $data['club'] = ''; @@ -76,6 +105,7 @@ class Cabrillo extends CI_Controller { $data['address2'] = ''; $data['address3'] = ''; $data['soapbox'] = ''; + $data['gridlocator'] = $station->station_gridsquare; $this->load->view('cabrillo/export', $data); } diff --git a/application/libraries/Cabrilloformat.php b/application/libraries/Cabrilloformat.php index 4f849c74..b3a060bc 100644 --- a/application/libraries/Cabrilloformat.php +++ b/application/libraries/Cabrilloformat.php @@ -2,7 +2,7 @@ class Cabrilloformat { - public function header($contest_id, $callsign, $claimed_score, $operators, $club, $name, $address1, $address2, $address3, $soapbox) { + public function header($contest_id, $callsign, $claimed_score, $operators, $club, $name, $address1, $address2, $address3, $soapbox, $gridlocator) { $cab_header = ""; $cab_header .= "START-OF-LOG: 3.0"."\r\n"; $cab_header .= "CONTEST: ".$contest_id."\r\n"; @@ -24,6 +24,10 @@ class Cabrilloformat { $cab_header .= "ADDRESS: ".$address3."\r\n"; $cab_header .= "SOAPBOX: ".$soapbox."\r\n"; + if($gridlocator != null) { + $cab_header .= "GRID-LOCATOR: ".$gridlocator."\r\n"; + } + return $cab_header; } diff --git a/application/models/Contesting_model.php b/application/models/Contesting_model.php index 7e6dc3f2..e139d919 100644 --- a/application/models/Contesting_model.php +++ b/application/models/Contesting_model.php @@ -161,11 +161,7 @@ class Contesting_model extends CI_Model { return $query; } - function export_custom($from, $to, $contest_id) { - $CI =& get_instance(); - $CI->load->model('Stations'); - $station_id = $CI->Stations->find_active(); - + function export_custom($from, $to, $contest_id, $station_id) { $this->db->select(''.$this->config->item('table_name').'.*, station_profile.*'); $this->db->from($this->config->item('table_name')); $this->db->where($this->config->item('table_name').'.station_id', $station_id); @@ -208,10 +204,7 @@ class Contesting_model extends CI_Model { return ($data->result()); } - function get_logged_years() { - $CI =& get_instance(); - $CI->load->model('Stations'); - $station_id = $CI->Stations->find_active(); + function get_logged_years($station_id) { $sql = "select distinct year(col_time_on) year from " . $this->config->item('table_name') . " @@ -222,16 +215,10 @@ class Contesting_model extends CI_Model { $data = $this->db->query($sql); - return ($data->result()); + return $data->result(); } - function get_logged_contests($year) { - $year = $this->security->xss_clean($year); - - $CI =& get_instance(); - $CI->load->model('Stations'); - $station_id = $CI->Stations->find_active(); - + function get_logged_contests($station_id, $year) { $sql = "select distinct col_contest_id from " . $this->config->item('table_name') . " where coalesce(COL_CONTEST_ID, '') <> '' @@ -245,14 +232,7 @@ class Contesting_model extends CI_Model { return $data->result(); } - function get_contest_dates($year, $contestid) { - $year = $this->security->xss_clean($year); - $contestid = $this->security->xss_clean($contestid); - - $CI =& get_instance(); - $CI->load->model('Stations'); - $station_id = $CI->Stations->find_active(); - + function get_contest_dates($station_id, $year, $contestid) { $sql = "select min(date(col_time_on)) mindate, max(date(col_time_on)) maxdate from " . $this->config->item('table_name') . " where coalesce(COL_CONTEST_ID, '') <> '' diff --git a/application/views/cabrillo/export.php b/application/views/cabrillo/export.php index f793d43d..d4e5e6f0 100644 --- a/application/views/cabrillo/export.php +++ b/application/views/cabrillo/export.php @@ -5,7 +5,7 @@ header('Content-Disposition: attachment; filename="'.$callsign.'-'.$contest_id.' $CI =& get_instance(); $CI->load->library('Cabrilloformat'); -echo $CI->cabrilloformat->header($contest_id, $callsign, $claimed_score, $operators, $club, $name, $address1, $address2, $address3, $soapbox); +echo $CI->cabrilloformat->header($contest_id, $callsign, $claimed_score, $operators, $club, $name, $address1, $address2, $address3, $soapbox, $gridlocator); foreach ($qsos->result() as $row) { echo $CI->cabrilloformat->qso($row); } diff --git a/application/views/cabrillo/index.php b/application/views/cabrillo/index.php index 2c4b4a1f..a002cce3 100644 --- a/application/views/cabrillo/index.php +++ b/application/views/cabrillo/index.php @@ -12,17 +12,22 @@ '; - if ($contestyears) { ?> + + + if ($station_profile) { ?>