From dca5bb58c60eb0a53d92268695b023f7bfc6f3ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Mel=C3=ADk?= Date: Thu, 30 Jan 2025 21:09:20 +0100 Subject: [PATCH] Add QSO setting option, Enable saving the setting value in add/edit user methods --- application/controllers/User.php | 10 ++++++++++ application/models/User_model.php | 7 ++++++- application/views/user/edit.php | 9 +++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/application/controllers/User.php b/application/controllers/User.php index a6021582d..29a0aa869 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -181,6 +181,10 @@ class User extends CI_Controller { $data['dashboard_last_qso_count_limit'] = DASHBOARD_QSOS_COUNT_LIMIT; $data['user_dashboard_last_qso_count'] = DASHBOARD_DEFAULT_QSOS_COUNT; + // Values for the "QSO page last QSO count" selectbox + $data['qso_page_last_qso_count_limit'] = QSO_PAGE_QSOS_COUNT_LIMIT; + $data['user_qso_page_last_qso_count'] = QSO_PAGE_DEFAULT_QSOS_COUNT; + if ($this->form_validation->run() == FALSE) { $data['page_title'] = __("Add User"); $data['measurement_base'] = $this->config->item('measurement_base'); @@ -378,6 +382,9 @@ class User extends CI_Controller { // Max value to be present in the "dashboard last QSO count" selectbox $data['dashboard_last_qso_count_limit'] = DASHBOARD_QSOS_COUNT_LIMIT; + // Max value to be present in the "QSO page last QSO count" selectbox + $data['qso_page_last_qso_count_limit'] = QSO_PAGE_QSOS_COUNT_LIMIT; + $data['page_title'] = __("Edit User"); if ($this->form_validation->run() == FALSE) @@ -758,6 +765,7 @@ class User extends CI_Controller { $data['user_locations_quickswitch'] = ($this->user_options_model->get_options('header_menu', array('option_name'=>'locations_quickswitch'), $this->uri->segment(3))->row()->option_value ?? 'false'); $data['user_utc_headermenu'] = ($this->user_options_model->get_options('header_menu', array('option_name'=>'utc_headermenu'), $this->uri->segment(3))->row()->option_value ?? 'false'); $data['user_dashboard_last_qso_count'] = ($this->user_options_model->get_options('dashboard', array('option_name'=>'last_qso_count', 'option_key' => 'count'), $this->uri->segment(3))->row()->option_value ?? DASHBOARD_DEFAULT_QSOS_COUNT); + $data['user_qso_page_last_qso_count'] = ($this->user_options_model->get_options('qso_tab', array('option_name'=>'last_qso_count', 'option_key' => 'count'), $this->uri->segment(3))->row()->option_value ?? QSO_PAGE_DEFAULT_QSOS_COUNT); $this->load->view('interface_assets/header', $data); $this->load->view('user/edit', $data); @@ -855,6 +863,8 @@ class User extends CI_Controller { $data['user_hamsat_key'] = $this->input->post('user_hamsat_key'); $data['user_hamsat_workable_only'] = $this->input->post('user_hamsat_workable_only'); $data['user_dashboard_last_qso_count'] = $this->input->post('user_dashboard_last_qso_count', true); + $data['user_qso_page_last_qso_count'] = $this->input->post('user_qso_page_last_qso_count', true); + $this->load->view('user/edit'); $this->load->view('interface_assets/footer'); } diff --git a/application/models/User_model.php b/application/models/User_model.php index 11997cde5..47aef577f 100644 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -325,9 +325,11 @@ class User_Model extends CI_Model { 'winkey' => xss_clean($fields['user_winkey']), ); - // Hard limit safety check for last (recent) QSO count setting + // Hard limit safety check for last (recent) QSO count settings $dashboard_last_qso_count = xss_clean($fields['user_dashboard_last_qso_count']); $dashboard_last_qso_count = $dashboard_last_qso_count > DASHBOARD_QSOS_COUNT_LIMIT ? DASHBOARD_QSOS_COUNT_LIMIT : $dashboard_last_qso_count; + $qso_page_last_qso_count = xss_clean($fields['user_qso_page_last_qso_count']); + $qso_page_last_qso_count = $qso_page_last_qso_count > QSO_PAGE_QSOS_COUNT_LIMIT ? QSO_PAGE_QSOS_COUNT_LIMIT : $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'] . ", 'hamsat','hamsat_key','api','".xss_clean($fields['user_hamsat_key'])."');"); $this->db->query("replace into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $fields['id'] . ", 'hamsat','hamsat_key','workable','".xss_clean($fields['user_hamsat_workable_only'])."');"); @@ -338,7 +340,9 @@ 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','sig','show',".(xss_clean($fields['user_sig_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'] . ", '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->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); // Check to see if the user is allowed to change user levels if($this->session->userdata('user_type') == 99) { @@ -523,6 +527,7 @@ class User_Model extends CI_Model { 'impersonate' => $this->session->userdata('impersonate') ?? false, 'clubstation' => $u->row()->clubstation, 'dashboard_last_qso_count' => ($this->session->userdata('dashboard_last_qso_count') ?? '') == '' ? ($this->user_options_model->get_options('dashboard', array('option_name' => 'last_qso_count', 'option_key' => 'count'))->row()->option_value ?? '') : $this->session->userdata('dashboard_last_qso_count'), + 'qso_page_last_qso_count' => ($this->session->userdata('qso_page_last_qso_count') ?? '') == '' ? ($this->user_options_model->get_options('qso_tab', array('option_name' => 'last_qso_count', 'option_key' => 'count'))->row()->option_value ?? '') : $this->session->userdata('qso_page_last_qso_count'), 'source_uid' => $this->session->userdata('source_uid') ?? '' ); diff --git a/application/views/user/edit.php b/application/views/user/edit.php index bb45fab30..3509a3d75 100644 --- a/application/views/user/edit.php +++ b/application/views/user/edit.php @@ -421,6 +421,15 @@ +
+ + +