diff --git a/application/controllers/Backup.php b/application/controllers/Backup.php index 9859c6ab..ba6f928a 100644 --- a/application/controllers/Backup.php +++ b/application/controllers/Backup.php @@ -20,16 +20,23 @@ class Backup extends CI_Controller { } /* Gets all QSOs and Dumps them to logbook.adi */ - public function adif(){ + public function adif($key = null){ + if ($key == null) { + $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'); } + } + $this->load->helper('file'); // Set memory limit to unlimited to allow heavy usage ini_set('memory_limit', '-1'); $this->load->model('adif_data'); - $data['qsos'] = $this->adif_data->export_all(); + $data['qsos'] = $this->adif_data->export_all($key); - if ( ! write_file('backup/logbook.adi', $this->load->view('backup/exportall', $data, true))) + $data['filename'] = 'backup/logbook'. date('_Y_m_d_H_i_s') .'.adi'; + + if ( ! write_file($data['filename'], $this->load->view('backup/exportall', $data, true))) { $data['status'] = false; } @@ -39,6 +46,7 @@ class Backup extends CI_Controller { } $data['page_title'] = "ADIF - Backup"; + $this->load->view('interface_assets/header', $data); $this->load->view('backup/adif_view'); @@ -71,4 +79,4 @@ class Backup extends CI_Controller { } } -/* End of file Backup.php */ \ No newline at end of file +/* End of file Backup.php */ diff --git a/application/models/Adif_data.php b/application/models/Adif_data.php index 294bdcf3..c01a6103 100644 --- a/application/models/Adif_data.php +++ b/application/models/Adif_data.php @@ -2,13 +2,25 @@ class adif_data extends CI_Model { - function export_all() { - $this->load->model('stations'); - $active_station_id = $this->stations->find_active(); + function export_all($api_key = null) { + $CI =& get_instance(); + $CI->load->model('logbooks_model'); + if ($api_key != null) { + $CI->load->model('api_model'); + if (strpos($this->api_model->access($api_key), 'r') !== false) { + $this->api_model->update_last_used($api_key); + $user_id = $this->api_model->key_userid($api_key); + $active_station_logbook = $CI->logbooks_model->find_active_station_logbook_from_userid($user_id); + $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($active_station_logbook); + } + } else { + $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + } + $this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.name as station_country'); - $this->db->where($this->config->item('table_name').'.station_id', $active_station_id); $this->db->order_by("COL_TIME_ON", "ASC"); $this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id'); + $this->db->where_in('station_profile.station_id', $logbooks_locations_array); $this->db->join('dxcc_entities', 'station_profile.station_dxcc = dxcc_entities.adif'); $query = $this->db->get($this->config->item('table_name')); diff --git a/application/views/backup/adif_view.php b/application/views/backup/adif_view.php index c5fb651d..d1ab0fdb 100644 --- a/application/views/backup/adif_view.php +++ b/application/views/backup/adif_view.php @@ -4,7 +4,7 @@ -
The backup of your log completed successfully. The output can be found at: backup/logbook.adi
+The backup of your log completed successfully. The output can be found at:
You could automate this process by making it a cronjob.
@@ -14,4 +14,4 @@ - \ No newline at end of file +