| 
									
										
										
										
											2019-09-12 00:38:09 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 	This controller contains features for contesting | 
					
						
							| 
									
										
										
										
											2019-09-12 00:38:09 +08:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Contesting extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 	function __construct() { | 
					
						
							| 
									
										
										
										
											2021-01-06 00:14:50 +08:00
										 |  |  | 		parent::__construct(); | 
					
						
							|  |  |  | 		$this->lang->load('contesting'); | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-06 00:14:50 +08:00
										 |  |  | 		$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'); } | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  |     public function index() { | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  |         $this->load->model('cat'); | 
					
						
							|  |  |  |         $this->load->model('stations'); | 
					
						
							|  |  |  |         $this->load->model('modes'); | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 		$this->load->model('contesting_model'); | 
					
						
							| 
									
										
										
										
											2022-09-09 02:19:41 +08:00
										 |  |  | 		$this->load->model('bands'); | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 		$data['my_gridsquare'] = $this->stations->find_gridsquare(); | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  |         $data['radios'] = $this->cat->radios(); | 
					
						
							|  |  |  |         $data['modes'] = $this->modes->active(); | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 		$data['contestnames'] = $this->contesting_model->getActivecontests(); | 
					
						
							| 
									
										
										
										
											2022-09-09 02:19:41 +08:00
										 |  |  | 		$data['bands'] = $this->bands->get_user_bands_for_qso_entry(); | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 		$this->load->library('form_validation'); | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $this->form_validation->set_rules('start_date', 'Date', 'required'); | 
					
						
							|  |  |  |         $this->form_validation->set_rules('start_time', 'Time', 'required'); | 
					
						
							|  |  |  |         $this->form_validation->set_rules('callsign', 'Callsign', 'required'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 		$data['page_title'] = "Contest Logging"; | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 		$this->load->view('interface_assets/header', $data); | 
					
						
							|  |  |  | 		$this->load->view('contesting/index'); | 
					
						
							|  |  |  | 		$this->load->view('interface_assets/footer'); | 
					
						
							| 
									
										
										
										
											2020-11-08 17:46:08 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-12-29 02:55:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public function getSessionQsos() { | 
					
						
							|  |  |  |         $this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $qso = $this->input->post('qso'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-11 00:54:24 +08:00
										 |  |  | 		header('Content-Type: application/json'); | 
					
						
							|  |  |  | 		echo json_encode($this->Contesting_model->getSessionQsos($qso)); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function getSession() { | 
					
						
							|  |  |  |         $this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         header('Content-Type: application/json'); | 
					
						
							|  |  |  | 		echo json_encode($this->Contesting_model->getSession()); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function deleteSession() { | 
					
						
							|  |  |  |         $this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $qso = $this->input->post('qso'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $data = $this->Contesting_model->deleteSession($qso); | 
					
						
							| 
									
										
										
										
											2020-12-29 02:55:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return json_encode($data); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-11 00:54:24 +08:00
										 |  |  | 	public function setSession() { | 
					
						
							|  |  |  |         $this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->Contesting_model->setSession(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return json_encode("ok"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 	public function create() { | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 		$this->load->library('form_validation'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->form_validation->set_rules('name', 'Contest Name', 'required'); | 
					
						
							| 
									
										
										
										
											2023-10-06 19:14:54 +08:00
										 |  |  | 		$this->form_validation->set_rules('adifname', 'Adif Contest Name', 'required'); | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		if ($this->form_validation->run() == FALSE) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$data['page_title'] = "Create Mode"; | 
					
						
							|  |  |  | 			$this->load->view('contesting/create', $data); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$this->Contesting_model->add(); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function add() { | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['contests'] = $this->Contesting_model->getAllContests(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Render Page
 | 
					
						
							|  |  |  | 		$data['page_title'] = "Contests"; | 
					
						
							|  |  |  | 		$this->load->view('interface_assets/header', $data); | 
					
						
							|  |  |  | 		$this->load->view('contesting/add'); | 
					
						
							|  |  |  | 		$this->load->view('interface_assets/footer'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-08 03:42:19 +08:00
										 |  |  | 	public function edit($id) { | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							| 
									
										
										
										
											2023-10-06 19:14:54 +08:00
										 |  |  | 		$this->load->library('form_validation'); | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$item_id_clean = $this->security->xss_clean($id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['contest'] = $this->Contesting_model->contest($item_id_clean); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-06 16:48:01 +08:00
										 |  |  | 		$data['page_title'] = lang('admin_contest_edit_update_contest'); | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$this->form_validation->set_rules('name', 'Contest Name', 'required'); | 
					
						
							|  |  |  | 		$this->form_validation->set_rules('adifname', 'Adif Contest Name', 'required'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if ($this->form_validation->run() == FALSE) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$this->load->view('interface_assets/header', $data); | 
					
						
							|  |  |  | 			$this->load->view('contesting/edit'); | 
					
						
							|  |  |  | 			$this->load->view('interface_assets/footer'); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			$this->Contesting_model->edit($item_id_clean); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			$data['notice'] = "Contest ".$this->security->xss_clean($this->input->post('name', true))." Updated"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			redirect('contesting/add'); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function delete() { | 
					
						
							|  |  |  | 		$id = $this->input->post('id'); | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 		$this->Contesting_model->delete($id); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function activate() { | 
					
						
							|  |  |  | 		$id = $this->input->post('id'); | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 		$this->Contesting_model->activate($id); | 
					
						
							|  |  |  | 		header('Content-Type: application/json'); | 
					
						
							|  |  |  | 		echo json_encode(array('message' => 'OK')); | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function deactivate() { | 
					
						
							|  |  |  | 		$id = $this->input->post('id'); | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 		$this->Contesting_model->deactivate($id); | 
					
						
							|  |  |  | 		header('Content-Type: application/json'); | 
					
						
							|  |  |  | 		echo json_encode(array('message' => 'OK')); | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-10-24 01:44:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	public function deactivateall() { | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 		$this->Contesting_model->deactivateall(); | 
					
						
							|  |  |  | 		header('Content-Type: application/json'); | 
					
						
							|  |  |  | 		echo json_encode(array('message' => 'OK')); | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function activateall() { | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							|  |  |  | 		$this->Contesting_model->activateall(); | 
					
						
							|  |  |  | 		header('Content-Type: application/json'); | 
					
						
							|  |  |  | 		echo json_encode(array('message' => 'OK')); | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-10-24 22:48:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* | 
					
						
							|  |  |  | 	 *  Function is used for dupe-checking in contestinglogging | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 	public function checkIfWorkedBefore() { | 
					
						
							|  |  |  | 		$call = $this->input->post('call'); | 
					
						
							|  |  |  | 		$band = $this->input->post('band'); | 
					
						
							|  |  |  | 		$mode = $this->input->post('mode'); | 
					
						
							|  |  |  | 		$contest = $this->input->post('contest'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('Contesting_model'); | 
					
						
							| 
									
										
										
										
											2023-04-11 00:54:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$result = $this->Contesting_model->checkIfWorkedBefore($call, $band, $mode, $contest); | 
					
						
							| 
									
										
										
										
											2021-10-24 22:48:23 +08:00
										 |  |  | 		 | 
					
						
							|  |  |  | 		header('Content-Type: application/json'); | 
					
						
							| 
									
										
										
										
											2023-11-09 22:11:36 +08:00
										 |  |  | 		if ($result && $result->num_rows()) { | 
					
						
							| 
									
										
										
										
											2021-10-24 22:48:23 +08:00
										 |  |  | 			echo json_encode(array('message' => 'Worked before')); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-02-13 06:27:08 +08:00
										 |  |  | } |