Merge branch 'dev' into master
这个提交包含在:
		
						当前提交
						7240713115
					
				
					共有  40 个文件被更改,包括 1058 次插入 和 707 次删除
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -22,3 +22,4 @@ sync.sh | |||
| *.swp | ||||
| .env | ||||
| /node_modules | ||||
| /.vs | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE; | |||
| | | ||||
| */ | ||||
| 
 | ||||
| $config['migration_version'] = 182; | ||||
| $config['migration_version'] = 183; | ||||
| 
 | ||||
| /* | ||||
| |-------------------------------------------------------------------------- | ||||
|  |  | |||
|  | @ -188,6 +188,24 @@ class Dashboard extends CI_Controller | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public function logbook_display_component() { | ||||
| 		$this->load->model('user_model'); | ||||
| 
 | ||||
| 		if ($this->user_model->validate_session() == 0) { | ||||
| 			// User is not logged in
 | ||||
| 		} else { | ||||
| 			$this->load->model('logbook_model'); | ||||
| 			$this->load->model('logbooks_model'); | ||||
| 		} | ||||
| 
 | ||||
| 		// Get Logbook Locations
 | ||||
| 		$logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); | ||||
| 
 | ||||
| 		// Get the last 20 QSOs
 | ||||
| 		$data['last_five_qsos'] = $this->logbook_model->get_last_qsos('20', $logbooks_locations_array); | ||||
| 		$this->load->view('components/dashboard_logbook_table', $data); | ||||
| 	} | ||||
| 
 | ||||
| 	function radio_display_component() | ||||
| 	{ | ||||
| 		$this->load->model('cat'); | ||||
|  |  | |||
|  | @ -1,46 +1,53 @@ | |||
| <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | ||||
| <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); | ||||
| 
 | ||||
| class eqsl extends CI_Controller { | ||||
| class eqsl extends CI_Controller | ||||
| { | ||||
| 
 | ||||
| 	/* Controls who can access the controller and its functions */ | ||||
| 	function __construct() { | ||||
| 	function __construct() | ||||
| 	{ | ||||
| 		parent::__construct(); | ||||
| 		$this->load->helper(array('form', 'url')); | ||||
| 	} | ||||
| 
 | ||||
|     // Default view when loading controller.
 | ||||
|     public function index() { | ||||
| 	// Default view when loading controller.
 | ||||
| 	public function index() | ||||
| 	{ | ||||
| 
 | ||||
|         $this->lang->load('qslcard'); | ||||
| 		$this->lang->load('qslcard'); | ||||
| 		$this->load->helper('storage'); | ||||
|         $folder_name = "images/eqsl_card_images"; | ||||
|         $data['storage_used'] = sizeFormat(folderSize($folder_name)); | ||||
| 		$folder_name = "images/eqsl_card_images"; | ||||
| 		$data['storage_used'] = sizeFormat(folderSize($folder_name)); | ||||
| 
 | ||||
| 
 | ||||
|         // Render Page
 | ||||
|         $data['page_title'] = "eQSL Cards"; | ||||
| 		// Render Page
 | ||||
| 		$data['page_title'] = "eQSL Cards"; | ||||
| 
 | ||||
|         $this->load->model('eqsl_images'); | ||||
|         $data['qslarray'] = $this->eqsl_images->eqsl_qso_list(); | ||||
| 		$this->load->model('eqsl_images'); | ||||
| 		$data['qslarray'] = $this->eqsl_images->eqsl_qso_list(); | ||||
| 
 | ||||
|         $this->load->view('interface_assets/header', $data); | ||||
|         $this->load->view('eqslcard/index'); | ||||
|         $this->load->view('interface_assets/footer'); | ||||
|     } | ||||
| 	public function import() { | ||||
| 		$this->load->view('interface_assets/header', $data); | ||||
| 		$this->load->view('eqslcard/index'); | ||||
| 		$this->load->view('interface_assets/footer'); | ||||
| 	} | ||||
| 	public function import() | ||||
| 	{ | ||||
| 		$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'); } | ||||
| 		if (!$this->user_model->authorize(2)) { | ||||
| 			$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); | ||||
| 			redirect('dashboard'); | ||||
| 		} | ||||
| 
 | ||||
| 		$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); | ||||
| 		$active_station_id = $this->stations->find_active(); | ||||
| 		$station_profile = $this->stations->profile($active_station_id); | ||||
| 		$data['active_station_info'] = $station_profile->row(); | ||||
| 
 | ||||
| 		// Check if eQSL Nicknames have been defined
 | ||||
| 		$this->load->model('eqslmethods_model'); | ||||
| 		$eqsl_locations = $this->eqslmethods_model->all_of_user_with_eqsl_nick_defined(); | ||||
| 		if($eqsl_locations->num_rows() == 0) { | ||||
| 		if ($eqsl_locations->num_rows() == 0) { | ||||
| 			$this->session->set_flashdata('error', 'eQSL Nicknames in Station Profiles aren\'t defined!'); | ||||
| 		} | ||||
| 
 | ||||
|  | @ -53,8 +60,7 @@ class eqsl extends CI_Controller { | |||
| 		$this->load->library('upload', $config); | ||||
| 
 | ||||
| 		$eqsl_results = array(); | ||||
| 		if ($this->input->post('eqslimport') == 'fetch') | ||||
| 		{ | ||||
| 		if ($this->input->post('eqslimport') == 'fetch') { | ||||
| 			$this->load->library('EqslImporter'); | ||||
| 
 | ||||
| 			// Get credentials for eQSL
 | ||||
|  | @ -63,13 +69,12 @@ class eqsl extends CI_Controller { | |||
| 			$eqsl_password = $q->user_eqsl_password; | ||||
| 
 | ||||
| 			// Validate that eQSL credentials are not empty
 | ||||
| 			if ($eqsl_password == '') | ||||
| 			{ | ||||
| 			if ($eqsl_password == '') { | ||||
| 				$this->session->set_flashdata('warning', 'You have not defined your eQSL.cc credentials!'); | ||||
| 				redirect('eqsl/import'); | ||||
| 			} | ||||
| 
 | ||||
| 			$eqsl_force_from_date = (!$this->input->post('eqsl_force_from_date')=="")?$this->input->post('eqsl_force_from_date'):""; | ||||
| 			$eqsl_force_from_date = (!$this->input->post('eqsl_force_from_date') == "") ? $this->input->post('eqsl_force_from_date') : ""; | ||||
| 			foreach ($eqsl_locations->result_array() as $eqsl_location) { | ||||
| 				$this->eqslimporter->from_callsign_and_QTH( | ||||
| 					$eqsl_location['station_callsign'], | ||||
|  | @ -81,11 +86,10 @@ class eqsl extends CI_Controller { | |||
| 				$eqsl_results[] = $this->eqslimporter->fetch($eqsl_password, $eqsl_force_from_date); | ||||
| 			} | ||||
| 		} elseif ($this->input->post('eqslimport') == 'upload') { | ||||
| 			$station_id4upload=$this->input->post('station_profile'); | ||||
| 			$station_id4upload = $this->input->post('station_profile'); | ||||
| 			if ($this->stations->check_station_is_accessible($station_id4upload)) { | ||||
| 				$station_callsign=$this->stations->profile($station_id4upload)->row()->station_callsign; | ||||
| 				if ( ! $this->upload->do_upload()) | ||||
| 				{ | ||||
| 				$station_callsign = $this->stations->profile($station_id4upload)->row()->station_callsign; | ||||
| 				if (!$this->upload->do_upload()) { | ||||
| 					$data['page_title'] = "eQSL Import"; | ||||
| 					$data['error'] = $this->upload->display_errors(); | ||||
| 
 | ||||
|  | @ -98,12 +102,12 @@ class eqsl extends CI_Controller { | |||
| 					$data = array('upload_data' => $this->upload->data()); | ||||
| 
 | ||||
| 					$this->load->library('EqslImporter'); | ||||
| 					$this->eqslimporter->from_file('./uploads/'.$data['upload_data']['file_name'], $station_callsign, $station_id4upload); | ||||
| 					$this->eqslimporter->from_file('./uploads/' . $data['upload_data']['file_name'], $station_callsign, $station_id4upload); | ||||
| 
 | ||||
| 					$eqsl_results[] = $this->eqslimporter->import(); | ||||
| 				} | ||||
| 			} else { | ||||
| 				log_message('error',$station_id4upload." is not valid for user!"); | ||||
| 				log_message('error', $station_id4upload . " is not valid for user!"); | ||||
| 			} | ||||
| 		} else { | ||||
| 			$data['page_title'] = "eQSL Import"; | ||||
|  | @ -123,41 +127,45 @@ class eqsl extends CI_Controller { | |||
| 		$this->load->view('interface_assets/footer'); | ||||
| 	} // end function
 | ||||
| 
 | ||||
| 	public function export() { | ||||
| 	public function export() | ||||
| 	{ | ||||
| 		$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'); } | ||||
| 		if (!$this->user_model->authorize(2)) { | ||||
| 			$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); | ||||
| 			redirect('dashboard'); | ||||
| 		} | ||||
| 
 | ||||
| 		// Check if eQSL Nicknames have been defined
 | ||||
| 			$this->load->model('stations'); | ||||
| 			if($this->stations->are_eqsl_nicks_defined() == 0) { | ||||
| 				$this->session->set_flashdata('error', 'eQSL Nicknames in Station Profiles aren\'t defined!'); | ||||
| 			} | ||||
| 		$this->load->model('stations'); | ||||
| 		if ($this->stations->are_eqsl_nicks_defined() == 0) { | ||||
| 			$this->session->set_flashdata('error', 'eQSL Nicknames in Station Profiles aren\'t defined!'); | ||||
| 		} | ||||
| 
 | ||||
| 		ini_set('memory_limit', '-1'); | ||||
| 		set_time_limit(0); | ||||
| 		$this->load->model('eqslmethods_model'); | ||||
| 		 | ||||
| 
 | ||||
| 		$data['page_title'] = "eQSL QSO Upload"; | ||||
| 		$custom_date_format = $this->session->userdata('user_date_format'); | ||||
| 		 | ||||
| 
 | ||||
| 		if ($this->input->post('eqslexport') == "export") { | ||||
| 			// Get credentials for eQSL
 | ||||
| 			$query = $this->user_model->get_by_id($this->session->userdata('user_id')); | ||||
| 			$q = $query->row(); | ||||
| 			$data['user_eqsl_name'] = $q->user_eqsl_name; | ||||
| 			$data['user_eqsl_password'] = $q->user_eqsl_password; | ||||
| 			 | ||||
| 
 | ||||
| 			// Validate that eQSL credentials are not empty
 | ||||
| 			if ($data['user_eqsl_name'] == '' || $data['user_eqsl_password'] == '') | ||||
| 			{ | ||||
| 				$this->session->set_flashdata('warning', 'You have not defined your eQSL.cc credentials!'); redirect('eqsl/import'); | ||||
| 			if ($data['user_eqsl_name'] == '' || $data['user_eqsl_password'] == '') { | ||||
| 				$this->session->set_flashdata('warning', 'You have not defined your eQSL.cc credentials!'); | ||||
| 				redirect('eqsl/import'); | ||||
| 			} | ||||
| 
 | ||||
| 			$rows = ''; | ||||
| 			// Grab the list of QSOs to send information about
 | ||||
| 			// perform an HTTP get on each one, and grab the status back
 | ||||
| 			$qslsnotsent = $this->eqslmethods_model->eqsl_not_yet_sent(); | ||||
| 			 | ||||
| 
 | ||||
| 			foreach ($qslsnotsent->result_array() as $qsl) { | ||||
| 				$rows .= "<tr>"; | ||||
| 				// eQSL username changes for linked account.
 | ||||
|  | @ -165,21 +173,21 @@ class eqsl extends CI_Controller { | |||
| 				// the password, however, is always the same as the main account
 | ||||
| 				$data['user_eqsl_name'] = $qsl['station_callsign']; | ||||
| 				$adif = $this->generateAdif($qsl, $data); | ||||
| 				 | ||||
| 
 | ||||
| 				$status = $this->uploadQso($adif, $qsl); | ||||
| 				 | ||||
| 
 | ||||
| 				$timestamp = strtotime($qsl['COL_TIME_ON']); | ||||
| 				$rows .= "<td>".date($custom_date_format, $timestamp)."</td>"; | ||||
| 				$rows .= "<td>".date('H:i', $timestamp)."</td>"; | ||||
| 				$rows .= "<td>".str_replace("0","Ø",$qsl['COL_CALL'])."</td>"; | ||||
| 				$rows .= "<td>".$qsl['COL_MODE']."</td>"; | ||||
| 				if(isset($qsl['COL_SUBMODE'])) { | ||||
| 					$rows .= "<td>".$qsl['COL_SUBMODE']."</td>"; | ||||
| 				$rows .= "<td>" . date($custom_date_format, $timestamp) . "</td>"; | ||||
| 				$rows .= "<td>" . date('H:i', $timestamp) . "</td>"; | ||||
| 				$rows .= "<td>" . str_replace("0", "Ø", $qsl['COL_CALL']) . "</td>"; | ||||
| 				$rows .= "<td>" . $qsl['COL_MODE'] . "</td>"; | ||||
| 				if (isset($qsl['COL_SUBMODE'])) { | ||||
| 					$rows .= "<td>" . $qsl['COL_SUBMODE'] . "</td>"; | ||||
| 				} else { | ||||
| 					$rows .= "<td></td>"; | ||||
| 				} | ||||
| 				$rows .= "<td>".$qsl['COL_BAND']."</td>"; | ||||
| 				$rows .= "<td>".$status."</td>"; | ||||
| 				$rows .= "<td>" . $qsl['COL_BAND'] . "</td>"; | ||||
| 				$rows .= "<td>" . $status . "</td>"; | ||||
| 			} | ||||
| 			$rows .= "</tr>"; | ||||
| 			$data['eqsl_table'] = $this->generateResultTable($custom_date_format, $rows); | ||||
|  | @ -189,26 +197,27 @@ class eqsl extends CI_Controller { | |||
| 				$data['eqsl_table'] = $this->writeEqslNotSent($qslsnotsent->result_array(), $custom_date_format); | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 
 | ||||
| 		$this->load->view('interface_assets/header', $data); | ||||
| 		$this->load->view('eqsl/export'); | ||||
| 		$this->load->view('interface_assets/footer'); | ||||
| 	} | ||||
| 
 | ||||
| 	function uploadQso($adif, $qsl) { | ||||
| 	function uploadQso($adif, $qsl) | ||||
| 	{ | ||||
| 		$this->load->model('eqslmethods_model'); | ||||
| 		$status = ""; | ||||
| 		 | ||||
| 
 | ||||
| 		// begin script
 | ||||
| 		$ch = curl_init(); | ||||
| 
 | ||||
| 		// basic curl options for all requests
 | ||||
| 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | ||||
| 		curl_setopt($ch, CURLOPT_HEADER, 1); | ||||
| 		 | ||||
| 
 | ||||
| 		// use the URL we built
 | ||||
| 		curl_setopt($ch, CURLOPT_URL, $adif); | ||||
| 		 | ||||
| 
 | ||||
| 		$result = curl_exec($ch); | ||||
| 		$chi = curl_getinfo($ch); | ||||
| 		curl_close($ch); | ||||
|  | @ -221,21 +230,23 @@ class eqsl extends CI_Controller { | |||
| 			Warning: Y=2013 M=08 D=11 F6ARS 15M JT65 Bad record: Duplicate | ||||
| 			Result: 0 out of 1 records added -> Dupe, OM! | ||||
| 		*/ | ||||
| 		 | ||||
| 
 | ||||
| 		if ($chi['http_code'] == "200") { | ||||
| 			if (stristr($result, "Result: 1 out of 1 records added")) { | ||||
| 				$status = "Sent"; | ||||
| 				$this->eqslmethods_model->eqsl_mark_sent($qsl['COL_PRIMARY_KEY']); | ||||
| 			} else { | ||||
| 				if (stristr($result, "Error: No match on eQSL_User/eQSL_Pswd")) { | ||||
| 					$this->session->set_flashdata('warning', 'Your eQSL username and/or password is incorrect.'); redirect('eqsl/export'); | ||||
| 					$this->session->set_flashdata('warning', 'Your eQSL username and/or password is incorrect.'); | ||||
| 					redirect('eqsl/export'); | ||||
| 				} else { | ||||
| 					if (stristr($result, "Result: 0 out of 0 records added")) { | ||||
| 						$this->session->set_flashdata('warning', 'Something went wrong with eQSL.cc!'); redirect('eqsl/export'); | ||||
| 						$this->session->set_flashdata('warning', 'Something went wrong with eQSL.cc!'); | ||||
| 						redirect('eqsl/export'); | ||||
| 					} else { | ||||
| 						if (stristr($result, "Bad record: Duplicate")) { | ||||
| 							$status = "Duplicate"; | ||||
| 							 | ||||
| 
 | ||||
| 							# Mark the QSL as sent if this is a dupe.
 | ||||
| 							$this->eqslmethods_model->eqsl_mark_sent($qsl['COL_PRIMARY_KEY']); | ||||
| 						} | ||||
|  | @ -244,14 +255,17 @@ class eqsl extends CI_Controller { | |||
| 			} | ||||
| 		} else { | ||||
| 			if ($chi['http_code'] == "500") { | ||||
| 				$this->session->set_flashdata('warning', 'eQSL.cc is experiencing issues. Please try exporting QSOs later.'); redirect('eqsl/export'); | ||||
| 				$this->session->set_flashdata('warning', 'eQSL.cc is experiencing issues. Please try exporting QSOs later.'); | ||||
| 				redirect('eqsl/export'); | ||||
| 			} else { | ||||
| 				if ($chi['http_code'] == "400") { | ||||
| 					$this->session->set_flashdata('warning', 'There was an error in one of the QSOs. You might want to manually upload them.'); redirect('eqsl/export'); | ||||
| 					$this->session->set_flashdata('warning', 'There was an error in one of the QSOs. You might want to manually upload them.'); | ||||
| 					redirect('eqsl/export'); | ||||
| 					$status = "Error"; | ||||
| 				} else { | ||||
| 					if ($chi['http_code'] == "404") { | ||||
| 						$this->session->set_flashdata('warning', 'It seems that the eQSL site has changed. Please open up an issue on GitHub.'); redirect('eqsl/export'); | ||||
| 						$this->session->set_flashdata('warning', 'It seems that the eQSL site has changed. Please open up an issue on GitHub.'); | ||||
| 						redirect('eqsl/export'); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | @ -260,18 +274,19 @@ class eqsl extends CI_Controller { | |||
| 		return $status; | ||||
| 	} | ||||
| 
 | ||||
| 	function generateResultTable($custom_date_format, $rows) { | ||||
| 	function generateResultTable($custom_date_format, $rows) | ||||
| 	{ | ||||
| 		$table = '<table = style="width:100%" class="table-sm table table-bordered table-hover table-striped table-condensed text-center">'; | ||||
| 			$table .= "<thead><tr class=\"titles\">"; | ||||
| 				$table .= "<th>Date</th>"; | ||||
| 				$table .= "<th>Time</th>"; | ||||
| 				$table .= "<th>Call</th>"; | ||||
| 				$table .= "<th>Mode</th>"; | ||||
| 				$table .= "<th>Submode</th>"; | ||||
| 				$table .= "<th>Band</th>"; | ||||
| 				$table .= "<th>Status</th>"; | ||||
| 			$table .= "</tr></thead><tbody>"; | ||||
| 		 | ||||
| 		$table .= "<thead><tr class=\"titles\">"; | ||||
| 		$table .= "<th>Date</th>"; | ||||
| 		$table .= "<th>Time</th>"; | ||||
| 		$table .= "<th>Call</th>"; | ||||
| 		$table .= "<th>Mode</th>"; | ||||
| 		$table .= "<th>Submode</th>"; | ||||
| 		$table .= "<th>Band</th>"; | ||||
| 		$table .= "<th>Status</th>"; | ||||
| 		$table .= "</tr></thead><tbody>"; | ||||
| 
 | ||||
| 		$table .= $rows; | ||||
| 		$table .= "</tbody></table>"; | ||||
| 
 | ||||
|  | @ -279,14 +294,15 @@ class eqsl extends CI_Controller { | |||
| 	} | ||||
| 
 | ||||
| 	// Build out the ADIF info string according to specs https://eqsl.cc/qslcard/ADIFContentSpecs.cfm
 | ||||
| 	function generateAdif($qsl, $data) { | ||||
| 		$COL_QSO_DATE = date('Ymd',strtotime($qsl['COL_TIME_ON'])); | ||||
| 		$COL_TIME_ON = date('Hi',strtotime($qsl['COL_TIME_ON'])); | ||||
| 		 | ||||
| 	function generateAdif($qsl, $data) | ||||
| 	{ | ||||
| 		$COL_QSO_DATE = date('Ymd', strtotime($qsl['COL_TIME_ON'])); | ||||
| 		$COL_TIME_ON = date('Hi', strtotime($qsl['COL_TIME_ON'])); | ||||
| 
 | ||||
| 		# Set up the single record file
 | ||||
| 		$adif = "https://www.eqsl.cc/qslcard/importADIF.cfm?"; | ||||
| 		$adif .= "ADIFData=CloudlogUpload%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		/* Handy reference of escaping chars | ||||
| 			"<" = 3C | ||||
| 			">" = 3E | ||||
|  | @ -297,7 +313,7 @@ class eqsl extends CI_Controller { | |||
| 			"." = 2E | ||||
| 			"&" = 26 | ||||
| 		*/ | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "ADIF%5FVER"; | ||||
| 		$adif .= "%3A"; | ||||
|  | @ -305,7 +321,7 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= "1%2E00 "; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "EQSL%5FUSER"; | ||||
| 		$adif .= "%3A"; | ||||
|  | @ -313,7 +329,7 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $data['user_eqsl_name']; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "EQSL%5FPSWD"; | ||||
| 		$adif .= "%3A"; | ||||
|  | @ -321,11 +337,11 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= urlencode($data['user_eqsl_password']); | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "EOH"; | ||||
| 		$adif .= "%3E"; | ||||
| 		 | ||||
| 
 | ||||
| 		# Lay out the required fields
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "QSO%5FDATE"; | ||||
|  | @ -334,7 +350,7 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $COL_QSO_DATE; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "TIME%5FON"; | ||||
| 		$adif .= "%3A"; | ||||
|  | @ -342,7 +358,7 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $COL_TIME_ON; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "CALL"; | ||||
| 		$adif .= "%3A"; | ||||
|  | @ -350,7 +366,7 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $qsl['COL_CALL']; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "MODE"; | ||||
| 		$adif .= "%3A"; | ||||
|  | @ -358,15 +374,15 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $qsl['COL_MODE']; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 		if(isset($qsl['COL_SUBMODE'])) { | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "SUBMODE"; | ||||
| 		$adif .= "%3A"; | ||||
| 		$adif .= strlen($qsl['COL_SUBMODE']); | ||||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $qsl['COL_SUBMODE']; | ||||
| 		$adif .= "%20"; | ||||
| 
 | ||||
| 		if (isset($qsl['COL_SUBMODE'])) { | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "SUBMODE"; | ||||
| 			$adif .= "%3A"; | ||||
| 			$adif .= strlen($qsl['COL_SUBMODE']); | ||||
| 			$adif .= "%3E"; | ||||
| 			$adif .= $qsl['COL_SUBMODE']; | ||||
| 			$adif .= "%20"; | ||||
| 		} | ||||
| 
 | ||||
| 		$adif .= "%3C"; | ||||
|  | @ -376,9 +392,9 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3E"; | ||||
| 		$adif .= $qsl['COL_BAND']; | ||||
| 		$adif .= "%20"; | ||||
| 		 | ||||
| 
 | ||||
| 		# End all the required fields
 | ||||
| 		 | ||||
| 
 | ||||
| 		// adding RST_Sent
 | ||||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "RST%5FSENT"; | ||||
|  | @ -389,7 +405,7 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%20"; | ||||
| 
 | ||||
| 		// adding prop mode if it isn't blank
 | ||||
| 		if ($qsl['COL_PROP_MODE']){ | ||||
| 		if ($qsl['COL_PROP_MODE']) { | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "PROP%5FMODE"; | ||||
| 			$adif .= "%3A"; | ||||
|  | @ -400,7 +416,7 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 
 | ||||
| 		// adding sat name if it isn't blank
 | ||||
| 		if ($qsl['COL_SAT_NAME'] != ''){ | ||||
| 		if ($qsl['COL_SAT_NAME'] != '') { | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "SAT%5FNAME"; | ||||
| 			$adif .= "%3A"; | ||||
|  | @ -411,7 +427,7 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 
 | ||||
| 		// adding sat mode if it isn't blank
 | ||||
| 		if ($qsl['COL_SAT_MODE'] != ''){ | ||||
| 		if ($qsl['COL_SAT_MODE'] != '') { | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "SAT%5FMODE"; | ||||
| 			$adif .= "%3A"; | ||||
|  | @ -422,18 +438,18 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 
 | ||||
| 		// adding qslmsg if it isn't blank
 | ||||
| 		if ($qsl['COL_QSLMSG'] != ''){ | ||||
| 			$qsl['COL_QSLMSG'] = str_replace(array(chr(10),chr(13)),array(' ',' '),$qsl['COL_QSLMSG']); | ||||
| 		if ($qsl['COL_QSLMSG'] != '') { | ||||
| 			$qsl['COL_QSLMSG'] = str_replace(array(chr(10), chr(13)), array(' ', ' '), $qsl['COL_QSLMSG']); | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "QSLMSG"; | ||||
| 			$adif .= "%3A"; | ||||
| 			$adif .= strlen($qsl['COL_QSLMSG']); | ||||
| 			$adif .= "%3E"; | ||||
| 			$adif .= str_replace('&','%26',$qsl['COL_QSLMSG']); | ||||
| 			$adif .= str_replace('&', '%26', $qsl['COL_QSLMSG']); | ||||
| 			$adif .= "%20"; | ||||
| 		} | ||||
| 
 | ||||
| 		if ($qsl['eqslqthnickname'] != ''){ | ||||
| 		if ($qsl['eqslqthnickname'] != '') { | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "APP%5FEQSL%5FQTH%5FNICKNAME"; | ||||
| 			$adif .= "%3A"; | ||||
|  | @ -444,7 +460,7 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 
 | ||||
| 		// adding sat mode if it isn't blank
 | ||||
| 		if ($qsl['station_gridsquare'] != ''){ | ||||
| 		if ($qsl['station_gridsquare'] != '') { | ||||
| 			$adif .= "%3C"; | ||||
| 			$adif .= "MY%5FGRIDSQUARE"; | ||||
| 			$adif .= "%3A"; | ||||
|  | @ -458,41 +474,41 @@ class eqsl extends CI_Controller { | |||
| 		$adif .= "%3C"; | ||||
| 		$adif .= "EOR"; | ||||
| 		$adif .= "%3E"; | ||||
| 		 | ||||
| 
 | ||||
| 		# Make sure we don't have any spaces
 | ||||
| 		$adif = str_replace(" ", '%20', $adif); | ||||
| 
 | ||||
| 		return $adif; | ||||
| 	} | ||||
| 
 | ||||
| 	function writeEqslNotSent($qslsnotsent, $custom_date_format) { | ||||
| 	function writeEqslNotSent($qslsnotsent, $custom_date_format) | ||||
| 	{ | ||||
| 		$table = '<table = style="width:100%" class="table-sm table qsotable table-bordered table-hover table-striped table-condensed text-center">'; | ||||
| 			$table .= "<thead><tr class=\"titles\">"; | ||||
| 				$table .= "<th>Date</th>"; | ||||
| 				$table .= "<th>Time</th>"; | ||||
| 				$table .= "<th>Call</th>"; | ||||
| 				$table .= "<th>Mode</th>"; | ||||
| 				$table .= "<th>Submode</th>"; | ||||
| 				$table .= "<th>Band</th>"; | ||||
| 				$table .= "<th>eQSL QTH Nickname</th>"; | ||||
| 			$table .= "</tr></thead><tbody>"; | ||||
| 		 | ||||
| 		foreach ($qslsnotsent as $qsl) | ||||
| 		{ | ||||
| 		$table .= "<thead><tr class=\"titles\">"; | ||||
| 		$table .= "<th>Date</th>"; | ||||
| 		$table .= "<th>Time</th>"; | ||||
| 		$table .= "<th>Call</th>"; | ||||
| 		$table .= "<th>Mode</th>"; | ||||
| 		$table .= "<th>Submode</th>"; | ||||
| 		$table .= "<th>Band</th>"; | ||||
| 		$table .= "<th>eQSL QTH Nickname</th>"; | ||||
| 		$table .= "</tr></thead><tbody>"; | ||||
| 
 | ||||
| 		foreach ($qslsnotsent as $qsl) { | ||||
| 			$table .= "<tr>"; | ||||
| 				$timestamp = strtotime($qsl['COL_TIME_ON']); | ||||
| 				$table .= "<td>".date($custom_date_format, $timestamp)."</td>"; | ||||
| 				$table .= "<td>".date('H:i', $timestamp)."</td>"; | ||||
| 				$table .= "<td><a href=\"javascript:displayQso(" . $qsl['COL_PRIMARY_KEY'] . ")\">" . str_replace("0","Ø",strtoupper($qsl['COL_CALL'])) . "</a></td>"; | ||||
| 				$table .= "<td>".$qsl['COL_MODE']."</td>"; | ||||
| 				 | ||||
| 				if(isset($qsl['COL_SUBMODE'])) { | ||||
| 					$table .= "<td>".$qsl['COL_SUBMODE']."</td>"; | ||||
| 				} else { | ||||
| 					$table .= "<td></td>"; | ||||
| 				} | ||||
| 				$table .= "<td>".$qsl['COL_BAND']."</td>"; | ||||
| 				$table .= "<td>".$qsl['eqslqthnickname']."</td>"; | ||||
| 			$timestamp = strtotime($qsl['COL_TIME_ON']); | ||||
| 			$table .= "<td>" . date($custom_date_format, $timestamp) . "</td>"; | ||||
| 			$table .= "<td>" . date('H:i', $timestamp) . "</td>"; | ||||
| 			$table .= "<td><a href=\"javascript:displayQso(" . $qsl['COL_PRIMARY_KEY'] . ")\">" . str_replace("0", "Ø", strtoupper($qsl['COL_CALL'])) . "</a></td>"; | ||||
| 			$table .= "<td>" . $qsl['COL_MODE'] . "</td>"; | ||||
| 
 | ||||
| 			if (isset($qsl['COL_SUBMODE'])) { | ||||
| 				$table .= "<td>" . $qsl['COL_SUBMODE'] . "</td>"; | ||||
| 			} else { | ||||
| 				$table .= "<td></td>"; | ||||
| 			} | ||||
| 			$table .= "<td>" . $qsl['COL_BAND'] . "</td>"; | ||||
| 			$table .= "<td>" . $qsl['eqslqthnickname'] . "</td>"; | ||||
| 			$table .= "</tr>"; | ||||
| 		} | ||||
| 		$table .= "</tbody></table>"; | ||||
|  | @ -500,11 +516,12 @@ class eqsl extends CI_Controller { | |||
| 		return $table; | ||||
| 	} | ||||
| 
 | ||||
| 	function image($id) { | ||||
| 	function image($id) | ||||
| 	{ | ||||
| 		$this->load->library('electronicqsl'); | ||||
| 		$this->load->model('Eqsl_images'); | ||||
| 
 | ||||
| 		if($this->Eqsl_images->get_image($id) == "No Image") { | ||||
| 		if ($this->Eqsl_images->get_image($id) == "No Image") { | ||||
| 			$this->load->model('logbook_model'); | ||||
| 			$this->load->model('user_model'); | ||||
| 			$qso_query = $this->logbook_model->get_qso($id); | ||||
|  | @ -532,34 +549,33 @@ class eqsl extends CI_Controller { | |||
| 			$dom->preserveWhiteSpace = false; | ||||
| 			$images = $dom->getElementsByTagName('img'); | ||||
| 
 | ||||
| 			if(!isset($images) || count($images) == 0) { | ||||
| 			if (!isset($images) || count($images) == 0) { | ||||
| 				echo "Rate Limited"; | ||||
| 				exit; | ||||
| 			} | ||||
| 
 | ||||
| 			foreach ($images as $image) | ||||
| 			{ | ||||
| 			foreach ($images as $image) { | ||||
| 				header('Content-Type: image/jpg'); | ||||
| 				$content = file_get_contents("https://www.eqsl.cc".$image->getAttribute('src')); | ||||
| 				$content = file_get_contents("https://www.eqsl.cc" . $image->getAttribute('src')); | ||||
| 				if ($content === false) { | ||||
| 					echo "No response"; | ||||
| 					exit; | ||||
| 				} | ||||
| 				echo $content; | ||||
| 				$filename = uniqid().'.jpg'; | ||||
| 				if (file_put_contents('images/eqsl_card_images/' . '/'.$filename, $content) !== false) { | ||||
| 				$filename = uniqid() . '.jpg'; | ||||
| 				if (file_put_contents('images/eqsl_card_images/' . '/' . $filename, $content) !== false) { | ||||
| 					$this->Eqsl_images->save_image($id, $filename); | ||||
| 				} | ||||
| 			} | ||||
| 		} else { | ||||
| 			header('Content-Type: image/jpg'); | ||||
| 			$image_url = base_url('images/eqsl_card_images/'.$this->Eqsl_images->get_image($id)); | ||||
| 			$image_url = base_url('images/eqsl_card_images/' . $this->Eqsl_images->get_image($id)); | ||||
| 			header('Location: ' . $image_url); | ||||
| 		} | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	function bulk_download_image($id) { | ||||
| 	function bulk_download_image($id) | ||||
| 	{ | ||||
| 		$this->load->library('electronicqsl'); | ||||
| 		$this->load->model('Eqsl_images'); | ||||
| 
 | ||||
|  | @ -595,31 +611,33 @@ class eqsl extends CI_Controller { | |||
| 		$dom->preserveWhiteSpace = false; | ||||
| 		$images = $dom->getElementsByTagName('img'); | ||||
| 
 | ||||
| 		if(!isset($images) || count($images) == 0) { | ||||
| 		if (!isset($images) || count($images) == 0) { | ||||
| 			$error = "Rate Limited"; | ||||
| 			return $error; | ||||
| 		} | ||||
| 
 | ||||
| 		foreach ($images as $image) | ||||
| 		{ | ||||
| 			$content = file_get_contents("https://www.eqsl.cc".$image->getAttribute('src')); | ||||
| 		foreach ($images as $image) { | ||||
| 			$content = file_get_contents("https://www.eqsl.cc" . $image->getAttribute('src')); | ||||
| 			if ($content === false) { | ||||
| 				$error = "No response"; | ||||
| 				return $error; | ||||
| 			} | ||||
| 			$filename = uniqid().'.jpg'; | ||||
| 			if (file_put_contents('images/eqsl_card_images/' . '/'.$filename, $content) !== false) { | ||||
| 			$filename = uniqid() . '.jpg'; | ||||
| 			if (file_put_contents('images/eqsl_card_images/' . '/' . $filename, $content) !== false) { | ||||
| 				$this->Eqsl_images->save_image($id, $filename); | ||||
| 			} | ||||
| 		} | ||||
| 		return $error; | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public function tools() { | ||||
| 	public function tools() | ||||
| 	{ | ||||
| 		// Check logged in
 | ||||
| 		$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'); } | ||||
| 		if (!$this->user_model->authorize(2)) { | ||||
| 			$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); | ||||
| 			redirect('dashboard'); | ||||
| 		} | ||||
| 
 | ||||
| 		$data['page_title'] = "eQSL Tools"; | ||||
| 
 | ||||
|  | @ -629,11 +647,15 @@ class eqsl extends CI_Controller { | |||
| 		$this->load->view('interface_assets/footer'); | ||||
| 	} | ||||
| 
 | ||||
| 	public function download() { | ||||
| 	public function download() | ||||
| 	{ | ||||
| 		// Check logged in
 | ||||
| 		$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'); } | ||||
| 		$errors=0; | ||||
| 		if (!$this->user_model->authorize(2)) { | ||||
| 			$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); | ||||
| 			redirect('dashboard'); | ||||
| 		} | ||||
| 		$errors = 0; | ||||
| 
 | ||||
| 		if ($this->input->post('eqsldownload') == 'download') { | ||||
| 			$i = 0; | ||||
|  | @ -665,7 +687,7 @@ class eqsl extends CI_Controller { | |||
| 				} | ||||
| 			} | ||||
| 			$data['eqsl_results'] = $eqsl_results; | ||||
| 			$data['eqsl_stats'] = "Successfully downloaded: ".$i." / Errors: ".count($eqsl_results); | ||||
| 			$data['eqsl_stats'] = "Successfully downloaded: " . $i . " / Errors: " . count($eqsl_results); | ||||
| 			$data['page_title'] = "eQSL Download Information"; | ||||
| 
 | ||||
| 			$this->load->view('interface_assets/header', $data); | ||||
|  | @ -685,11 +707,15 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public function mark_all_sent() { | ||||
| 	public function mark_all_sent() | ||||
| 	{ | ||||
| 		// Check logged in
 | ||||
| 		$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'); } | ||||
| 		 | ||||
| 		if (!$this->user_model->authorize(2)) { | ||||
| 			$this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); | ||||
| 			redirect('dashboard'); | ||||
| 		} | ||||
| 
 | ||||
| 		// mark all eqsls as sent
 | ||||
| 		$this->load->model('eqslmethods_model'); | ||||
| 		$this->eqslmethods_model->mark_all_as_sent(); | ||||
|  | @ -702,7 +728,8 @@ class eqsl extends CI_Controller { | |||
| 	/* | ||||
| 	 * Used for CRON job | ||||
| 	 */ | ||||
| 	public function sync() { | ||||
| 	public function sync() | ||||
| 	{ | ||||
| 		ini_set('memory_limit', '-1'); | ||||
| 		set_time_limit(0); | ||||
| 		$this->load->model('eqslmethods_model'); | ||||
|  | @ -715,7 +742,8 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public function downloadUser($userid, $username, $password) { | ||||
| 	public function downloadUser($userid, $username, $password) | ||||
| 	{ | ||||
| 		$this->load->library('EqslImporter'); | ||||
| 		$this->load->model('eqslmethods_model'); | ||||
| 
 | ||||
|  | @ -736,17 +764,18 @@ class eqsl extends CI_Controller { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	function uploadUser($userid, $username, $password) { | ||||
| 	function uploadUser($userid, $username, $password) | ||||
| 	{ | ||||
| 		$data['user_eqsl_name'] = $this->security->xss_clean($username); | ||||
| 		$data['user_eqsl_password'] = $this->security->xss_clean($password); | ||||
| 		$clean_userid = $this->security->xss_clean($userid); | ||||
| 		 | ||||
| 
 | ||||
| 		$qslsnotsent = $this->eqslmethods_model->eqsl_not_yet_sent($clean_userid); | ||||
| 
 | ||||
| 		foreach ($qslsnotsent->result_array() as $qsl) { | ||||
| 			$data['user_eqsl_name'] = $qsl['station_callsign']; | ||||
| 			$adif = $this->generateAdif($qsl, $data); | ||||
| 			 | ||||
| 
 | ||||
| 			$status = $this->uploadQso($adif, $qsl); | ||||
| 		} | ||||
| 	} | ||||
|  |  | |||
|  | @ -315,6 +315,9 @@ class Lotw extends CI_Controller { | |||
| 				//with the error message.
 | ||||
| 				if(curl_errno($ch)){ | ||||
| 					throw new Exception(curl_error($ch)); | ||||
| 
 | ||||
| 					// Upload of TQ8 Failed for unknown reason
 | ||||
| 					echo $station_profile->station_callsign." (".$station_profile->station_profile_name.") Upload Failed"."<br>"; | ||||
| 				} | ||||
| 
 | ||||
| 				$pos = strpos($result, "<!-- .UPL.  accepted -->"); | ||||
|  | @ -1004,6 +1007,9 @@ class Lotw extends CI_Controller { | |||
| 			case "QC": | ||||
| 				return "PQ"; | ||||
| 				break; | ||||
| 			case "NL": | ||||
| 				return "NF"; | ||||
| 				break; | ||||
| 			default: | ||||
| 				return $ca_prov; | ||||
| 		endswitch; | ||||
|  |  | |||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Logout'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = '注销'; | |||
| $lang['menu_ffma'] = "弗雷德·菲什纪念奖"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='维护'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Odhlásit se'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Logout'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  |  | |||
|  | @ -96,3 +96,4 @@ $lang['menu_forum'] = 'Forum'; | |||
| $lang['menu_logout'] = 'Logout'; | ||||
| 
 | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK & Crown Dependencies Gridmaster'; | ||||
|  |  | |||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Kirjaudu ulos'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_forum'] = 'Forum'; | |||
| $lang['menu_logout'] = 'Logout'; | ||||
| 
 | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Logout'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance'] = 'Wartung'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Logout'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -41,7 +41,7 @@ $lang['account_date_format'] = 'Formato Data'; | |||
| $lang['account_log_end_time'] = 'Salva Tempo Fine QSO Separatamente'; | ||||
| $lang['account_log_end_time_hint'] = 'Scegli Si se vuoi salvare il tempo di inizio e fine QSO separatamente. Se imposti \'No\' il tempo di inizio e fine sarà lo stesso.'; | ||||
| $lang['account_quicklog_feature'] = "Log Rapido"; | ||||
| $lang['account_quicklog_feature_hint'] = "Con questa funzionalità potrai salvare il nominativo cercando nell\'intestazione."; | ||||
| $lang['account_quicklog_feature_hint'] = "Con questa funzionalità potrai salvare il nominativo cercando nell'intestazione."; | ||||
| $lang['account_quicklog_enter'] = "Log Rapido - Azione premendo Invio"; | ||||
| $lang['account_quicklog_enter_hint'] = "Quale azione vuoi eseguire quando viene premuto Invio nel Log Rapido?"; | ||||
| $lang['account_quicklog_enter_log'] = "Registro Nominativo"; | ||||
|  | @ -55,13 +55,13 @@ $lang['account_choose_cloudlog_language'] = 'Scegli la lingua di Cloudlog.'; | |||
| $lang['account_main_menu'] = 'Menu Opzioni'; | ||||
| $lang['account_show_notes_in_the_main_menu'] = 'Visualizza le note nel menu principale.'; | ||||
| 
 | ||||
| $lang['account_gridsquare_and_location_autocomplete'] = 'Completamento automatico Griglia e Posizione'; | ||||
| $lang['account_location_auto_lookup'] = 'Ricerca automatica della posizione.'; | ||||
| $lang['account_if_set_gridsquare_is_fetched_based_on_location_name'] = 'Se impostato, la Griglia viene recuperata in base al nome della posizione.'; | ||||
| $lang['account_gridsquare_and_location_autocomplete'] = 'Completamento automatico Griglia e Luogo'; | ||||
| $lang['account_location_auto_lookup'] = 'Ricerca automatica del luogo.'; | ||||
| $lang['account_if_set_gridsquare_is_fetched_based_on_location_name'] = 'Se impostato, la Griglia viene recuperata in base al nome del luogo.'; | ||||
| $lang['account_sota_auto_lookup_gridsquare_and_name_for_summit'] = 'Ricerca automatica di Griglia e vetta per SOTA.'; | ||||
| $lang['account_wwff_auto_lookup_gridsquare_and_name_for_reference'] = 'Ricerca automatica di Griglia e nome referenza per WWFF.'; | ||||
| $lang['account_pota_auto_lookup_gridsquare_and_name_for_park'] = 'Ricerca automatica di Griglia e parco per POTA.'; | ||||
| $lang['account_if_set_name_and_gridsquare_is_fetched_from_the_api_and_filled_in_location_and_locator'] = 'Se impostati, nome e griglia vengono recuperati dall\'API e compilati con posizione e locatore.'; | ||||
| $lang['account_if_set_name_and_gridsquare_is_fetched_from_the_api_and_filled_in_location_and_locator'] = 'Se impostati, nome e griglia vengono recuperati dall\'API e compilati con luogo e locatore.'; | ||||
| 
 | ||||
| $lang['account_previous_qsl_type'] = 'Previous QSL Type'; | ||||
| $lang['account_select_the_type_of_qsl_to_show_in_the_previous_qsos_section'] = 'Seleziona il tipo di QSL da mostrare nella precedente sezione QSO.'; | ||||
|  |  | |||
|  | @ -26,13 +26,13 @@ $lang['adif_alert_log_files_type'] = "I file di Log devono essere del tipo *.adi | |||
| // $lang['general_word_warning']            --> application/language/english/general_words_lang.php "PHP Upload Warning"
 | ||||
| // $lang['gen_max_file_upload_size']        --> application/language/english/general_words_lang.php "PHP Upload Warning"
 | ||||
| 
 | ||||
| $lang['adif_select_stationlocation'] = "Seleziona la posizione della stazione"; | ||||
| $lang['adif_select_stationlocation'] = "Seleziona il luogo della stazione"; | ||||
| // $lang['gen_hamradio_callsign']           --> application/language/english/general_words_lang.php
 | ||||
| 
 | ||||
| // The File Input is translated by the Browser
 | ||||
| $lang['adif_file_label'] = "File ADIF"; | ||||
| 
 | ||||
| $lang['adif_hint_no_info_in_file'] = "Selezionare se l\'ADIF importato non contiene queste informazioni."; | ||||
| $lang['adif_hint_no_info_in_file'] = "Selezionare se l'ADIF importato non contiene queste informazioni."; | ||||
| 
 | ||||
| $lang['adif_import_dup'] = "Importa QSO duplicati"; | ||||
| $lang['adif_mark_imported_lotw'] = "Segna i QSO importati come caricati su LoTW"; | ||||
|  | @ -40,13 +40,13 @@ $lang['adif_mark_imported_hrdlog'] = "Segna i QSO importati come caricati su HRD | |||
| $lang['adif_mark_imported_qrz'] = "Segna i QSO importati come caricati su QRZ.com"; | ||||
| $lang['adif_mark_imported_clublog'] = "Segna i QSO importati come caricati su Clublog"; | ||||
| 
 | ||||
| $lang['adif_dxcc_from_adif'] = "Utilizza le informazioni DXCC dell\'ADIF"; | ||||
| $lang['adif_dxcc_from_adif'] = "Utilizza le informazioni DXCC dell'ADIF"; | ||||
| $lang['adif_dxcc_from_adif_hint'] = "Se non selezionato, Cloudlog tenterà di determinare automaticamente le informazioni DXCC."; | ||||
| 
 | ||||
| $lang['adif_always_use_login_call_as_op'] = "Utilizza sempre il nominativo di login come nome dell\'operatore durante l\'importazione"; | ||||
| $lang['adif_always_use_login_call_as_op'] = "Utilizza sempre il nominativo di login come nome dell'operatore durante l'importazione"; | ||||
| 
 | ||||
| $lang['adif_ignore_station_call'] = "Ignora il nominativo della stazione durante l\'importazione"; | ||||
| $lang['adif_ignore_station_call_hint'] = "Se selezionato, Cloudlog tenterà di importare <b>tutti</b> i QSO dell\'ADIF, indipendentemente dal fatto che corrispondano alla posizione della stazione scelta."; | ||||
| $lang['adif_ignore_station_call'] = "Ignora il nominativo della stazione durante l'importazione"; | ||||
| $lang['adif_ignore_station_call_hint'] = "Se selezionato, Cloudlog tenterà di importare <b>tutti</b> i QSO dell'ADIF, indipendentemente dal fatto che corrispondano al luogo della stazione scelta."; | ||||
| 
 | ||||
| $lang['adif_upload'] = "Carica"; | ||||
| 
 | ||||
|  | @ -57,7 +57,7 @@ ________________________________________________________________________________ | |||
| */ | ||||
| 
 | ||||
| $lang['adif_export_take_it_anywhere'] = "Porta il tuo file di Log ovunque!"; | ||||
| $lang['adif_export_take_it_anywhere_hint'] = "L\'esportazione di ADIF ti consente di importare contatti in applicazioni di terze parti come LoTW, Awards o semplicemente per conservare un backup."; | ||||
| $lang['adif_export_take_it_anywhere_hint'] = "L'esportazione di ADIF ti consente di importare contatti in applicazioni di terze parti come LoTW, Awards o semplicemente per conservare un backup."; | ||||
| 
 | ||||
| 
 | ||||
| $lang['adif_mark_exported_lotw'] = "Segna i QSO esportati come caricati su LoTW"; | ||||
|  |  | |||
|  | @ -121,7 +121,7 @@ ________________________________________________________________________________ | |||
| 
 | ||||
| $lang['awards_us_gridmaster_description_ln1'] = "US Gridmaster Award"; | ||||
| $lang['awards_us_gridmaster_description_ln2'] = "Il GridMaster Award è il premio AMSAT più prestigioso, introdotto per la prima volta nel 2014 da Star Comm Group. È disponibile per tutti gli operatori radioamatori di tutto il mondo che riescono a lavorare su tutti i 488 quadrati della griglia negli Stati Uniti tramite satellite e può fornire conferme QSL per ciascun contatto."; | ||||
| $lang['awards_us_gridmaster_description_ln3'] = "Informazioni ufficiali dal <a href='https://www.amsat.org/gridmaster/' target='_blank'>sito web</a>: è necessario stabilire una comunicazione bidirezionale tramite satellite amatoriale con ciascuna griglia. Non è richiesto alcun rapporto di segnale minimo. I contatti devono essere effettuati dalla stessa posizione o da località di cui nessuna distante più di 200 chilometri L\'attestazione del richiedente nella domanda di premio serve come dichiarazione di osservanza la regola della distanza. Gli individui possono richiedere e ottenere più premi GridMaster se ottenuti da un'altra posizione, che si trova in un diverso cerchio di 200 chilometri."; | ||||
| $lang['awards_us_gridmaster_description_ln3'] = "Informazioni ufficiali dal <a href='https://www.amsat.org/gridmaster/' target='_blank'>sito web</a>: è necessario stabilire una comunicazione bidirezionale tramite satellite amatoriale con ciascuna griglia. Non è richiesto alcun rapporto di segnale minimo. I contatti devono essere effettuati dallo stesso luogo o da località di cui nessuna distante più di 200 chilometri.L\'attestazione del richiedente nella domanda di premio serve come dichiarazione di osservanza la regola della distanza. Gli individui possono richiedere e ottenere più premi GridMaster se ottenuti da un luogo diveerso, che si trova in un raggio maggiore di 200 chilometri."; | ||||
| $lang['awards_us_gridmaster_description_ln4'] = "Questa mappa mostra solo i QSO effettuati su SAT."; | ||||
| 
 | ||||
| /* | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ ________________________________________________________________________________ | |||
| */ | ||||
| 
 | ||||
| $lang['export_kml_header'] = "Esportazione KML"; | ||||
| $lang['export_kml_description'] = "Esporta il tuo diario di bordo in un file KML per utilizzarlo in Google Earth."; | ||||
| $lang['export_kml_description'] = "Esporta il tuo registro in un file KML per utilizzarlo in Google Earth."; | ||||
| $lang['export_kml_grisquare_warning'] = "Verranno esportati solo i QSO con una griglia definita!"; | ||||
| 
 | ||||
| 
 | ||||
|  | @ -42,7 +42,7 @@ ________________________________________________________________________________ | |||
| 
 | ||||
| $lang['export_cabrillo_header'] = "Esportazione Cabrillo"; | ||||
| $lang['export_cabrillo_description'] = "Esporta un concorso in un registro Cabrillo"; | ||||
| $lang['export_cabrillo_select_station'] = "Seleziona posizione stazione:"; | ||||
| $lang['export_cabrillo_select_station'] = "Seleziona il luogo della stazione:"; | ||||
| $lang['export_cabrillo_proceed'] = "Procedi"; | ||||
| $lang['export_cabrillo_select_year'] = "Seleziona anno"; | ||||
| $lang['export_cabrillo_select_contest'] = "Seleziona concorso"; | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ ________________________________________________________________________________ | |||
| $lang['filter_quicksearch_w_sel'] = 'Ricerca rapida con selezionato: '; | ||||
| $lang['filter_search_callsign'] = 'Cerca Nominativo'; | ||||
| $lang['filter_search_dxcc'] = 'Cerca DXCC'; | ||||
| $lang['filter_search_state'] = 'Cerca Nazione'; | ||||
| $lang['filter_search_state'] = 'Cerca US Stato'; | ||||
| $lang['filter_search_gridsquare'] = 'Cerca in Griglia'; | ||||
| $lang['filter_search_cq_zone'] = 'Cerca zona CQ'; | ||||
| $lang['filter_search_mode'] = 'Cerca Modo'; | ||||
|  |  | |||
|  | @ -42,7 +42,7 @@ $lang['general_word_general'] = 'Generale'; | |||
| $lang['general_word_satellite'] = 'Satellite'; | ||||
| $lang['general_word_satellite_short'] = 'Sabato'; | ||||
| $lang['general_word_notes'] = 'Nota'; | ||||
| $lang['general_word_country'] = 'Paese'; | ||||
| $lang['general_word_country'] = 'Nazione'; | ||||
| $lang['general_word_city'] = 'Città'; | ||||
| 
 | ||||
| $lang['general_word_total'] = 'Totale'; | ||||
|  | @ -128,7 +128,7 @@ $lang['gen_hamradio_suffix'] = 'Suffisso'; | |||
| $lang['gen_hamradio_de'] = 'De'; | ||||
| $lang['gen_hamradio_dx'] = 'Dx'; | ||||
| $lang['gen_hamradio_mode'] = 'Modo'; | ||||
| $lang['gen_hamradio_ant_az'] = 'Antenna Azimuth'; | ||||
| $lang['gen_hamradio_ant_az'] = 'Antenna Azimut'; | ||||
| $lang['gen_hamradio_ant_el'] = 'Antenna Elevazione'; | ||||
| $lang['gen_hamradio_rst_sent'] = 'Inviato'; | ||||
| $lang['gen_hamradio_rst_rcvd'] = 'Ricevuto'; | ||||
|  | @ -222,8 +222,8 @@ $lang['general_word_today'] = 'Oggi'; | |||
| 
 | ||||
| $lang['dashboard_php_version_warning'] = 'Devi aggiornare la tua versione PHP. La versione minima è 7.4. La tua versione è'; | ||||
| $lang['dashboard_country_files_warning'] = 'Devi aggiornare i file dei paesi! Vai <a href="'.site_url('update').'">qui</a> per farlo!'; | ||||
| $lang['dashboard_locations_warning'] = 'Non hai posizioni delle stazioni. Vai <a href="'. site_url('station'). '">qui</a> per crearlo!'; | ||||
| $lang['dashboard_logbooks_warning'] = 'Non hai il registro della stazione. Vai <a href="'. site_url('logbooks'). '">qui</a> per crearlo!'; | ||||
| $lang['dashboard_locations_warning'] = 'Non hai luoghi delle stazioni. Vai <a href="'. site_url('station'). '">qui</a> per crearlo!'; | ||||
| $lang['dashboard_logbooks_warning'] = 'Non hai il registro di stazione. Vai <a href="'. site_url('logbooks'). '">qui</a> per crearlo!'; | ||||
| $lang['hams_at_no_activations_found'] = 'Nessuna attivazione imminente trovata. Per favore controllare più tardi.'; | ||||
| 
 | ||||
| $lang['datatables_language'] = "it-IT"; | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ $lang['menu_post_qso'] = 'Registra QSO'; | |||
| $lang['menu_fast_log_entry'] = "Simple Fast Log Entry"; | ||||
| $lang['menu_live_contest_logging'] = 'Contest QSO Live'; | ||||
| $lang['menu_post_contest_logging'] = 'Registra QSO Contest'; | ||||
| $lang['menu_bandmap'] = 'Mappa Bande'; | ||||
| $lang['menu_bandmap'] = 'DXCluster'; | ||||
| $lang['menu_view_qsl'] = 'Visualizza le cartoline QSL'; | ||||
| $lang['menu_view_eqsl'] = 'Visualizza le cartoline eQSL'; | ||||
| $lang['menu_view_sstv'] = 'Visualizza immagini SSTV'; | ||||
|  | @ -45,7 +45,7 @@ $lang['menu_lx_gridmaster'] = 'LX Gridmaster'; | |||
| $lang['menu_pota'] = 'POTA'; | ||||
| $lang['menu_sig'] = 'SIG'; | ||||
| $lang['menu_sota'] = 'SOTA'; | ||||
| $lang['menu_us_counties'] = 'US Counties'; | ||||
| $lang['menu_us_counties'] = 'Contee US'; | ||||
| $lang['menu_us_gridmaster'] = 'US Gridmaster'; | ||||
| $lang['menu_vucc'] = 'VUCC'; | ||||
| $lang['menu_waja'] = 'WAJA'; | ||||
|  | @ -55,12 +55,12 @@ $lang['menu_wwff'] = 'WWFF'; | |||
| $lang['menu_admin'] = 'Amministratore'; | ||||
| $lang['menu_user_account'] = 'Account utente'; | ||||
| $lang['menu_global_options'] = 'Opzioni globali'; | ||||
| $lang['menu_modes'] = 'Modalità'; | ||||
| $lang['menu_modes'] = 'Modi'; | ||||
| $lang['menu_contests'] = 'Contest'; | ||||
| $lang['menu_themes'] = 'Temi'; | ||||
| $lang['menu_backup'] = 'Backup'; | ||||
| $lang['menu_update_country_files'] = 'Aggiorna file paese'; | ||||
| $lang['menu_debug_information'] = 'Informazioni sul debug'; | ||||
| $lang['menu_debug_information'] = 'Informazioni di debug'; | ||||
| 
 | ||||
| $lang['menu_search_text'] = 'Cerca nominativo'; | ||||
| $lang['menu_search_text_quicklog'] = "Aggiungi/Cerca nominativo"; | ||||
|  | @ -70,8 +70,8 @@ $lang['menu_search_button_qicksearch_log'] = "Log"; | |||
| $lang['menu_login_button'] = 'Accedi'; | ||||
| 
 | ||||
| $lang['menu_account'] = 'Account'; | ||||
| $lang['menu_station_logbooks'] = 'Registro della stazione'; | ||||
| $lang['menu_station_locations'] = 'Posizioni delle stazioni'; | ||||
| $lang['menu_station_logbooks'] = 'Registro di stazione'; | ||||
| $lang['menu_station_locations'] = 'Luoghi delle stazioni'; | ||||
| $lang['menu_bands'] = 'Bande'; | ||||
| $lang['menu_adif_import_export'] = 'Importa/esporta ADIF'; | ||||
| $lang['menu_kml_export'] = 'Esportazione KML'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Esci'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Manutenzione'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -10,17 +10,17 @@ $lang['options_theme'] = 'Tema'; | |||
| $lang['options_global_theme_choice_this_is_used_when_users_arent_logged_in'] = 'Scelta tema globale, viene utilizzato quando gli utenti non hanno effettuato l\'accesso.'; | ||||
| $lang['options_public_search_bar'] = 'Barra di ricerca pubblica'; | ||||
| $lang['options_this_allows_non_logged_in_users_to_access_the_search_functions'] = 'Ciò consente agli utenti non registrati di accedere alle funzioni di ricerca.'; | ||||
| $lang['options_dashboard_notification_banner'] = 'Banner di notifica del dashboard'; | ||||
| $lang['options_this_allows_to_disable_the_global_notification_banner_on_the_dashboard'] = 'Ciò consente di disabilitare il banner di notifica globale sul dashboard.'; | ||||
| $lang['options_dashboard_map'] = 'Mappa dashboard'; | ||||
| $lang['options_this_allows_the_map_on_the_dashboard_to_be_disabled_or_placed_on_the_right'] = 'Ciò consente di disabilitare o posizionare a destra la mappa sul dashboard.'; | ||||
| $lang['options_logbook_map'] = 'Mappa del Registro'; | ||||
| $lang['options_dashboard_notification_banner'] = 'Banner di notifica sulla dashboard'; | ||||
| $lang['options_this_allows_to_disable_the_global_notification_banner_on_the_dashboard'] = 'Ciò consente di disabilitare il banner di notifica globale sulla dashboard.'; | ||||
| $lang['options_dashboard_map'] = 'Mappa nella dashboard'; | ||||
| $lang['options_this_allows_the_map_on_the_dashboard_to_be_disabled_or_placed_on_the_right'] = 'Ciò consente di disabilitare o posizionare a destra la mappa sulla dashboard.'; | ||||
| $lang['options_logbook_map'] = 'Mappa nel Registro'; | ||||
| $lang['options_this_allows_to_disable_the_map_in_the_logbook'] = 'Ciò permette di disabilitare la mappa nel registro.'; | ||||
| $lang['options_theme_changed_to'] = 'Tema cambiato in '; | ||||
| $lang['options_global_search_changed_to'] = 'La ricerca globale è cambiata in '; | ||||
| $lang['options_dashboard_banner_changed_to'] = 'Banner del dashboard cambiato in '; | ||||
| $lang['options_dashboard_map_changed_to'] = 'La mappa del dashboard è cambiata in '; | ||||
| $lang['options_logbook_map_changed_to'] = 'La mappa del Registro è cambiata in '; | ||||
| $lang['options_dashboard_banner_changed_to'] = 'Banner della dashboard è cambiato in '; | ||||
| $lang['options_dashboard_map_changed_to'] = 'La mappa nella dashboard è cambiata in '; | ||||
| $lang['options_logbook_map_changed_to'] = 'La mappa nel Registro è cambiata in '; | ||||
| 
 | ||||
| $lang['options_radios'] = 'Radio'; | ||||
| $lang['options_radio_settings'] = 'Impostazioni Radio'; | ||||
|  | @ -42,14 +42,14 @@ $lang['options_mail_settings_saved'] = "Le impostazioni sono state salvate con s | |||
| $lang['options_mail_settings_failed'] = "Qualcosa è andato storto durante il salvataggio delle impostazioni. Riprova."; | ||||
| $lang['options_outgoing_protocol_hint'] = "Il protocollo che verrà utilizzato per inviare le email."; | ||||
| $lang['options_smtp_encryption_hint'] = "Scegli se le email devono essere inviate con TLS o SSL."; | ||||
| $lang['options_email_address_hint'] = "L\'indirizzo email da cui vengono inviate le email, ad esempio 'cloudlog@example.com'"; | ||||
| $lang['options_email_sender_name_hint'] = "Il nome del mittente dell\'email, ad esempio 'Cloudlog'"; | ||||
| $lang['options_email_address_hint'] = "L'indirizzo email da cui vengono inviate le email, ad esempio 'cloudlog@example.com'"; | ||||
| $lang['options_email_sender_name_hint'] = "Il nome del mittente dell'email, ad esempio 'Cloudlog'"; | ||||
| $lang['options_smtp_host_hint'] = "Il nome host del server di posta, ad esempio 'mail.example.com' (senza 'ssl://' o 'tls://')"; | ||||
| $lang['options_smtp_port_hint'] = "La porta SMTP del server di posta, ad esempio se viene utilizzato TLS -> '587', se viene utilizzato SSL -> '465'"; | ||||
| $lang['options_smtp_username_hint'] = "Il nome utente per accedere al server di posta, solitamente questo è l\'indirizzo email utilizzato."; | ||||
| $lang['options_smtp_username_hint'] = "Il nome utente per accedere al server di posta, solitamente questo è l'indirizzo email utilizzato."; | ||||
| $lang['options_smtp_password_hint'] = "La password per accedere al server di posta."; | ||||
| $lang['options_send_testmail'] = "Invia mail di prova"; | ||||
| $lang['options_send_testmail_hint'] = "L\'e-mail verrà inviata all\'indirizzo definito nelle impostazioni del tuo account."; | ||||
| $lang['options_send_testmail_hint'] = "L'e-mail verrà inviata all'indirizzo definito nelle impostazioni del tuo account."; | ||||
| $lang['options_send_testmail_failed'] = "Testmail fallito. Qualcosa è andato storto."; | ||||
| $lang['options_send_testmail_success'] = "MAIL di prova inviata. Le impostazioni email sembrano corrette."; | ||||
| 
 | ||||
|  | @ -57,9 +57,9 @@ $lang['options_oqrs'] = 'Opzioni OQRS'; | |||
| $lang['options_global_text'] = 'Testo globale'; | ||||
| $lang['options_this_text_is_an_optional_text_that_can_be_displayed_on_top_of_the_oqrs_page'] = 'Questo testo è un testo opzionale che può essere visualizzato in cima alla pagina OQRS.'; | ||||
| $lang['options_grouped_search'] = 'Ricerca raggruppata'; | ||||
| $lang['options_when_this_is_on_all_station_locations_with_oqrs_active_will_be_searched_at_once'] = 'Quando è attivo, tutte le posizioni delle stazioni con OQRS attivo verranno cercate contemporaneamente.'; | ||||
| $lang['options_grouped_search_show_station_name'] = "Mostra il nome della posizione della stazione nei risultati di ricerca raggruppati"; | ||||
| $lang['options_grouped_search_show_station_name_hint'] = "Se la ricerca raggruppata è attiva, puoi decidere se il nome della posizione della stazione deve essere mostrato nella tabella dei risultati."; | ||||
| $lang['options_when_this_is_on_all_station_locations_with_oqrs_active_will_be_searched_at_once'] = 'Quando è attivo, tutti luoghi delle stazioni con OQRS attivo verranno cercate contemporaneamente.'; | ||||
| $lang['options_grouped_search_show_station_name'] = "Mostra il nome del luogo della stazione nei risultati di ricerca raggruppati"; | ||||
| $lang['options_grouped_search_show_station_name_hint'] = "Se la ricerca raggruppata è attiva, puoi decidere se il nome del luogo della stazione deve essere mostrato nella tabella dei risultati."; | ||||
| $lang['options_oqrs_options_have_been_saved'] = 'Le opzioni OQRS sono state salvate.'; | ||||
| 
 | ||||
| $lang['options_dxcluster'] = 'DXCluster'; | ||||
|  | @ -80,14 +80,14 @@ $lang['options_version_dialog_close'] = "Chiudi"; | |||
| $lang['options_version_dialog_dismiss'] = "Non mostrare più"; | ||||
| $lang['options_version_dialog_settings'] = "Impostazioni informazioni sulla versione"; | ||||
| $lang['options_version_dialog_header'] = "Intestazione informazioni sulla versione"; | ||||
| $lang['options_version_dialog_header_hint'] = "Puoi cambiare l\'intestazione della finestra di dialogo delle informazioni sulla versione."; | ||||
| $lang['options_version_dialog_header_hint'] = "Puoi cambiare l'intestazione della finestra di dialogo delle informazioni sulla versione."; | ||||
| $lang['options_version_dialog_header_changed_to'] = "Intestazione delle informazioni sulla versione modificata in"; | ||||
| $lang['options_version_dialog_mode'] = "Modalità informazioni sulla versione"; | ||||
| $lang['options_version_dialog_mode_release_notes'] = "Solo note di rilascio"; | ||||
| $lang['options_version_dialog_mode_custom_text'] = "Solo testo personalizzato"; | ||||
| $lang['options_version_dialog_mode_both'] = "Note sulla versione e testo personalizzato"; | ||||
| $lang['options_version_dialog_mode_disabled'] = "Disabilitato"; | ||||
| $lang['options_version_dialog_mode_hint'] = "Le informazioni sulla versione vengono mostrate a ogni utente. L\'utente ha la possibilità di chiudere la finestra di dialogo dopo averla letta. Seleziona se vuoi mostrare solo le note di rilascio (recuperate da github), solo il testo personalizzato o entrambi."; | ||||
| $lang['options_version_dialog_mode_hint'] = "Le informazioni sulla versione vengono mostrate a ogni utente. L'utente ha la possibilità di chiudere la finestra di dialogo dopo averla letta. Seleziona se vuoi mostrare solo le note di rilascio (recuperate da github), solo il testo personalizzato o entrambi."; | ||||
| $lang['options_version_dialog_custom_text'] = "Testo personalizzato informazioni sulla versione"; | ||||
| $lang['options_version_dialog_custom_text_hint'] = "Questo è il testo personalizzato che viene mostrato nella finestra di dialogo."; | ||||
| $lang['options_version_dialog_mode_changed_to'] = "La modalità Informazioni sulla versione è cambiata in"; | ||||
|  | @ -105,7 +105,7 @@ $lang['options_save'] = 'Salva'; | |||
| // Bands
 | ||||
| 
 | ||||
| $lang['options_bands'] = "Bande"; | ||||
| $lang['options_bands_text_ln1'] = "Utilizzando l\'elenco delle bande puoi controllare quali bande verranno visualizzate quando crei un nuovo QSO."; | ||||
| $lang['options_bands_text_ln1'] = "Utilizzando l'elenco delle bande puoi controllare quali bande verranno visualizzate quando crei un nuovo QSO."; | ||||
| $lang['options_bands_text_ln2'] = "Le bande attive verranno mostrate nel menu a discesa 'Banda' del QSO, mentre le bande inattive saranno nascoste e non potranno essere selezionate."; | ||||
| $lang['options_bands_create'] = "Crea una band"; | ||||
| $lang['options_bands_edit'] = "Modifica banda"; | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ $lang['qso_sig_info_helptext'] = 'Per esempio: DA/NW-357'; | |||
| 
 | ||||
| $lang['qso_dok_helptext'] = 'Per esempio: Q03'; | ||||
| 
 | ||||
| $lang['qso_notes_helptext'] = 'Il contenuto della nota viene utilizzato solo all interno di Cloudlog e non viene esportato in altri servizi.'; | ||||
| $lang['qso_notes_helptext'] = 'Il contenuto della nota viene utilizzato solo all\'interno di Cloudlog e non viene esportato in altri servizi.'; | ||||
| $lang['qsl_notes_helptext'] = 'Il contenuto di questa nota è esportato a servizi QSL come eqsl.cc.'; | ||||
| 
 | ||||
| $lang['qso_eqsl_qslmsg_helptext'] = "Ottieni il messaggio predefinito per eQSL, per questa stazione."; | ||||
|  | @ -60,8 +60,8 @@ $lang['qso_simplefle_qso_list_total'] = "Totale"; | |||
| $lang['qso_simplefle_qso_date'] = "Data del QSO"; | ||||
| $lang['qso_simplefle_operator'] = "Operatore"; | ||||
| $lang['qso_simplefle_operator_hint'] = "es. OK2CQR"; | ||||
| $lang['qso_simplefle_station_call_location'] = "Chiamata/Posizione della stazione"; | ||||
| $lang['qso_simplefle_station_call_location_hint'] = "Se operi da una nuova posizione, crea prima un nuovo <a href=". site_url('station') . ">Posizione stazione</a>"; | ||||
| $lang['qso_simplefle_station_call_location'] = "Chiamata/Luogo della stazione"; | ||||
| $lang['qso_simplefle_station_call_location_hint'] = "Se operi da una nuovo Luogo, crea prima un nuovo <a href=". site_url('station') . ">Luoghi delle stazioni</a>"; | ||||
| $lang['qso_simplefle_utc_time'] = "Ora UTC attuale"; | ||||
| $lang['qso_simplefle_enter_the_data'] = "Inserisci i dati"; | ||||
| $lang['qso_simplefle_syntax_help_close_w_sample'] = "Chiudi e carica dati di esempio"; | ||||
|  | @ -71,7 +71,7 @@ $lang['qso_simplefle_clear'] = "Cancella sessione di registrazione"; | |||
| $lang['qso_simplefle_refs_hint'] = "I Ref possono essere <u>S</u>OTA, <u>I</u>OTA, <u>P</u>OTA or <u>W</u>WFF"; | ||||
| 
 | ||||
| $lang['qso_simplefle_error_band'] = "Manca la banda!"; | ||||
| $lang['qso_simplefle_error_mode'] = "Modalità mancante!"; | ||||
| $lang['qso_simplefle_error_mode'] = "Modo mancante!"; | ||||
| $lang['qso_simplefle_error_time'] = "L'ora non è impostata!"; | ||||
| $lang['qso_simplefle_error_stationcall'] = "Chiamata stazione non selezionata"; | ||||
| $lang['qso_simplefle_error_operator'] = "Il campo 'Operatore' è vuoto"; | ||||
|  |  | |||
|  | @ -8,35 +8,35 @@ Station Logbooks | |||
| ___________________________________________________________________________________________ | ||||
| */ | ||||
| 
 | ||||
| $lang['station_logbooks'] = "Registri della stazione"; | ||||
| $lang['station_logbooks_description_header'] = "Cosa sono i registri della stazione"; | ||||
| $lang['station_logbooks_description_text'] = "I registri delle stazioni ti consentono di raggruppare le posizioni delle stazioni, questo ti consente di vedere tutte le posizioni in una sessione dalle aree del registro alle analisi. Ottimo per quando operi in più posizioni ma fanno parte di lo stesso Circolo DXCC o VUCC."; | ||||
| $lang['station_logbooks_create'] = "Crea registro della stazione"; | ||||
| $lang['station_logbooks'] = "Registri di stazione"; | ||||
| $lang['station_logbooks_description_header'] = "Cosa sono i registri di stazione"; | ||||
| $lang['station_logbooks_description_text'] = "I registri delle stazioni ti consentono di raggruppare diversi luoghi delle stazioni, questo ti consente di vedere tutte le località in una sessione dalle aree del registro alle analisi. Ottimo per quando operi da più postazioni che fanno parte dello stesso DXCC o VUCC Circle."; | ||||
| $lang['station_logbooks_create'] = "Crea registro di stazione"; | ||||
| $lang['station_logbooks_status'] = "Stato"; | ||||
| $lang['station_logbooks_link'] = "Collegamento"; | ||||
| $lang['station_logbooks_public_search'] = "Ricerca pubblica"; | ||||
| $lang['station_logbooks_set_active'] = "Imposta come registro attivo"; | ||||
| $lang['station_logbooks_active_logbook'] = "Diario di bordo attivo"; | ||||
| $lang['station_logbooks_edit_logbook'] = "Modifica registro della stazione"; // Verrà generata la frase completa "Modifica registro stazione: [Nome registro]"
 | ||||
| $lang['station_logbooks_confirm_delete'] = "Sei sicuro di voler eliminare il seguente registro della stazione? Devi ricollegare tutte le posizioni collegate qui a un altro registro della stazione.: "; | ||||
| $lang['station_logbooks_active_logbook'] = "Registro attivo"; | ||||
| $lang['station_logbooks_edit_logbook'] = "Modifica registro di stazione"; // Verrà generata la frase completa "Modifica registro stazione: [Nome registro]"
 | ||||
| $lang['station_logbooks_confirm_delete'] = "Sei sicuro di voler eliminare il seguente registro di stazione? Dovrai successivamente ricollegare tutti i luoghi delle stazioni esistenti ad un altro registro di stazione.: "; | ||||
| $lang['station_logbooks_view_public'] = "Visualizza la pagina pubblica del registro: "; | ||||
| $lang['station_logbooks_create_name'] = "Nome registro della stazione"; | ||||
| $lang['station_logbooks_create_name_hint'] = "Puoi chiamare qualsiasi cosa il diario di bordo della stazione."; | ||||
| $lang['station_logbooks_edit_name_hint'] = "Nome breve per il registro della stazione. Ad esempio: Home Log (IO87IP)"; | ||||
| $lang['station_logbooks_create_name'] = "Nome registro di stazione"; | ||||
| $lang['station_logbooks_create_name_hint'] = "Puoi dare qualsiasi nome al registro di stazione."; | ||||
| $lang['station_logbooks_edit_name_hint'] = "Nome breve per il registro di stazione. Ad esempio: Home Log (IO87IP)"; | ||||
| $lang['station_logbooks_edit_name_update'] = "Aggiorna nome registro stazione"; | ||||
| $lang['station_logbooks_public_slug'] = "Slug pubblico"; | ||||
| $lang['station_logbooks_public_slug_hint'] = "L\'impostazione di uno slug pubblico ti consente di condividere il tuo diario di bordo con chiunque tramite un indirizzo web personalizzato, questo slug può contenere solo lettere e numeri."; | ||||
| $lang['station_logbooks_public_slug_hint'] = "L'impostazione di uno slug pubblico ti consente di condividere il tuo registro con chiunque tramite un indirizzo web personalizzato, questo slug può contenere solo lettere e numeri."; | ||||
| $lang['station_logbooks_public_slug_format1'] = "Più tardi apparirà così:"; | ||||
| $lang['station_logbooks_public_slug_format2'] = "[il tuo slug]"; | ||||
| $lang['station_logbooks_public_slug_input'] = "Digita la scelta Slug pubblica"; | ||||
| $lang['station_logbooks_public_slug_visit'] = "Visita la pagina pubblica"; | ||||
| $lang['station_logbooks_public_search_hint'] = "L\'abilitazione della funzione di ricerca pubblica offre una casella di input per la ricerca sulla pagina del registro pubblico accessibile tramite slug pubblico. La ricerca copre solo questo registro."; | ||||
| $lang['station_logbooks_public_search_hint'] = "L'abilitazione della funzione di ricerca pubblica offre una casella di input per la ricerca sulla pagina del registro pubblico accessibile tramite slug pubblico. La ricerca copre solo questo registro."; | ||||
| $lang['station_logbooks_public_search_enabled'] = "Ricerca pubblica abilitata"; | ||||
| $lang['station_logbooks_select_avail_loc'] = "Seleziona le posizioni delle stazioni disponibili"; | ||||
| $lang['station_logbooks_link_loc'] = "Posizione collegamento"; | ||||
| $lang['station_logbooks_linked_loc'] = "Posizioni collegate"; | ||||
| $lang['station_logbooks_no_linked_loc'] = "Nessuna posizione collegata"; | ||||
| $lang['station_logbooks_unlink_station_location'] = "Scollega posizione stazione"; | ||||
| $lang['station_logbooks_select_avail_loc'] = "Seleziona i luoghi di stazione disponibili"; | ||||
| $lang['station_logbooks_link_loc'] = "Luogo collegamento"; | ||||
| $lang['station_logbooks_linked_loc'] = "Luoghi collegate"; | ||||
| $lang['station_logbooks_no_linked_loc'] = "Nessun luogo collegato"; | ||||
| $lang['station_logbooks_unlink_station_location'] = "Scollega luogo di stazione"; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -46,20 +46,20 @@ Station Locations | |||
| ___________________________________________________________________________________________ | ||||
| */ | ||||
| 
 | ||||
| $lang['station_location'] = 'Posizione della stazione'; | ||||
| $lang['station_location_plural'] = "Posizioni delle stazioni"; | ||||
| $lang['station_location_header_ln1'] = 'Le posizioni delle stazioni definiscono le posizioni operative, come il tuo QTH, un QTH di amici o una stazione portatile.'; | ||||
| $lang['station_location'] = 'Luogo di stazione'; | ||||
| $lang['station_location_plural'] = "Luoghi di stazione"; | ||||
| $lang['station_location_header_ln1'] = 'I Luoghi di stazione definiscono le posizioni operative, come il tuo QTH, un QTH di amici o una stazione portatile.'; | ||||
| $lang['station_location_header_ln2'] = 'Simile ai registri, il profilo di una stazione tiene insieme una serie di QSO.'; | ||||
| $lang['station_location_header_ln3'] = 'Può essere attiva solo una stazione alla volta. Nella tabella sottostante questa è mostrata con il badge -Stazione attiva-.'; | ||||
| $lang['station_location_create_header'] = 'Crea posizione stazione'; | ||||
| $lang['station_location_create'] = 'Crea una posizione della stazione'; | ||||
| $lang['station_location_edit'] = 'Modifica posizione stazione: '; | ||||
| $lang['station_location_create_header'] = 'Crea Luogo di stazione'; | ||||
| $lang['station_location_create'] = 'Crea una luogo di stazione'; | ||||
| $lang['station_location_edit'] = 'Modifica luogo di stazione: '; | ||||
| $lang['station_location_updated_suff'] = 'Aggiornato.'; | ||||
| $lang['station_location_warning'] = 'Attenzione: è necessario impostare la posizione della stazione attiva. Vai su Segnale di chiamata->Posizione della stazione per selezionarne uno.'; | ||||
| $lang['station_location_warning'] = 'Attenzione: è necessario impostare il luogo della stazione attiva. Vai su Segnale di chiamata->Posizione della stazione per selezionarne uno.'; | ||||
| $lang['station_location_reassign_at'] = 'Per favore riassegnali a '; | ||||
| $lang['station_location_warning_reassign'] = 'A causa dei recenti cambiamenti all\'interno di Cloudlog è necessario riassegnare i QSO ai profili della stazione.'; | ||||
| $lang['station_location_name'] = 'Nome profilo'; | ||||
| $lang['station_location_name_hint'] = 'Nome breve per la posizione della stazione. Ad esempio: Casa (IO87IP)'; | ||||
| $lang['station_location_name_hint'] = 'Nome breve per il luogo della stazione. Ad esempio: Casa (IO87IP)'; | ||||
| $lang['station_location_callsign'] = 'Nominativo della stazione'; | ||||
| $lang['station_location_callsign_hint'] = 'Nominativo della stazione. Ad esempio: 2M0SQL/P'; | ||||
| $lang['station_location_power'] = 'Potenza della stazione (W)'; | ||||
|  | @ -74,7 +74,7 @@ $lang['station_location_confirm_del_stationlocation'] = 'Sei sicuro di voler eli | |||
| $lang['station_location_confirm_del_stationlocation_qso'] = 'Questo cancellerà tutti i QSO all\'interno di questo profilo della stazione?'; | ||||
| $lang['station_location_dxcc'] = 'Stazione DXCC'; | ||||
| $lang['station_location_dxcc_hint'] = 'Entità DXCC della stazione. Ad esempio: Scozia'; | ||||
| $lang['station_location_dxcc_warning'] = "Fermati qui per un momento. Il DXCC scelto è obsoleto e non più valido. Controlla quale DXCC per questa particolare posizione è quello corretto. Se sei sicuro, ignora questo avviso."; | ||||
| $lang['station_location_dxcc_warning'] = "Fermati qui per un momento. Il DXCC scelto è obsoleto e non più valido. Controlla quale DXCC per questo particolare luogo è quello corretto. Se sei sicuro, ignora questo avviso."; | ||||
| $lang['station_location_city'] = 'Città stazione'; | ||||
| $lang['station_location_city_hint'] = 'Città della stazione. Ad esempio: Inverness'; | ||||
| $lang['station_location_state'] = 'Stato della stazione'; | ||||
|  | @ -96,7 +96,7 @@ $lang['station_location_signature_info'] = "Informazioni sulla firma"; | |||
| $lang['station_location_signature_info_hint'] = "Informazioni sulla firma della stazione (ad esempio DA/NW-357)."; | ||||
| $lang['station_location_eqsl_hint'] = 'Il nickname QTH configurato nel tuo profilo eQSL'; | ||||
| $lang['station_location_eqsl_defaultqslmsg'] = "QSLMSG predefinito"; | ||||
| $lang['station_location_eqsl_defaultqslmsg_hint'] = "Definisci un messaggio predefinito che verrà popolato e inviato per ogni QSO per questa posizione della stazione."; | ||||
| $lang['station_location_eqsl_defaultqslmsg_hint'] = "Definisci un messaggio predefinito che verrà popolato e inviato per ogni QSO da questo luogo di stazione."; | ||||
| $lang['station_location_qrz_subscription'] = 'Abbonamento richiesto'; | ||||
| $lang['station_location_qrz_hint'] = "Trova la tua chiave API nella <a href='https://logbook.qrz.com/logbook' target='_blank'>pagina delle impostazioni del registro di QRZ.com"; | ||||
| $lang['station_location_qrz_realtime_upload'] = 'Caricamento in tempo reale del registro di QRZ.com'; | ||||
|  | @ -109,7 +109,7 @@ $lang['station_location_qo100_hint'] = "Crea la tua chiave API sulla <a href='ht | |||
| $lang['station_location_qo100_realtime_upload'] = "Caricamento in tempo reale di QO-100 Dx Club"; | ||||
| $lang['station_location_oqrs_enabled'] = "OQRS abilitato"; | ||||
| $lang['station_location_oqrs_email_alert'] = "Avviso e-mail OQRS"; | ||||
| $lang['station_location_oqrs_email_hint'] = "Assicurati che l\'e-mail sia impostata nelle opzioni di amministrazione e globali."; | ||||
| $lang['station_location_oqrs_email_hint'] = "Assicurati che l'e-mail sia impostata nelle opzioni di amministrazione e globali."; | ||||
| $lang['station_location_oqrs_text'] = "Testo OQRS"; | ||||
| $lang['station_location_oqrs_text_hint'] = "Alcune informazioni che vuoi aggiungere riguardo alla QSL."; | ||||
| $lang['station_location_clublog_realtime_upload']='Caricamento in tempo reale di ClubLog'; | ||||
|  |  | |||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Logout'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Maintenance'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Выход'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Обслуживание'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Cerrar Sesión'; | |||
| $lang['menu_ffma'] = "Diploma en memoria de Fred Fish"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Mantenimiento'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Logga ut'; | |||
| $lang['menu_ffma'] = "Fred Fish Memorial Award"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Underhåll'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  | @ -95,3 +95,4 @@ $lang['menu_logout'] = 'Çıkış'; | |||
| $lang['menu_ffma'] = "Fred Fish Anma Ödülü"; | ||||
| $lang['menu_ja_gridmaster'] = 'JA Gridmaster'; | ||||
| $lang['menu_maintenance']='Bakım'; | ||||
| $lang['menu_uk_gridmaster'] = 'UK Gridmaster'; | ||||
|  |  | |||
|  | @ -209,7 +209,7 @@ class AdifHelper { | |||
|         $line .= $this->getAdifFieldLine("MY_POTA_REF", $qso->station_pota); | ||||
| 
 | ||||
|         $line .= $this->getAdifFieldLine("MY_CQ_ZONE", $qso->station_cq); | ||||
| 
 | ||||
|         $line .= $this->getAdifFieldLine("APP_CLOUDLOG_MY_WAB", $qso->station_wab); | ||||
|         $line .= $this->getAdifFieldLine("MY_ITU_ZONE", $qso->station_itu); | ||||
| 
 | ||||
| 		if($qso->state) { | ||||
|  |  | |||
|  | @ -0,0 +1,29 @@ | |||
| <?php | ||||
| 
 | ||||
| defined('BASEPATH') or exit('No direct script access allowed'); | ||||
| 
 | ||||
| /* | ||||
| *   Add WAB Field to Station Location | ||||
| */ | ||||
| 
 | ||||
| class Migration_add_wab_to_location extends CI_Migration | ||||
| { | ||||
| 
 | ||||
|     public function up() | ||||
|     { | ||||
|         if (!$this->db->field_exists('station_wab', 'station_profile')) { | ||||
|             // Add WAB Ref to station profile
 | ||||
|             $fields = array( | ||||
|                 'station_wab varchar(10) DEFAULT NULL', | ||||
|             ); | ||||
|             $this->dbforge->add_column('station_profile', $fields); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public function down() | ||||
|     { | ||||
|         if ($this->db->field_exists('station_wab', 'station_profile')) { | ||||
|             $this->dbforge->drop_column('station_profile', 'station_wab'); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -62,6 +62,11 @@ class Gridmaster_model extends CI_Model { | |||
|     private $lx_lon  = 6; | ||||
|     private $lx_zoom = 8; | ||||
| 
 | ||||
|     private $uk_grids = ['IN88', 'IN89', 'IO77', 'IO69', 'IO79', 'JO00', 'JO01', 'JO02', 'JO03', 'IN79', 'IO90', 'IO91', 'IO92', 'IO93', 'IO94', 'IO95', 'IO97', 'IO99', 'IP90', 'IO80', 'IO81', 'IO82', 'IO83', 'IO84', 'IO85', 'IO86', 'IO86', 'IO87', 'IO88', 'IO89', 'IP80', 'IO70', 'IO71', 'IO72', 'IO73', 'IO74', 'IO75', 'IO76', 'IO78', 'IN69', 'IO64', 'IO65', 'IO66', 'IO67', 'IO68', 'IO57', 'IO54']; | ||||
|     private $uk_lat  = 52.33; | ||||
|     private $uk_lon  = 1.27; | ||||
|     private $uk_zoom = 6; | ||||
| 
 | ||||
|     function get_lotw($dxcc) { | ||||
|         $CI =& get_instance(); | ||||
|         $CI->load->model('logbooks_model'); | ||||
|  |  | |||
|  | @ -91,6 +91,7 @@ class Stations extends CI_Model { | |||
| 			'station_sota' =>  xss_clean(strtoupper($this->input->post('sota', true))), | ||||
| 			'station_wwff' =>  xss_clean(strtoupper($this->input->post('wwff', true))), | ||||
| 			'station_pota' =>  xss_clean(strtoupper($this->input->post('pota', true))), | ||||
| 			'station_wab' =>  xss_clean(strtoupper($this->input->post('wab', true))), | ||||
| 			'station_sig' =>  xss_clean(strtoupper($this->input->post('sig', true))), | ||||
| 			'station_sig_info' =>  xss_clean(strtoupper($this->input->post('sig_info', true))), | ||||
| 			'station_callsign' =>  xss_clean($this->input->post('station_callsign', true)), | ||||
|  | @ -141,6 +142,7 @@ class Stations extends CI_Model { | |||
| 			'station_sota' => xss_clean($this->input->post('sota', true)), | ||||
| 			'station_wwff' => xss_clean($this->input->post('wwff', true)), | ||||
| 			'station_pota' => xss_clean($this->input->post('pota', true)), | ||||
| 			'station_wab' => xss_clean($this->input->post('wab', true)), | ||||
| 			'station_sig' => xss_clean($this->input->post('sig', true)), | ||||
| 			'station_sig_info' => xss_clean($this->input->post('sig_info', true)), | ||||
| 			'station_callsign' => xss_clean($this->input->post('station_callsign', true)), | ||||
|  |  | |||
|  | @ -0,0 +1,211 @@ | |||
| <?php | ||||
| function echo_table_header_col($ctx, $name) | ||||
| { | ||||
| 	switch ($name) { | ||||
| 		case 'Mode': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_mode') . '</th>'; | ||||
| 			break; | ||||
| 		case 'RSTS': | ||||
| 			echo '<th class="d-none d-sm-table-cell">' . $ctx->lang->line('gen_hamradio_rsts') . '</th>'; | ||||
| 			break; | ||||
| 		case 'RSTR': | ||||
| 			echo '<th class="d-none d-sm-table-cell">' . $ctx->lang->line('gen_hamradio_rstr') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Country': | ||||
| 			echo '<th>' . $ctx->lang->line('general_word_country') . '</th>'; | ||||
| 			break; | ||||
| 		case 'IOTA': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_iota') . '</th>'; | ||||
| 			break; | ||||
| 		case 'SOTA': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_sota') . '</th>'; | ||||
| 			break; | ||||
| 		case 'WWFF': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_wwff') . '</th>'; | ||||
| 			break; | ||||
| 		case 'POTA': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_pota') . '</th>'; | ||||
| 			break; | ||||
| 		case 'State': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_state') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Grid': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_gridsquare') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Distance': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_distance') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Band': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_band') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Frequency': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_frequency') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Operator': | ||||
| 			echo '<th>' . $ctx->lang->line('gen_hamradio_operator') . '</th>'; | ||||
| 			break; | ||||
| 		case 'Name': | ||||
| 			echo '<th>' . $ctx->lang->line('general_word_name') . '</th>'; | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function echo_table_col($row, $name) | ||||
| { | ||||
| 	$ci = &get_instance(); | ||||
| 	switch ($name) { | ||||
| 		case 'Mode': | ||||
| 			echo '<td>'; | ||||
| 			echo $row->COL_SUBMODE == null ? $row->COL_MODE : $row->COL_SUBMODE . '</td>'; | ||||
| 			break; | ||||
| 		case 'RSTS': | ||||
| 			echo '<td class="d-none d-sm-table-cell">' . $row->COL_RST_SENT; | ||||
| 			if ($row->COL_STX) { | ||||
| 				echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">'; | ||||
| 				printf("%03d", $row->COL_STX); | ||||
| 				echo '</span>'; | ||||
| 			} | ||||
| 			if ($row->COL_STX_STRING) { | ||||
| 				echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">' . $row->COL_STX_STRING . '</span>'; | ||||
| 			} | ||||
| 			echo '</td>'; | ||||
| 			break; | ||||
| 		case 'RSTR': | ||||
| 			echo '<td class="d-none d-sm-table-cell">' . $row->COL_RST_RCVD; | ||||
| 			if ($row->COL_SRX) { | ||||
| 				echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">'; | ||||
| 				printf("%03d", $row->COL_SRX); | ||||
| 				echo '</span>'; | ||||
| 			} | ||||
| 			if ($row->COL_SRX_STRING) { | ||||
| 				echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">' . $row->COL_SRX_STRING . '</span>'; | ||||
| 			} | ||||
| 			echo '</td>'; | ||||
| 			break; | ||||
| 		case 'Country': | ||||
| 			echo '<td>' . ucwords(strtolower(($row->COL_COUNTRY))); | ||||
| 			if ($row->end != NULL) echo ' <span class="badge text-bg-danger">' . $ci->lang->line('gen_hamradio_deleted_dxcc') . '</span>'  . '</td>'; | ||||
| 			break; | ||||
| 		case 'IOTA': | ||||
| 			echo '<td>' . ($row->COL_IOTA) . '</td>'; | ||||
| 			break; | ||||
| 		case 'SOTA': | ||||
| 			echo '<td>' . ($row->COL_SOTA_REF) . '</td>'; | ||||
| 			break; | ||||
| 		case 'WWFF': | ||||
| 			echo '<td>' . ($row->COL_WWFF_REF) . '</td>'; | ||||
| 			break; | ||||
| 		case 'POTA': | ||||
| 			echo '<td>' . ($row->COL_POTA_REF) . '</td>'; | ||||
| 			break; | ||||
| 		case 'Grid': | ||||
| 			echo '<td>'; | ||||
| 			echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); | ||||
| 			echo '</td>'; | ||||
| 			break; | ||||
| 		case 'Distance': | ||||
| 			echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : '') . '</td>'; | ||||
| 			break; | ||||
| 		case 'Band': | ||||
| 			echo '<td>'; | ||||
| 			if ($row->COL_SAT_NAME != null) { | ||||
| 				echo '<a href="https://db.satnogs.org/search/?q=' . $row->COL_SAT_NAME . '" target="_blank">' . $row->COL_SAT_NAME . '</a></td>'; | ||||
| 			} else { | ||||
| 				echo strtolower($row->COL_BAND); | ||||
| 			} | ||||
| 			echo '</td>'; | ||||
| 			break; | ||||
| 		case 'Frequency': | ||||
| 			echo '<td>'; | ||||
| 			if ($row->COL_SAT_NAME != null) { | ||||
| 				echo '<a href="https://db.satnogs.org/search/?q=' . $row->COL_SAT_NAME . '" target="_blank">' . $row->COL_SAT_NAME . '</a></td>'; | ||||
| 			} else { | ||||
| 				if ($row->COL_FREQ != null) { | ||||
| 					echo $ci->frequency->hz_to_mhz($row->COL_FREQ); | ||||
| 				} else { | ||||
| 					echo strtolower($row->COL_BAND); | ||||
| 				} | ||||
| 			} | ||||
| 			echo '</td>'; | ||||
| 			break; | ||||
| 		case 'State': | ||||
| 			echo '<td>' . ($row->COL_STATE) . '</td>'; | ||||
| 			break; | ||||
| 		case 'Operator': | ||||
| 			echo '<td>' . ($row->COL_OPERATOR) . '</td>'; | ||||
| 			break; | ||||
| 		case 'Name': | ||||
| 			echo '<td>' . ($row->COL_NAME) . '</td>'; | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function echoQrbCalcLink($mygrid, $grid, $vucc) | ||||
| { | ||||
| 	if (!empty($grid)) { | ||||
| 		echo $grid . ' <a href="javascript:spawnQrbCalculator(\'' . $mygrid . '\',\'' . $grid . '\')"><i class="fas fa-globe"></i></a>'; | ||||
| 	} else if (!empty($vucc)) { | ||||
| 		echo $vucc . ' <a href="javascript:spawnQrbCalculator(\'' . $mygrid . '\',\'' . $vucc . '\')"><i class="fas fa-globe"></i></a>'; | ||||
| 	} | ||||
| } | ||||
| ?>
 | ||||
| <div class="table-responsive"> | ||||
|     <table class="table table-striped table-hover border-top"> | ||||
| 
 | ||||
|         <thead> | ||||
|             <tr class="titles"> | ||||
|                 <th><?php echo lang('general_word_date'); ?></th>
 | ||||
| 
 | ||||
|                 <?php if (($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
 | ||||
|                     <th><?php echo lang('general_word_time'); ?></th>
 | ||||
|                 <?php } ?>
 | ||||
|                 <th><?php echo lang('gen_hamradio_call'); ?></th>
 | ||||
|                 <?php | ||||
|                 echo_table_header_col($this, $this->session->userdata('user_column1') == "" ? 'Mode' : $this->session->userdata('user_column1')); | ||||
|                 echo_table_header_col($this, $this->session->userdata('user_column2') == "" ? 'RSTS' : $this->session->userdata('user_column2')); | ||||
|                 echo_table_header_col($this, $this->session->userdata('user_column3') == "" ? 'RSTR' : $this->session->userdata('user_column3')); | ||||
|                 echo_table_header_col($this, $this->session->userdata('user_column4') == "" ? 'Band' : $this->session->userdata('user_column4')); | ||||
|                 ?>
 | ||||
|             </tr> | ||||
|         </thead> | ||||
| 
 | ||||
|         <?php | ||||
|         $i = 0; | ||||
|         if (!empty($last_five_qsos) > 0) { | ||||
|             foreach ($last_five_qsos->result() as $row) { ?>
 | ||||
|                 <?php echo '<tr id="qso_' . $row->COL_PRIMARY_KEY . '" class="tr' . ($i & 1) . '">'; ?>
 | ||||
| 
 | ||||
|                 <?php | ||||
| 
 | ||||
|                 // Get Date format
 | ||||
|                 if ($this->session->userdata('user_date_format')) { | ||||
|                     // If Logged in and session exists
 | ||||
|                     $custom_date_format = $this->session->userdata('user_date_format'); | ||||
|                 } else { | ||||
|                     // Get Default date format from /config/cloudlog.php
 | ||||
|                     $custom_date_format = $this->config->item('qso_date_format'); | ||||
|                 } | ||||
| 
 | ||||
|                 ?>
 | ||||
| 
 | ||||
|                 <td><?php $timestamp = strtotime($row->COL_TIME_ON); | ||||
|                     echo date($custom_date_format, $timestamp); ?></td>
 | ||||
|                 <?php if (($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
 | ||||
|                     <td><?php $timestamp = strtotime($row->COL_TIME_ON); | ||||
|                         echo date('H:i', $timestamp); ?></td>
 | ||||
| 
 | ||||
|                 <?php } ?>
 | ||||
|                 <td> | ||||
|                     <a id="edit_qso" href="javascript:displayQso(<?php echo $row->COL_PRIMARY_KEY; ?>)"><?php echo str_replace("0", "Ø", strtoupper($row->COL_CALL)); ?></a>
 | ||||
|                 </td> | ||||
|                 <?php | ||||
|                 echo_table_col($row, $this->session->userdata('user_column1') == "" ? 'Mode' : $this->session->userdata('user_column1')); | ||||
|                 echo_table_col($row, $this->session->userdata('user_column2') == "" ? 'RSTS' : $this->session->userdata('user_column2')); | ||||
|                 echo_table_col($row, $this->session->userdata('user_column3') == "" ? 'RSTR' : $this->session->userdata('user_column3')); | ||||
|                 echo_table_col($row, $this->session->userdata('user_column4') == "" ? 'Band' : $this->session->userdata('user_column4')); | ||||
|                 ?>
 | ||||
|                 </tr> | ||||
|         <?php $i++; | ||||
|             } | ||||
|         } ?>
 | ||||
|     </table> | ||||
|  | @ -213,7 +213,7 @@ function echoQrbCalcLink($mygrid, $grid, $vucc) | |||
| 	<?php } ?>
 | ||||
| </div> | ||||
| 
 | ||||
| <?php if ($this->config->item('option_dashboard_map ') != "false" && $this->config->item('option_dashboard_map ') != "map_at_right") { ?>
 | ||||
| <?php if (($this->optionslib->get_option('dashboard_map') != "false") && ($this->optionslib->get_option('dashboard_map') != "map_at_right")) { ?>
 | ||||
| 	<!-- Map --> | ||||
| 	<div id="map" class="map-leaflet" style="width: 100%; height: 350px"></div> | ||||
| <?php } ?>
 | ||||
|  | @ -222,72 +222,11 @@ function echoQrbCalcLink($mygrid, $grid, $vucc) | |||
| 	<!-- Log Data --> | ||||
| 	<div class="row logdata"> | ||||
| 		<div class="col-sm-8"> | ||||
| 
 | ||||
| 			<div class="table-responsive"> | ||||
| 				<table class="table table-striped table-hover border-top"> | ||||
| 
 | ||||
| 					<thead> | ||||
| 						<tr class="titles"> | ||||
| 							<th><?php echo lang('general_word_date'); ?></th>
 | ||||
| 
 | ||||
| 							<?php if (($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
 | ||||
| 								<th><?php echo lang('general_word_time'); ?></th>
 | ||||
| 							<?php } ?>
 | ||||
| 							<th><?php echo lang('gen_hamradio_call'); ?></th>
 | ||||
| 							<?php | ||||
| 							echo_table_header_col($this, $this->session->userdata('user_column1') == "" ? 'Mode' : $this->session->userdata('user_column1')); | ||||
| 							echo_table_header_col($this, $this->session->userdata('user_column2') == "" ? 'RSTS' : $this->session->userdata('user_column2')); | ||||
| 							echo_table_header_col($this, $this->session->userdata('user_column3') == "" ? 'RSTR' : $this->session->userdata('user_column3')); | ||||
| 							echo_table_header_col($this, $this->session->userdata('user_column4') == "" ? 'Band' : $this->session->userdata('user_column4')); | ||||
| 							?>
 | ||||
| 						</tr> | ||||
| 					</thead> | ||||
| 
 | ||||
| 					<?php | ||||
| 					$i = 0; | ||||
| 					if (!empty($last_five_qsos) > 0) { | ||||
| 						foreach ($last_five_qsos->result() as $row) { ?>
 | ||||
| 							<?php echo '<tr id="qso_' . $row->COL_PRIMARY_KEY . '" class="tr' . ($i & 1) . '">'; ?>
 | ||||
| 
 | ||||
| 							<?php | ||||
| 
 | ||||
| 							// Get Date format
 | ||||
| 							if ($this->session->userdata('user_date_format')) { | ||||
| 								// If Logged in and session exists
 | ||||
| 								$custom_date_format = $this->session->userdata('user_date_format'); | ||||
| 							} else { | ||||
| 								// Get Default date format from /config/cloudlog.php
 | ||||
| 								$custom_date_format = $this->config->item('qso_date_format'); | ||||
| 							} | ||||
| 
 | ||||
| 							?>
 | ||||
| 
 | ||||
| 							<td><?php $timestamp = strtotime($row->COL_TIME_ON); | ||||
| 								echo date($custom_date_format, $timestamp); ?></td>
 | ||||
| 							<?php if (($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
 | ||||
| 								<td><?php $timestamp = strtotime($row->COL_TIME_ON); | ||||
| 									echo date('H:i', $timestamp); ?></td>
 | ||||
| 
 | ||||
| 							<?php } ?>
 | ||||
| 							<td> | ||||
| 								<a id="edit_qso" href="javascript:displayQso(<?php echo $row->COL_PRIMARY_KEY; ?>)"><?php echo str_replace("0", "Ø", strtoupper($row->COL_CALL)); ?></a>
 | ||||
| 							</td> | ||||
| 							<?php | ||||
| 							echo_table_col($row, $this->session->userdata('user_column1') == "" ? 'Mode' : $this->session->userdata('user_column1')); | ||||
| 							echo_table_col($row, $this->session->userdata('user_column2') == "" ? 'RSTS' : $this->session->userdata('user_column2')); | ||||
| 							echo_table_col($row, $this->session->userdata('user_column3') == "" ? 'RSTR' : $this->session->userdata('user_column3')); | ||||
| 							echo_table_col($row, $this->session->userdata('user_column4') == "" ? 'Band' : $this->session->userdata('user_column4')); | ||||
| 							?>
 | ||||
| 							</tr> | ||||
| 					<?php $i++; | ||||
| 						} | ||||
| 					} ?>
 | ||||
| 				</table> | ||||
| 			</div> | ||||
| 			<div id="logbook_display_component" hx-get="<?php echo site_url('dashboard/logbook_display_component'); ?>" hx-trigger="load, every 5s"></div> | ||||
| 		</div> | ||||
| 
 | ||||
| 		<div class="col-sm-4"> | ||||
| 			<?php if ($this->config->item('dashboard_map') == "map_at_right") { ?>
 | ||||
| 			<?php if ($this->optionslib->get_option('dashboard_map') == "map_at_right") { ?>
 | ||||
| 				<!-- Map --> | ||||
| 				<div id="map" class="map-leaflet" style="width: 100%; height: 350px;  margin-bottom: 15px;"></div> | ||||
| 			<?php } ?>
 | ||||
|  |  | |||
|  | @ -805,7 +805,6 @@ if ($this->session->userdata('user_id') != null) { | |||
| 
 | ||||
| <?php if ($this->uri->segment(1) == "" || $this->uri->segment(1) == "dashboard") { ?>
 | ||||
|     <script type="text/javascript" src="<?php echo base_url(); ?>assets/js/leaflet/L.Maidenhead.js"></script> | ||||
|     <script id="leafembed" type="text/javascript" src="<?php echo base_url(); ?>assets/js/leaflet/leafembed.js" tileUrl="<?php echo $this->optionslib->get_option('option_map_tile_server'); ?>"></script> | ||||
| 
 | ||||
|     <script type="text/javascript"> | ||||
|         $(function() { | ||||
|  | @ -822,19 +821,68 @@ if ($this->session->userdata('user_id') != null) { | |||
| 
 | ||||
|         var qso_loc = '<?php echo site_url('map/map_plot_json'); ?>'; | ||||
|         var q_zoom = 3; | ||||
|         var osmUrl = '<?php echo $this->optionslib->get_option('option_map_tile_server'); ?>'; | ||||
|         var osmCopyright = '<?php echo $this->optionslib->get_option('map_tile_server_copyright'); ?>'; | ||||
| 
 | ||||
|         var redIconImg = L.icon({ | ||||
|             iconUrl: icon_dot_url, | ||||
|             iconSize: [10, 10] | ||||
|         }); | ||||
| 
 | ||||
|         $(document).ready(function() { | ||||
|             <?php if ($this->config->item('map_gridsquares') != FALSE) { ?>
 | ||||
|                 var grid = "Yes"; | ||||
|                 var ShowGrid = "Yes"; | ||||
|             <?php } else { ?>
 | ||||
|                 var grid = "No"; | ||||
|                 var ShowGrid = "No"; | ||||
|             <?php } ?>
 | ||||
|             initmap(grid, 'map', { | ||||
|                 'dataPost': { | ||||
|                     'nb_qso': '18' | ||||
|                 } | ||||
|             }); | ||||
| 
 | ||||
| 
 | ||||
|              | ||||
|             var dashmap = L.map('map').setView([q_lat, q_lng], q_zoom); | ||||
| 
 | ||||
|             var osm = new L.tileLayer(osmUrl, {minZoom: 1, maxZoom: 12, | ||||
|                 attribution: osmCopyright | ||||
|             }).addTo(dashmap); | ||||
| 
 | ||||
|             dashmap.addLayer(osm); | ||||
| 
 | ||||
|             var printer = L.easyPrint({ | ||||
|                 sizeModes: ['Current'], | ||||
|                 filename: 'myMap', | ||||
|                 exportOnly: true, | ||||
|                 hideControlContainer: true | ||||
|             }).addTo(dashmap); | ||||
| 
 | ||||
|             var markers = {}; | ||||
| 
 | ||||
|             function loadMarkers() { | ||||
|                 fetch(qso_loc) | ||||
|                     .then(response => response.json()) | ||||
|                     .then(data => { | ||||
|                         var newMarkers = {}; | ||||
|                         data.markers.forEach(marker => { | ||||
|                             var key = `${marker.lat},${marker.lng}`; | ||||
|                             newMarkers[key] = marker; | ||||
|                             if (!markers[key]) { | ||||
|                                 L.marker([marker.lat, marker.lng], { | ||||
|                                         icon: redIconImg | ||||
|                                     }).addTo(dashmap) | ||||
|                                     .bindPopup(marker.html); | ||||
|                             } | ||||
|                         }); | ||||
|                         Object.keys(markers).forEach(key => { | ||||
|                             if (!newMarkers[key]) { | ||||
|                                 dashmap.removeLayer(markers[key]); | ||||
|                             } | ||||
|                         }); | ||||
|                         markers = newMarkers; | ||||
|                     }); | ||||
|             } | ||||
| 
 | ||||
|             loadMarkers(); | ||||
|             setInterval(loadMarkers, 5000); | ||||
| 
 | ||||
|             var layerControl = new L.Control.Layers(null, { 'Gridsquares': maidenhead = L.maidenhead() }).addTo(dashmap); | ||||
|         }); | ||||
|     </script> | ||||
| <?php } ?>
 | ||||
|  | @ -1602,43 +1650,45 @@ if ($this->session->userdata('user_id') != null) { | |||
| 
 | ||||
|         // Load the external GeoJSON file
 | ||||
|         $.when(wab_squares).done(function() { | ||||
|         var layer = L.tileLayer('<?php echo $this->optionslib->get_option('option_map_tile_server'); ?>', { | ||||
|             maxZoom: 18, | ||||
|             attribution: '<?php echo $this->optionslib->get_option('option_map_tile_server_copyright'); ?>', | ||||
|             id: 'mapbox.streets' | ||||
|         }); | ||||
|             var layer = L.tileLayer('<?php echo $this->optionslib->get_option('option_map_tile_server'); ?>', { | ||||
|                 maxZoom: 18, | ||||
|                 attribution: '<?php echo $this->optionslib->get_option('option_map_tile_server_copyright'); ?>', | ||||
|                 id: 'mapbox.streets' | ||||
|             }); | ||||
| 
 | ||||
|         var map = L.map('map', { | ||||
|             layers: [layer], | ||||
|             center: [54.970901, -2.457140], | ||||
|             zoom: 8, | ||||
|             minZoom: 8, | ||||
|             fullscreenControl: true, | ||||
|             fullscreenControlOptions: { | ||||
|                 position: 'topleft' | ||||
|             }, | ||||
|         }); | ||||
|             var map = L.map('map', { | ||||
|                 layers: [layer], | ||||
|                 center: [54.970901, -2.457140], | ||||
|                 zoom: 8, | ||||
|                 minZoom: 8, | ||||
|                 fullscreenControl: true, | ||||
|                 fullscreenControlOptions: { | ||||
|                     position: 'topleft' | ||||
|                 }, | ||||
|             }); | ||||
| 
 | ||||
|         var printer = L.easyPrint({ | ||||
|             tileLayer: layer, | ||||
|             sizeModes: ['Current'], | ||||
|             filename: 'myMap', | ||||
|             exportOnly: true, | ||||
|             hideControlContainer: true | ||||
|         }).addTo(map); | ||||
|             var printer = L.easyPrint({ | ||||
|                 tileLayer: layer, | ||||
|                 sizeModes: ['Current'], | ||||
|                 filename: 'myMap', | ||||
|                 exportOnly: true, | ||||
|                 hideControlContainer: true | ||||
|             }).addTo(map); | ||||
| 
 | ||||
|           /*Legend specific*/ | ||||
|   var legend = L.control({ position: "topright" }); | ||||
|             /*Legend specific*/ | ||||
|             var legend = L.control({ | ||||
|                 position: "topright" | ||||
|             }); | ||||
| 
 | ||||
| legend.onAdd = function(map) { | ||||
|     var div = L.DomUtil.create("div", "legend"); | ||||
|     div.innerHTML += "<h4>" + lang_general_word_colors + "</h4>"; | ||||
|     div.innerHTML += "<i style='background: green'></i><span> Confirmed Square</span><br>"; | ||||
|     div.innerHTML += "<i style='background: orange'></i><span> Unconfirmed Square</span><br>"; | ||||
|     return div; | ||||
| }; | ||||
|             legend.onAdd = function(map) { | ||||
|                 var div = L.DomUtil.create("div", "legend"); | ||||
|                 div.innerHTML += "<h4>" + lang_general_word_colors + "</h4>"; | ||||
|                 div.innerHTML += "<i style='background: green'></i><span> Confirmed Square</span><br>"; | ||||
|                 div.innerHTML += "<i style='background: orange'></i><span> Unconfirmed Square</span><br>"; | ||||
|                 return div; | ||||
|             }; | ||||
| 
 | ||||
| legend.addTo(map); | ||||
|             legend.addTo(map); | ||||
| 
 | ||||
|             //console.log(wab_squares.responseJSON);
 | ||||
|             // Add requested external GeoJSON to map
 | ||||
|  | @ -3109,6 +3159,25 @@ legend.addTo(map); | |||
|     <script> | ||||
|         var baseURL = "<?php echo base_url(); ?>"; | ||||
| 
 | ||||
|         $(document).ready(function() { | ||||
|             function checkSelectedValue() { | ||||
|                 var selectedValue = $('#dxcc_select').val(); | ||||
|                 var valuesToShow = [223, 279, 294, 265, 106, 122]; | ||||
| 
 | ||||
|                 if (valuesToShow.includes(Number(selectedValue))) { | ||||
|                     $('#WABbox').show(); | ||||
|                 } else { | ||||
|                     $('#WABbox').hide(); | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             // Call on page load
 | ||||
|             checkSelectedValue(); | ||||
| 
 | ||||
|             // Call on change event
 | ||||
|             $('#dxcc_select').change(checkSelectedValue); | ||||
|         }); | ||||
| 
 | ||||
|         var state = $("#StateHelp option:selected").text(); | ||||
|         if (state != "") { | ||||
|             $("#stationCntyInput").prop('disabled', false); | ||||
|  |  | |||
|  | @ -158,6 +158,8 @@ | |||
| 										<li><a class="dropdown-item" href="<?php echo site_url('awards/gridmaster/ja'); ?>"><i class="fas fa-trophy"></i> <?php echo lang('menu_ja_gridmaster'); ?></a></li>
 | ||||
| 										<div class="dropdown-divider"></div> | ||||
| 										<li><a class="dropdown-item" href="<?php echo site_url('awards/gridmaster/us'); ?>"><i class="fas fa-trophy"></i> <?php echo lang('menu_us_gridmaster'); ?></a></li>
 | ||||
| 										<div class="dropdown-divider"></div> | ||||
| 										<li><a class="dropdown-item" href="<?php echo site_url('awards/gridmaster/uk'); ?>"><i class="fas fa-trophy"></i> <?php echo lang('menu_uk_gridmaster'); ?></a></li>
 | ||||
| 									</ul> | ||||
| 								</div> | ||||
| 								<div class="dropdown-divider"></div> | ||||
|  |  | |||
|  | @ -1,364 +1,370 @@ | |||
| 
 | ||||
| <div class="container" id="create_station_profile"> | ||||
| 
 | ||||
| <br> | ||||
| 	<?php if($this->session->flashdata('message')) { ?>
 | ||||
| 	<br> | ||||
| 	<?php if ($this->session->flashdata('message')) { ?>
 | ||||
| 		<!-- Display Message --> | ||||
| 		<div class="alert-message error"> | ||||
| 		  <p><?php echo $this->session->flashdata('message'); ?></p>
 | ||||
| 			<p><?php echo $this->session->flashdata('message'); ?></p>
 | ||||
| 		</div> | ||||
| 	<?php } ?>
 | ||||
| 
 | ||||
| <div class="card"> | ||||
|   <div class="card-header"> | ||||
|     <?php echo $page_title; ?>
 | ||||
|   </div> | ||||
|   <div class="card-body"> | ||||
|     <h5 class="card-title"></h5> | ||||
|     <p class="card-text"></p> | ||||
| 	<div class="card"> | ||||
| 		<div class="card-header"> | ||||
| 			<?php echo $page_title; ?>
 | ||||
| 		</div> | ||||
| 		<div class="card-body"> | ||||
| 			<h5 class="card-title"></h5> | ||||
| 			<p class="card-text"></p> | ||||
| 
 | ||||
| 		<?php if($this->session->flashdata('notice')) { ?>
 | ||||
| 			<div id="message" > | ||||
| 			<?php echo $this->session->flashdata('notice'); ?>
 | ||||
| 			</div> | ||||
| 		<?php } ?>
 | ||||
| 
 | ||||
| 		<?php $this->load->helper('form'); ?>
 | ||||
| 
 | ||||
| 		<?php echo validation_errors(); ?>
 | ||||
| 
 | ||||
| 		<form method="post" action="<?php echo site_url('station/create'); ?>" name="create_profile"> | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationNameInput"><?php echo lang("station_location_name"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="station_profile_name" id="stationNameInput" aria-describedby="stationNameInputHelp" placeholder="Home QTH" required> | ||||
| 		    <small id="stationNameInputHelp" class="form-text text-muted"><?php echo lang("station_location_name_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 			<div class="mb-3"> | ||||
| 		    <label for="stationCallsignInput"><?php echo lang("station_location_callsign"); ?></label>
 | ||||
| 			<input type="text" class="form-control" name="station_callsign" id="stationCallsignInput" aria-describedby="stationCallsignInputHelp" placeholder="2M0SQL" pattern="[a-zA-Z0-9\/]*" required oninput="validateInput(this);"> | ||||
| 			<div id="stationCallsignInputError" style="display: none; color: red;">Only letters, numbers, and forward slashes are allowed.</div> | ||||
| 
 | ||||
| 			<script> | ||||
| 			function validateInput(input) { | ||||
| 				var errorDiv = document.getElementById('stationCallsignInputError'); | ||||
| 				if (input.checkValidity()) { | ||||
| 					input.classList.remove('error-red-border'); | ||||
| 					errorDiv.style.display = 'none'; | ||||
| 				} else { | ||||
| 					input.classList.add('error-red-border'); | ||||
| 					errorDiv.style.display = 'block'; | ||||
| 				} | ||||
| 			} | ||||
| 			</script> | ||||
| 			<small id="stationCallsignInputHelp" class="form-text text-muted"><?php echo lang("station_location_callsign_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 			<div class="mb-3"> | ||||
| 		    <label for="stationPowerInput"><?php echo lang("station_location_power"); ?></label>
 | ||||
| 		    <input type="number" class="form-control" name="station_power" id="stationPowerInput" step="1" aria-describedby="stationPowerInputHelp" placeholder="10"> | ||||
| 		    <small id="stationPowerInputHelp" class="form-text text-muted"><?php echo lang("station_location_power_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationDXCCInput"><?php echo lang("station_location_dxcc"); ?></label>
 | ||||
| 				<?php if ($dxcc_list->num_rows() > 0) { ?>
 | ||||
| 				<select class="form-select" id="dxcc_select" name="dxcc" aria-describedby="stationCallsignInputHelp"> | ||||
| 				<option value="0" selected><?php echo "- " . lang('general_word_none') . " -"; ?></option>
 | ||||
| 				<?php foreach ($dxcc_list->result() as $dxcc) { ?>
 | ||||
| 				<option value="<?php echo $dxcc->adif; ?>"><?php echo ucwords(strtolower($dxcc->name)) . ' - ' . $dxcc->prefix; if ($dxcc->end != NULL) echo ' ('.lang('gen_hamradio_deleted_dxcc').')';?>
 | ||||
| 				</option> | ||||
| 				<?php } ?>
 | ||||
| 				</select> | ||||
| 				<?php } ?>
 | ||||
| 		    <small id="stationDXCCInputHelp" class="form-text text-muted"><?php echo lang("station_location_dxcc_hint"); ?></small>
 | ||||
| 			<div class="alert alert-danger" role="alert" id="warningMessageDXCC" style="display: none"> </div> | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationCityInput"><?php echo lang("station_location_city"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="city" id="stationCityInput" aria-describedby="stationCityInputHelp"> | ||||
| 		    <small id="stationCityInputHelp" class="form-text text-muted"><?php echo lang("station_location_city_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
|         <div class="row"> | ||||
|             <div class="mb-3 col-sm-6" id="us_state"> | ||||
| 		    <label for="stateInput"><?php echo lang("station_location_state"); ?></label>
 | ||||
| 		    <select class="form-select" name="station_state" id="StateHelp" aria-describedby="stationCntyInputHelp"> | ||||
| 		    	<option value="" selected></option> | ||||
| 				<option value="AK">Alaska</option> | ||||
| 				<option value="AL">Alabama</option> | ||||
| 				<option value="AR">Arkansas</option> | ||||
| 				<option value="AZ">Arizona</option> | ||||
| 				<option value="CA">California</option> | ||||
| 				<option value="CO">Colorado</option> | ||||
| 				<option value="CT">Connecticut</option> | ||||
| 				<option value="DE">Delaware</option> | ||||
| 				<option value="FL">Florida</option> | ||||
| 				<option value="GA">Georgia</option> | ||||
| 				<option value="HI">Hawaii</option> | ||||
| 				<option value="IA">Iowa</option> | ||||
| 				<option value="ID">Idaho</option> | ||||
| 				<option value="IL">Illinois</option> | ||||
| 				<option value="IN">Indiana</option> | ||||
| 				<option value="KS">Kansas</option> | ||||
| 				<option value="KY">Kentucky</option> | ||||
| 				<option value="LA">Louisiana</option> | ||||
| 				<option value="MA">Massachusetts</option> | ||||
| 				<option value="MD">Maryland</option> | ||||
| 				<option value="ME">Maine</option> | ||||
| 				<option value="MI">Michigan</option> | ||||
| 				<option value="MN">Minnesota</option> | ||||
| 				<option value="MO">Missouri</option> | ||||
| 				<option value="MS">Mississippi</option> | ||||
| 				<option value="MT">Montana</option> | ||||
| 				<option value="NC">North Carolina</option> | ||||
| 				<option value="ND">North Dakota</option> | ||||
| 				<option value="NE">Nebraska</option> | ||||
| 				<option value="NH">New Hampshire</option> | ||||
| 				<option value="NJ">New Jersey</option> | ||||
| 				<option value="NM">New Mexico</option> | ||||
| 				<option value="NV">Nevada</option> | ||||
| 				<option value="NY">New York</option> | ||||
| 				<option value="OH">Ohio</option> | ||||
| 				<option value="OK">Oklahoma</option> | ||||
| 				<option value="OR">Oregon</option> | ||||
| 				<option value="PA">Pennsylvania</option> | ||||
| 				<option value="RI">Rhode Island</option> | ||||
| 				<option value="SC">South Carolina</option> | ||||
| 				<option value="SD">South Dakota</option> | ||||
| 				<option value="TN">Tennessee</option> | ||||
| 				<option value="TX">Texas</option> | ||||
| 				<option value="UT">Utah</option> | ||||
| 				<option value="VA">Virginia</option> | ||||
| 				<option value="VT">Vermont</option> | ||||
| 				<option value="WA">Washington</option> | ||||
| 				<option value="WI">Wisconsin</option> | ||||
| 				<option value="WV">West Virginia</option> | ||||
| 				<option value="WY">Wyoming</option> | ||||
| 			</select> | ||||
| 		    <small id="StateHelp" class="form-text text-muted"><?php echo lang("station_location_state_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3 col-sm-6" id="canada_state"> | ||||
| 		    <label for="stateInput"><?php echo lang("station_location_state"); ?></label>
 | ||||
| 		    <select class="form-select" name="station_ca_state" id="StateHelp" aria-describedby="stationCntyInputHelp"> | ||||
| 		    	<option value="" selected></option> | ||||
| 				<option value="AB">Alberta</option> | ||||
| 				<option value="BC">British Columbia</option> | ||||
| 				<option value="MB">Manitoba</option> | ||||
| 				<option value="NB">New Brunswick</option> | ||||
| 				<option value="NL">Newfoundland & Labrador</option> | ||||
| 				<option value="NS">Nova Scotia</option> | ||||
| 				<option value="NT">Northwest Territories</option> | ||||
| 				<option value="NU">Nunavut</option> | ||||
| 				<option value="ON">Ontario</option> | ||||
| 				<option value="PE">Prince Edward Island</option> | ||||
| 				<option value="QC">Quebec</option> | ||||
| 				<option value="SK">Saskatchewan</option> | ||||
| 				<option value="YT">Yukon</option> | ||||
| 			</select> | ||||
| 		    <small id="StateHelp" class="form-text text-muted"><?php echo lang("station_location_state_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3 col-sm-6"> | ||||
| 		    <label for="stationCntyInput"><?php echo lang("station_location_county"); ?></label>
 | ||||
| 		    <input disabled="disabled" type="text" class="form-control" name="station_cnty" id="stationCntyInput" aria-describedby="stationCntyInputHelp"> | ||||
| 		    <small id="stationCntyInputHelp" class="form-text text-muted"><?php echo lang("station_location_county_hint"); ?></small>
 | ||||
| 		  </div> | ||||
|         </div> | ||||
| 
 | ||||
|             <div class="row"> | ||||
|                 <div class="mb-3 col-sm-6"> | ||||
|                     <label for="stationCQZoneInput"><?php echo lang("gen_hamradio_cq_zone"); ?></label>
 | ||||
|                     <select class="form-select" id="stationCQZoneInput" name="station_cq" required> | ||||
|                         <?php | ||||
|                         for ($i = 1; $i<=40; $i++) { | ||||
|                             echo '<option value='. $i; | ||||
| 
 | ||||
|                             echo '>'. $i .'</option>'; | ||||
|                         } | ||||
|                         ?>
 | ||||
|                     </select> | ||||
|                     <small id="stationCQInputHelp" class="form-text text-muted"><?php echo lang("gen_find_zone_cq_part1")." <a href='https://zone-check.eu/?m=cq' target='_blank'>".lang("gen_find_zone_part2")."</a> ".lang("gen_find_zone_part3"); ?></small>
 | ||||
|                 </div> | ||||
| 
 | ||||
|                 <div class="mb-3 col-sm-6"> | ||||
|                     <label for="stationITUZoneInput"><?php echo lang("gen_hamradio_itu_zone"); ?></label>
 | ||||
|                     <select class="form-select" id="stationITUZoneInput" name="station_itu" required> | ||||
|                         <?php | ||||
|                         for ($i = 1; $i<=90; $i++) { | ||||
|                             echo '<option value='. $i; | ||||
| 
 | ||||
|                             echo '>'. $i .'</option>'; | ||||
|                         } | ||||
|                         ?>
 | ||||
|                     </select> | ||||
|                     <small id="stationITUInputHelp" class="form-text text-muted"><?php echo lang("gen_find_zone_itu_part1")." <a href='https://zone-check.eu/?m=itu' target='_blank'>".lang("gen_find_zone_part2")."</a> ".lang("gen_find_zone_part3"); ?></small>
 | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationGridsquareInput"><?php echo lang("station_location_gridsquare"); ?></label>
 | ||||
| 
 | ||||
| 			<div class="input-group mb-3"> | ||||
| 			<input type="text" class="form-control" name="gridsquare" id="stationGridsquareInput" aria-describedby="stationGridInputHelp" required> | ||||
| 			<div class="input-group-append"> | ||||
| 				<button type="button" class="btn btn-outline-secondary" onclick="getLocation()"><i class="fas fa-compass"></i> <?php echo lang("gen_hamradio_get_gridsquare"); ?></button>
 | ||||
| 			</div> | ||||
| 			</div> | ||||
| 
 | ||||
| 		    <small id="stationGridInputHelp" class="form-text text-muted"><?php echo lang("station_location_gridsquare_hint_ln1"); ?></small>
 | ||||
| 		    <small id="stationGridInputHelp" class="form-text text-muted"><?php echo lang("station_location_gridsquare_hint_ln2"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
|             <div class="mb-3"> | ||||
|                 <label for="stationIOTAInput"><?php echo lang("gen_hamradio_iota_reference"); ?></label>
 | ||||
|                 <select class="form-select" name="iota" id="stationIOTAInput" aria-describedby="stationIOTAInputHelp" placeholder="EU-005"> | ||||
|                     <option value =""></option> | ||||
| 
 | ||||
|                     <?php | ||||
|                     foreach($iota_list as $i){ | ||||
|                         echo '<option value=' . $i->tag . '>' . $i->tag . ' - ' . $i->name . '</option>'; | ||||
|                     } | ||||
|                     ?>
 | ||||
| 
 | ||||
|                 </select> | ||||
|                 <small id="stationIOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_iota_hint_ln1"); ?></small>
 | ||||
|                 <small id="stationIOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_iota_hint_ln2"); ?></small>
 | ||||
|             </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationSOTAInput"><?php echo lang("gen_hamradio_sota_reference"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="sota" id="stationSOTAInput" aria-describedby="stationSOTAInputHelp"> | ||||
| 		    <small id="stationSOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_sota_hint_ln1"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationWWFFInput"><?php echo lang("gen_hamradio_wwff_reference"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="wwff" id="stationWWFFInput" aria-describedby="stationWWFFInputHelp"> | ||||
| 		    <small id="stationWWFFInputHelp" class="form-text text-muted"><?php echo lang("station_location_wwff_hint_ln1"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationPOTAInput"><?php echo lang("gen_hamradio_pota_reference"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="pota" id="stationPOTAInput" aria-describedby="stationPOTAInputHelp"> | ||||
| 		    <small id="stationPOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_pota_hint_ln1"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationSigInput"><?php echo lang("station_location_signature"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="sig" id="stationSigInput" aria-describedby="stationSigInputHelp"> | ||||
| 		    <small id="stationSigInputHelp" class="form-text text-muted"><?php echo lang("station_location_signature_name_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
| 		  <div class="mb-3"> | ||||
| 		    <label for="stationSigInfoInput"><?php echo lang("station_location_signature_info"); ?></label>
 | ||||
| 		    <input type="text" class="form-control" name="sig_info" id="stationSigInfoInput" aria-describedby="stationSigInfoInputHelp"> | ||||
| 		    <small id="stationSigInfoInput" class="form-text text-muted"><?php echo lang("station_location_signature_info_hint"); ?></small>
 | ||||
| 		  </div> | ||||
| 
 | ||||
|             <div class="mb-3"> | ||||
|                 <label for="eqslNickname">eQSL QTH Nickname</label> <!-- This does not need Multilanguage Support --> | ||||
|                 <input type="text" class="form-control" name="eqslnickname" id="eqslNickname" aria-describedby="eqslhelp"> | ||||
|                 <small id="eqslhelp" class="form-text text-muted"><?php echo lang("station_location_eqsl_hint"); ?></small>
 | ||||
|             </div> | ||||
| 
 | ||||
| 			<div class="mb-3"> | ||||
| 				<label for="eqslDefaultQSLMsg"><?php echo lang("station_location_eqsl_defaultqslmsg"); ?></label>
 | ||||
| 				<label class="position-absolute end-0 mb-2 me-3" for="eqslDefaultQSLMsg" id="charsLeft"> </label> | ||||
| 				<textarea class="form-control" name="eqsl_default_qslmsg" id="eqslDefaultQSLMsg" aria-describedby="eqsldefaultqslmsghelp" maxlength="240" rows="2" style="width:100%;"></textarea> | ||||
| 				<small id="eqsldefaultqslmsghelp" class="form-text text-muted"><?php echo lang("station_location_eqsl_defaultqslmsg_hint"); ?></small>
 | ||||
| 			</div> | ||||
| 
 | ||||
|             <div class="mb-3"> | ||||
| 				<label for="clublogrealtime"><?php echo lang("station_location_clublog_realtime_upload"); ?></label>
 | ||||
| 				<select class="form-select" id="clublogrealtime" name="clublogrealtime"> | ||||
| 					<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 					<option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
| 				</select> | ||||
| 			</div> | ||||
| 
 | ||||
|             <div class="row"> | ||||
| 				<div class="mb-3 col-sm-3">                                                                                                                                                     | ||||
| 					<label for="hrdlog_username"><?php echo lang("station_location_hrdlog_username"); ?></label> 
 | ||||
|                     <input type="text" class="form-control" name="hrdlog_username" id="hrdlog_username" aria-describedby="hrdlog_usernameHelp"> | ||||
|                     <small id="hrdlog_usernameHelp" class="form-text text-muted"><?php echo lang("station_location_hrdlog_username_hint"); ?></a></small>
 | ||||
|                 </div> | ||||
|                 <div class="mb-3 col-sm-3">                                                                                                                                                     | ||||
| 					<label for="hrdlog_code"><?php echo lang("station_location_hrdlog_code"); ?></label>
 | ||||
|                     <input type="text" class="form-control" name="hrdlog_code" id="hrdlog_code" aria-describedby="hrdlog_codeHelp"> | ||||
|                     <small id="hrdlog_codeHelp" class="form-text text-muted"><?php echo lang("station_location_hrdlog_code_hint"); ?></a></small>
 | ||||
|                 </div> | ||||
|                 <div class="mb-3 col-sm-3"> | ||||
|                     <label for="hrdlogrealtime"><?php echo lang("station_location_hrdlog_realtime_upload"); ?></label>                                                                                                                 
 | ||||
| 					<select class="form-select" id="hrdlogrealtime" name="hrdlogrealtime"> | ||||
|                         <option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
|                         <option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
|                     </select> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
| 			<div class="alert alert-warning" role="alert"> | ||||
| 				<?php echo "QRZ.com - " . lang("station_location_qrz_subscription"); ?>
 | ||||
| 			</div> | ||||
| 
 | ||||
|             <div class="row"> | ||||
|                 <div class="mb-3 col-sm-6"> | ||||
|                     <label for="qrzApiKey">QRZ.com Logbook API Key</label>  <!-- This does not need Multilanguage Support --> | ||||
|                     <input type="text" class="form-control" name="qrzapikey" pattern="^([A-F0-9]{4}-){3}[A-F0-9]{4}$" id="qrzApiKey" aria-describedby="qrzApiKeyHelp"> | ||||
|                     <small id="qrzApiKeyHelp" class="form-text text-muted"><?php echo lang("station_location_qrz_hint"); ?></a></small>
 | ||||
|                 </div> | ||||
|                 <div class="mb-3 col-sm-6"> | ||||
|                     <label for="qrzrealtime"><?php echo lang("station_location_qrz_realtime_upload"); ?></label>
 | ||||
|                     <select class="form-select" id="qrzrealtime" name="qrzrealtime"> | ||||
|                         <option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
|                         <option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
|                     </select> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
| 			<div class="row"> | ||||
| 				<div class="mb-3 col-sm-6"> | ||||
| 					<label for="webadifApiKey"> QO-100 Dx Club API Key </label> <!-- This does not need Multilanguage Support --> | ||||
| 					<input type="text" class="form-control" name="webadifapikey" id="webadifApiKey" aria-describedby="webadifApiKeyHelp"> | ||||
| 					<small id="webadifApiKeyHelp" class="form-text text-muted"><?php echo lang("station_location_qo100_hint"); ?></a></small>
 | ||||
| 			<?php if ($this->session->flashdata('notice')) { ?>
 | ||||
| 				<div id="message"> | ||||
| 					<?php echo $this->session->flashdata('notice'); ?>
 | ||||
| 				</div> | ||||
| 				<div class="mb-3 col-sm-6"> | ||||
| 					<label for="webadifrealtime"><?php echo lang("station_location_qo100_realtime_upload"); ?></label>
 | ||||
| 					<select class="form-select" id="webadifrealtime" name="webadifrealtime"> | ||||
| 			<?php } ?>
 | ||||
| 
 | ||||
| 			<?php $this->load->helper('form'); ?>
 | ||||
| 
 | ||||
| 			<?php echo validation_errors(); ?>
 | ||||
| 
 | ||||
| 			<form method="post" action="<?php echo site_url('station/create'); ?>" name="create_profile"> | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationNameInput"><?php echo lang("station_location_name"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="station_profile_name" id="stationNameInput" aria-describedby="stationNameInputHelp" placeholder="Home QTH" required> | ||||
| 					<small id="stationNameInputHelp" class="form-text text-muted"><?php echo lang("station_location_name_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationCallsignInput"><?php echo lang("station_location_callsign"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="station_callsign" id="stationCallsignInput" aria-describedby="stationCallsignInputHelp" placeholder="2M0SQL" pattern="[a-zA-Z0-9\/]*" required oninput="validateInput(this);"> | ||||
| 					<div id="stationCallsignInputError" style="display: none; color: red;">Only letters, numbers, and forward slashes are allowed.</div> | ||||
| 
 | ||||
| 					<script> | ||||
| 						function validateInput(input) { | ||||
| 							var errorDiv = document.getElementById('stationCallsignInputError'); | ||||
| 							if (input.checkValidity()) { | ||||
| 								input.classList.remove('error-red-border'); | ||||
| 								errorDiv.style.display = 'none'; | ||||
| 							} else { | ||||
| 								input.classList.add('error-red-border'); | ||||
| 								errorDiv.style.display = 'block'; | ||||
| 							} | ||||
| 						} | ||||
| 					</script> | ||||
| 					<small id="stationCallsignInputHelp" class="form-text text-muted"><?php echo lang("station_location_callsign_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationPowerInput"><?php echo lang("station_location_power"); ?></label>
 | ||||
| 					<input type="number" class="form-control" name="station_power" id="stationPowerInput" step="1" aria-describedby="stationPowerInputHelp" placeholder="10"> | ||||
| 					<small id="stationPowerInputHelp" class="form-text text-muted"><?php echo lang("station_location_power_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationDXCCInput"><?php echo lang("station_location_dxcc"); ?></label>
 | ||||
| 					<?php if ($dxcc_list->num_rows() > 0) { ?>
 | ||||
| 						<select class="form-select" id="dxcc_select" name="dxcc" aria-describedby="stationCallsignInputHelp"> | ||||
| 							<option value="0" selected><?php echo "- " . lang('general_word_none') . " -"; ?></option>
 | ||||
| 							<?php foreach ($dxcc_list->result() as $dxcc) { ?>
 | ||||
| 								<option value="<?php echo $dxcc->adif; ?>"><?php echo ucwords(strtolower($dxcc->name)) . ' - ' . $dxcc->prefix; | ||||
| 																			if ($dxcc->end != NULL) echo ' (' . lang('gen_hamradio_deleted_dxcc') . ')'; ?>
 | ||||
| 								</option> | ||||
| 							<?php } ?>
 | ||||
| 						</select> | ||||
| 					<?php } ?>
 | ||||
| 					<small id="stationDXCCInputHelp" class="form-text text-muted"><?php echo lang("station_location_dxcc_hint"); ?></small>
 | ||||
| 					<div class="alert alert-danger" role="alert" id="warningMessageDXCC" style="display: none"> </div> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationCityInput"><?php echo lang("station_location_city"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="city" id="stationCityInput" aria-describedby="stationCityInputHelp"> | ||||
| 					<small id="stationCityInputHelp" class="form-text text-muted"><?php echo lang("station_location_city_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="row"> | ||||
| 					<div class="mb-3 col-sm-6" id="us_state"> | ||||
| 						<label for="stateInput"><?php echo lang("station_location_state"); ?></label>
 | ||||
| 						<select class="form-select" name="station_state" id="StateHelp" aria-describedby="stationCntyInputHelp"> | ||||
| 							<option value="" selected></option> | ||||
| 							<option value="AK">Alaska</option> | ||||
| 							<option value="AL">Alabama</option> | ||||
| 							<option value="AR">Arkansas</option> | ||||
| 							<option value="AZ">Arizona</option> | ||||
| 							<option value="CA">California</option> | ||||
| 							<option value="CO">Colorado</option> | ||||
| 							<option value="CT">Connecticut</option> | ||||
| 							<option value="DE">Delaware</option> | ||||
| 							<option value="FL">Florida</option> | ||||
| 							<option value="GA">Georgia</option> | ||||
| 							<option value="HI">Hawaii</option> | ||||
| 							<option value="IA">Iowa</option> | ||||
| 							<option value="ID">Idaho</option> | ||||
| 							<option value="IL">Illinois</option> | ||||
| 							<option value="IN">Indiana</option> | ||||
| 							<option value="KS">Kansas</option> | ||||
| 							<option value="KY">Kentucky</option> | ||||
| 							<option value="LA">Louisiana</option> | ||||
| 							<option value="MA">Massachusetts</option> | ||||
| 							<option value="MD">Maryland</option> | ||||
| 							<option value="ME">Maine</option> | ||||
| 							<option value="MI">Michigan</option> | ||||
| 							<option value="MN">Minnesota</option> | ||||
| 							<option value="MO">Missouri</option> | ||||
| 							<option value="MS">Mississippi</option> | ||||
| 							<option value="MT">Montana</option> | ||||
| 							<option value="NC">North Carolina</option> | ||||
| 							<option value="ND">North Dakota</option> | ||||
| 							<option value="NE">Nebraska</option> | ||||
| 							<option value="NH">New Hampshire</option> | ||||
| 							<option value="NJ">New Jersey</option> | ||||
| 							<option value="NM">New Mexico</option> | ||||
| 							<option value="NV">Nevada</option> | ||||
| 							<option value="NY">New York</option> | ||||
| 							<option value="OH">Ohio</option> | ||||
| 							<option value="OK">Oklahoma</option> | ||||
| 							<option value="OR">Oregon</option> | ||||
| 							<option value="PA">Pennsylvania</option> | ||||
| 							<option value="RI">Rhode Island</option> | ||||
| 							<option value="SC">South Carolina</option> | ||||
| 							<option value="SD">South Dakota</option> | ||||
| 							<option value="TN">Tennessee</option> | ||||
| 							<option value="TX">Texas</option> | ||||
| 							<option value="UT">Utah</option> | ||||
| 							<option value="VA">Virginia</option> | ||||
| 							<option value="VT">Vermont</option> | ||||
| 							<option value="WA">Washington</option> | ||||
| 							<option value="WI">Wisconsin</option> | ||||
| 							<option value="WV">West Virginia</option> | ||||
| 							<option value="WY">Wyoming</option> | ||||
| 						</select> | ||||
| 						<small id="StateHelp" class="form-text text-muted"><?php echo lang("station_location_state_hint"); ?></small>
 | ||||
| 					</div> | ||||
| 
 | ||||
| 					<div class="mb-3 col-sm-6" id="canada_state"> | ||||
| 						<label for="stateInput"><?php echo lang("station_location_state"); ?></label>
 | ||||
| 						<select class="form-select" name="station_ca_state" id="StateHelp" aria-describedby="stationCntyInputHelp"> | ||||
| 							<option value="" selected></option> | ||||
| 							<option value="AB">Alberta</option> | ||||
| 							<option value="BC">British Columbia</option> | ||||
| 							<option value="MB">Manitoba</option> | ||||
| 							<option value="NB">New Brunswick</option> | ||||
| 							<option value="NL">Newfoundland & Labrador</option> | ||||
| 							<option value="NS">Nova Scotia</option> | ||||
| 							<option value="NT">Northwest Territories</option> | ||||
| 							<option value="NU">Nunavut</option> | ||||
| 							<option value="ON">Ontario</option> | ||||
| 							<option value="PE">Prince Edward Island</option> | ||||
| 							<option value="QC">Quebec</option> | ||||
| 							<option value="SK">Saskatchewan</option> | ||||
| 							<option value="YT">Yukon</option> | ||||
| 						</select> | ||||
| 						<small id="StateHelp" class="form-text text-muted"><?php echo lang("station_location_state_hint"); ?></small>
 | ||||
| 					</div> | ||||
| 
 | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="stationCntyInput"><?php echo lang("station_location_county"); ?></label>
 | ||||
| 						<input disabled="disabled" type="text" class="form-control" name="station_cnty" id="stationCntyInput" aria-describedby="stationCntyInputHelp"> | ||||
| 						<small id="stationCntyInputHelp" class="form-text text-muted"><?php echo lang("station_location_county_hint"); ?></small>
 | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="row"> | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="stationCQZoneInput"><?php echo lang("gen_hamradio_cq_zone"); ?></label>
 | ||||
| 						<select class="form-select" id="stationCQZoneInput" name="station_cq" required> | ||||
| 							<?php | ||||
| 							for ($i = 1; $i <= 40; $i++) { | ||||
| 								echo '<option value=' . $i; | ||||
| 
 | ||||
| 								echo '>' . $i . '</option>'; | ||||
| 							} | ||||
| 							?>
 | ||||
| 						</select> | ||||
| 						<small id="stationCQInputHelp" class="form-text text-muted"><?php echo lang("gen_find_zone_cq_part1") . " <a href='https://zone-check.eu/?m=cq' target='_blank'>" . lang("gen_find_zone_part2") . "</a> " . lang("gen_find_zone_part3"); ?></small>
 | ||||
| 					</div> | ||||
| 
 | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="stationITUZoneInput"><?php echo lang("gen_hamradio_itu_zone"); ?></label>
 | ||||
| 						<select class="form-select" id="stationITUZoneInput" name="station_itu" required> | ||||
| 							<?php | ||||
| 							for ($i = 1; $i <= 90; $i++) { | ||||
| 								echo '<option value=' . $i; | ||||
| 
 | ||||
| 								echo '>' . $i . '</option>'; | ||||
| 							} | ||||
| 							?>
 | ||||
| 						</select> | ||||
| 						<small id="stationITUInputHelp" class="form-text text-muted"><?php echo lang("gen_find_zone_itu_part1") . " <a href='https://zone-check.eu/?m=itu' target='_blank'>" . lang("gen_find_zone_part2") . "</a> " . lang("gen_find_zone_part3"); ?></small>
 | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationGridsquareInput"><?php echo lang("station_location_gridsquare"); ?></label>
 | ||||
| 
 | ||||
| 					<div class="input-group mb-3"> | ||||
| 						<input type="text" class="form-control" name="gridsquare" id="stationGridsquareInput" aria-describedby="stationGridInputHelp" required> | ||||
| 						<div class="input-group-append"> | ||||
| 							<button type="button" class="btn btn-outline-secondary" onclick="getLocation()"><i class="fas fa-compass"></i> <?php echo lang("gen_hamradio_get_gridsquare"); ?></button>
 | ||||
| 						</div> | ||||
| 					</div> | ||||
| 
 | ||||
| 					<small id="stationGridInputHelp" class="form-text text-muted"><?php echo lang("station_location_gridsquare_hint_ln1"); ?></small>
 | ||||
| 					<small id="stationGridInputHelp" class="form-text text-muted"><?php echo lang("station_location_gridsquare_hint_ln2"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationIOTAInput"><?php echo lang("gen_hamradio_iota_reference"); ?></label>
 | ||||
| 					<select class="form-select" name="iota" id="stationIOTAInput" aria-describedby="stationIOTAInputHelp" placeholder="EU-005"> | ||||
| 						<option value=""></option> | ||||
| 
 | ||||
| 						<?php | ||||
| 						foreach ($iota_list as $i) { | ||||
| 							echo '<option value=' . $i->tag . '>' . $i->tag . ' - ' . $i->name . '</option>'; | ||||
| 						} | ||||
| 						?>
 | ||||
| 
 | ||||
| 					</select> | ||||
| 					<small id="stationIOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_iota_hint_ln1"); ?></small>
 | ||||
| 					<small id="stationIOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_iota_hint_ln2"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationSOTAInput"><?php echo lang("gen_hamradio_sota_reference"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="sota" id="stationSOTAInput" aria-describedby="stationSOTAInputHelp"> | ||||
| 					<small id="stationSOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_sota_hint_ln1"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationWWFFInput"><?php echo lang("gen_hamradio_wwff_reference"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="wwff" id="stationWWFFInput" aria-describedby="stationWWFFInputHelp"> | ||||
| 					<small id="stationWWFFInputHelp" class="form-text text-muted"><?php echo lang("station_location_wwff_hint_ln1"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationPOTAInput"><?php echo lang("gen_hamradio_pota_reference"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="pota" id="stationPOTAInput" aria-describedby="stationPOTAInputHelp"> | ||||
| 					<small id="stationPOTAInputHelp" class="form-text text-muted"><?php echo lang("station_location_pota_hint_ln1"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3" id="WABbox"> | ||||
| 					<label for="stationWABInput">Worked All Britain Reference</label> | ||||
| 					<input type="text" class="form-control" name="wab" id="stationWABInput" aria-describedby="stationWABInputHelp"> | ||||
| 					<small id="stationWABInputHelp" class="form-text text-muted">Enter your WAB Square, if you dont know it use <a href="https://www.whatsmylocator.co.uk/" target="_blank">WhatsMyLocator</a></small> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationSigInput"><?php echo lang("station_location_signature"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="sig" id="stationSigInput" aria-describedby="stationSigInputHelp"> | ||||
| 					<small id="stationSigInputHelp" class="form-text text-muted"><?php echo lang("station_location_signature_name_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="stationSigInfoInput"><?php echo lang("station_location_signature_info"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="sig_info" id="stationSigInfoInput" aria-describedby="stationSigInfoInputHelp"> | ||||
| 					<small id="stationSigInfoInput" class="form-text text-muted"><?php echo lang("station_location_signature_info_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="eqslNickname">eQSL QTH Nickname</label> <!-- This does not need Multilanguage Support --> | ||||
| 					<input type="text" class="form-control" name="eqslnickname" id="eqslNickname" aria-describedby="eqslhelp"> | ||||
| 					<small id="eqslhelp" class="form-text text-muted"><?php echo lang("station_location_eqsl_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="eqslDefaultQSLMsg"><?php echo lang("station_location_eqsl_defaultqslmsg"); ?></label>
 | ||||
| 					<label class="position-absolute end-0 mb-2 me-3" for="eqslDefaultQSLMsg" id="charsLeft"> </label> | ||||
| 					<textarea class="form-control" name="eqsl_default_qslmsg" id="eqslDefaultQSLMsg" aria-describedby="eqsldefaultqslmsghelp" maxlength="240" rows="2" style="width:100%;"></textarea> | ||||
| 					<small id="eqsldefaultqslmsghelp" class="form-text text-muted"><?php echo lang("station_location_eqsl_defaultqslmsg_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="clublogrealtime"><?php echo lang("station_location_clublog_realtime_upload"); ?></label>
 | ||||
| 					<select class="form-select" id="clublogrealtime" name="clublogrealtime"> | ||||
| 						<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 						<option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
| 					</select> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 
 | ||||
| 			<div class="mb-3"> | ||||
| 				<label for="oqrs"><?php echo lang("station_location_oqrs_enabled"); ?></label>
 | ||||
| 				<select class="form-select" id="oqrs" name="oqrs"> | ||||
| 					<option value="0"><?php echo lang("general_word_no"); ?></option>
 | ||||
| 					<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 				</select> | ||||
| 			</div> | ||||
| 			<div class="mb-3"> | ||||
| 						<label for="oqrs"><?php echo lang("station_location_oqrs_email_alert"); ?></label>
 | ||||
| 						<select class="form-select" id="oqrsemail" name="oqrsemail"> | ||||
| 				<div class="row"> | ||||
| 					<div class="mb-3 col-sm-3"> | ||||
| 						<label for="hrdlog_username"><?php echo lang("station_location_hrdlog_username"); ?></label>
 | ||||
| 						<input type="text" class="form-control" name="hrdlog_username" id="hrdlog_username" aria-describedby="hrdlog_usernameHelp"> | ||||
| 						<small id="hrdlog_usernameHelp" class="form-text text-muted"><?php echo lang("station_location_hrdlog_username_hint"); ?></a></small>
 | ||||
| 					</div> | ||||
| 					<div class="mb-3 col-sm-3"> | ||||
| 						<label for="hrdlog_code"><?php echo lang("station_location_hrdlog_code"); ?></label>
 | ||||
| 						<input type="text" class="form-control" name="hrdlog_code" id="hrdlog_code" aria-describedby="hrdlog_codeHelp"> | ||||
| 						<small id="hrdlog_codeHelp" class="form-text text-muted"><?php echo lang("station_location_hrdlog_code_hint"); ?></a></small>
 | ||||
| 					</div> | ||||
| 					<div class="mb-3 col-sm-3"> | ||||
| 						<label for="hrdlogrealtime"><?php echo lang("station_location_hrdlog_realtime_upload"); ?></label>
 | ||||
| 						<select class="form-select" id="hrdlogrealtime" name="hrdlogrealtime"> | ||||
| 							<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 							<option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
| 						</select> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="alert alert-warning" role="alert"> | ||||
| 					<?php echo "QRZ.com - " . lang("station_location_qrz_subscription"); ?>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="row"> | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="qrzApiKey">QRZ.com Logbook API Key</label> <!-- This does not need Multilanguage Support --> | ||||
| 						<input type="text" class="form-control" name="qrzapikey" pattern="^([A-F0-9]{4}-){3}[A-F0-9]{4}$" id="qrzApiKey" aria-describedby="qrzApiKeyHelp"> | ||||
| 						<small id="qrzApiKeyHelp" class="form-text text-muted"><?php echo lang("station_location_qrz_hint"); ?></a></small>
 | ||||
| 					</div> | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="qrzrealtime"><?php echo lang("station_location_qrz_realtime_upload"); ?></label>
 | ||||
| 						<select class="form-select" id="qrzrealtime" name="qrzrealtime"> | ||||
| 							<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 							<option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
| 						</select> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="row"> | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="webadifApiKey"> QO-100 Dx Club API Key </label> <!-- This does not need Multilanguage Support --> | ||||
| 						<input type="text" class="form-control" name="webadifapikey" id="webadifApiKey" aria-describedby="webadifApiKeyHelp"> | ||||
| 						<small id="webadifApiKeyHelp" class="form-text text-muted"><?php echo lang("station_location_qo100_hint"); ?></a></small>
 | ||||
| 					</div> | ||||
| 					<div class="mb-3 col-sm-6"> | ||||
| 						<label for="webadifrealtime"><?php echo lang("station_location_qo100_realtime_upload"); ?></label>
 | ||||
| 						<select class="form-select" id="webadifrealtime" name="webadifrealtime"> | ||||
| 							<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 							<option value="0" selected><?php echo lang("general_word_no"); ?></option>
 | ||||
| 						</select> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="oqrs"><?php echo lang("station_location_oqrs_enabled"); ?></label>
 | ||||
| 					<select class="form-select" id="oqrs" name="oqrs"> | ||||
| 						<option value="0"><?php echo lang("general_word_no"); ?></option>
 | ||||
| 						<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 						</select> | ||||
| 						<small id="oqrsemailHelp" class="form-text text-muted"><?php echo lang("station_location_oqrs_email_hint"); ?></small>
 | ||||
| 					</div> | ||||
| 			<div class="mb-3"> | ||||
| 				<label for="oqrstext"><?php echo lang("station_location_oqrs_text"); ?></label>
 | ||||
| 				<input type="text" class="form-control" name="oqrstext" id="oqrstext" aria-describedby="oqrstextHelp"> | ||||
| 				<small id="oqrstextHelp" class="form-text text-muted"><?php echo lang("station_location_oqrs_text_hint"); ?></small>
 | ||||
| 			</div> | ||||
| 					</select> | ||||
| 				</div> | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="oqrs"><?php echo lang("station_location_oqrs_email_alert"); ?></label>
 | ||||
| 					<select class="form-select" id="oqrsemail" name="oqrsemail"> | ||||
| 						<option value="0"><?php echo lang("general_word_no"); ?></option>
 | ||||
| 						<option value="1"><?php echo lang("general_word_yes"); ?></option>
 | ||||
| 					</select> | ||||
| 					<small id="oqrsemailHelp" class="form-text text-muted"><?php echo lang("station_location_oqrs_email_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 				<div class="mb-3"> | ||||
| 					<label for="oqrstext"><?php echo lang("station_location_oqrs_text"); ?></label>
 | ||||
| 					<input type="text" class="form-control" name="oqrstext" id="oqrstext" aria-describedby="oqrstextHelp"> | ||||
| 					<small id="oqrstextHelp" class="form-text text-muted"><?php echo lang("station_location_oqrs_text_hint"); ?></small>
 | ||||
| 				</div> | ||||
| 
 | ||||
| 			<button type="submit" class="btn btn-primary"><i class="fas fa-plus-square"></i> <?php echo lang("admin_create"); ?> <?php echo lang("station_location"); ?></button>
 | ||||
| 				<button type="submit" class="btn btn-primary"><i class="fas fa-plus-square"></i> <?php echo lang("admin_create"); ?> <?php echo lang("station_location"); ?></button>
 | ||||
| 
 | ||||
| 		</form> | ||||
|   </div> | ||||
| </div> | ||||
| 			</form> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 
 | ||||
| <br> | ||||
| 	<br> | ||||
| 
 | ||||
| </div> | ||||
| </div> | ||||
|  | @ -319,6 +319,19 @@ | |||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 
 | ||||
| 		<div class="col-md" id="WABbox"> | ||||
| 			<div class="card"> | ||||
| 				<h5 class="card-header">Worked All Britain Reference</h5> | ||||
| 				<div class="card-body"> | ||||
| 					<div class="mb-3"> | ||||
| 						<label for="stationWABInput">WAB Reference Number</label> | ||||
| 						<input type="text" class="form-control" name="wab" id="stationWABInput" aria-describedby="stationWABInputHelp" value="<?php if(set_value('wab') != "") { echo set_value('wab'); } else { echo $my_station_profile->station_wab; } ?>"> | ||||
| 						<small id="stationWABInputHelp" class="form-text text-muted">Enter your WAB Square, if you dont know it use <a href="https://www.whatsmylocator.co.uk/" target="_blank">WhatsMyLocator</a></small> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 
 | ||||
| 	<div class="row"> | ||||
|  |  | |||
|  | @ -1,6 +1,5 @@ | |||
| <?php if ($query->num_rows() > 0) {  foreach ($query->result() as $row) { ?>
 | ||||
| <div class="container-fluid"> | ||||
| 
 | ||||
|     <ul style="margin-bottom: 10px;" class="nav nav-tabs" id="myTab" role="tablist"> | ||||
|         <li class="nav-item"> | ||||
|             <a class="nav-link active" id="table-tab" data-bs-toggle="tab" href="#qsodetails" role="tab" aria-controls="table" aria-selected="true"><?php echo lang('qso_details'); ?></a>
 | ||||
|  | @ -492,73 +491,80 @@ | |||
| 
 | ||||
|             <table width="100%"> | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_callsign'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_callsign'); ?></td>
 | ||||
|                         <td><?php echo $row->station_callsign; ?></td>
 | ||||
|                     </tr> | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('general_word_name'); ?></td>
 | ||||
|                         <td><?php echo lang('general_word_name'); ?></td>
 | ||||
|                         <td><?php echo $row->station_profile_name; ?></td>
 | ||||
|                     </tr> | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_gridsquare'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_gridsquare'); ?></td>
 | ||||
|                         <td><?php echo $row->station_gridsquare; ?></td>
 | ||||
|                     </tr> | ||||
| 
 | ||||
|                     <?php if($row->station_city) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('general_word_city'); ?></td>
 | ||||
|                         <td><?php echo lang('general_word_city'); ?></td>
 | ||||
|                         <td><?php echo $row->station_city; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->station_country) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('general_word_country'); ?></td>
 | ||||
|                         <td><?php echo lang('general_word_country'); ?></td>
 | ||||
|                         <td><?php echo ucwords(strtolower(($row->station_country)), "- (/"); if ($row->station_end != null) echo ' <span class="badge text-bg-danger">'.lang('gen_hamradio_deleted_dxcc').'</span>'; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->COL_OPERATOR) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_operator'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_operator'); ?></td>
 | ||||
|                         <td><?php echo $row->COL_OPERATOR; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->COL_TX_PWR) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_transmit_power'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_transmit_power'); ?></td>
 | ||||
|                         <td><?php echo $row->COL_TX_PWR; ?> W</td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->COL_MY_IOTA) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_iota_reference'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_iota_reference'); ?></td>
 | ||||
|                         <td><?php echo $row->COL_MY_IOTA; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->COL_MY_SOTA_REF) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_sota_reference'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_sota_reference'); ?></td>
 | ||||
|                         <td><?php echo $row->COL_MY_SOTA_REF; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->COL_MY_WWFF_REF) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_wwff_reference'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_wwff_reference'); ?></td>
 | ||||
|                         <td><?php echo $row->COL_MY_WWFF_REF; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->COL_MY_POTA_REF) { ?>
 | ||||
|                     <tr> | ||||
|                         <td><?php echo lang('gen_hamradio_station') . ' ' . lang('gen_hamradio_pota_reference'); ?></td>
 | ||||
|                         <td><?php echo lang('gen_hamradio_pota_reference'); ?></td>
 | ||||
|                         <td><?php echo $row->COL_MY_POTA_REF; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
| 
 | ||||
|                     <?php if($row->station_wab) { ?>
 | ||||
|                     <tr> | ||||
|                         <td>WAB Reference</td> | ||||
|                         <td><?php echo $row->station_wab; ?></td>
 | ||||
|                     </tr> | ||||
|                     <?php } ?>
 | ||||
|             </table> | ||||
|         </div> | ||||
| 
 | ||||
|  |  | |||
		正在加载…
	
		在新工单中引用