[Distances Worked] You can now choose satellite. Also cleaned up some code.

pull/862/head
Andreas 2021-01-30 23:25:13 +01:00
rodzic 59616f1f5c
commit 28d30de120
4 zmienionych plików z 88 dodań i 28 usunięć

Wyświetl plik

@ -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);
}
}

Wyświetl plik

@ -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']);

Wyświetl plik

@ -6,9 +6,19 @@
<div id="distances_div">
<form class="form-inline">
<label class="my-1 mr-2" for="gridsquare_bands">Band Selection</label>
<label class="my-1 mr-2" for="distplot_bands">Band Selection</label>
<select class="custom-select my-1 mr-sm-2" id="distplot_bands">
<option value="sat">SAT</option>
<?php foreach($bands_available as $band) {
echo '<option value="' . $band . '"' . '>' . $band . '</option>'."\n";
} ?>
</select>
<label class="my-1 mr-2" for="distplot_sats">Satellite</label>
<select class="custom-select my-1 mr-sm-2" id="distplot_sats">
<option value="All">All</option>
<?php foreach($sats_available as $sat) {
echo '<option value="' . $sat . '"' . '>' . $sat . '</option>'."\n";
} ?>
</select>
<button id="plot" type="button" name="plot" class="btn btn-primary" onclick="distPlot(this.form)">Plot</button>
</form>

Wyświetl plik

@ -1379,19 +1379,12 @@ $(document).ready(function(){
<script src="<?php echo base_url(); ?>assets/js/highstock/export-data.js"></script>
<script>
var bands_available = <?php echo $bands_available; ?>;
$.each(bands_available, function(key, value) {
$('#distplot_bands')
.append($("<option></option>")
.attr("value",value)
.text(value));
});
var num = "<?php echo $this->uri->segment(3);?>";
$("#distplot_bands option").each(function(){
if($(this).val()==num){ // EDITED THIS LINE
$(this).attr("selected","selected");
$('#distplot_bands').change(function(){
var band = $("#distplot_bands option:selected").text();
if (band != "SAT") {
$("#distplot_sats").prop('disabled', true);
} else {
$("#distplot_sats").prop('disabled', false);
}
});
@ -1401,7 +1394,8 @@ $(document).ready(function(){
$.ajax({
url: baseURL+'index.php/distances/get_distances',
type: 'post',
data: {'band': form.distplot_bands.value},
data: {'band': form.distplot_bands.value,
'sat': form.distplot_sats.value},
success: function(tmp) {
if (tmp.ok == 'OK') {
if (!($('#information').length > 0))