| 
									
										
										
										
											2011-04-25 23:24:01 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Dashboard extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 	/* | 
					
						
							|  |  |  | 		TODO | 
					
						
							|  |  |  | 			- DXCLuster Spots | 
					
						
							|  |  |  | 			- Breakdown of QSOs per band/mode | 
					
						
							|  |  |  | 			- Countries worked | 
					
						
							|  |  |  | 	*/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-25 23:24:01 +08:00
										 |  |  | 	public function index() | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 	 | 
					
						
							|  |  |  | 		// Database connections
 | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							| 
									
										
										
										
											2011-08-20 01:24:56 +08:00
										 |  |  | 		$this->load->model('user_model'); | 
					
						
							|  |  |  | 		if(!$this->user_model->authorize($this->config->item('auth_mode'))) { | 
					
						
							|  |  |  | 			if($this->user_model->validate_session()) { | 
					
						
							|  |  |  | 				$this->user_model->clear_session(); | 
					
						
							|  |  |  | 				show_error('Access denied<p>Click <a href="'.site_url('user/login').'">here</a> to log in as another user', 403); | 
					
						
							|  |  |  | 			} else { | 
					
						
							|  |  |  | 				redirect('user/login'); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 		 | 
					
						
							|  |  |  | 		// Store info
 | 
					
						
							|  |  |  | 		$data['todays_qsos'] = $this->logbook_model->todays_qsos(); | 
					
						
							|  |  |  | 		$data['total_qsos'] = $this->logbook_model->total_qsos(); | 
					
						
							|  |  |  | 		$data['month_qsos'] = $this->logbook_model->month_qsos(); | 
					
						
							|  |  |  | 		$data['year_qsos'] = $this->logbook_model->year_qsos(); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$data['total_ssb'] = $this->logbook_model->total_ssb(); | 
					
						
							|  |  |  | 		$data['total_cw'] = $this->logbook_model->total_cw(); | 
					
						
							|  |  |  | 		$data['total_fm'] = $this->logbook_model->total_fm(); | 
					
						
							|  |  |  | 		$data['total_digi'] = $this->logbook_model->total_digi(); | 
					
						
							|  |  |  | 		 | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 		$data['total_countrys'] = $this->logbook_model->total_countrys(); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$data['total_qsl_sent'] = $this->logbook_model->total_qsl_sent(); | 
					
						
							|  |  |  | 		$data['total_qsl_recv'] = $this->logbook_model->total_qsl_recv(); | 
					
						
							| 
									
										
										
										
											2011-09-23 03:58:58 +08:00
										 |  |  | 		$data['total_qsl_requested'] = $this->logbook_model->total_qsl_requested(); | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 		 | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 		$data['total_bands'] = $this->logbook_model->total_bands(); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$data['last_five_qsos'] = $this->logbook_model->get_last_qsos('9'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2011-04-25 23:24:01 +08:00
										 |  |  | 		$this->load->view('layout/header'); | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 		$this->load->view('dashboard/index', $data); | 
					
						
							| 
									
										
										
										
											2011-04-25 23:24:01 +08:00
										 |  |  | 		$this->load->view('layout/footer'); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 	function map() { | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 		 | 
					
						
							| 
									
										
										
										
											2011-10-05 22:21:18 +08:00
										 |  |  | 		$this->load->library('qra'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 		//echo date('Y-m-d')
 | 
					
						
							|  |  |  | 		$raw = strtotime('Monday last week'); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$mon = date('Y-m-d', $raw); | 
					
						
							|  |  |  | 		$sun = date('Y-m-d', strtotime('Sunday this week')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$qsos = $this->logbook_model->map_week_qsos($mon, $sun); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		echo "{\"markers\": ["; | 
					
						
							| 
									
										
										
										
											2011-09-30 01:07:21 +08:00
										 |  |  | 		$count = 1; | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 		foreach ($qsos->result() as $row) { | 
					
						
							|  |  |  | 			//print_r($row);
 | 
					
						
							|  |  |  | 			if($row->COL_GRIDSQUARE != null) { | 
					
						
							| 
									
										
										
										
											2011-10-05 22:21:18 +08:00
										 |  |  | 				$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE); | 
					
						
							| 
									
										
										
										
											2011-09-30 01:07:21 +08:00
										 |  |  | 				if($count != 1) { | 
					
						
							|  |  |  | 					echo ","; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				$count++; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 			} else { | 
					
						
							|  |  |  | 				$query = $this->db->query(' | 
					
						
							|  |  |  | 					SELECT * | 
					
						
							|  |  |  | 					FROM dxcc | 
					
						
							|  |  |  | 					WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) ) | 
					
						
							|  |  |  | 					ORDER BY LENGTH( prefix ) DESC | 
					
						
							|  |  |  | 					LIMIT 1  | 
					
						
							|  |  |  | 				'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				foreach ($query->result() as $dxcc) { | 
					
						
							| 
									
										
										
										
											2011-09-30 01:07:21 +08:00
										 |  |  | 					if($count != 1) { | 
					
						
							|  |  |  | 					echo ","; | 
					
						
							|  |  |  | 						} | 
					
						
							|  |  |  | 					echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; | 
					
						
							|  |  |  | 					$count++; | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		echo "]"; | 
					
						
							|  |  |  | 		echo "}"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 	function todays_map() { | 
					
						
							| 
									
										
										
										
											2011-10-05 22:21:18 +08:00
										 |  |  | 		$this->load->library('qra'); | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 		$this->load->model('logbook_model'); | 
					
						
							| 
									
										
										
										
											2011-08-20 01:24:56 +08:00
										 |  |  | 		// TODO: Auth
 | 
					
						
							| 
									
										
										
										
											2011-09-13 00:39:06 +08:00
										 |  |  | 		$qsos = $this->logbook_model->get_todays_qsos(''); | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		echo "{\"markers\": ["; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		foreach ($qsos->result() as $row) { | 
					
						
							|  |  |  | 			//print_r($row);
 | 
					
						
							|  |  |  | 			if($row->COL_GRIDSQUARE != null) { | 
					
						
							| 
									
										
										
										
											2011-10-05 22:21:18 +08:00
										 |  |  | 				$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE); | 
					
						
							| 
									
										
										
										
											2011-06-17 20:52:00 +08:00
										 |  |  | 				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: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"},"; | 
					
						
							|  |  |  | 			} else { | 
					
						
							|  |  |  | 				$query = $this->db->query(' | 
					
						
							|  |  |  | 					SELECT * | 
					
						
							|  |  |  | 					FROM dxcc | 
					
						
							|  |  |  | 					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: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"},"; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			 | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		echo "]"; | 
					
						
							|  |  |  | 		echo "}"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2011-09-22 05:17:24 +08:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2011-10-05 22:21:18 +08:00
										 |  |  | } |