mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
Merge pull request #2350 from int2001/secfix
This commit is contained in:
@@ -16,15 +16,15 @@ class Cabrillo extends CI_Controller {
|
||||
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
||||
}
|
||||
|
||||
public function index() {
|
||||
$data['page_title'] = "Export Cabrillo";
|
||||
public function index() {
|
||||
$data['page_title'] = "Export Cabrillo";
|
||||
|
||||
$this->load->model('Contesting_model');
|
||||
$this->load->model('stations');
|
||||
$this->load->model('Contesting_model');
|
||||
$this->load->model('stations');
|
||||
|
||||
$data['station_profile'] = $this->stations->all_of_user();
|
||||
$active_station_id = $this->stations->find_active();
|
||||
$station_profile = $this->stations->profile($active_station_id);
|
||||
$data['station_profile'] = $this->stations->all_of_user();
|
||||
$active_station_id = $this->stations->find_active();
|
||||
$station_profile = $this->stations->profile($active_station_id);
|
||||
|
||||
$data['active_station_info'] = $station_profile->row();
|
||||
|
||||
@@ -32,93 +32,107 @@ class Cabrillo extends CI_Controller {
|
||||
$footerData['scripts'] = [
|
||||
'assets/js/sections/cabrillo.js'
|
||||
];
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('cabrillo/index');
|
||||
$this->load->view('interface_assets/footer', $footerData);
|
||||
}
|
||||
}
|
||||
|
||||
public function getContests() {
|
||||
public function getContests() {
|
||||
$this->load->model('Contesting_model');
|
||||
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
$year = $this->security->xss_clean($this->input->post('year'));
|
||||
$result = $this->Contesting_model->get_logged_contests($station_id, $year);
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
$this->load->model('stations');
|
||||
if ($this->stations->check_station_is_accessible($station_id)) {
|
||||
$year = $this->security->xss_clean($this->input->post('year'));
|
||||
$result = $this->Contesting_model->get_logged_contests($station_id, $year);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result);
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result);
|
||||
} else {
|
||||
$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
public function getYears() {
|
||||
public function getYears() {
|
||||
$this->load->model('Contesting_model');
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
|
||||
$result = $this->Contesting_model->get_logged_years($station_id);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result);
|
||||
}
|
||||
}
|
||||
|
||||
public function getContestDates() {
|
||||
$this->load->model('Contesting_model');
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
$year = $this->security->xss_clean($this->input->post('year'));
|
||||
$contestid = $this->security->xss_clean($this->input->post('contestid'));
|
||||
public function getContestDates() {
|
||||
$this->load->model('Contesting_model');
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
$this->load->model('stations');
|
||||
if ($this->stations->check_station_is_accessible($station_id)) {
|
||||
$year = $this->security->xss_clean($this->input->post('year'));
|
||||
$contestid = $this->security->xss_clean($this->input->post('contestid'));
|
||||
|
||||
$result = $this->Contesting_model->get_contest_dates($station_id, $year, $contestid);
|
||||
$result = $this->Contesting_model->get_contest_dates($station_id, $year, $contestid);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result);
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result);
|
||||
} else {
|
||||
$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
public function export() {
|
||||
// Set memory limit to unlimited to allow heavy usage
|
||||
public function export() {
|
||||
// Set memory limit to unlimited to allow heavy usage
|
||||
ini_set('memory_limit', '-1');
|
||||
$this->load->model('Contesting_model');
|
||||
$this->load->model('Contesting_model');
|
||||
|
||||
$this->load->model('stations');
|
||||
$this->load->model('stations');
|
||||
|
||||
$this->load->model('user_model');
|
||||
$this->load->model('user_model');
|
||||
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
$contest_id = $this->security->xss_clean($this->input->post('contestid'));
|
||||
$station_id = $this->security->xss_clean($this->input->post('station_id'));
|
||||
if ($this->stations->check_station_is_accessible($station_id)) {
|
||||
$contest_id = $this->security->xss_clean($this->input->post('contestid'));
|
||||
|
||||
$from = $this->security->xss_clean($this->input->post('contestdatesfrom'));
|
||||
$to = $this->security->xss_clean($this->input->post('contestdatesto'));
|
||||
$from = $this->security->xss_clean($this->input->post('contestdatesfrom'));
|
||||
$to = $this->security->xss_clean($this->input->post('contestdatesto'));
|
||||
|
||||
$station = $this->stations->profile($station_id);
|
||||
$station = $this->stations->profile($station_id);
|
||||
|
||||
$station = $station->row();
|
||||
$station = $station->row();
|
||||
|
||||
$userinfo = $this->user_model->get_by_id($this->session->userdata('user_id'));
|
||||
$userinfo = $this->user_model->get_by_id($this->session->userdata('user_id'));
|
||||
|
||||
$userinfo = $userinfo->row();
|
||||
$userinfo = $userinfo->row();
|
||||
|
||||
$data['qsos'] = $this->Contesting_model->export_custom($from, $to, $contest_id, $station_id);
|
||||
$data['qsos'] = $this->Contesting_model->export_custom($from, $to, $contest_id, $station_id);
|
||||
|
||||
$data['contest_id'] = $contest_id;
|
||||
$data['callsign'] = $station->station_callsign;
|
||||
$data['claimed_score'] = '';
|
||||
$data['categoryoperator'] = $this->security->xss_clean($this->input->post('categoryoperator'));
|
||||
$data['categoryassisted'] = $this->security->xss_clean($this->input->post('categoryassisted'));
|
||||
$data['categoryband'] = $this->security->xss_clean($this->input->post('categoryband'));
|
||||
$data['categorymode'] = $this->security->xss_clean($this->input->post('categorymode'));
|
||||
$data['categorypower'] = $this->security->xss_clean($this->input->post('categorypower'));
|
||||
$data['categorystation'] = $this->security->xss_clean($this->input->post('categorystation'));
|
||||
$data['categorytransmitter'] = $this->security->xss_clean($this->input->post('categorytransmitter'));
|
||||
$data['categoryoverlay'] = $this->security->xss_clean($this->input->post('categoryoverlay'));
|
||||
$data['operators'] = $this->security->xss_clean($this->input->post('operators'));
|
||||
$data['club'] = $this->security->xss_clean($this->input->post('club'));
|
||||
$data['name'] = $userinfo->user_firstname . ' ' . $userinfo->user_lastname;
|
||||
$data['email'] = $userinfo->user_email;
|
||||
$data['address'] = $this->security->xss_clean($this->input->post('address'));
|
||||
$data['addresscity'] = $this->security->xss_clean($this->input->post('addresscity'));
|
||||
$data['addressstateprovince'] = $this->security->xss_clean($this->input->post('addressstateprovince'));
|
||||
$data['addresspostalcode'] = $this->security->xss_clean($this->input->post('addresspostalcode'));
|
||||
$data['addresscountry'] = $this->security->xss_clean($this->input->post('addresscountry'));
|
||||
$data['soapbox'] = $this->security->xss_clean($this->input->post('soapbox'));
|
||||
$data['gridlocator'] = $station->station_gridsquare;
|
||||
$data['contest_id'] = $contest_id;
|
||||
$data['callsign'] = $station->station_callsign;
|
||||
$data['claimed_score'] = '';
|
||||
$data['categoryoperator'] = $this->security->xss_clean($this->input->post('categoryoperator'));
|
||||
$data['categoryassisted'] = $this->security->xss_clean($this->input->post('categoryassisted'));
|
||||
$data['categoryband'] = $this->security->xss_clean($this->input->post('categoryband'));
|
||||
$data['categorymode'] = $this->security->xss_clean($this->input->post('categorymode'));
|
||||
$data['categorypower'] = $this->security->xss_clean($this->input->post('categorypower'));
|
||||
$data['categorystation'] = $this->security->xss_clean($this->input->post('categorystation'));
|
||||
$data['categorytransmitter'] = $this->security->xss_clean($this->input->post('categorytransmitter'));
|
||||
$data['categoryoverlay'] = $this->security->xss_clean($this->input->post('categoryoverlay'));
|
||||
$data['operators'] = $this->security->xss_clean($this->input->post('operators'));
|
||||
$data['club'] = $this->security->xss_clean($this->input->post('club'));
|
||||
$data['name'] = $userinfo->user_firstname . ' ' . $userinfo->user_lastname;
|
||||
$data['email'] = $userinfo->user_email;
|
||||
$data['address'] = $this->security->xss_clean($this->input->post('address'));
|
||||
$data['addresscity'] = $this->security->xss_clean($this->input->post('addresscity'));
|
||||
$data['addressstateprovince'] = $this->security->xss_clean($this->input->post('addressstateprovince'));
|
||||
$data['addresspostalcode'] = $this->security->xss_clean($this->input->post('addresspostalcode'));
|
||||
$data['addresscountry'] = $this->security->xss_clean($this->input->post('addresscountry'));
|
||||
$data['soapbox'] = $this->security->xss_clean($this->input->post('soapbox'));
|
||||
$data['gridlocator'] = $station->station_gridsquare;
|
||||
|
||||
$this->load->view('cabrillo/export', $data);
|
||||
}
|
||||
}
|
||||
$this->load->view('cabrillo/export', $data);
|
||||
}else {
|
||||
$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,42 +212,4 @@ class Dashboard extends CI_Controller {
|
||||
}
|
||||
|
||||
|
||||
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: ";
|
||||
echo $row->COL_SUBMODE==null?$row->COL_MODE:$row->COL_SUBMODE;
|
||||
echo "\",\"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: ";
|
||||
echo $row->COL_SUBMODE==null?$row->COL_MODE:$row->COL_SUBMODE;
|
||||
echo "\",\"label\":\"".$row->COL_CALL."\"},";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
echo "]";
|
||||
echo "}";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -99,11 +99,15 @@ class Labels extends CI_Controller {
|
||||
public function print($station_id) {
|
||||
$clean_id = xss_clean($station_id);
|
||||
$offset = xss_clean($this->input->post('startat'));
|
||||
$this->load->model('stations');
|
||||
if ($this->stations->check_station_is_accessible($station_id)) {
|
||||
$this->load->model('labels_model');
|
||||
$result = $this->labels_model->export_printrequested($clean_id);
|
||||
|
||||
$this->load->model('labels_model');
|
||||
$result = $this->labels_model->export_printrequested($clean_id);
|
||||
|
||||
$this->prepareLabel($result, false, $offset);
|
||||
$this->prepareLabel($result, false, $offset);
|
||||
} else {
|
||||
redirect('labels');
|
||||
}
|
||||
}
|
||||
|
||||
function prepareLabel($qsos, $jscall = false, $offset = 1) {
|
||||
|
||||
@@ -26,7 +26,7 @@ class Qrz extends CI_Controller {
|
||||
if ($station_ids) {
|
||||
foreach ($station_ids as $station) {
|
||||
$qrz_api_key = $station->qrzapikey;
|
||||
if($this->mass_upload_qsos($station->station_id, $qrz_api_key)) {
|
||||
if($this->mass_upload_qsos($station->station_id, $qrz_api_key, true)) {
|
||||
echo "QSOs have been uploaded to QRZ.com.";
|
||||
log_message('info', 'QSOs have been uploaded to QRZ.com.');
|
||||
} else{
|
||||
@@ -53,9 +53,9 @@ class Qrz extends CI_Controller {
|
||||
* Function gets all QSOs from given station_id, that are not previously uploaded to qrz.
|
||||
* Adif is build for each qso, and then uploaded, one at a time
|
||||
*/
|
||||
function mass_upload_qsos($station_id, $qrz_api_key) {
|
||||
function mass_upload_qsos($station_id, $qrz_api_key, $trusted = false) {
|
||||
$i = 0;
|
||||
$data['qsos'] = $this->logbook_model->get_qrz_qsos($station_id);
|
||||
$data['qsos'] = $this->logbook_model->get_qrz_qsos($station_id, $trusted);
|
||||
$errormessages=array();
|
||||
|
||||
$CI =& get_instance();
|
||||
|
||||
@@ -290,13 +290,13 @@ class QSO extends CI_Controller {
|
||||
function delete($id) {
|
||||
$this->load->model('logbook_model');
|
||||
|
||||
$this->logbook_model->delete($id);
|
||||
|
||||
$this->session->set_flashdata('notice', 'QSO Deleted Successfully');
|
||||
$data['message_title'] = "Deleted";
|
||||
$data['message_contents'] = "QSO Deleted Successfully";
|
||||
$this->load->view('messages/message', $data);
|
||||
|
||||
if ($this->logbook_model->check_qso_is_accessible($id)) {
|
||||
$this->logbook_model->delete($id);
|
||||
$this->session->set_flashdata('notice', 'QSO Deleted Successfully');
|
||||
$data['message_title'] = "Deleted";
|
||||
$data['message_contents'] = "QSO Deleted Successfully";
|
||||
$this->load->view('messages/message', $data);
|
||||
}
|
||||
|
||||
// If deletes from /logbook dropdown redirect
|
||||
if (strpos($_SERVER['HTTP_REFERER'], '/logbook') !== false) {
|
||||
@@ -309,10 +309,14 @@ class QSO extends CI_Controller {
|
||||
$id = str_replace('"', "", $this->input->post("id"));
|
||||
|
||||
$this->load->model('logbook_model');
|
||||
|
||||
$this->logbook_model->delete($id);
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'OK'));
|
||||
if ($this->logbook_model->check_qso_is_accessible($id)) {
|
||||
$this->logbook_model->delete($id);
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'OK'));
|
||||
} else {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'not allowed'));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,14 +31,13 @@ class Station extends CI_Controller {
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
public function create() {
|
||||
$this->load->model('stations');
|
||||
$this->load->model('dxcc');
|
||||
$data['dxcc_list'] = $this->dxcc->list();
|
||||
|
||||
$this->load->model('logbook_model');
|
||||
$data['iota_list'] = $this->logbook_model->fetchIota();
|
||||
$this->load->model('logbook_model');
|
||||
$data['iota_list'] = $this->logbook_model->fetchIota();
|
||||
|
||||
$this->load->library('form_validation');
|
||||
|
||||
@@ -59,50 +58,57 @@ class Station extends CI_Controller {
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$data = $this->load_station_for_editing($id);
|
||||
$data['page_title'] = "Edit Station Location: {$data['my_station_profile']->station_profile_name}";
|
||||
public function edit($id) {
|
||||
$this->load->model('stations');
|
||||
if ($this->stations->check_station_is_accessible($id)) {
|
||||
$data = $this->load_station_for_editing($id);
|
||||
$data['page_title'] = "Edit Station Location: {$data['my_station_profile']->station_profile_name}";
|
||||
|
||||
if ($this->form_validation->run() == FALSE) {
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('station_profile/edit');
|
||||
$this->load->view('interface_assets/footer');
|
||||
if ($this->form_validation->run() == FALSE) {
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('station_profile/edit');
|
||||
$this->load->view('interface_assets/footer');
|
||||
} else {
|
||||
$this->stations->edit();
|
||||
|
||||
$data['notice'] = "Station Profile " . $this->security->xss_clean($this->input->post('station_profile_name', true)) . " Updated";
|
||||
|
||||
redirect('station');
|
||||
}
|
||||
} else {
|
||||
$this->stations->edit();
|
||||
|
||||
$data['notice'] = "Station Profile " . $this->security->xss_clean($this->input->post('station_profile_name', true)) . " Updated";
|
||||
|
||||
redirect('station');
|
||||
}
|
||||
}
|
||||
|
||||
public function copy($id)
|
||||
{
|
||||
$data = $this->load_station_for_editing($id);
|
||||
$data['page_title'] = "Duplicate Station Location: {$data['my_station_profile']->station_profile_name}";
|
||||
public function copy($id) {
|
||||
$this->load->model('stations');
|
||||
if ($this->stations->check_station_is_accessible($id)) {
|
||||
$data = $this->load_station_for_editing($id);
|
||||
$data['page_title'] = "Duplicate Station Location: {$data['my_station_profile']->station_profile_name}";
|
||||
|
||||
// we NULLify station_id and station_profile_name to make sure we are creating a new station
|
||||
$data['copy_from'] = $data['my_station_profile']->station_id;
|
||||
$data['my_station_profile']->station_id = NULL;
|
||||
$data['my_station_profile']->station_profile_name = '';
|
||||
// we NULLify station_id and station_profile_name to make sure we are creating a new station
|
||||
$data['copy_from'] = $data['my_station_profile']->station_id;
|
||||
$data['my_station_profile']->station_id = NULL;
|
||||
$data['my_station_profile']->station_profile_name = '';
|
||||
|
||||
if ($this->form_validation->run() == FALSE)
|
||||
{
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('station_profile/edit');
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->stations->add();
|
||||
if ($this->form_validation->run() == FALSE)
|
||||
{
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('station_profile/edit');
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->stations->add();
|
||||
|
||||
redirect('station');
|
||||
}
|
||||
} else {
|
||||
redirect('station');
|
||||
}
|
||||
}
|
||||
|
||||
function load_station_for_editing($id): array
|
||||
{
|
||||
function load_station_for_editing($id): array {
|
||||
$this->load->library('form_validation');
|
||||
|
||||
$this->load->model('stations');
|
||||
@@ -159,15 +165,17 @@ class Station extends CI_Controller {
|
||||
|
||||
public function delete($id) {
|
||||
$this->load->model('stations');
|
||||
$this->stations->delete($id);
|
||||
|
||||
if ($this->stations->check_station_is_accessible($id)) {
|
||||
$this->stations->delete($id);
|
||||
}
|
||||
redirect('station');
|
||||
}
|
||||
|
||||
public function deletelog($id) {
|
||||
$this->load->model('stations');
|
||||
$this->stations->deletelog($id);
|
||||
|
||||
if ($this->stations->check_station_is_accessible($id)) {
|
||||
$this->stations->deletelog($id);
|
||||
}
|
||||
redirect('station');
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ class Webadif extends CI_Controller {
|
||||
foreach ($station_ids as $station) {
|
||||
$webadif_api_key = $station->webadifapikey;
|
||||
$webadif_api_url = $station->webadifapiurl;
|
||||
if ($this->mass_upload_qsos($station->station_id, $webadif_api_key, $webadif_api_url)) {
|
||||
if ($this->mass_upload_qsos($station->station_id, $webadif_api_key, $webadif_api_url, true)) { // When called via cron it is trusted
|
||||
echo "QSOs have been uploaded to QO-100 Dx Club.";
|
||||
log_message('info', 'QSOs have been uploaded to QO-100 Dx Club.');
|
||||
} else {
|
||||
@@ -47,9 +47,9 @@ class Webadif extends CI_Controller {
|
||||
* Function gets all QSOs from given station_id, that are not previously uploaded to webADIF consumer.
|
||||
* Adif is build for each qso, and then uploaded, one at a time
|
||||
*/
|
||||
function mass_upload_qsos($station_id, $webadif_api_key, $webadif_api_url) {
|
||||
function mass_upload_qsos($station_id, $webadif_api_key, $webadif_api_url, $trusted = false) {
|
||||
$i = 0;
|
||||
$data['qsos'] = $this->logbook_model->get_webadif_qsos($station_id);
|
||||
$data['qsos'] = $this->logbook_model->get_webadif_qsos($station_id, null, null, $trusted);
|
||||
$errormessages=array();
|
||||
|
||||
$CI =& get_instance();
|
||||
@@ -91,7 +91,7 @@ class Webadif extends CI_Controller {
|
||||
|
||||
$data['page_title'] = "QO-100 Dx Club Upload";
|
||||
|
||||
$data['station_profiles'] = $this->stations->stations_with_webadif_api_key();
|
||||
$data['station_profiles'] = $this->stations->stations_with_webadif_api_key();
|
||||
$data['station_profile'] = $this->stations->stations_with_webadif_api_key();
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
@@ -103,32 +103,34 @@ class Webadif extends CI_Controller {
|
||||
* Used for ajax-function when selecting log for upload to webADIF consumer
|
||||
*/
|
||||
public function upload_station() {
|
||||
$this->setOptions();
|
||||
$this->load->model('stations');
|
||||
$this->setOptions();
|
||||
$postData = $this->input->post();
|
||||
$this->load->model('stations');
|
||||
if (!$this->stations->check_station_is_accessible($postData['station_id'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$postData = $this->input->post();
|
||||
$this->load->model('logbook_model');
|
||||
$result = $this->logbook_model->exists_webadif_api_key($postData['station_id']);
|
||||
$webadif_api_key = $result->webadifapikey;
|
||||
$webadif_api_url = $result->webadifapiurl;
|
||||
header('Content-type: application/json');
|
||||
$result = $this->mass_upload_qsos($postData['station_id'], $webadif_api_key, $webadif_api_url);
|
||||
if ($result['status'] == 'OK') {
|
||||
$stationinfo = $this->stations->stations_with_webadif_api_key();
|
||||
$info = $stationinfo->result();
|
||||
|
||||
$this->load->model('logbook_model');
|
||||
$result = $this->logbook_model->exists_webadif_api_key($postData['station_id']);
|
||||
$webadif_api_key = $result->webadifapikey;
|
||||
$webadif_api_url = $result->webadifapiurl;
|
||||
header('Content-type: application/json');
|
||||
$result = $this->mass_upload_qsos($postData['station_id'], $webadif_api_key, $webadif_api_url);
|
||||
if ($result['status'] == 'OK') {
|
||||
$stationinfo = $this->stations->stations_with_webadif_api_key();
|
||||
$info = $stationinfo->result();
|
||||
|
||||
$data['status'] = 'OK';
|
||||
$data['info'] = $info;
|
||||
$data['infomessage'] = $result['count'] . " QSOs are now uploaded to QO-100 Dx Club";
|
||||
$data['errormessages'] = $result['errormessages'];
|
||||
echo json_encode($data);
|
||||
} else {
|
||||
$data['status'] = 'Error';
|
||||
$data['info'] = 'Error: No QSOs found to upload.';
|
||||
$data['errormessages'] = $result['errormessages'];
|
||||
echo json_encode($data);
|
||||
}
|
||||
$data['status'] = 'OK';
|
||||
$data['info'] = $info;
|
||||
$data['infomessage'] = $result['count'] . " QSOs are now uploaded to QO-100 Dx Club";
|
||||
$data['errormessages'] = $result['errormessages'];
|
||||
echo json_encode($data);
|
||||
} else {
|
||||
$data['status'] = 'Error';
|
||||
$data['info'] = 'Error: No QSOs found to upload.';
|
||||
$data['errormessages'] = $result['errormessages'];
|
||||
echo json_encode($data);
|
||||
}
|
||||
}
|
||||
|
||||
public function mark_webadif() {
|
||||
|
||||
@@ -237,10 +237,17 @@ class Logbook_model extends CI_Model {
|
||||
|
||||
if($station_id == "" || $station_id == "0") {
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('Stations');
|
||||
$station_id = $CI->Stations->find_active();
|
||||
$CI->load->model('stations');
|
||||
$station_id = $CI->stations->find_active();
|
||||
}
|
||||
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('stations');
|
||||
if (!$CI->stations->check_station_is_accessible($station_id)) { // Hard Exit if station_profile not accessible
|
||||
return 'Station not accessible<br>';
|
||||
}
|
||||
|
||||
|
||||
// If station profile has been provided fill in the fields
|
||||
if($station_id != "0") {
|
||||
$station = $this->check_station($station_id);
|
||||
@@ -874,8 +881,8 @@ class Logbook_model extends CI_Model {
|
||||
|
||||
// be sure that station belongs to user
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('Stations');
|
||||
if (!$CI->Stations->check_station_is_accessible($stationId)) {
|
||||
$CI->load->model('stations');
|
||||
if (!$CI->stations->check_station_is_accessible($stationId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1282,75 +1289,95 @@ class Logbook_model extends CI_Model {
|
||||
return $name;
|
||||
}
|
||||
/* Return QSO Info */
|
||||
function qso_info($id) {
|
||||
$this->db->where('COL_PRIMARY_KEY', $id);
|
||||
function qso_info($id) {
|
||||
if ($this->logbook_model->check_qso_is_accessible($id)) {
|
||||
$this->db->where('COL_PRIMARY_KEY', $id);
|
||||
|
||||
return $this->db->get($this->config->item('table_name'));
|
||||
}
|
||||
return $this->db->get($this->config->item('table_name'));
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Set Paper to received
|
||||
function paperqsl_update($qso_id, $method) {
|
||||
function paperqsl_update($qso_id, $method) {
|
||||
if ($this->logbook_model->check_qso_is_accessible($qso_id)) {
|
||||
|
||||
$data = array(
|
||||
'COL_QSLRDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_RCVD' => 'Y',
|
||||
'COL_QSL_RCVD_VIA' => $method
|
||||
);
|
||||
$data = array(
|
||||
'COL_QSLRDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_RCVD' => 'Y',
|
||||
'COL_QSL_RCVD_VIA' => $method
|
||||
);
|
||||
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
}
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Set Paper to sent
|
||||
function paperqsl_update_sent($qso_id, $method) {
|
||||
if ($this->logbook_model->check_qso_is_accessible($qso_id)) {
|
||||
|
||||
$data = array(
|
||||
'COL_QSLSDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_SENT' => 'Y',
|
||||
'COL_QSL_SENT_VIA' => $method
|
||||
);
|
||||
$data = array(
|
||||
'COL_QSLSDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_SENT' => 'Y',
|
||||
'COL_QSL_SENT_VIA' => $method
|
||||
);
|
||||
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Set Paper to requested
|
||||
function paperqsl_requested($qso_id, $method) {
|
||||
if ($this->logbook_model->check_qso_is_accessible($qso_id)) {
|
||||
|
||||
$data = array(
|
||||
'COL_QSLSDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_SENT' => 'R',
|
||||
'COL_QSL_SENT_VIA' => $method
|
||||
);
|
||||
$data = array(
|
||||
'COL_QSLSDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_SENT' => 'R',
|
||||
'COL_QSL_SENT_VIA' => $method
|
||||
);
|
||||
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function paperqsl_ignore($qso_id, $method) {
|
||||
if ($this->logbook_model->check_qso_is_accessible($qso_id)) {
|
||||
|
||||
$data = array(
|
||||
'COL_QSLSDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_SENT' => 'I'
|
||||
);
|
||||
$data = array(
|
||||
'COL_QSLSDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_SENT' => 'I'
|
||||
);
|
||||
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function get_qsos_for_printing($station_id2 = null) {
|
||||
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('Stations');
|
||||
$station_id = $CI->Stations->find_active();
|
||||
$CI->load->model('stations');
|
||||
$station_id = $CI->stations->find_active();
|
||||
|
||||
$sql = 'SELECT
|
||||
STATION_CALLSIGN,
|
||||
@@ -1420,16 +1447,20 @@ class Logbook_model extends CI_Model {
|
||||
}
|
||||
|
||||
function get_qso($id) {
|
||||
$this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.*, coalesce(dxcc_entities_2.name, "- NONE -") as station_country, dxcc_entities_2.end as station_end, eQSL_images.image_file as eqsl_image_file, lotw_users.callsign as lotwuser, lotw_users.lastupload');
|
||||
$this->db->from($this->config->item('table_name'));
|
||||
$this->db->join('dxcc_entities', $this->config->item('table_name').'.col_dxcc = dxcc_entities.adif', 'left');
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id', 'left');
|
||||
$this->db->join('dxcc_entities as dxcc_entities_2', 'station_profile.station_dxcc = dxcc_entities_2.adif', 'left outer');
|
||||
$this->db->join('eQSL_images', $this->config->item('table_name').'.COL_PRIMARY_KEY = eQSL_images.qso_id', 'left outer');
|
||||
$this->db->join('lotw_users', $this->config->item('table_name').'.COL_CALL = lotw_users.callsign', 'left outer');
|
||||
$this->db->where('COL_PRIMARY_KEY', $id);
|
||||
if ($this->logbook_model->check_qso_is_accessible($id)) {
|
||||
$this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.*, coalesce(dxcc_entities_2.name, "- NONE -") as station_country, dxcc_entities_2.end as station_end, eQSL_images.image_file as eqsl_image_file, lotw_users.callsign as lotwuser, lotw_users.lastupload');
|
||||
$this->db->from($this->config->item('table_name'));
|
||||
$this->db->join('dxcc_entities', $this->config->item('table_name').'.col_dxcc = dxcc_entities.adif', 'left');
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id', 'left');
|
||||
$this->db->join('dxcc_entities as dxcc_entities_2', 'station_profile.station_dxcc = dxcc_entities_2.adif', 'left outer');
|
||||
$this->db->join('eQSL_images', $this->config->item('table_name').'.COL_PRIMARY_KEY = eQSL_images.qso_id', 'left outer');
|
||||
$this->db->join('lotw_users', $this->config->item('table_name').'.COL_CALL = lotw_users.callsign', 'left outer');
|
||||
$this->db->where('COL_PRIMARY_KEY', $id);
|
||||
|
||||
return $this->db->get();
|
||||
return $this->db->get();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1452,62 +1483,72 @@ class Logbook_model extends CI_Model {
|
||||
/*
|
||||
* Function returns the QSOs from the logbook, which have not been either marked as uploaded to qrz, or has been modified with an edit
|
||||
*/
|
||||
function get_qrz_qsos($station_id){
|
||||
$sql = 'select *, dxcc_entities.name as station_country from ' . $this->config->item('table_name') . ' thcv ' .
|
||||
' left join station_profile on thcv.station_id = station_profile.station_id' .
|
||||
' left outer join dxcc_entities on thcv.col_my_dxcc = dxcc_entities.adif' .
|
||||
' where thcv.station_id = ' . $station_id .
|
||||
' and (COL_QRZCOM_QSO_UPLOAD_STATUS is NULL
|
||||
or COL_QRZCOM_QSO_UPLOAD_STATUS = ""
|
||||
or COL_QRZCOM_QSO_UPLOAD_STATUS = "M"
|
||||
or COL_QRZCOM_QSO_UPLOAD_STATUS = "N")';
|
||||
function get_qrz_qsos($station_id, $trusted = false){
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('stations');
|
||||
if ((!$trusted) && (!$CI->stations->check_station_is_accessible($station_id))) {
|
||||
return;
|
||||
}
|
||||
$sql = 'select *, dxcc_entities.name as station_country from ' . $this->config->item('table_name') . ' thcv ' .
|
||||
' left join station_profile on thcv.station_id = station_profile.station_id' .
|
||||
' left outer join dxcc_entities on thcv.col_my_dxcc = dxcc_entities.adif' .
|
||||
' where thcv.station_id = ' . $station_id .
|
||||
' and (COL_QRZCOM_QSO_UPLOAD_STATUS is NULL
|
||||
or COL_QRZCOM_QSO_UPLOAD_STATUS = ""
|
||||
or COL_QRZCOM_QSO_UPLOAD_STATUS = "M"
|
||||
or COL_QRZCOM_QSO_UPLOAD_STATUS = "N")';
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
return $query;
|
||||
}
|
||||
$query = $this->db->query($sql);
|
||||
return $query;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function returns the QSOs from the logbook, which have not been either marked as uploaded to webADIF
|
||||
*/
|
||||
function get_webadif_qsos($station_id,$from = null, $to = null){
|
||||
$sql = "
|
||||
function get_webadif_qsos($station_id,$from = null, $to = null,$trusted = false){
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('stations');
|
||||
if ((!$trusted) && (!$CI->stations->check_station_is_accessible($station_id))) {
|
||||
return;
|
||||
}
|
||||
$sql = "
|
||||
SELECT qsos.*, station_profile.*, dxcc_entities.name as station_country
|
||||
FROM %s qsos
|
||||
INNER JOIN station_profile ON qsos.station_id = station_profile.station_id
|
||||
LEFT JOIN dxcc_entities on qsos.col_my_dxcc = dxcc_entities.adif
|
||||
LEFT OUTER JOIN webadif ON qsos.COL_PRIMARY_KEY = webadif.qso_id
|
||||
WHERE qsos.station_id = %d
|
||||
AND qsos.COL_SAT_NAME = 'QO-100'
|
||||
AND qsos.COL_SAT_NAME = 'QO-100'
|
||||
AND webadif.upload_date IS NULL
|
||||
";
|
||||
$sql = sprintf(
|
||||
$sql,
|
||||
$this->config->item('table_name'),
|
||||
$station_id
|
||||
);
|
||||
if ($from) {
|
||||
$from = DateTime::createFromFormat('d/m/Y', $from);
|
||||
$from = $from->format('Y-m-d');
|
||||
$sql = sprintf(
|
||||
$sql,
|
||||
$this->config->item('table_name'),
|
||||
$station_id
|
||||
);
|
||||
if ($from) {
|
||||
$from = DateTime::createFromFormat('d/m/Y', $from);
|
||||
$from = $from->format('Y-m-d');
|
||||
|
||||
$sql.=" AND qsos.COL_TIME_ON >= %s";
|
||||
$sql=sprintf(
|
||||
$sql,
|
||||
$this->db->escape($from)
|
||||
);
|
||||
}
|
||||
if ($to) {
|
||||
$to = DateTime::createFromFormat('d/m/Y', $to);
|
||||
$to = $to->format('Y-m-d');
|
||||
$sql.=" AND qsos.COL_TIME_ON >= %s";
|
||||
$sql=sprintf(
|
||||
$sql,
|
||||
$this->db->escape($from)
|
||||
);
|
||||
}
|
||||
if ($to) {
|
||||
$to = DateTime::createFromFormat('d/m/Y', $to);
|
||||
$to = $to->format('Y-m-d');
|
||||
|
||||
$sql.=" AND qsos.COL_TIME_ON <= %s";
|
||||
$sql=sprintf(
|
||||
$sql,
|
||||
$this->db->escape($to)
|
||||
);
|
||||
}
|
||||
$sql.=" AND qsos.COL_TIME_ON <= %s";
|
||||
$sql=sprintf(
|
||||
$sql,
|
||||
$this->db->escape($to)
|
||||
);
|
||||
}
|
||||
|
||||
return $this->db->query($sql);
|
||||
}
|
||||
return $this->db->query($sql);
|
||||
}
|
||||
|
||||
/*
|
||||
* Function returns all the station_id's with HRDLOG Code
|
||||
@@ -1706,26 +1747,7 @@ class Logbook_model extends CI_Model {
|
||||
return $query;
|
||||
}
|
||||
|
||||
function get_date_qsos($date) {
|
||||
$this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME');
|
||||
$this->db->order_by("COL_TIME_ON", "desc");
|
||||
$start = $date." 00:00:00";
|
||||
$end = $date." 23:59:59";
|
||||
|
||||
$this->db->where("COL_TIME_ON BETWEEN '".$start."' AND '".$end."'");
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
function get_todays_qsos() {
|
||||
$morning = date('Y-m-d 00:00:00');
|
||||
$night = date('Y-m-d 23:59:59');
|
||||
$query = $this->db->query('SELECT * FROM '.$this->config->item('table_name').' WHERE COL_TIME_ON between \''.$morning.'\' AND \''.$night.'\'');
|
||||
return $query;
|
||||
}
|
||||
|
||||
function totals_year() {
|
||||
function totals_year() {
|
||||
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('logbooks_model');
|
||||
@@ -1951,8 +1973,8 @@ class Logbook_model extends CI_Model {
|
||||
/* Return QSOs for the year for the active profile */
|
||||
function map_all_qsos_for_active_station_profile() {
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('Stations');
|
||||
$station_id = $CI->Stations->find_active();
|
||||
$CI->load->model('stations');
|
||||
$station_id = $CI->stations->find_active();
|
||||
|
||||
$this->db->where("station_id", $station_id);
|
||||
$this->db->order_by("COL_TIME_ON", "ASC");
|
||||
@@ -2620,10 +2642,14 @@ class Logbook_model extends CI_Model {
|
||||
}
|
||||
|
||||
/* Delete QSO based on the QSO ID */
|
||||
function delete($id) {
|
||||
$this->db->where('COL_PRIMARY_KEY', $id);
|
||||
$this->db->delete($this->config->item('table_name'));
|
||||
}
|
||||
function delete($id) {
|
||||
if ($this->check_qso_is_accessible($id)) {
|
||||
$this->db->where('COL_PRIMARY_KEY', $id);
|
||||
$this->db->delete($this->config->item('table_name'));
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Used to check if the qso is already in the database */
|
||||
function import_check($datetime, $callsign, $band, $mode, $station_callsign) {
|
||||
@@ -2741,12 +2767,12 @@ class Logbook_model extends CI_Model {
|
||||
function import($record, $station_id = "0", $skipDuplicate = false, $markLotw = false, $dxccAdif = false, $markQrz = false, $markHrd = false,$skipexport = false, $operatorName = false, $apicall = false) {
|
||||
// be sure that station belongs to user
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('Stations');
|
||||
if (!$CI->Stations->check_station_is_accessible($station_id) && $apicall == false ) {
|
||||
$CI->load->model('stations');
|
||||
if (!$CI->stations->check_station_is_accessible($station_id) && $apicall == false ) {
|
||||
return 'Station not accessible<br>';
|
||||
}
|
||||
|
||||
$station_profile=$CI->Stations->profile_clean($station_id);
|
||||
$station_profile=$CI->stations->profile_clean($station_id);
|
||||
$station_profile_call=$station_profile->station_callsign;
|
||||
|
||||
if (($station_id !=0 ) && (!(isset($record['station_callsign'])))) {
|
||||
@@ -3057,8 +3083,8 @@ class Logbook_model extends CI_Model {
|
||||
// Get active station_id from station profile if one hasn't been provided
|
||||
if($station_id == "" || $station_id == "0") {
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('Stations');
|
||||
$station_id = $CI->Stations->find_active();
|
||||
$CI->load->model('stations');
|
||||
$station_id = $CI->stations->find_active();
|
||||
}
|
||||
|
||||
// Check if QSO is already in the database
|
||||
|
||||
Reference in New Issue
Block a user