Cloudlog/application/controllers/Dashboard.php
Peter Goodhall 91548afea7 [Dashboard] Removed extra login session check and migration check as its called by auto load
Removed extra login session check and migration check as its called by auto load this speeds up page load time and reduces SQL queries down to  44 for the page which is still too many
2022-02-16 22:27:44 +00:00

176 行
5.6 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Dashboard extends CI_Controller {
public function index()
{
// If environment is set to development then show the debug toolbar
if(ENVIRONMENT == 'development') {
$this->output->enable_profiler(TRUE);
}
// Database connections
$this->load->model('logbook_model');
$this->load->model('user_model');
// Check if users logged in
if($this->user_model->validate_session() == 0) {
// user is not logged in
redirect('user/login');
}
// Calculate Lat/Lng from Locator to use on Maps
if($this->session->userdata('user_locator')) {
$this->load->library('qra');
$qra_position = $this->qra->qra2latlong($this->session->userdata('user_locator'));
$data['qra'] = "set";
$data['qra_lat'] = $qra_position[0];
$data['qra_lng'] = $qra_position[1];
} else {
$data['qra'] = "none";
}
$this->load->model('stations');
$data['current_active'] = $this->stations->find_active();
$setup_required = false;
if($setup_required) {
$data['page_title'] = "Cloudlog Setup Checklist";
$this->load->view('interface_assets/header', $data);
$this->load->view('setup/check_list');
$this->load->view('interface_assets/footer');
} else {
//
$this->load->model('cat');
$data['radio_status'] = $this->cat->recent_status();
// 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_countries'] = $this->logbook_model->total_countries();
$data['total_countries_confirmed_paper'] = $this->logbook_model->total_countries_confirmed_paper();
$data['total_countries_confirmed_eqsl'] = $this->logbook_model->total_countries_confirmed_eqsl();
$data['total_countries_confirmed_lotw'] = $this->logbook_model->total_countries_confirmed_lotw();
$data['total_qsl_sent'] = $this->logbook_model->total_qsl_sent();
$data['total_qsl_recv'] = $this->logbook_model->total_qsl_recv();
$data['total_qsl_requested'] = $this->logbook_model->total_qsl_requested();
$data['total_eqsl_sent'] = $this->logbook_model->total_eqsl_sent();
$data['total_eqsl_recv'] = $this->logbook_model->total_eqsl_recv();
$data['total_lotw_sent'] = $this->logbook_model->total_lotw_sent();
$data['total_lotw_recv'] = $this->logbook_model->total_lotw_recv();
$data['last_five_qsos'] = $this->logbook_model->get_last_qsos('18');
$data['page_title'] = "Dashboard";
$this->load->model('dxcc');
$dxcc = $this->dxcc->list_current();
$current = $this->logbook_model->total_countries_current();
$data['total_countries_needed'] = count($dxcc->result()) - $current;
$this->load->view('interface_assets/header', $data);
$this->load->view('dashboard/index');
$this->load->view('interface_assets/footer');
}
}
function map() {
$this->load->model('logbook_model');
$this->load->library('qra');
$qsos = $this->logbook_model->get_last_qsos('18');
echo "{\"markers\": [";
$count = 1;
foreach ($qsos->result() as $row) {
//print_r($row);
if($row->COL_GRIDSQUARE != null) {
$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE);
if($count != 1) {
echo ",";
}
if($row->COL_SAT_NAME != null) {
echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />SAT: ".$row->COL_SAT_NAME."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
} else {
echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
}
$count++;
} else {
$query = $this->db->query('
SELECT *
FROM dxcc_entities
WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) )
ORDER BY LENGTH( prefix ) DESC
LIMIT 1
');
foreach ($query->result() as $dxcc) {
if($count != 1) {
echo ",";
}
echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
$count++;
}
}
}
echo "]";
echo "}";
}
function todays_map() {
$this->load->library('qra');
$this->load->model('logbook_model');
// TODO: Auth
$qsos = $this->logbook_model->get_todays_qsos('');
echo "{\"markers\": [";
foreach ($qsos->result() as $row) {
//print_r($row);
if($row->COL_GRIDSQUARE != null) {
$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE);
echo "{\"point\":new GLatLng(".$stn_loc[0].",".$stn_loc[1]."), \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"},";
} else {
$query = $this->db->query('
SELECT *
FROM dxcc_entities
WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) )
ORDER BY LENGTH( prefix ) DESC
LIMIT 1
');
foreach ($query->result() as $dxcc) {
echo "{\"point\":new GLatLng(".$dxcc->lat.",".$dxcc->long."), \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"},";
}
}
}
echo "]";
echo "}";
}
}