public function execute(HTTPRequestCustom $request) { AppContext::get_session()->csrf_get_protect(); $config = BugtrackerConfig::load(); $parameter = $request->get_string('parameter', ''); if (in_array($parameter, array('type', 'category', 'severity', 'priority', 'version'))) { switch ($parameter) { case 'type': $config->set_default_type(0); break; case 'category': $config->set_default_category(0); break; case 'severity': $config->set_default_severity(0); break; case 'priority': $config->set_default_priority(0); break; case 'version': $config->set_default_version(0); break; } BugtrackerConfig::save(); AppContext::get_response()->redirect(BugtrackerUrlBuilder::configuration()); } else { $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), LangLoader::get_message('error.e_unexist_parameter', 'common', 'bugtracker')); $controller->set_response_classname(UserErrorController::ADMIN_RESPONSE); DispatchManager::redirect($controller); } }
private function save() { $request = AppContext::get_request(); $types = $this->config->get_types(); $categories = $this->config->get_categories(); $severities = $this->config->get_severities(); $priorities = $this->config->get_priorities(); $versions = $this->config->get_versions(); foreach ($types as $key => $type) { $new_type_name = $request->get_value('type' . $key, ''); $types[$key] = !empty($new_type_name) && $new_type_name != $type ? $new_type_name : $type; } $nb_types = count($types); for ($i = 1; $i <= $this->max_input; $i++) { $type = 'type_' . $i; if ($request->has_postparameter($type) && $request->get_poststring($type)) { if (empty($nb_types)) { $types[1] = addslashes($request->get_poststring($type)); } else { $types[] = addslashes($request->get_poststring($type)); } $nb_types++; } } foreach ($categories as $key => $category) { $new_category_name = $request->get_value('category' . $key, ''); $categories[$key] = !empty($new_category_name) && $new_category_name != $category ? $new_category_name : $category; } $nb_categories = count($categories); for ($i = 1; $i <= $this->max_input; $i++) { $category = 'category_' . $i; if ($request->has_postparameter($category) && $request->get_poststring($category)) { if (empty($nb_categories)) { $categories[1] = addslashes($request->get_poststring($category)); } else { $categories[] = addslashes($request->get_poststring($category)); } $nb_categories++; } } foreach ($severities as $key => $severity) { $new_severity_name = $request->get_value('severity' . $key, ''); $new_severity_color = $request->get_value('color' . $key, ''); $severities[$key]['name'] = !empty($new_severity_name) && $new_severity_name != $severity['name'] ? $new_severity_name : $severity['name']; $severities[$key]['color'] = $new_severity_color != $severity['color'] ? $new_severity_color : $severity['color']; } foreach ($priorities as $key => $priority) { $new_priority_name = $request->get_value('priority' . $key, ''); $priorities[$key] = !empty($new_priority_name) && $new_priority_name != $priority ? $new_priority_name : $priority; } foreach ($versions as $key => $version) { $new_version_name = $request->get_value('version' . $key, ''); $new_version_release_date = $request->get_value('release_date' . $key, ''); $new_version_detected_in = (bool) $request->get_value('detected_in' . $key, ''); $versions[$key]['name'] = !empty($new_version_name) && $new_version_name != $version['name'] ? $new_version_name : $version['name']; $release_date = $new_version_release_date ? new Date($new_version_release_date) : ''; $versions[$key]['release_date'] = $release_date ? $release_date->get_timestamp() : ''; $versions[$key]['detected_in'] = $new_version_detected_in != $version['detected_in'] ? $new_version_detected_in : $version['detected_in']; } $nb_versions = count($versions); for ($i = 1; $i <= $this->max_input; $i++) { $version = 'version_' . $i; if ($request->has_postparameter($version) && $request->get_poststring($version)) { $version_release_date = $request->get_value('release_date_' . $i, ''); $release_date = $version_release_date ? new Date($version_release_date) : ''; $release_date = $release_date ? $release_date->get_timestamp() : ''; if (empty($nb_versions)) { $versions[1] = array('name' => addslashes($request->get_poststring($version)), 'release_date' => $release_date, 'detected_in' => (bool) $request->get_value('detected_in' . $i, '')); } else { $versions[] = array('name' => addslashes($request->get_poststring($version)), 'release_date' => $release_date, 'detected_in' => (bool) $request->get_value('detected_in' . $i, '')); } $nb_versions++; } } $this->config->set_items_per_page($this->form->get_value('items_per_page')); $this->config->set_rejected_bug_color($this->form->get_value('rejected_bug_color')); $this->config->set_fixed_bug_color($this->form->get_value('fixed_bug_color')); if ($this->form->get_value('roadmap_enabled')) { $this->config->enable_roadmap(); } else { $this->config->disable_roadmap(); } if ($this->form->get_value('progress_bar_displayed')) { $this->config->display_progress_bar(); $status_list = array(); foreach ($this->config->get_status_list() as $key => $value) { $status_list[$key] = $this->form->get_value($key); } $this->config->set_status_list($status_list); } else { $this->config->hide_progress_bar(); } if ($this->form->get_value('admin_alerts_enabled')) { $this->config->enable_admin_alerts(); $this->config->set_admin_alerts_fix_action($this->form->get_value('admin_alerts_fix_action')->get_raw_value()); $admin_alerts_levels = array(); foreach ($this->form->get_value('admin_alerts_levels') as $level => $value) { $admin_alerts_levels[] = (string) $value->get_id(); } $this->config->set_admin_alerts_levels($admin_alerts_levels); } else { $this->config->disable_admin_alerts(); } if ($this->form->get_value('stats_enabled')) { $this->config->enable_stats(); if ($this->form->get_value('stats_top_posters_enabled')) { $this->config->enable_stats_top_posters(); $this->config->set_stats_top_posters_number($this->form->get_value('stats_top_posters_number')); } else { $this->config->disable_stats_top_posters(); } } else { $this->config->disable_stats(); } if ($this->form->get_value('pm_enabled')) { $this->config->enable_pm(); if ($this->form->get_value('pm_comment_enabled')) { $this->config->enable_pm_comment(); } else { $this->config->disable_pm_comment(); } if ($this->form->get_value('pm_in_progress_enabled')) { $this->config->enable_pm_in_progress(); } else { $this->config->disable_pm_in_progress(); } if ($this->form->get_value('pm_fix_enabled')) { $this->config->enable_pm_fix(); } else { $this->config->disable_pm_fix(); } if ($this->form->get_value('pm_pending_enabled')) { $this->config->enable_pm_pending(); } else { $this->config->disable_pm_pending(); } if ($this->form->get_value('pm_assign_enabled')) { $this->config->enable_pm_assign(); } else { $this->config->disable_pm_assign(); } if ($this->form->get_value('pm_edit_enabled')) { $this->config->enable_pm_edit(); } else { $this->config->disable_pm_edit(); } if ($this->form->get_value('pm_reject_enabled')) { $this->config->enable_pm_reject(); } else { $this->config->disable_pm_reject(); } if ($this->form->get_value('pm_reopen_enabled')) { $this->config->enable_pm_reopen(); } else { $this->config->disable_pm_reopen(); } if ($this->form->get_value('pm_delete_enabled')) { $this->config->enable_pm_delete(); } else { $this->config->disable_pm_delete(); } } else { $this->config->disable_pm(); } $this->config->set_contents_value($this->form->get_value('contents_value')); if ($this->form->get_value('type_mandatory')) { $this->config->type_mandatory(); } else { $this->config->type_not_mandatory(); } if ($this->form->get_value('display_type_column')) { $this->config->display_type_column(); } else { $this->config->hide_type_column(); } $this->config->set_types($types); $this->config->set_default_type($request->get_value('default_type', 0)); if ($this->form->get_value('category_mandatory')) { $this->config->category_mandatory(); } else { $this->config->category_not_mandatory(); } if ($this->form->get_value('display_category_column')) { $this->config->display_category_column(); } else { $this->config->hide_category_column(); } $this->config->set_categories($categories); $this->config->set_default_category($request->get_value('default_category', 0)); if ($this->form->get_value('severity_mandatory')) { $this->config->severity_mandatory(); } else { $this->config->severity_not_mandatory(); } $this->config->set_severities($severities); $this->config->set_default_severity($request->get_value('default_severity', 0)); if ($this->form->get_value('priority_mandatory')) { $this->config->priority_mandatory(); } else { $this->config->priority_not_mandatory(); } if ($this->form->get_value('display_priority_column')) { $this->config->display_priority_column(); } else { $this->config->hide_priority_column(); } $this->config->set_priorities($priorities); $this->config->set_default_priority($request->get_value('default_priority', 0)); if ($this->form->get_value('detected_in_version_mandatory')) { $this->config->detected_in_version_mandatory(); } else { $this->config->detected_in_version_not_mandatory(); } if ($this->form->get_value('display_detected_in_column')) { $this->config->display_detected_in_column(); } else { $this->config->hide_detected_in_column(); } $this->config->set_versions($versions); $this->config->set_default_version($request->get_value('default_version', 0)); BugtrackerConfig::save(); BugtrackerStatsCache::invalidate(); }
private function save() { //Save the authorizations list BugtrackerConfig::load()->set_authorizations($this->form->get_value('authorizations')->build_auth_array()); BugtrackerConfig::save(); }
private function delete_parameter_in_config() { $types = $this->config->get_types(); $categories = $this->config->get_categories(); $versions = $this->config->get_versions(); switch ($this->parameter) { case 'type': //Delete the type in the list of types unset($types[$this->id]); $this->config->set_types($types); if ($this->config->get_default_type() == $this->id) { $this->config->set_default_type(0); } break; case 'category': //Delete the category in the list of categories unset($categories[$this->id]); $this->config->set_categories($categories); if ($this->config->get_default_category() == $this->id) { $this->config->set_default_category(0); } break; case 'version': //Delete the version in the list of versions unset($versions[$this->id]); $this->config->set_versions($versions); if ($this->config->get_default_version() == $this->id) { $this->config->set_default_version(0); } break; } BugtrackerConfig::save(); }