Cloudlog/application/controllers/Awards.php
Andreas 9f517736fd Cleaned up unused files and functions when moving to bootstrapdialog.
Fixed CQ Awards map to use bootstrapdialog.
Changed size of headers to be the same in all detail_ajax files that are loaded in bootstrapdialog from awards.
Increased size of modal-log to 900px.
Added a close qso-dialog when deleting qso within edit qso dialog.
Also changed last table in qsostreak to table-sm (forgot in last pr).
2020-10-03 23:19:09 +02:00

434 行
16 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
Handles Displaying of information for awards.
These are taken from comments fields or ADIF fields
*/
class Awards extends CI_Controller {
function __construct()
{
parent::__construct();
$this->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'] = "Awards";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/index');
$this->load->view('interface_assets/footer');
}
public function dok ()
{
//echo "Needs Developed";
$this->load->model('dok');
$data['doks'] = $this->dok->show_stats();
$data['worked_bands'] = $this->dok->get_worked_bands();
// Render Page
$data['page_title'] = "Awards - DOK";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/dok/index');
$this->load->view('interface_assets/footer');
}
public function dok_details_ajax(){
$a = $this->input->post();
$q = "";
foreach ($a as $key => $value) {
$q .= $key."=".$value.("&#40;and&#41;");
}
$q = substr($q, 0, strlen($q)-13);
$arguments["query"] = $q;
$arguments["fields"] = '';
$arguments["format"] = "json";
$arguments["limit"] = '';
$arguments["order"] = '';
// print_r($arguments);
// return;
// Load the API and Logbook models
$this->load->model('api_model');
$this->load->model('logbook_model');
// Call the parser within the API model to build the query
$query = $this->api_model->select_parse($arguments);
// Execute the query, and retrieve the results
$data = $this->logbook_model->api_search_query($query);
// Render Page
$data['page_title'] = "Log View - DOK";
$data['filter'] = str_replace("&#40;and&#41;", ", ", $q);//implode(", ", array_keys($a));
//$this->load->view('interface_assets/header', $data);
$this->load->view('awards/dok/details_ajax', $data);
//$this->load->view('interface_assets/footer');
}
public function dxcc () {
$this->load->model('dxcc');
$data['worked_bands'] = $this->dxcc->get_worked_bands(); // Used in the view for band select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
$bands = $data['worked_bands'];
}
else {
$bands[] = $this->input->post('band');
}
}
else {
$bands = $data['worked_bands'];
}
$data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view
if($this->input->method() === 'post') {
$postdata['lotw'] = $this->input->post('lotw');
$postdata['qsl'] = $this->input->post('qsl');
$postdata['worked'] = $this->input->post('worked');
$postdata['confirmed'] = $this->input->post('confirmed');
$postdata['notworked'] = $this->input->post('notworked');
$postdata['includedeleted'] = $this->input->post('includedeleted');
$postdata['Africa'] = $this->input->post('Africa');
$postdata['Asia'] = $this->input->post('Asia');
$postdata['Europe'] = $this->input->post('Europe');
$postdata['NorthAmerica'] = $this->input->post('NorthAmerica');
$postdata['SouthAmerica'] = $this->input->post('SouthAmerica');
$postdata['Oceania'] = $this->input->post('Oceania');
$postdata['Antarctica'] = $this->input->post('Antarctica');
$postdata['band'] = $this->input->post('band');
}
else { // Setting default values at first load of page
$postdata['lotw'] = 1;
$postdata['qsl'] = 1;
$postdata['worked'] = 1;
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['includedeleted'] = 1;
$postdata['Africa'] = 1;
$postdata['Asia'] = 1;
$postdata['Europe'] = 1;
$postdata['NorthAmerica'] = 1;
$postdata['SouthAmerica'] = 1;
$postdata['Oceania'] = 1;
$postdata['Antarctica'] = 1;
$postdata['band'] = 'All';
}
$dxcclist = $this->dxcc->fetchdxcc($postdata);
$data['dxcc_array'] = $this->dxcc->get_dxcc_array($dxcclist, $bands, $postdata);
$data['dxcc_summary'] = $this->dxcc->get_dxcc_summary($bands);
// Render Page
$data['page_title'] = "Awards - DXCC";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/dxcc/index');
$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/dxcc/details_ajax', $data);
}
public function vucc() {
$this->load->model('vucc');
$data['worked_bands'] = $this->vucc->get_worked_bands();
$data['vucc_array'] = $this->vucc->get_vucc_array($data);
// Render Page
$data['page_title'] = "Awards - VUCC";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/vucc/index');
$this->load->view('interface_assets/footer');
}
public function vucc_band(){
$this->load->model('vucc');
$band = str_replace('"', "", $this->input->get("Band"));
$data['vucc_array'] = $this->vucc->vucc_details($band);
// Render Page
$data['page_title'] = "VUCC - band";
$data['filter'] = "band ".$band;
$data['band'] = $band;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/vucc/band');
$this->load->view('interface_assets/footer');
}
public function vucc_details_ajax(){
$this->load->model('logbook_model');
$gridsquare = str_replace('"', "", $this->input->post("Gridsquare"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->vucc_qso_details($gridsquare, $band);
// Render Page
$data['page_title'] = "Log View - VUCC";
$data['filter'] = "vucc " . $gridsquare . " and band ".$band;
$this->load->view('awards/vucc/details_ajax', $data);
}
/*
Handles Displaying of WAB Squares worked.
Comment field - WAB:#
*/
public function wab() {
// Grab all worked WABs
$this->load->model('wab');
$data['wab_all'] = $this->wab->get_all();
// Render Page
$data['page_title'] = "Awards - WAB";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/wab/index');
$this->load->view('interface_assets/footer');
}
/*
Handles showing worked SOTAs
Comment field - SOTA:#
*/
public function sota() {
// Grab all worked sota stations
$this->load->model('sota');
$data['sota_all'] = $this->sota->get_all();
// Render page
$data['page_title'] = "Awards - SOTA";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/sota/index');
$this->load->view('interface_assets/footer');
}
/*
Handles showing worked WACRAL members (wacral.org)
Comment field - WACRAL:#
*/
public function wacral() {
// Grab all worked wacral members
$this->load->model('wacral');
$data['wacral_all'] = $this->wacral->get_all();
// Render page
$data['page_title'] = "Awards - WACRAL Members";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/wacral/index');
$this->load->view('interface_assets/footer');
}
public function cq(){
$this->load->model('cq');
$zones = array();
foreach($this->cq->get_zones() as $row){
array_push($zones, intval($row->COL_CQZ));
}
$data['cqz'] = $zones;
$data['worked_bands'] = $this->cq->get_worked_bands();
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
$bands = $data['worked_bands'];
}
else {
$bands[] = $this->input->post('band');
}
}
else {
$bands = $data['worked_bands'];
}
$data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view
if($this->input->method() === 'post') {
$postdata['lotw'] = $this->input->post('lotw');
$postdata['qsl'] = $this->input->post('qsl');
$postdata['worked'] = $this->input->post('worked');
$postdata['confirmed'] = $this->input->post('confirmed');
$postdata['notworked'] = $this->input->post('notworked');
$postdata['band'] = $this->input->post('band');
}
else { // Setting default values at first load of page
$postdata['lotw'] = 1;
$postdata['qsl'] = 1;
$postdata['worked'] = 1;
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['band'] = 'All';
}
$data['cq_array'] = $this->cq->get_cq_array($bands, $postdata);
// Render page
$data['page_title'] = "Awards - CQ Magazine";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/cq/index');
$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/cq/details_ajax', $data);
}
public function was() {
$this->load->model('was');
$data['worked_bands'] = $this->was->get_worked_bands();
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
$bands = $data['worked_bands'];
}
else {
$bands[] = $this->input->post('band');
}
}
else {
$bands = $data['worked_bands'];
}
$data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view
if($this->input->method() === 'post') {
$postdata['lotw'] = $this->input->post('lotw');
$postdata['qsl'] = $this->input->post('qsl');
$postdata['worked'] = $this->input->post('worked');
$postdata['confirmed'] = $this->input->post('confirmed');
$postdata['notworked'] = $this->input->post('notworked');
$postdata['band'] = $this->input->post('band');
}
else { // Setting default values at first load of page
$postdata['lotw'] = 1;
$postdata['qsl'] = 1;
$postdata['worked'] = 1;
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['band'] = 'All';
}
$data['was_array'] = $this->was->get_was_array($bands, $postdata);
$data['was_summary'] = $this->was->get_was_summary($bands);
// Render Page
$data['page_title'] = "Awards - WAS (Worked all states)";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/was/index');
$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/was/details_ajax', $data);
}
public function iota () {
$this->load->model('iota');
$data['worked_bands'] = $this->iota->get_worked_bands(); // Used in the view for band select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
$bands = $data['worked_bands'];
}
else {
$bands[] = $this->input->post('band');
}
}
else {
$bands = $data['worked_bands'];
}
$data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view
if($this->input->method() === 'post') {
$postdata['worked'] = $this->input->post('worked');
$postdata['confirmed'] = $this->input->post('confirmed');
$postdata['notworked'] = $this->input->post('notworked');
$postdata['includedeleted'] = $this->input->post('includedeleted');
$postdata['Africa'] = $this->input->post('Africa');
$postdata['Asia'] = $this->input->post('Asia');
$postdata['Europe'] = $this->input->post('Europe');
$postdata['NorthAmerica'] = $this->input->post('NorthAmerica');
$postdata['SouthAmerica'] = $this->input->post('SouthAmerica');
$postdata['Oceania'] = $this->input->post('Oceania');
$postdata['Antarctica'] = $this->input->post('Antarctica');
$postdata['band'] = $this->input->post('band');
}
else { // Setting default values at first load of page
$postdata['worked'] = 1;
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['includedeleted'] = 1;
$postdata['Africa'] = 1;
$postdata['Asia'] = 1;
$postdata['Europe'] = 1;
$postdata['NorthAmerica'] = 1;
$postdata['SouthAmerica'] = 1;
$postdata['Oceania'] = 1;
$postdata['Antarctica'] = 1;
$postdata['band'] = 'All';
}
$iotalist = $this->iota->fetchIota($postdata);
$data['iota_array'] = $this->iota->get_iota_array($iotalist, $bands, $postdata);
// Render Page
$data['page_title'] = "Awards - IOTA (Islands On The Air)";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/iota/index');
$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/iota/details_ajax', $data);
}
}