[Awards] Fixed DXCC QSO details to also filter on modes. Made a generic function to display QSOs. It's now used for DXCC, WAS, IOTA, CQ, VUCC. This is also done in preparation for adding mode filter to WAS, IOTA and CQ Award.

这个提交包含在:
Andreas 2021-07-24 14:31:16 +02:00
父节点 19c750a40c
当前提交 8b370c9783
共有 9 个文件被更改,包括 119 次插入280 次删除

查看文件

@ -140,19 +140,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function dxcc_details_ajax(){
$this->load->model('logbook_model');
$country = str_replace('"', "", $this->input->post("Country"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->dxcc_qso_details($country, $band);
// Render Page
$data['page_title'] = "Log View - DXCC";
$data['filter'] = "country ".$country. " and ".$band;
$this->load->view('awards/details', $data);
}
public function vucc() {
$this->load->model('vucc');
$data['worked_bands'] = $this->vucc->get_worked_bands();
@ -195,6 +182,25 @@ class Awards extends CI_Controller {
$this->load->view('awards/details', $data);
}
/*
* Used to fetch QSOs from the logbook in the awards
*/
public function qso_details_ajax(){
$this->load->model('logbook_model');
$searchphrase = str_replace('"', "", $this->input->post("Searchphrase"));
$band = str_replace('"', "", $this->input->post("Band"));
$mode = str_replace('"', "", $this->input->post("Mode"));
$type = $this->input->post('Type');
$data['results'] = $this->logbook_model->qso_details($searchphrase, $band, $mode, $type);
// Render Page
$data['page_title'] = "Log View - " . $type;
$data['filter'] = $type . " " . $searchphrase . " and band ".$band . " and mode ".$mode;
$this->load->view('awards/details', $data);
}
/*
Handles showing worked SOTAs
Comment field - SOTA:#
@ -262,19 +268,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function cq_details_ajax(){
$this->load->model('logbook_model');
$cqzone = str_replace('"', "", $this->input->post("CQZone"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->cq_qso_details($cqzone, $band);
// Render Page
$data['page_title'] = "Log View - DXCC";
$data['filter'] = "CQZone ".$cqzone. " and ".$band;;
$this->load->view('awards/details', $data);
}
public function was() {
$this->load->model('was');
$data['worked_bands'] = $this->was->get_worked_bands();
@ -320,19 +313,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function was_details_ajax() {
$this->load->model('logbook_model');
$state = str_replace('"', "", $this->input->post("State"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->was_qso_details($state, $band);
// Render Page
$data['page_title'] = "Log View - WAS";
$data['filter'] = "state ".$state. " and ".$band;
$this->load->view('awards/details', $data);
}
public function iota () {
$this->load->model('iota');
$data['worked_bands'] = $this->iota->get_worked_bands(); // Used in the view for band select
@ -391,19 +371,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function iota_details_ajax(){
$this->load->model('logbook_model');
$iota = str_replace('"', "", $this->input->post("Iota"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->iota_qso_details($iota, $band);
// Render Page
$data['page_title'] = "Log View - IOTA";
$data['filter'] = "iota ".$iota. " and ".$band;
$this->load->view('awards/details', $data);
}
public function counties() {
$this->load->model('counties');
$data['counties_array'] = $this->counties->get_counties_array();

查看文件

@ -89,14 +89,14 @@ class CQ extends CI_Model{
if ($postdata['worked'] != NULL) {
$cqBand = $this->getCQWorked($station_id, $band, $postdata);
foreach ($cqBand as $line) {
$bandCq[$line->col_cqz][$band] = '<div class="alert-danger"><a href=\'javascript:displayCqContacts("' . str_replace("&", "%26", $line->col_cqz) . '","' . $band . '")\'>W</a></div>';
$bandCq[$line->col_cqz][$band] = '<div class="alert-danger"><a href=\'javascript:displayContacts("' . str_replace("&", "%26", $line->col_cqz) . '","' . $band . '","All","CQZone")\'>W</a></div>';
$cqZ[$line->col_cqz]['count']++;
}
}
if ($postdata['confirmed'] != NULL) {
$cqBand = $this->getCQConfirmed($station_id, $band, $postdata);
foreach ($cqBand as $line) {
$bandCq[$line->col_cqz][$band] = '<div class="alert-success"><a href=\'javascript:displayCqContacts("' . str_replace("&", "%26", $line->col_cqz) . '","' . $band . '")\'>C</a></div>';
$bandCq[$line->col_cqz][$band] = '<div class="alert-success"><a href=\'javascript:displayContacts("' . str_replace("&", "%26", $line->col_cqz) . '","' . $band . '","All","CQZone")\'>C</a></div>';
$cqZ[$line->col_cqz]['count']++;
}
}

查看文件

@ -203,7 +203,8 @@ class DXCC extends CI_Model {
if ($postdata['worked'] != NULL) {
$workedDXCC = $this->getDxccBandWorked($station_id, $band, $postdata);
foreach ($workedDXCC as $wdxcc) {
$dxccMatrix[$wdxcc->dxcc][$band] = '<div class="alert-danger"><a href=\'javascript:displayDxccContacts("'.str_replace("&", "%26", $wdxcc->name).'","'. $band . '")\'>W</a></div>';
//function displayContacts(searchphrase, band, mode, type) {
$dxccMatrix[$wdxcc->dxcc][$band] = '<div class="alert-danger"><a href=\'javascript:displayContacts("'.str_replace("&", "%26", $wdxcc->name).'","'. $band . '","'. $postdata['mode'] . '","DXCC")\'>W</a></div>';
}
}
@ -211,7 +212,7 @@ class DXCC extends CI_Model {
if ($postdata['confirmed'] != NULL) {
$confirmedDXCC = $this->getDxccBandConfirmed($station_id, $band, $postdata);
foreach ($confirmedDXCC as $cdxcc) {
$dxccMatrix[$cdxcc->dxcc][$band] = '<div class="alert-success"><a href=\'javascript:displayDxccContacts("'.str_replace("&", "%26", $cdxcc->name).'","'. $band . '")\'>C</a></div>';
$dxccMatrix[$cdxcc->dxcc][$band] = '<div class="alert-success"><a href=\'javascript:displayContacts("'.str_replace("&", "%26", $cdxcc->name).'","'. $band . '","'. $postdata['mode'] . '","DXCC")\'>C</a></div>';
}
}
}

查看文件

@ -81,7 +81,7 @@ class IOTA extends CI_Model {
if ($postdata['worked'] != NULL) {
$workedIota = $this->getIotaBandWorked($station_id, $band, $postdata);
foreach ($workedIota as $wiota) {
$iotaMatrix[$wiota->tag][$band] = '<div class="alert-danger"><a href=\'javascript:displayIotaContacts("'.$wiota->tag.'","'. $band . '")\'>W</a></div>';
$iotaMatrix[$wiota->tag][$band] = '<div class="alert-danger"><a href=\'javascript:displayContacts("'.$wiota->tag.'","'. $band . '","All","IOTA")\'>W</a></div>';
}
}
@ -89,7 +89,7 @@ class IOTA extends CI_Model {
if ($postdata['confirmed'] != NULL) {
$confirmedIota = $this->getIotaBandConfirmed($station_id, $band, $postdata);
foreach ($confirmedIota as $ciota) {
$iotaMatrix[$ciota->tag][$band] = '<div class="alert-success"><a href=\'javascript:displayIotaContacts("'.$ciota->tag.'","'. $band . '")\'>C</a></div>';
$iotaMatrix[$ciota->tag][$band] = '<div class="alert-success"><a href=\'javascript:displayContacts("'.$ciota->tag.'","'. $band . '","All","IOTA")\'>C</a></div>';
}
}
}

查看文件

@ -232,36 +232,46 @@ class Logbook_model extends CI_Model {
return($row);
}
}
public function dxcc_qso_details($country, $band){
/*
* Used to fetch QSOs from the logbook in the awards
*/
public function qso_details($searchphrase, $band, $mode, $type){
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
switch ($type) {
case 'DXCC':
$this->db->where('COL_COUNTRY', $searchphrase);
break;
case 'IOTA':
$this->db->where('COL_IOTA', $searchphrase);
break;
case 'VUCC':
$this->db->where("(COL_GRIDSQUARE like '%" . $searchphrase . "%' OR COL_VUCC_GRIDS like'%" . $searchphrase ."%')");
break;
case 'CQZone':
$this->db->where('COL_CQZ', $searchphrase);
break;
case 'WAS':
$this->db->where('COL_STATE', $searchphrase);
$this->db->where_in('COL_DXCC', ['291', '6', '110']);
break;
}
$this->db->where('station_id', $station_id);
$this->db->where('COL_COUNTRY', $country);
if ($band != 'All') {
if($band != "SAT") {
$this->db->where('COL_PROP_MODE !=', 'SAT');
$this->db->where('COL_BAND', $band);
} else {
$this->db->where('COL_PROP_MODE', "SAT");
}
return $this->db->get($this->config->item('table_name'));
}
public function iota_qso_details($iota, $band){
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
$this->db->where('station_id', $station_id);
$this->db->where('COL_IOTA', $iota);
if($band != "SAT") {
$this->db->where('COL_PROP_MODE !=', 'SAT');
$this->db->where('COL_BAND', $band);
} else {
$this->db->where('COL_PROP_MODE', "SAT");
if ($mode != 'All') {
$this->db->where("(COL_MODE='" . $mode . "' OR COL_SUBMODE='" . $mode ."')");
}
return $this->db->get($this->config->item('table_name'));
@ -288,26 +298,6 @@ class Logbook_model extends CI_Model {
return $this->db->query($sql);
}
public function cq_qso_details($cqzone, $band){
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
if ($band != 'All') {
if ($band == 'SAT') {
$this->db->where('col_prop_mode', $band);
} else if ($band != '') {
$this->db->where('col_prop_mode !=', 'SAT');
$this->db->where('col_band', $band);
}
}
$this->db->where('station_id', $station_id);
$this->db->where('COL_CQZ', $cqzone);
return $this->db->get($this->config->item('table_name'));
}
public function timeline_qso_details($querystring, $band, $mode, $type){
$CI =& get_instance();
$CI->load->model('Stations');
@ -338,26 +328,6 @@ class Logbook_model extends CI_Model {
return $this->db->get($this->config->item('table_name'));
}
public function was_qso_details($state, $band){
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
$this->db->where('station_id', $station_id);
$this->db->where('COL_STATE', $state);
$this->db->where_in('COL_DXCC', ['291', '6', '110']);
if($band != 'All') {
if($band != "SAT") {
$this->db->where('COL_PROP_MODE !=', 'SAT');
$this->db->where('COL_BAND', $band);
} else {
$this->db->where('COL_PROP_MODE', "SAT");
}
}
return $this->db->get($this->config->item('table_name'));
}
public function get_callsigns($callsign){
$this->db->select('COL_CALL');
$this->db->distinct();

查看文件

@ -87,14 +87,14 @@ class was extends CI_Model {
if ($postdata['worked'] != NULL) {
$wasBand = $this->getWasWorked($station_id, $band, $postdata);
foreach ($wasBand as $line) {
$bandWas[$line->col_state][$band] = '<div class="alert-danger"><a href=\'javascript:displayWasContacts("' . $line->col_state . '","' . $band . '")\'>W</a></div>';
$bandWas[$line->col_state][$band] = '<div class="alert-danger"><a href=\'javascript:displayContacts("' . $line->col_state . '","' . $band . '","All","WAS")\'>W</a></div>';
$states[$line->col_state]['count']++;
}
}
if ($postdata['confirmed'] != NULL) {
$wasBand = $this->getWasConfirmed($station_id, $band, $postdata);
foreach ($wasBand as $line) {
$bandWas[$line->col_state][$band] = '<div class="alert-success"><a href=\'javascript:displayWasContacts("' . $line->col_state . '","' . $band . '")\'>C</a></div>';
$bandWas[$line->col_state][$band] = '<div class="alert-success"><a href=\'javascript:displayContacts("' . $line->col_state . '","' . $band . '","All","WAS")\'>C</a></div>';
$states[$line->col_state]['count']++;
}
}

查看文件

@ -23,7 +23,7 @@
foreach ($vucc_array as $vucc => $value) { // Fills the table with the data
echo '<tr>
<td>'. $i++ .'</td>
<td><a href=\'javascript:displayVuccContacts("'. $vucc .'","'. $band . '")\'>'. $vucc .'</td>';
<td><a href=\'javascript:displayContacts("'. $vucc .'","'. $band . '","All","VUCC")\'>'. $vucc .'</td>';
if ($type != 'worked') {
echo '<td>'. $value['qsl'] . '</td>

查看文件

@ -135,7 +135,7 @@
'click' : function(event, data) {
displayWasContacts(data.name,$('#band2').val());
displayContacts(data.name,$('#band2').val(), 'All', 'WAS');
}
});

查看文件

@ -991,33 +991,6 @@ $(document).ready(function(){
if (background != ('rgb(255, 255, 255)')) {
$(".buttons-csv").css("color", "white");
}
function displayDxccContacts(country, band) {
var baseURL = "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/awards/dxcc_details_ajax',
type: 'post',
data: {
'Country': country,
'Band': band
},
success: function (html) {
BootstrapDialog.show({
title: 'QSO Data',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'qso-dxcc-dialog',
nl2br: false,
message: html,
buttons: [{
label: 'Close',
action: function (dialogItself) {
dialogItself.close();
}
}]
});
}
});
}
</script>
<?php } ?>
@ -1043,32 +1016,6 @@ $(document).ready(function(){
if (background != ('rgb(255, 255, 255)')) {
$(".buttons-csv").css("color", "white");
}
function displayVuccContacts(gridsquare, band) {
var baseURL= "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/awards/vucc_details_ajax',
type: 'post',
data: {'Gridsquare': gridsquare,
'Band': band
},
success: function(html) {
BootstrapDialog.show({
title: 'QSO Data',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'qso-vucc-dialog',
nl2br: false,
message: html,
buttons: [{
label: 'Close',
action: function (dialogItself) {
dialogItself.close();
}
}]
});
}
});
}
</script>
<?php } ?>
@ -1137,32 +1084,6 @@ $(document).ready(function(){
if (background != ('rgb(255, 255, 255)')) {
$(".buttons-csv").css("color", "white");
}
function displayIotaContacts(iota, band) {
var baseURL= "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/awards/iota_details_ajax',
type: 'post',
data: {'Iota': iota,
'Band': band
},
success: function(html) {
BootstrapDialog.show({
title: 'QSO Data',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'qso-iota-dialog',
nl2br: false,
message: html,
buttons: [{
label: 'Close',
action: function (dialogItself) {
dialogItself.close();
}
}]
});
}
});
}
</script>
<?php } ?>
@ -1200,32 +1121,6 @@ $(document).ready(function(){
if (background != ('rgb(255, 255, 255)')) {
$(".buttons-csv").css("color", "white");
}
function displayCqContacts(cqzone, band) {
var baseURL= "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/awards/cq_details_ajax',
type: 'post',
data: {'CQZone': cqzone,
'Band': band
},
success: function(html) {
BootstrapDialog.show({
title: 'QSO Data',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'qso-cq-dialog',
nl2br: false,
message: html,
buttons: [{
label: 'Close',
action: function (dialogItself) {
dialogItself.close();
}
}]
});
}
});
}
</script>
<?php } ?>
@ -1262,32 +1157,6 @@ $(document).ready(function(){
if (background != ('rgb(255, 255, 255)')) {
$(".buttons-csv").css("color", "white");
}
function displayWasContacts(was, band) {
var baseURL= "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/awards/was_details_ajax',
type: 'post',
data: {'State': was,
'Band': band
},
success: function(html) {
BootstrapDialog.show({
title: 'QSO Data',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'qso-was-dialog',
nl2br: false,
message: html,
buttons: [{
label: 'Close',
action: function (dialogItself) {
dialogItself.close();
}
}]
});
}
});
}
</script>
<?php } ?>
@ -1701,6 +1570,38 @@ function deleteQsl(id) {
</script>
<script>
/*
* Used to fetch QSOs from the logbook in the awards
*/
function displayContacts(searchphrase, band, mode, type) {
var baseURL = "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/awards/qso_details_ajax',
type: 'post',
data: {
'Searchphrase': searchphrase,
'Band': band,
'Mode': mode,
'Type': type
},
success: function (html) {
BootstrapDialog.show({
title: 'QSO Data',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'qso-dialog',
nl2br: false,
message: html,
buttons: [{
label: 'Close',
action: function (dialogItself) {
dialogItself.close();
}
}]
});
}
});
}
function uploadQsl() {
var baseURL= "<?php echo base_url();?>";
var formdata = new FormData(document.getElementById("fileinfo"));