Introduces a new 'public_radio_status' field to station logbooks, allowing users to enable or disable the display of radio status on public logbook pages. Updates migration, controllers, model, views, and language files to support this feature and provide UI controls for toggling the option.
186 行
6.2 KiB
PHP
186 行
6.2 KiB
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
/*
|
|
Handles Displaying of information for Station Logbooks
|
|
*/
|
|
|
|
class Logbooks extends CI_Controller {
|
|
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->helper(array('form', 'url'));
|
|
|
|
$this->load->model('user_model');
|
|
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
|
}
|
|
|
|
function index() {
|
|
$this->load->model('logbooks_model');
|
|
|
|
$data['my_logbooks'] = $this->logbooks_model->show_all();
|
|
|
|
// Render Page
|
|
$data['page_title'] = "Station Logbooks";
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('logbooks/index');
|
|
$this->load->view('interface_assets/footer');
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$this->load->library('form_validation');
|
|
|
|
$this->form_validation->set_rules('stationLogbook_Name', 'Station Logbook Name', 'required');
|
|
|
|
if ($this->form_validation->run() == FALSE)
|
|
{
|
|
$data['page_title'] = "Create Station Logbook";
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('logbooks/create');
|
|
$this->load->view('interface_assets/footer');
|
|
}
|
|
else
|
|
{
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->add();
|
|
|
|
redirect('logbooks');
|
|
}
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$this->load->library('form_validation');
|
|
|
|
$this->load->model('logbooks_model');
|
|
$this->load->model('stations');
|
|
|
|
$station_logbook_id = $this->security->xss_clean($id);
|
|
|
|
$station_logbook_details_query = $this->logbooks_model->logbook($station_logbook_id);
|
|
$data['station_locations_array'] = $this->logbooks_model->list_logbook_relationships($station_logbook_id);
|
|
|
|
$data['station_logbook_details'] = $station_logbook_details_query->row();
|
|
$data['station_locations_list'] = $this->stations->all_of_user();
|
|
|
|
$data['station_locations_linked'] = $this->logbooks_model->list_logbooks_linked($station_logbook_id);
|
|
|
|
$data['page_title'] = "Edit Station Logbook";
|
|
|
|
$this->form_validation->set_rules('station_logbook_id', 'Station Logbook Name', 'required');
|
|
|
|
if ($this->form_validation->run() == FALSE)
|
|
{
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('logbooks/edit');
|
|
$this->load->view('interface_assets/footer');
|
|
}
|
|
else
|
|
{
|
|
|
|
$data['notice'] = "Station Logbooks ".$this->security->xss_clean($this->input->post('station_logbook_name', true))." Updated";
|
|
|
|
if($this->input->post('SelectedStationLocation') != "") {
|
|
if($this->logbooks_model->relationship_exists($this->input->post('station_logbook_id'), $this->input->post('SelectedStationLocation')) != TRUE) {
|
|
// If no link exisits create
|
|
$this->logbooks_model->create_logbook_location_link($this->input->post('station_logbook_id'), $this->input->post('SelectedStationLocation'));
|
|
}
|
|
} else {
|
|
$this->logbooks_model->edit();
|
|
}
|
|
|
|
redirect('logbooks/edit/'.$this->input->post('station_logbook_id'));
|
|
}
|
|
}
|
|
|
|
public function set_active($id) {
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->set_logbook_active($id);
|
|
$this->user_model->update_session($this->session->userdata('user_id'));
|
|
|
|
redirect('logbooks');
|
|
}
|
|
|
|
public function delete($id) {
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->delete($id);
|
|
|
|
redirect('logbooks');
|
|
}
|
|
|
|
public function delete_relationship($logbook_id, $station_id) {
|
|
$this->load->model('logbooks_model');
|
|
$this->logbooks_model->delete_relationship($logbook_id, $station_id);
|
|
|
|
redirect('logbooks/edit/'.$logbook_id);
|
|
}
|
|
|
|
public function publicslug_validate() {
|
|
$this->load->model('logbooks_model');
|
|
$result = $this->logbooks_model->is_public_slug_available($this->input->post('public_slug'));
|
|
|
|
if($result == true) {
|
|
$data['slugAvailable'] = true;
|
|
} else {
|
|
$data['slugAvailable'] = false;
|
|
}
|
|
|
|
$this->load->view('logbooks/components/publicSlugInputValidation', $data);
|
|
}
|
|
|
|
public function save_publicsearch() {
|
|
$this->load->model('logbooks_model');
|
|
// Handle checkbox - if not checked, it won't be sent, so default to 0
|
|
$public_search = $this->input->post('public_search') ? 1 : 0;
|
|
$returndata = $this->logbooks_model->save_public_search($public_search, $this->input->post('logbook_id'));
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Search Settings Saved</div>";
|
|
}
|
|
|
|
public function save_publicradiostatus() {
|
|
$this->load->model('logbooks_model');
|
|
// Handle checkbox - if not checked, it won't be sent, so default to 0
|
|
$public_radio_status = $this->input->post('public_radio_status') ? 1 : 0;
|
|
$returndata = $this->logbooks_model->save_public_radio_status($public_radio_status, $this->input->post('logbook_id'));
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Radio Status Settings Saved</div>";
|
|
}
|
|
|
|
public function save_publicslug() {
|
|
$this->load->model('logbooks_model');
|
|
|
|
$this->load->library('form_validation');
|
|
|
|
$this->form_validation->set_rules('public_slug', 'Public Slug', 'required|alpha_numeric');
|
|
|
|
if ($this->form_validation->run() == FALSE)
|
|
{
|
|
echo "<div class=\"alert alert-danger\" role=\"alert\">Oops! This Public Slug is unavailable</div>";
|
|
echo validation_errors();
|
|
}
|
|
else
|
|
{
|
|
$this->load->model('logbooks_model');
|
|
$result = $this->logbooks_model->is_public_slug_available($this->input->post('public_slug'));
|
|
|
|
|
|
if($result == true) {
|
|
$returndata = $this->logbooks_model->save_public_slug($this->input->post('public_slug'), $this->input->post('logbook_id'));
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Slug Saved</div>";
|
|
} else {
|
|
echo "<div class=\"alert alert-danger\" role=\"alert\">Oops! This Public Slug is unavailable</div>";
|
|
}
|
|
}
|
|
}
|
|
|
|
public function remove_publicslug() {
|
|
$this->load->model('logbooks_model');
|
|
|
|
$this->logbooks_model->remove_public_slug($this->input->post('logbook_id'));
|
|
if ($this->db->affected_rows() > 0) {
|
|
echo "<div class=\"alert alert-success\" role=\"alert\">Public Slug Removed</div>";
|
|
} else {
|
|
echo "<div class=\"alert alert-danger\" role=\"alert\">Oops! This Public Slug could not be removed</div>";
|
|
}
|
|
}
|
|
|
|
}
|