diff --git a/application/config/migration.php b/application/config/migration.php index ca0f54dc9..5bb94b1c6 100644 --- a/application/config/migration.php +++ b/application/config/migration.php @@ -22,7 +22,7 @@ | */ -$config['migration_version'] = 266; +$config['migration_version'] = 267; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/Options.php b/application/controllers/Options.php index 70fea855e..b10a8e15b 100644 --- a/application/controllers/Options.php +++ b/application/controllers/Options.php @@ -531,4 +531,41 @@ function public_diary_save() { } } + // Display the /public_map_show_confirmations options page + function public_map_show_confirmations() { + + $data['page_title'] = $this->lang->line('options_cloudlog_options'); + $data['sub_heading'] = $this->lang->line('options_public_map_show_confirmations'); + + $this->load->view('interface_assets/header', $data); + $this->load->view('options/public_map_show_confirmations'); + $this->load->view('interface_assets/footer'); + } + + // Save the public map confirmations option + function public_map_show_confirmations_save() { + + $data['page_title'] = $this->lang->line('options_cloudlog_options'); + $data['sub_heading'] = $this->lang->line('options_public_map_show_confirmations'); + + $this->load->helper(array('form', 'url')); + + $this->load->library('form_validation'); + + $this->form_validation->set_rules('public_map_show_confirmations', 'Public Map Confirmations', 'required'); + + if ($this->form_validation->run() == FALSE) { + $this->load->view('interface_assets/header', $data); + $this->load->view('options/public_map_show_confirmations'); + $this->load->view('interface_assets/footer'); + } else { + $update = $this->optionslib->update('public_map_show_confirmations', $this->input->post('public_map_show_confirmations'), 'yes'); + if($update == TRUE) { + $this->session->set_flashdata('success', $this->lang->line('options_public_map_show_confirmations_settings_saved')); + } + + redirect('/options/public_map_show_confirmations'); + } + } + } diff --git a/application/controllers/Visitor.php b/application/controllers/Visitor.php index 628adf79a..7f042efaf 100644 --- a/application/controllers/Visitor.php +++ b/application/controllers/Visitor.php @@ -203,7 +203,8 @@ public function map() { $qsos = $this->logbook_model->get_qsos('18', $offset, $logbooks_locations_array); // [PLOT] ADD plot // - $plot_array = $this->logbook_model->get_plot_array_for_map($qsos->result()); + $hide_conf = $this->optionslib->get_option('public_map_show_confirmations') != "1"; + $plot_array = $this->logbook_model->get_plot_array_for_map($qsos->result(), $hide_conf); header('Content-Type: application/json; charset=utf-8'); echo json_encode($plot_array); @@ -309,8 +310,10 @@ public function satellites() $array_confirmed_grid_4char = array(); $array_confirmed_grid_6char = array(); + $show_conf = $this->optionslib->get_option('public_map_show_confirmations') == "1" ? 'true' : 'false'; + // Get initial data for "All" bands - $query = $this->gridmap_model->get_band_confirmed($default_band, $default_mode, 'false', 'false', 'false', 'false', $default_sat, $logbooks_locations_array); + $query = $this->gridmap_model->get_band_confirmed($default_band, $default_mode, $show_conf, $show_conf, $show_conf, $show_conf, $default_sat, $logbooks_locations_array); if ($query && $query->num_rows() > 0) { @@ -395,7 +398,7 @@ public function satellites() } // Confirmed VUCC Squares - $query_vucc = $this->gridmap_model->get_band_confirmed_vucc_squares($default_band, $default_mode, 'false', 'false', 'false', 'false', $default_sat, $logbooks_locations_array); + $query_vucc = $this->gridmap_model->get_band_confirmed_vucc_squares($default_band, $default_mode, $show_conf, $show_conf, $show_conf, $show_conf, $default_sat, $logbooks_locations_array); if ($query_vucc && $query_vucc->num_rows() > 0) { @@ -544,8 +547,11 @@ public function getGridsjs() $array_grid_4char_confirmed = array(); $array_grid_6char_confirmed = array(); - // For public visitor, we don't show QSL confirmations, so set all to false - $query = $this->gridmap_model->get_band_confirmed($band, $mode, 'false', 'false', 'false', 'false', $sat, $logbooks_locations_array); + // See satellites() — the public_map_show_confirmations option governs + // whether confirmed grids are disclosed on the public map. + $show_conf = $this->optionslib->get_option('public_map_show_confirmations') == "1" ? 'true' : 'false'; + + $query = $this->gridmap_model->get_band_confirmed($band, $mode, $show_conf, $show_conf, $show_conf, $show_conf, $sat, $logbooks_locations_array); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { @@ -617,7 +623,7 @@ public function getGridsjs() } // // Confirmed Squares - $query_vucc = $this->gridmap_model->get_band_confirmed_vucc_squares($band, $mode, 'false', 'false', 'false', 'false', $sat, $logbooks_locations_array); + $query_vucc = $this->gridmap_model->get_band_confirmed_vucc_squares($band, $mode, $show_conf, $show_conf, $show_conf, $show_conf, $sat, $logbooks_locations_array); if ($query_vucc && $query_vucc->num_rows() > 0) { foreach ($query_vucc->result() as $row) { diff --git a/application/language/english/options_lang.php b/application/language/english/options_lang.php index 5d6e4ef7a..582d2926e 100644 --- a/application/language/english/options_lang.php +++ b/application/language/english/options_lang.php @@ -114,6 +114,10 @@ $lang['options_public_station_diary_enabled'] = 'Public Station Diary'; $lang['options_public_station_diary_enabled_hint'] = 'Enable or disable the ability for users to create public station diary entries. When disabled, all diary entries remain private regardless of individual settings.'; $lang['options_public_station_diary_settings_saved'] = 'Public Station Diary settings have been saved successfully.'; +$lang['options_public_map_show_confirmations'] = 'Public Map Confirmations'; +$lang['options_public_map_show_confirmations_enabled'] = 'Show Confirmations on Public Maps'; +$lang['options_public_map_show_confirmations_hint'] = 'Enable or disable the ability for visitors to view which QSOs are confirmed on public visitor maps.'; +$lang['options_public_map_show_confirmations_settings_saved'] = 'Public Map Confirmations settings have been saved successfully.'; $lang['options_enabled'] = 'Enabled'; $lang['options_disabled'] = 'Disabled'; diff --git a/application/migrations/267_add_public_map_show_confirmations_option.php b/application/migrations/267_add_public_map_show_confirmations_option.php new file mode 100644 index 000000000..53b3aa4d3 --- /dev/null +++ b/application/migrations/267_add_public_map_show_confirmations_option.php @@ -0,0 +1,28 @@ +db->where('option_name', 'public_map_show_confirmations'); + $query = $this->db->get('options'); + + if ($query->num_rows() == 0) { + $data = array( + 'option_name' => 'public_map_show_confirmations', + 'option_value' => '0', + 'autoload' => 'yes' + ); + $this->db->insert('options', $data); + } + } + + public function down() + { + $this->db->where('option_name', 'public_map_show_confirmations'); + $this->db->delete('options'); + } + +} diff --git a/application/views/options/public_map_show_confirmations.php b/application/views/options/public_map_show_confirmations.php new file mode 100644 index 000000000..6a62affb0 --- /dev/null +++ b/application/views/options/public_map_show_confirmations.php @@ -0,0 +1,38 @@ +
+ +
+ + load->view('options/sidebar') ?> + + + +
+
+

-

+ +
+ session->flashdata('success')) { ?> +
+ session->flashdata('success'); ?> +
+ + + + +
+ + + +
+ + + +
+
+
+
+ +
diff --git a/application/views/options/sidebar.php b/application/views/options/sidebar.php index f144d21a4..db10c41e7 100644 --- a/application/views/options/sidebar.php +++ b/application/views/options/sidebar.php @@ -45,6 +45,11 @@ +
  • + + + +