load->helper(array('form', 'url')); $this->load->model('user_model'); if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } } public function index() { $this->load->model('stations'); $this->load->model('Logbook_model'); $this->load->model('logbooks_model'); $data['my_logbooks'] = $this->logbooks_model->show_all(); $data['stations'] = $this->stations->all_with_count(); $data['current_active'] = $this->stations->find_active(); $data['is_there_qsos_with_no_station_id'] = $this->Logbook_model->check_for_station_id(); $footerData = []; $footerData['scripts'] = [ 'assets/js/sections/stationsetup.js?' . filemtime(realpath(__DIR__ . "/../../assets/js/sections/stationsetup.js")), ]; // Render Page $data['page_title'] = "Station Setup"; $this->load->view('interface_assets/header', $data); $this->load->view('stationsetup/stationsetup'); $this->load->view('interface_assets/footer', $footerData); } public function DeleteStation_json() { $id2del=xss_clean($this->input->post('id2del',true)); if ($id2del ?? '' != '') { $this->load->model('stations'); if ($this->stations->check_station_is_accessible($id2del)) { $this->stations->delete($id2del); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Not allowed'; } } else { $data['success']=0; $data['flashdata']='Error'; } echo json_encode($data); } public function EmptyStation_json() { $id2empty=xss_clean($this->input->post('id2Empty',true)); if ($id2empty ?? '' != '') { $this->load->model('stations'); if ($this->stations->check_station_is_accessible($id2empty)) { $this->stations->deletelog($id2empty); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Not allowed'; } } else { $data['success']=0; $data['flashdata']='Error'; } echo json_encode($data); } public function setActiveStation_json() { $id2act=xss_clean($this->input->post('id2setActive',true)); if ($id2act ?? '' != '') { $this->load->model('stations'); $current=$this->stations->find_active(); $this->stations->set_active($current, $id2act); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Error'; } echo json_encode($data); } // get active station for quickswitcher public function getActiveStation() { $active_loc = $this->stations->find_active(); echo json_encode($active_loc); } public function setFavorite_json() { $id2fav = xss_clean($this->input->post('id2Favorite', true)); if ($id2fav ?? '' != '') { $this->load->model('stations'); $this->stations->edit_favourite($id2fav); $data['success'] = 1; } else { $data['success'] = 0; $data['flashdata'] ='Error'; } echo json_encode($data); } public function setActiveLogbook_json() { $id2act=xss_clean($this->input->post('id2setActive',true)); if ($id2act ?? '' != '') { $this->load->model('logbooks_model'); $this->logbooks_model->set_logbook_active($id2act); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Error'; } echo json_encode($data); } public function deleteLogbook_json() { $id2del=xss_clean($this->input->post('id2delete',true)); if ($id2del ?? '' != '') { $this->load->model('logbooks_model'); $this->logbooks_model->delete($id2del); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Error'; } echo json_encode($data); } public function newLogbook_json() { $this->load->library('form_validation'); $this->form_validation->set_rules('stationLogbook_Name', 'Station Logbook Name', 'required'); if ($this->form_validation->run() == FALSE) { $data['flashdata']=validation_errors(); $data['success']=0; echo json_encode($data); } else { $this->load->model('logbooks_model'); $newId=$this->logbooks_model->add(xss_clean($this->input->post('stationLogbook_Name', true))); if ($newId > 0) { $data['success']=1; } else { $data['success']=0; $data['flashdata']='Error'; } echo json_encode($data); } } public function newLogbook() { $data['page_title'] = "Create Station Logbook"; $this->load->view('stationsetup/create', $data); } public function editContainerName() { $this->load->model('stationsetup_model'); $data['container'] = $this->stationsetup_model->getContainer(xss_clean($this->input->post('id', true)))->row(); $data['page_title'] = "Edit container name"; $this->load->view('stationsetup/edit', $data); } public function saveContainerName() { $this->load->model('stationsetup_model'); $this->stationsetup_model->saveContainer(); } public function editLinkedLocations() { $this->load->model('logbooks_model'); $station_logbook_details_query = $this->logbooks_model->logbook(xss_clean($this->input->post('id', true))); $data['station_logbook_details'] = $station_logbook_details_query->row(); $data['station_locations_linked'] = $this->logbooks_model->list_logbooks_linked($this->input->post('id', true)); $data['page_title'] = "Edit lined locations"; $this->load->view('stationsetup/linkedlocations', $data); } public function editVisitorLink() { $this->load->model('logbooks_model'); $station_logbook_details_query = $this->logbooks_model->logbook(xss_clean($this->input->post('id', true))); $data['station_logbook_details'] = $station_logbook_details_query->row(); $data['station_locations_list'] = $this->stations->all_of_user(); $data['page_title'] = "Edit visitor site"; $this->load->view('stationsetup/visitor', $data); } public function saveVisitorLink() { $this->load->model('stationsetup_model'); $this->stationsetup_model->saveVisitorLink(); } public function newLocation() { $this->load->model('stations'); $this->load->model('dxcc'); $data['dxcc_list'] = $this->dxcc->list(); $this->load->model('logbook_model'); $data['iota_list'] = $this->logbook_model->fetchIota(); $data['page_title'] = lang('station_location_create_header'); $this->load->view('station_profile/create', $data); } public function fetchLogbooks() { $this->load->model('logbooks_model'); $hres=[]; $result = $this->logbooks_model->show_all()->result(); foreach ($result as $entry) { $single=(Object)[]; $single->logbook_id=$entry->logbook_id; $single->logbook_name=$entry->logbook_name; $single->logbook_state=$this->lbstate2html($entry->logbook_id); $single->logbook_edit=$this->lbedit2html($entry->logbook_id,$entry->logbook_name); $single->logbook_delete=$this->lbdel2html($entry->logbook_id,$entry->logbook_name); $single->logbook_link=$this->lblnk2html($entry->public_slug,$entry->logbook_name); $single->logbook_publicsearch = $this->lbpublicsearch2html($entry->public_search); array_push($hres,$single); } echo json_encode($hres); } private function lbpublicsearch2html($publicsearch) { return ($publicsearch=='1' ? 'Enabled' : 'Disabled'); } private function lbstate2html($id) { if($this->session->userdata('active_station_logbook') != $id) { $htmret=''; } else { $htmret="" . lang('station_logbooks_active_logbook') . ""; } return $htmret; } private function lbdel2html($id, $logbook_name) { if($this->session->userdata('active_station_logbook') != $id) { $htmret=''; } else { $htmret=''; } return $htmret; } private function lblnk2html($public_slug, $logbook_name) { if($public_slug != '') { $htmret=''; } else { $htmret=''; } return $htmret; } private function lbps2html($id, $logbook_name) { return ''; } private function lbedit2html($id, $logbook_name) { return ''; } public function fetchLocations() { $this->load->model('stations'); $this->load->model('Logbook_model'); $result = $this->stations->all_with_count()->result(); $current_active = $this->stations->find_active(); $data['is_there_qsos_with_no_station_id'] = $this->Logbook_model->check_for_station_id(); $quickswitch_enabled = ($this->user_options_model->get_options('header_menu', array('option_name'=>'locations_quickswitch'))->row()->option_value ?? 'false'); $hres=[]; foreach ($result as $entry) { $single=(Object)[]; $single->station_id = $this->stationid2html($entry->station_id); $single->station_name = $entry->station_profile_name; $single->station_callsign = $entry->station_callsign; $single->station_country = $this->stationcountry2html($entry->station_country, $entry->dxcc_end); $single->station_gridsquare = $entry->station_gridsquare; $single->station_badge = $this->stationbadge2html($entry->station_active, $entry->qso_total, $current_active, $entry->station_profile_name,$entry->station_id); $single->station_edit = $this->stationedit2html($entry->station_id); $single->station_emptylog = $this->stationemptylog2html($entry->station_id); $single->station_copylog = $this->stationcopy2html($entry->station_id); $single->station_delete = $this->stationdelete2html($entry->station_id, $entry->station_profile_name, $entry->station_active); $single->station_favorite = $this->stationfavorite2html($entry->station_id, $quickswitch_enabled); array_push($hres,$single); } echo json_encode($hres); } private function stationfavorite2html($id, $quickswitch_enabled) { if ($quickswitch_enabled == 'false') { return ''; } $locationFavorite = ($this->user_options_model->get_options('station_location', array('option_name'=>'is_favorite', 'option_key'=>$id))->row()->option_value ?? 'false'); if ($locationFavorite == 'true') { $favStarClasses = 'class="setFavorite fas fa-star btn btn-sm" style="color: #ffc82b;"'; } else { $favStarClasses = 'class="setFavorite far fa-star btn btn-sm" style="color: #a58118;"'; } return '
'; } else { $returntext .= '' . lang('station_location_active') . '
'; } $returntext .='' . $qso_total .' '. lang('gen_hamradio_qso') . ''; return $returntext; } private function stationedit2html($id) { return ''; } private function stationemptylog2html($id) { return ''; } private function stationcopy2html($id) { return ''; } private function stationdelete2html($id, $station_profile_name, $station_active) { if($station_active != 1) { return ''; } return ''; } private function stationcountry2html($station_country, $dxcc_end) { $returntext = $station_country == '' ? '- NONE -' : $station_country; if ($dxcc_end != NULL) { $returntext .= ' '.lang('gen_hamradio_deleted_dxcc').''; } return $returntext; } public function remove_publicslug() { $id = xss_clean($this->input->post('id',true)); if ($id ?? '' != '') { $this->load->model('stationsetup_model'); $this->stationsetup_model->remove_public_slug($id); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Not allowed'; } echo json_encode($data); } public function togglePublicSearch() { $id = xss_clean($this->input->post('id',true)); $publicSearch = xss_clean($this->input->post('checked',true)); if ($id ?? '' != '') { $this->load->model('stationsetup_model'); $this->stationsetup_model->togglePublicSearch($id, $publicSearch); $data['success']=1; } else { $data['success']=0; $data['flashdata']='Not allowed'; } echo json_encode($data); } }