| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							| 
									
										
										
										
											2019-05-14 18:25:57 +08:00
										 |  |  | 	Handles Displaying of information for station tools. | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Station extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-09 06:54:29 +08:00
										 |  |  | 	function __construct() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		parent::__construct(); | 
					
						
							|  |  |  | 		$this->load->helper(array('form', 'url')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$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'); } | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 	public function index() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		$this->load->model('stations'); | 
					
						
							| 
									
										
										
										
											2019-09-24 00:29:22 +08:00
										 |  |  | 		$this->load->model('Logbook_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-25 07:38:13 +08:00
										 |  |  | 		$data['stations'] = $this->stations->all_with_count(); | 
					
						
							| 
									
										
										
										
											2019-09-24 00:29:22 +08:00
										 |  |  | 		$data['current_active'] = $this->stations->find_active(); | 
					
						
							|  |  |  | 		$data['is_there_qsos_with_no_station_id'] = $this->Logbook_model->check_for_station_id(); | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Render Page
 | 
					
						
							|  |  |  | 		$data['page_title'] = "Station Profiles"; | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  | 		$this->load->view('interface_assets/header', $data); | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 		$this->load->view('station_profile/index'); | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  | 		$this->load->view('interface_assets/footer'); | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function create()  | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		$this->load->model('stations'); | 
					
						
							|  |  |  | 		$this->load->model('dxcc'); | 
					
						
							|  |  |  | 		$data['dxcc_list'] = $this->dxcc->list(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-07 05:47:39 +08:00
										 |  |  |         $this->load->model('logbook_model'); | 
					
						
							|  |  |  |         $data['iota_list'] = $this->logbook_model->fetchIota(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 		$this->load->library('form_validation'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->form_validation->set_rules('station_profile_name', 'Station Profile Name', 'required'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if ($this->form_validation->run() == FALSE) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$data['page_title'] = "Create Station Profile"; | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  | 			$this->load->view('interface_assets/header', $data); | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 			$this->load->view('station_profile/create'); | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  | 			$this->load->view('interface_assets/footer'); | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 		{	 | 
					
						
							|  |  |  | 			$this->stations->add(); | 
					
						
							|  |  |  | 			 | 
					
						
							|  |  |  | 			redirect('station'); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-04 05:18:14 +08:00
										 |  |  | 	public function edit($id) | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2019-10-04 05:18:14 +08:00
										 |  |  | 		$this->load->library('form_validation'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('stations'); | 
					
						
							|  |  |  | 		$this->load->model('dxcc'); | 
					
						
							| 
									
										
										
										
											2020-10-07 05:47:39 +08:00
										 |  |  |         $this->load->model('logbook_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $data['iota_list'] = $this->logbook_model->fetchIota(); | 
					
						
							| 
									
										
										
										
											2019-10-04 05:18:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-06 02:16:05 +08:00
										 |  |  | 		$item_id_clean = $this->security->xss_clean($id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$station_profile_query = $this->stations->profile($item_id_clean); | 
					
						
							| 
									
										
										
										
											2019-10-04 05:18:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$data['my_station_profile'] = $station_profile_query->row(); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$data['dxcc_list'] = $this->dxcc->list(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['page_title'] = "Edit Station Profile"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->form_validation->set_rules('station_profile_name', 'Station Profile Name', 'required'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         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(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-06 02:16:05 +08:00
										 |  |  |             $data['notice'] = "Station Profile ".$this->security->xss_clean($this->input->post('station_profile_name', true))." Updated"; | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-04 05:18:14 +08:00
										 |  |  |             redirect('station'); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-24 00:29:22 +08:00
										 |  |  | 	function reassign_profile($id) { | 
					
						
							|  |  |  | 		// $id is the profile that needs reassigned to QSOs
 | 
					
						
							|  |  |  | 		$this->load->model('stations'); | 
					
						
							|  |  |  | 		$this->stations->reassign($id); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		//$this->stations->logbook_session_data();
 | 
					
						
							| 
									
										
										
										
											2019-09-24 01:36:17 +08:00
										 |  |  | 		redirect('station'); | 
					
						
							| 
									
										
										
										
											2019-09-24 00:29:22 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function set_active($current, $new) { | 
					
						
							|  |  |  | 		$this->load->model('stations'); | 
					
						
							|  |  |  | 		$this->stations->set_active($current, $new); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		//$this->stations->logbook_session_data();
 | 
					
						
							|  |  |  | 		redirect('station'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-03 19:56:25 +08:00
										 |  |  | 	function assign_all() { | 
					
						
							|  |  |  | 		$this->load->model('Logbook_model'); | 
					
						
							|  |  |  | 		$this->Logbook_model->update_all_station_ids(); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		redirect('station'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | 	public function delete($id) { | 
					
						
							|  |  |  | 		$this->load->model('stations'); | 
					
						
							|  |  |  | 		$this->stations->delete($id); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		redirect('station'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 21:54:49 +08:00
										 |  |  |     public function deletelog($id) { | 
					
						
							|  |  |  |         $this->load->model('stations'); | 
					
						
							|  |  |  |         $this->stations->deletelog($id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         redirect('station'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-24 22:29:29 +08:00
										 |  |  |     /* | 
					
						
							|  |  |  | 	 * Function is used for autocompletion of Counties in the station profile form | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  |     public function get_county() { | 
					
						
							|  |  |  |         $json = []; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if(!empty($this->input->get("query"))) { | 
					
						
							|  |  |  |             $query = isset($_GET['query']) ? $_GET['query'] : FALSE; | 
					
						
							|  |  |  |             $county = $this->input->get("state"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $file = 'assets/json/US_counties.csv'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (is_readable($file)) { | 
					
						
							|  |  |  |                 $lines = file($file, FILE_IGNORE_NEW_LINES); | 
					
						
							|  |  |  |                 $input = preg_quote($county, '~'); | 
					
						
							|  |  |  |                 $reg = '~^'. $input .'(.*)$~'; | 
					
						
							|  |  |  |                 $result = preg_grep($reg, $lines); | 
					
						
							|  |  |  |                 $json = []; | 
					
						
							|  |  |  |                 $i = 0; | 
					
						
							|  |  |  |                 foreach ($result as &$value) { | 
					
						
							|  |  |  |                     $county = explode(',', $value); | 
					
						
							|  |  |  |                     // Limit to 100 as to not slowdown browser too much
 | 
					
						
							|  |  |  |                     if (count($json) <= 100) { | 
					
						
							|  |  |  |                         $json[] = ["name"=>$county[1]]; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         header('Content-Type: application/json'); | 
					
						
							|  |  |  |         echo json_encode($json); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-02 03:14:25 +08:00
										 |  |  | } |