From 4e17281a988ca54d5a7071cdfc500b65b27d99b8 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sun, 18 Sep 2022 16:48:16 +0200 Subject: [PATCH] [Statistics] Changed from Google Charts to Chart.js --- application/controllers/Statistics.php | 105 ++- application/models/Logbook_model.php | 9 +- application/views/interface_assets/footer.php | 6 + application/views/statistics/index.php | 249 +----- assets/js/chart.js | 12 +- .../js/chartjs-plugin-piechart-outlabels.js | 792 ++++++++++++++++++ assets/js/sections/statistics.js | 509 +++++++++++ 7 files changed, 1436 insertions(+), 246 deletions(-) create mode 100644 assets/js/chartjs-plugin-piechart-outlabels.js create mode 100644 assets/js/sections/statistics.js diff --git a/application/controllers/Statistics.php b/application/controllers/Statistics.php index 4fb87fb9..802d1123 100644 --- a/application/controllers/Statistics.php +++ b/application/controllers/Statistics.php @@ -2,7 +2,6 @@ class Statistics extends CI_Controller { - public function index() { $this->load->model('user_model'); @@ -13,30 +12,7 @@ class Statistics extends CI_Controller { } else { redirect('user/login'); } - } - - // Database connections - $this->load->model('logbook_model'); - - // Store info - $data['todays_qsos'] = $this->logbook_model->todays_qsos(); - $data['total_qsos'] = $this->logbook_model->total_qsos(); - $data['month_qsos'] = $this->logbook_model->month_qsos(); - $data['year_qsos'] = $this->logbook_model->year_qsos(); - - $data['total_ssb'] = $this->logbook_model->total_ssb(); - $data['total_cw'] = $this->logbook_model->total_cw(); - $data['total_fm'] = $this->logbook_model->total_fm(); - $data['total_digi'] = $this->logbook_model->total_digi(); - - $data['total_bands'] = $this->logbook_model->total_bands(); - - $data['total_sat'] = $this->logbook_model->total_sat(); - - $data['page_title'] = "Statistics"; - - $data['totals_year'] = $this->logbook_model->totals_year(); - + } // Render User Interface // Set Page Title @@ -91,4 +67,83 @@ class Statistics extends CI_Controller { } } + + public function get_year() { + $this->load->model('logbook_model'); + + // get data + $totals_year = $this->logbook_model->totals_year(); + + $yearstats = array(); + + $i = 0; + if ($totals_year) { + foreach($totals_year->result() as $qso_numbers) { + $yearstats[$i]['year'] = $qso_numbers->year; + $yearstats[$i++]['total'] = $qso_numbers->total; + } + } + + header('Content-Type: application/json'); + echo json_encode($yearstats); + } + + public function get_mode() { + $this->load->model('logbook_model'); + + $modestats = array(); + + $i = 0; + $modestats[$i]['mode'] = 'ssb'; + $modestats[$i++]['total'] = $this->logbook_model->total_ssb(); + $modestats[$i]['mode'] = 'cw'; + $modestats[$i++]['total'] = $this->logbook_model->total_cw(); + $modestats[$i]['mode'] = 'fm'; + $modestats[$i++]['total'] = $this->logbook_model->total_fm(); + $modestats[$i]['mode'] = 'digi'; + $modestats[$i]['total'] = $this->logbook_model->total_digi(); + + header('Content-Type: application/json'); + + echo json_encode($modestats); + } + + public function get_band() { + $this->load->model('logbook_model'); + + $bandstats = array(); + + $total_bands = $this->logbook_model->total_bands(); + + $i = 0; + + if ($total_bands) { + foreach($total_bands->result() as $qso_numbers) { + $bandstats[$i]['band'] = $qso_numbers->band; + $bandstats[$i++]['count'] = $qso_numbers->count; + } + } + + header('Content-Type: application/json'); + echo json_encode($bandstats); + } + + public function get_sat() { + $this->load->model('logbook_model'); + + $satstats = array(); + + $total_sat = $this->logbook_model->total_sat(); + $i = 0; + + if ($total_sat) { + foreach($total_sat->result() as $qso_numbers) { + $satstats[$i]['sat'] = $qso_numbers->COL_SAT_NAME; + $satstats[$i++]['count'] = $qso_numbers->count; + } + } + + header('Content-Type: application/json'); + echo json_encode($satstats); + } } diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 39575ed8..359ec28a 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1422,12 +1422,13 @@ class Logbook_model extends CI_Model { if (!$logbooks_locations_array) { return null; } + $mode[] = 'SSB'; + $mode[] = 'LSB'; + $mode[] = 'USB'; $this->db->select('COUNT( * ) as count', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); - $this->db->where('COL_MODE', 'SSB'); - $this->db->or_where('COL_MODE', 'LSB'); - $this->db->or_where('COL_MODE', 'USB'); + $this->db->where_in('COL_MODE', $mode); $query = $this->db->get($this->config->item('table_name')); @@ -1558,7 +1559,7 @@ class Logbook_model extends CI_Model { return null; } - $this->db->select('DISTINCT (COL_BAND) AS band, count( * ) AS count', FALSE); + $this->db->select('COL_BAND AS band, count( * ) AS count', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('band'); $this->db->order_by('count', 'DESC'); diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 77786526..1d3add1a 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -40,6 +40,12 @@ function load_was_map() { +uri->segment(1) == "statistics") { ?> + + + + + uri->segment(1) == "adif") { ?> diff --git a/application/views/statistics/index.php b/application/views/statistics/index.php index a01c4481..fb3124fd 100644 --- a/application/views/statistics/index.php +++ b/application/views/statistics/index.php @@ -1,204 +1,12 @@ - - - - +
# | +Satellite | +# of QSO's worked | +
# | ' + + 'Year | ' + + '# of QSO\'s worked | ' + + '
# | ' + + 'Mode | ' + + '# of QSO\'s worked | ' + + '
# | ' + + 'Band | ' + + '# of QSO\'s worked | ' + + '