From 05bc18a2a6eee4bd58d9f872f6255f98acd99d11 Mon Sep 17 00:00:00 2001 From: int2001 Date: Mon, 17 Feb 2025 12:22:57 +0000 Subject: [PATCH] Make dashboard-map user-configurable --- application/controllers/Dashboard.php | 6 +++++- application/controllers/User.php | 14 +++++++++++++- application/models/User_model.php | 6 +++++- application/views/user/edit.php | 10 ++++++++++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/application/controllers/Dashboard.php b/application/controllers/Dashboard.php index 0aa889fa2..1f8c1421f 100644 --- a/application/controllers/Dashboard.php +++ b/application/controllers/Dashboard.php @@ -67,7 +67,11 @@ class Dashboard extends CI_Controller { $data['current_active'] = $this->stations->find_active(); $data['themesWithoutMode'] = $this->setup_model->checkThemesWithoutMode(); - $data['dashboard_map'] = $this->optionslib->get_option('dashboard_map'); + if (($this->optionslib->get_option('dashboard_map') == 'true') && (($this->session->userdata('user_dashboard_map') ?? 'Y') == 'Y')) { + $data['dashboard_map'] = $this->optionslib->get_option('dashboard_map'); + } else { + $data['dashboard_map'] = 'false'; + } $data['user_map_custom'] = $this->optionslib->get_map_custom(); diff --git a/application/controllers/User.php b/application/controllers/User.php index 29a0aa869..0dcae0708 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -200,7 +200,8 @@ class User extends CI_Controller { $data['user_callsign'] = $this->input->post('user_callsign'); $data['user_locator'] = $this->input->post('user_locator'); $data['user_timezone'] = $this->input->post('user_timezone'); - $data['user_measurement_base'] = $this->input->post('user_measurement_base'); + $data['user_measurement_base'] = $this->input->post('user_measurement_base') ?? 'Y'; + $data['user_dashboard_map'] = $this->input->post('user_dashboard_map') ?? 'Y'; $data['user_stylesheet'] = $this->input->post('user_stylesheet'); $data['user_qth_lookup'] = $this->input->post('user_qth_lookup'); $data['user_sota_lookup'] = $this->input->post('user_sota_lookup'); @@ -246,6 +247,7 @@ class User extends CI_Controller { $this->input->post('user_locator'), $this->input->post('user_timezone'), $this->input->post('user_measurement_base'), + $this->input->post('user_dashboard_map') ?? 'Y', $this->input->post('user_date_format'), $this->input->post('user_stylesheet'), $this->input->post('user_qth_lookup'), @@ -313,6 +315,7 @@ class User extends CI_Controller { $data['user_callsign'] = $this->input->post('user_callsign'); $data['user_locator'] = $this->input->post('user_locator'); $data['user_measurement_base'] = $this->input->post('user_measurement_base'); + $data['user_dashboard_map'] = $this->input->post('user_dashboard_map') ?? 'Y'; $data['user_stylesheet'] = $this->input->post('user_stylesheet'); $data['user_qth_lookup'] = $this->input->post('user_qth_lookup'); $data['user_sota_lookup'] = $this->input->post('user_sota_lookup'); @@ -668,6 +671,15 @@ class User extends CI_Controller { } } + if($this->input->post('user_dashboard_map')) { + $data['user_dashboard_map'] = $this->input->post('user_dashboard_map', false); + } else { + $dkey_opt=$this->user_options_model->get_options('dashboard',array('option_name'=>'show_map','option_key'=>'boolean'), $this->uri->segment(3))->result(); + if (count($dkey_opt)>0) { + $data['user_dashboard_map'] = $dkey_opt[0]->option_value; + } + } + if($this->input->post('user_hamsat_workable_only')) { $data['user_hamsat_workable_only'] = $this->input->post('user_hamsat_workable_only', false); } else { diff --git a/application/models/User_model.php b/application/models/User_model.php index d7b3d2118..93eb78701 100644 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -193,7 +193,7 @@ class User_Model extends CI_Model { // FUNCTION: bool add($username, $password, $email, $type) // Add a user function add($username, $password, $email, $type, $firstname, $lastname, $callsign, $locator, $timezone, - $measurement, $user_date_format, $user_stylesheet, $user_qth_lookup, $user_sota_lookup, $user_wwff_lookup, + $measurement, $dashboard_map, $user_date_format, $user_stylesheet, $user_qth_lookup, $user_sota_lookup, $user_wwff_lookup, $user_pota_lookup, $user_show_notes, $user_column1, $user_column2, $user_column3, $user_column4, $user_column5, $user_show_profile_image, $user_previous_qsl_type, $user_amsat_status_upload, $user_mastodon_url, $user_default_band, $user_default_confirmation, $user_qso_end_times, $user_quicklog, $user_quicklog_enter, @@ -274,6 +274,7 @@ class User_Model extends CI_Model { $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'qso_tab','pota','show',".(xss_clean($user_pota_to_qso_tab ?? 'off') == "on" ? 1 : 0).");"); $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'qso_tab','sig','show',".(xss_clean($user_sig_to_qso_tab ?? 'off') == "on" ? 1 : 0).");"); $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'qso_tab','dok','show',".(xss_clean($user_dok_to_qso_tab ?? 'off') == "on" ? 1 : 0).");"); + $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'dashboard','show_map','boolean','".xss_clean($fields['user_dashboard_map'] ?? 'Y')."');"); return OK; } else { @@ -341,8 +342,10 @@ class User_Model extends CI_Model { $this->db->query("replace into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $fields['id'] . ", 'qso_tab','dok','show',".(xss_clean($fields['user_dok_to_qso_tab'] ?? 'off') == "on" ? 1 : 0).");"); $this->db->query("replace into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $fields['id'] . ", 'dashboard','last_qso_count','count','".$dashboard_last_qso_count."');"); $this->db->query("replace into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $fields['id'] . ", 'qso_tab','last_qso_count','count','".$qso_page_last_qso_count."');"); + $this->db->query("replace into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $fields['id'] . ", 'dashboard','show_map','boolean','".xss_clean($fields['user_dashboard_map'] ?? 'Y')."');"); $this->session->set_userdata('dashboard_last_qso_count', $dashboard_last_qso_count); $this->session->set_userdata('qso_page_last_qso_count', $qso_page_last_qso_count); + $this->session->set_userdata('user_dashboard_map',xss_clean($fields['user_dashboard_map'] ?? 'Y')); // Check to see if the user is allowed to change user levels if($this->session->userdata('user_type') == 99) { @@ -498,6 +501,7 @@ class User_Model extends CI_Model { 'radio' => ((($this->session->userdata('radio') ?? '') == '') ? $this->user_options_model->get_options('cat', array('option_name' => 'default_radio'))->row()->option_value ?? '' : $this->session->userdata('radio')), 'station_profile_id' => $this->session->userdata('station_profile_id') ?? '', 'user_measurement_base' => $u->row()->user_measurement_base, + 'user_dashboard_map' => ((($this->session->userdata('user_dashboard_map') ?? 'Y') == 'Y') ? $this->user_options_model->get_options('dashboard', array('option_name' => 'show_map', 'option_key' => 'boolean'))->row()->option_value ?? 'Y' : $this->session->userdata('user_dashboard_map')), 'user_date_format' => $u->row()->user_date_format, 'user_stylesheet' => $u->row()->user_stylesheet, 'user_qth_lookup' => isset($u->row()->user_qth_lookup) ? $u->row()->user_qth_lookup : 0, diff --git a/application/views/user/edit.php b/application/views/user/edit.php index 3509a3d75..3433e000e 100644 --- a/application/views/user/edit.php +++ b/application/views/user/edit.php @@ -226,6 +226,16 @@ + +
+ + + + +