From e80c9b8ef858a783413f908d38d3232bdcf3dcdf Mon Sep 17 00:00:00 2001 From: Andreas Date: Sun, 4 Oct 2020 21:41:01 +0200 Subject: [PATCH 1/4] Added mode, view and controller for accumulated stats. --- application/controllers/Accumulated.php | 56 +++++++++++ application/models/Accumulate_model.php | 93 +++++++++++++++++++ application/views/accumulate/index.php | 59 ++++++++++++ application/views/interface_assets/header.php | 2 + 4 files changed, 210 insertions(+) create mode 100644 application/controllers/Accumulated.php create mode 100644 application/models/Accumulate_model.php create mode 100644 application/views/accumulate/index.php diff --git a/application/controllers/Accumulated.php b/application/controllers/Accumulated.php new file mode 100644 index 00000000..a943c06c --- /dev/null +++ b/application/controllers/Accumulated.php @@ -0,0 +1,56 @@ +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() + { + // Render Page + $data['page_title'] = "Accumulated statistics"; + + $this->load->model('Accumulate_model'); + + if ($this->input->post('band') != NULL) { // Band is not set when page first loads. + $band = $this->input->post('band'); + } + else { + $band = 'All'; + } + + $data['accumulated_dxcc_array'] = $this->Accumulate_model->get_accumulated_dxcc($band); + $data['worked_bands'] = $this->Accumulate_model->get_worked_bands(); + $data['bandselect'] = $band; + + $this->load->view('interface_assets/header', $data); + $this->load->view('accumulate/index'); + $this->load->view('interface_assets/footer'); + } + + public function details() { + $this->load->model('logbook_model'); + + $adif = str_replace('"', "", $this->input->post("Adif")); + $country = $this->logbook_model->get_entity($adif); + $band = str_replace('"', "", $this->input->post("Band")); + $data['results'] = $this->logbook_model->timeline_qso_details($adif, $band); + + // Render Page + $data['page_title'] = "Log View - DXCC"; + $data['filter'] = "country ". $country['name']; + + if ($band != "All") { + $data['filter'] .= " and " . $band; + } + + $this->load->view('timeline/details', $data); + } + +} \ No newline at end of file diff --git a/application/models/Accumulate_model.php b/application/models/Accumulate_model.php new file mode 100644 index 00000000..9eaa2416 --- /dev/null +++ b/application/models/Accumulate_model.php @@ -0,0 +1,93 @@ +load->model('Stations'); + $station_id = $CI->Stations->find_active(); + + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_dxcc) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .=") total from " . $this->config->item('table_name') . " as a + where a.station_id = ". $station_id; + + $sql .= " group by year(a.col_time_on) + order by year(a.col_time_on)"; + + $query = $this->db->query($sql); + + return $query->result(); + } + + function get_worked_bands() { + $CI =& get_instance(); + $CI->load->model('Stations'); + $station_id = $CI->Stations->find_active(); + + $data = $this->db->query( + "SELECT distinct LOWER(`COL_BAND`) as `COL_BAND` FROM `" . $this->config->item('table_name') . "` WHERE station_id = " . $station_id . " AND COL_PROP_MODE != \"SAT\"" + ); + $worked_slots = array(); + foreach ($data->result() as $row) { + array_push($worked_slots, $row->COL_BAND); + } + + $SAT_data = $this->db->query( + "SELECT distinct LOWER(`COL_PROP_MODE`) as `COL_PROP_MODE` FROM `" . $this->config->item('table_name') . "` WHERE station_id = " . $station_id . " AND COL_PROP_MODE = \"SAT\"" + ); + + foreach ($SAT_data->result() as $row) { + array_push($worked_slots, strtoupper($row->COL_PROP_MODE)); + } + + // 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; + } + + 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, + "SAT" => 0, + ); +} \ No newline at end of file diff --git a/application/views/accumulate/index.php b/application/views/accumulate/index.php new file mode 100644 index 00000000..afc96360 --- /dev/null +++ b/application/views/accumulate/index.php @@ -0,0 +1,59 @@ +
+

+ +
+
+ +
+ +
+ +
+
+ + +
+ +
+ +
+
+ +
+
+ + + + + # + Year + Accumulated # of DXCC\'s worked + + + '; + + foreach ($accumulated_dxcc_array as $line) { + echo ' + ' . $i++ . ' + ' . $line->year . ' + ' . $line->total . ' + '; + } + echo '
'; + } + else { + echo ''; + } + ?> + + diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index f284f92f..6e3c2653 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -86,6 +86,8 @@ Days with QSOs DXCC Timeline + + Accumulated statistics From 20dc1caa27bfbc4f5fd1eef9e7f61805b220ded4 Mon Sep 17 00:00:00 2001 From: Andreas Date: Tue, 6 Oct 2020 21:12:14 +0200 Subject: [PATCH 2/4] Implemented dynamic loading of chart and table. Band and award is now selectable. --- application/controllers/Accumulated.php | 37 ++--- application/models/Accumulate_model.php | 127 +++++++++++++++++- application/views/accumulate/index.php | 81 +++++------ application/views/interface_assets/footer.php | 106 +++++++++++++++ 4 files changed, 286 insertions(+), 65 deletions(-) diff --git a/application/controllers/Accumulated.php b/application/controllers/Accumulated.php index a943c06c..e8bcfe48 100644 --- a/application/controllers/Accumulated.php +++ b/application/controllers/Accumulated.php @@ -18,39 +18,26 @@ class Accumulated extends CI_Controller { $this->load->model('Accumulate_model'); - if ($this->input->post('band') != NULL) { // Band is not set when page first loads. - $band = $this->input->post('band'); - } - else { - $band = 'All'; - } - - $data['accumulated_dxcc_array'] = $this->Accumulate_model->get_accumulated_dxcc($band); $data['worked_bands'] = $this->Accumulate_model->get_worked_bands(); - $data['bandselect'] = $band; $this->load->view('interface_assets/header', $data); $this->load->view('accumulate/index'); $this->load->view('interface_assets/footer'); } - public function details() { - $this->load->model('logbook_model'); + /* + * Used for ajax-call in javascript to fetch the data and insert into table and chart + */ + public function get_accumulated_data(){ + //load model + $this->load->model('accumulate_model'); + $band = $this->input->post('Band'); + $award = $this->input->post('Award'); - $adif = str_replace('"', "", $this->input->post("Adif")); - $country = $this->logbook_model->get_entity($adif); - $band = str_replace('"', "", $this->input->post("Band")); - $data['results'] = $this->logbook_model->timeline_qso_details($adif, $band); - - // Render Page - $data['page_title'] = "Log View - DXCC"; - $data['filter'] = "country ". $country['name']; - - if ($band != "All") { - $data['filter'] .= " and " . $band; - } - - $this->load->view('timeline/details', $data); + // get data + $data = $this->accumulate_model->get_accumulated_data($band, $award); + header('Content-Type: application/json'); + echo json_encode($data); } } \ No newline at end of file diff --git a/application/models/Accumulate_model.php b/application/models/Accumulate_model.php index 9eaa2416..709b8da1 100644 --- a/application/models/Accumulate_model.php +++ b/application/models/Accumulate_model.php @@ -9,11 +9,22 @@ class Accumulate_model extends CI_Model parent::__construct(); } - function get_accumulated_dxcc($band) { + function get_accumulated_data($band, $award) { $CI =& get_instance(); $CI->load->model('Stations'); $station_id = $CI->Stations->find_active(); + switch ($award) { + case 'dxcc': $result = $this->get_accumulated_dxcc($band, $station_id); break; + case 'was': $result = $this->get_accumulated_was($band, $station_id); break; + case 'iota': $result = $this->get_accumulated_iota($band, $station_id); break; + case 'waz': $result = $this->get_accumulated_waz($band, $station_id); break; + } + + return $result; + } + + function get_accumulated_dxcc($band, $station_id) { $sql = "SELECT year(col_time_on) as year, (select count(distinct b.col_dxcc) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; @@ -29,6 +40,120 @@ class Accumulate_model extends CI_Model $sql .=") total from " . $this->config->item('table_name') . " as a where a.station_id = ". $station_id; + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .= " group by year(a.col_time_on) + order by year(a.col_time_on)"; + + $query = $this->db->query($sql); + + return $query->result(); + } + + function get_accumulated_was($band, $station_id) { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_state) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .= " and COL_DXCC in ('291', '6', '110')"; + $sql .= " and COL_STATE in ('AK','AL','AR','AZ','CA','CO','CT','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY')"; + + $sql .=") total from " . $this->config->item('table_name') . " as a + where a.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .= " and COL_DXCC in ('291', '6', '110')"; + $sql .= " and COL_STATE in ('AK','AL','AR','AZ','CA','CO','CT','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY')"; + + $sql .= " group by year(a.col_time_on) + order by year(a.col_time_on)"; + + $query = $this->db->query($sql); + + return $query->result(); + } + + function get_accumulated_iota($band, $station_id) { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_iota) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .=") total from " . $this->config->item('table_name') . " as a + where a.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .= " group by year(a.col_time_on) + order by year(a.col_time_on)"; + + $query = $this->db->query($sql); + + return $query->result(); + } + + function get_accumulated_waz($band, $station_id) { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_cqz) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + + $sql .=") total from " . $this->config->item('table_name') . " as a + where a.station_id = ". $station_id; + + if ($band != 'All') { + if ($band == 'SAT') { + $sql .= " and col_prop_mode ='" . $band . "'"; + } else { + $sql .= " and col_prop_mode !='SAT'"; + $sql .= " and col_band ='" . $band . "'"; + } + } + $sql .= " group by year(a.col_time_on) order by year(a.col_time_on)"; diff --git a/application/views/accumulate/index.php b/application/views/accumulate/index.php index afc96360..1a2f7089 100644 --- a/application/views/accumulate/index.php +++ b/application/views/accumulate/index.php @@ -1,59 +1,62 @@

-
-
+ +
- + input->post('band') == $band) echo ' selected'; - echo '>' . $band . ''."\n"; + echo ''."\n"; } ?>
- - -
- -
- +
+
+ + +
+
+ + +
+
+ + +
+
+ +
-
+ + +
+
+ +
+
+ +
- - - - # - Year - Accumulated # of DXCC\'s worked - - - '; +
+ +
+
- foreach ($accumulated_dxcc_array as $line) { - echo ' - ' . $i++ . ' - ' . $line->year . ' - ' . $line->total . ' - '; - } - echo '
'; - } - else { - echo ''; - } - ?> diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 0d3e8e32..573f9ce6 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -1790,6 +1790,112 @@ $(document).ready(function(){ +uri->segment(1) == "accumulated") { ?> + + + From dd200871ccf76f3f37b5f95ba47bbbd58e7b9dc3 Mon Sep 17 00:00:00 2001 From: Andreas Date: Thu, 8 Oct 2020 11:45:41 +0200 Subject: [PATCH 3/4] Mode and period has been added. --- application/controllers/Accumulated.php | 8 +- application/models/Accumulate_model.php | 138 +++++++++++++++--- application/views/accumulate/index.php | 87 +++++++---- application/views/interface_assets/footer.php | 14 +- 4 files changed, 196 insertions(+), 51 deletions(-) diff --git a/application/controllers/Accumulated.php b/application/controllers/Accumulated.php index e8bcfe48..a3bc64dc 100644 --- a/application/controllers/Accumulated.php +++ b/application/controllers/Accumulated.php @@ -20,6 +20,10 @@ class Accumulated extends CI_Controller { $data['worked_bands'] = $this->Accumulate_model->get_worked_bands(); + $this->load->model('modes'); + + $data['modes'] = $this->modes->active(); + $this->load->view('interface_assets/header', $data); $this->load->view('accumulate/index'); $this->load->view('interface_assets/footer'); @@ -33,9 +37,11 @@ class Accumulated extends CI_Controller { $this->load->model('accumulate_model'); $band = $this->input->post('Band'); $award = $this->input->post('Award'); + $mode = $this->input->post('Mode'); + $period = $this->input->post('Period'); // get data - $data = $this->accumulate_model->get_accumulated_data($band, $award); + $data = $this->accumulate_model->get_accumulated_data($band, $award, $mode, $period); header('Content-Type: application/json'); echo json_encode($data); } diff --git a/application/models/Accumulate_model.php b/application/models/Accumulate_model.php index 709b8da1..72c1b132 100644 --- a/application/models/Accumulate_model.php +++ b/application/models/Accumulate_model.php @@ -9,24 +9,34 @@ class Accumulate_model extends CI_Model parent::__construct(); } - function get_accumulated_data($band, $award) { + function get_accumulated_data($band, $award, $mode, $period) { $CI =& get_instance(); $CI->load->model('Stations'); $station_id = $CI->Stations->find_active(); switch ($award) { - case 'dxcc': $result = $this->get_accumulated_dxcc($band, $station_id); break; - case 'was': $result = $this->get_accumulated_was($band, $station_id); break; - case 'iota': $result = $this->get_accumulated_iota($band, $station_id); break; - case 'waz': $result = $this->get_accumulated_waz($band, $station_id); break; + case 'dxcc': $result = $this->get_accumulated_dxcc($band, $mode, $period, $station_id); break; + case 'was': $result = $this->get_accumulated_was($band, $mode, $period, $station_id); break; + case 'iota': $result = $this->get_accumulated_iota($band, $mode, $period, $station_id); break; + case 'waz': $result = $this->get_accumulated_waz($band, $mode, $period, $station_id); break; } return $result; } - function get_accumulated_dxcc($band, $station_id) { - $sql = "SELECT year(col_time_on) as year, - (select count(distinct b.col_dxcc) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + function get_accumulated_dxcc($band, $mode, $period, $station_id) { + if ($period == "year") { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_dxcc) from " . + $this->config->item('table_name') . + " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + } + else if ($period == "month") { + $sql = "SELECT date_format(col_time_on, '%Y%m') as year, + (select count(distinct b.col_dxcc) from " . + $this->config->item('table_name') . + " as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id; + } if ($band != 'All') { if ($band == 'SAT') { @@ -37,6 +47,10 @@ class Accumulate_model extends CI_Model } } + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + $sql .=") total from " . $this->config->item('table_name') . " as a where a.station_id = ". $station_id; @@ -49,17 +63,37 @@ class Accumulate_model extends CI_Model } } - $sql .= " group by year(a.col_time_on) + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + + if ($period == "year") { + $sql .= " group by year(a.col_time_on) order by year(a.col_time_on)"; + } + else if ($period == "month") { + $sql .= " group by date_format(a.col_time_on, '%Y%m') + order by date_format(a.col_time_on, '%Y%m')"; + } $query = $this->db->query($sql); return $query->result(); } - function get_accumulated_was($band, $station_id) { - $sql = "SELECT year(col_time_on) as year, - (select count(distinct b.col_state) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + function get_accumulated_was($band, $mode, $period, $station_id) { + if ($period == "year") { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_state) from " . + $this->config->item('table_name') . + " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + } + else if ($period == "month") { + $sql = "SELECT date_format(col_time_on, '%Y%m') as year, + (select count(distinct b.col_state) from " . + $this->config->item('table_name') . + " as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id; + } if ($band != 'All') { if ($band == 'SAT') { @@ -70,6 +104,10 @@ class Accumulate_model extends CI_Model } } + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + $sql .= " and COL_DXCC in ('291', '6', '110')"; $sql .= " and COL_STATE in ('AK','AL','AR','AZ','CA','CO','CT','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY')"; @@ -85,20 +123,40 @@ class Accumulate_model extends CI_Model } } + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + $sql .= " and COL_DXCC in ('291', '6', '110')"; $sql .= " and COL_STATE in ('AK','AL','AR','AZ','CA','CO','CT','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY')"; - $sql .= " group by year(a.col_time_on) + if ($period == "year") { + $sql .= " group by year(a.col_time_on) order by year(a.col_time_on)"; + } + else if ($period == "month") { + $sql .= " group by date_format(a.col_time_on, '%Y%m') + order by date_format(a.col_time_on, '%Y%m')"; + } $query = $this->db->query($sql); return $query->result(); } - function get_accumulated_iota($band, $station_id) { - $sql = "SELECT year(col_time_on) as year, - (select count(distinct b.col_iota) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + function get_accumulated_iota($band, $mode, $period, $station_id) { + if ($period == "year") { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_iota) from " . + $this->config->item('table_name') . + " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + } + else if ($period == "month") { + $sql = "SELECT date_format(col_time_on, '%Y%m') as year, + (select count(distinct b.col_iota) from " . + $this->config->item('table_name') . + " as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id; + } if ($band != 'All') { if ($band == 'SAT') { @@ -109,6 +167,10 @@ class Accumulate_model extends CI_Model } } + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + $sql .=") total from " . $this->config->item('table_name') . " as a where a.station_id = ". $station_id; @@ -121,17 +183,37 @@ class Accumulate_model extends CI_Model } } - $sql .= " group by year(a.col_time_on) + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + + if ($period == "year") { + $sql .= " group by year(a.col_time_on) order by year(a.col_time_on)"; + } + else if ($period == "month") { + $sql .= " group by date_format(a.col_time_on, '%Y%m') + order by date_format(a.col_time_on, '%Y%m')"; + } $query = $this->db->query($sql); return $query->result(); } - function get_accumulated_waz($band, $station_id) { - $sql = "SELECT year(col_time_on) as year, - (select count(distinct b.col_cqz) from " . $this->config->item('table_name') . " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + function get_accumulated_waz($band, $mode, $period, $station_id) { + if ($period == "year") { + $sql = "SELECT year(col_time_on) as year, + (select count(distinct b.col_cqz) from " . + $this->config->item('table_name') . + " as b where year(col_time_on) <= year and b.station_id = ". $station_id; + } + else if ($period == "month") { + $sql = "SELECT date_format(col_time_on, '%Y%m') as year, + (select count(distinct b.col_cqz) from " . + $this->config->item('table_name') . + " as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id; + } if ($band != 'All') { if ($band == 'SAT') { @@ -142,6 +224,10 @@ class Accumulate_model extends CI_Model } } + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + $sql .=") total from " . $this->config->item('table_name') . " as a where a.station_id = ". $station_id; @@ -154,8 +240,18 @@ class Accumulate_model extends CI_Model } } - $sql .= " group by year(a.col_time_on) + if ($mode != 'All') { + $sql .= " and col_mode ='" . $mode . "'"; + } + + if ($period == "year") { + $sql .= " group by year(a.col_time_on) order by year(a.col_time_on)"; + } + else if ($period == "month") { + $sql .= " group by date_format(a.col_time_on, '%Y%m') + order by date_format(a.col_time_on, '%Y%m')"; + } $query = $this->db->query($sql); diff --git a/application/views/accumulate/index.php b/application/views/accumulate/index.php index 1a2f7089..dc6ffffd 100644 --- a/application/views/accumulate/index.php +++ b/application/views/accumulate/index.php @@ -6,7 +6,7 @@
-
+
+ + +
+ +
-
-
- - -
-
- - -
-
- - -
-
- - + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 573f9ce6..9776d79e 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -1803,10 +1803,12 @@ $(document).ready(function(){ var baseURL= ""; var award = form.awardradio.value; + var mode = form.mode.value; + var period = form.periodradio.value; $.ajax({ url: baseURL+'index.php/accumulated/get_accumulated_data', type: 'post', - data: {'Band': form.band.value, 'Award': award}, + data: {'Band': form.band.value, 'Award': award, 'Mode': mode, 'Period': period}, success: function(data) { // used for switching award text in the table and the chart switch(award) { @@ -1816,7 +1818,11 @@ $(document).ready(function(){ case 'waz': var awardtext = "CQ zones"; break; } - // removing the old chart so that it will not interefere when loading chart again + var periodtext = 'Year'; + if (period == 'month') { + periodtext += ' + month'; + } + // removing the old chart so that it will not interfere when loading chart again $("#accumulateContainer").empty(); $("#accumulateContainer").append("
"); @@ -1824,7 +1830,7 @@ $(document).ready(function(){ $("#accumulateTable").append('' + '' + '' + - '' + + '' + ''+ '' + '' + @@ -1863,7 +1869,7 @@ $(document).ready(function(){ data: { labels: labels, datasets: [{ - label: 'Accumulated number of ' + awardtext + ' worked each year', + label: 'Accumulated number of ' + awardtext + ' worked each ' + period, data: dataDxcc, backgroundColor: 'rgba(54, 162, 235, 0.2)', borderColor: 'rgba(54, 162, 235, 1)', From f3f09503fcfd1cb9a947218a1f6263f761e515f5 Mon Sep 17 00:00:00 2001 From: Andreas Date: Thu, 8 Oct 2020 12:14:15 +0200 Subject: [PATCH 4/4] Added loading indicator on show button. Datatable added to the table, and included Datatable-files everywhere, since Datatable will be implemented several places. --- application/views/accumulate/index.php | 2 +- application/views/interface_assets/footer.php | 17 ++++++++++++++--- application/views/interface_assets/header.php | 6 ++---- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/application/views/accumulate/index.php b/application/views/accumulate/index.php index dc6ffffd..4b5b4524 100644 --- a/application/views/accumulate/index.php +++ b/application/views/accumulate/index.php @@ -83,7 +83,7 @@
- +
diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 9776d79e..2d0d1d84 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -31,9 +31,7 @@ -uri->segment(1) == "awards") { ?> - uri->segment(1) == "search" && $this->uri->segment(2) == "filter") { ?> @@ -1794,6 +1792,9 @@ $(document).ready(function(){
#Year' + periodtext + 'Accumulated # of ' + awardtext + ' worked