diff --git a/application/controllers/Distances.php b/application/controllers/Distances.php index b10e0ce5..8c1865f2 100644 --- a/application/controllers/Distances.php +++ b/application/controllers/Distances.php @@ -16,18 +16,9 @@ class Distances extends CI_Controller { // Render Page $data['page_title'] = "Distances Worked"; - function js_str($s) - { - return '"' . addcslashes($s, "\0..\37\"\\") . '"'; - } - - function js_array($array) - { - $temp = array_map('js_str', $array); - return '[' . implode(',', $temp) . ']'; - } - - $data['bands_available'] = js_array($this->config->item('bands_available')); + $this->load->model('Distances_model'); + $data['bands_available'] = $this->Distances_model->get_worked_bands(); + $data['sats_available'] = $this->Distances_model->get_worked_sats(); $this->load->view('interface_assets/header', $data); $this->load->view('distances/index'); @@ -53,5 +44,4 @@ class Distances extends CI_Controller { return json_encode($data); } - } \ No newline at end of file diff --git a/application/models/Distances_model.php b/application/models/Distances_model.php index 05db12db..575e8399 100644 --- a/application/models/Distances_model.php +++ b/application/models/Distances_model.php @@ -9,6 +9,69 @@ class Distances_model extends CI_Model parent::__construct(); } + public $bandslots = array("160m"=>0, + "80m"=>0, + "60m"=>0, + "40m"=>0, + "30m"=>0, + "20m"=>0, + "17m"=>0, + "15m"=>0, + "12m"=>0, + "10m"=>0, + "6m" =>0, + "4m" =>0, + "2m" =>0, + "70cm"=>0, + "23cm"=>0, + "13cm"=>0, + "9cm"=>0, + "6cm"=>0, + "3cm"=>0, + "1.25cm"=>0); + + function get_worked_sats() { + $CI =& get_instance(); + $CI->load->model('Stations'); + $station_id = $CI->Stations->find_active(); + + // get all worked sats from database + $sql = "SELECT distinct col_sat_name FROM ".$this->config->item('table_name')." WHERE station_id = ".$station_id . " and coalesce(col_sat_name, '') <> ''"; + + $data = $this->db->query($sql); + + $worked_sats = array(); + foreach($data->result() as $row){ + array_push($worked_sats, $row->col_sat_name); + } + + return $worked_sats; + } + + function get_worked_bands() { + $CI =& get_instance(); + $CI->load->model('Stations'); + $station_id = $CI->Stations->find_active(); + + // get all worked slots from database + $sql = "SELECT distinct LOWER(COL_BAND) as COL_BAND FROM ".$this->config->item('table_name')." WHERE station_id = ".$station_id; + + $data = $this->db->query($sql); + $worked_slots = array(); + foreach($data->result() as $row){ + array_push($worked_slots, $row->COL_BAND); + } + + // bring worked-slots in order of defined $bandslots + $results = array(); + foreach(array_keys($this->bandslots) as $slot) { + if(in_array($slot, $worked_slots)) { + array_push($results, $slot); + } + } + return $results; + } + function get_distances($postdata, $measurement_base) { $CI =& get_instance(); @@ -23,6 +86,9 @@ class Distances_model extends CI_Model if ($postdata['band'] == 'sat') { $this->db->where('col_prop_mode', $postdata['band']); + if ($postdata['sat'] != 'All') { + $this->db->where('col_sat_name', $postdata['sat']); + } } else { $this->db->where('col_band', $postdata['band']); diff --git a/application/views/distances/index.php b/application/views/distances/index.php index 930ec2ca..ddfc40ea 100644 --- a/application/views/distances/index.php +++ b/application/views/distances/index.php @@ -6,9 +6,19 @@