From e1003e07d7ad8d5e86c6010c188c78c787758a8d Mon Sep 17 00:00:00 2001 From: int2001 Date: Wed, 26 Jul 2023 08:22:53 +0000 Subject: [PATCH] Added "All" to Bandchooser at List --- application/models/Dxcluster_model.php | 130 +++++++++++++------------ application/views/bandmap/list.php | 4 + assets/js/sections/bandmap_list.js | 39 +++++--- 3 files changed, 99 insertions(+), 74 deletions(-) diff --git a/application/models/Dxcluster_model.php b/application/models/Dxcluster_model.php index 23108b58..f9a9e00c 100644 --- a/application/models/Dxcluster_model.php +++ b/application/models/Dxcluster_model.php @@ -3,78 +3,82 @@ use Cloudlog\Dxcc\Dxcc; class Dxcluster_model extends CI_Model { - public function dxc_spotlist($band = '20m', $maxage = 60, $de = '') { + public function dxc_spotlist($band = '20m', $maxage = 60, $de = '') { $this->load->helper(array('psr4_autoloader')); - $CI =& get_instance(); - if ( ($this->optionslib->get_option('dxcache_url') != '') ) { - if($CI->session->userdata('user_date_format')) { - $custom_date_format = $CI->session->userdata('user_date_format'); - } else { - $custom_date_format = $CI->config->item('qso_date_format'); - } + $CI =& get_instance(); + if ( ($this->optionslib->get_option('dxcache_url') != '') ) { + if($CI->session->userdata('user_date_format')) { + $custom_date_format = $CI->session->userdata('user_date_format'); + } else { + $custom_date_format = $CI->config->item('qso_date_format'); + } - $dxcache_url = $this->optionslib->get_option('dxcache_url').'/spots/'.$band; - $CI->load->model('logbooks_model'); + if ($band == "All") { + $dxcache_url = $this->optionslib->get_option('dxcache_url').'/spots/'; + } else { + $dxcache_url = $this->optionslib->get_option('dxcache_url').'/spots/'.$band; + } + $CI->load->model('logbooks_model'); $CI->load->model('logbook_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - // CURL Functions - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $dxcache_url); - curl_setopt($ch, CURLOPT_USERAGENT, 'Cloudlog DXLookup'); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $jsonraw = curl_exec($ch); - curl_close($ch); - $json = json_decode($jsonraw); + // CURL Functions + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $dxcache_url); + curl_setopt($ch, CURLOPT_USERAGENT, 'Cloudlog DXLookup'); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $jsonraw = curl_exec($ch); + curl_close($ch); + $json = json_decode($jsonraw); $date = date('Ymd', time()); $dxccObj = new DXCC($date); - // Create JSON object - if (strlen($jsonraw)>20) { - $spotsout=[]; - foreach($json as $singlespot){ - $spotband = $CI->frequency->GetBand($singlespot->frequency*1000); - $singlespot->band=$spotband; - if ($band != $spotband) { continue; } - $datetimecurrent = new DateTime("now", new DateTimeZone('UTC')); // Today's Date/Time - $datetimespot = new DateTime($singlespot->when, new DateTimeZone('UTC')); - $spotage = $datetimecurrent->diff($datetimespot); - $minutes = $spotage->days * 24 * 60; - $minutes += $spotage->h * 60; - $minutes += $spotage->i; - $singlespot->age=$minutes; - $singlespot->when_pretty=date($custom_date_format . " H:i", strtotime($singlespot->when)); + // Create JSON object + if (strlen($jsonraw)>20) { + $spotsout=[]; + foreach($json as $singlespot){ + $spotband = $CI->frequency->GetBand($singlespot->frequency*1000); + $singlespot->band=$spotband; + if (($band != 'All') && ($band != $spotband)) { continue; } + $datetimecurrent = new DateTime("now", new DateTimeZone('UTC')); // Today's Date/Time + $datetimespot = new DateTime($singlespot->when, new DateTimeZone('UTC')); + $spotage = $datetimecurrent->diff($datetimespot); + $minutes = $spotage->days * 24 * 60; + $minutes += $spotage->h * 60; + $minutes += $spotage->i; + $singlespot->age=$minutes; + $singlespot->when_pretty=date($custom_date_format . " H:i", strtotime($singlespot->when)); - if ($minutes<=$maxage) { - if (!(property_exists($singlespot,'dxcc_spotted'))) { // Check if we already have dxcc of spotted - $dxcc=$dxccObj->dxcc_lookup($singlespot->spotted,date('Ymd', time())); - $singlespot->dxcc_spotted=$dxcc; - } - if (!(property_exists($singlespot,'dxcc_spotter'))) { // Check if we already have dxcc of spotter - $dxcc=$dxccObj->dxcc_lookup($singlespot->spotter,date('Ymd', time())); - $singlespot->dxcc_spotter=$dxcc; - } - if ( ($de != '') && ($de != 'Any') && (property_exists($singlespot->dxcc_spotter,'cont')) ){ // If we have a "de continent" and a filter-wish filter on that - if (strtolower($de) == strtolower($singlespot->dxcc_spotter->cont)) { - $singlespot->worked_call = ($this->logbook_model->check_if_callsign_worked_in_logbook($singlespot->spotted, $logbooks_locations_array, $singlespot->band) == 1); - array_push($spotsout,$singlespot); - } - } else { // No de continent? No Filter --> Just push - $singlespot->worked_call = ($this->logbook_model->check_if_callsign_worked_in_logbook($singlespot->spotted, $logbooks_locations_array, $singlespot->band) == 1); - array_push($spotsout,$singlespot); - } - } - } - return ($spotsout); - } else { - return ''; - } - } else { - return ''; - } - } + if ($minutes<=$maxage) { + if (!(property_exists($singlespot,'dxcc_spotted'))) { // Check if we already have dxcc of spotted + $dxcc=$dxccObj->dxcc_lookup($singlespot->spotted,date('Ymd', time())); + $singlespot->dxcc_spotted=$dxcc; + } + if (!(property_exists($singlespot,'dxcc_spotter'))) { // Check if we already have dxcc of spotter + $dxcc=$dxccObj->dxcc_lookup($singlespot->spotter,date('Ymd', time())); + $singlespot->dxcc_spotter=$dxcc; + } + if ( ($de != '') && ($de != 'Any') && (property_exists($singlespot->dxcc_spotter,'cont')) ){ // If we have a "de continent" and a filter-wish filter on that + if (strtolower($de) == strtolower($singlespot->dxcc_spotter->cont)) { + $singlespot->worked_call = ($this->logbook_model->check_if_callsign_worked_in_logbook($singlespot->spotted, $logbooks_locations_array, $singlespot->band) == 1); + array_push($spotsout,$singlespot); + } + } else { // No de continent? No Filter --> Just push + $singlespot->worked_call = ($this->logbook_model->check_if_callsign_worked_in_logbook($singlespot->spotted, $logbooks_locations_array, $singlespot->band) == 1); + array_push($spotsout,$singlespot); + } + } + } + return ($spotsout); + } else { + return ''; + } + } else { + return ''; + } + } public function dxc_qrg_lookup($qrg, $maxage = 120) { $this->load->helper(array('psr4_autoloader')); diff --git a/application/views/bandmap/list.php b/application/views/bandmap/list.php index e6ba866c..bee0d258 100644 --- a/application/views/bandmap/list.php +++ b/application/views/bandmap/list.php @@ -6,6 +6,9 @@