/** * AdminConfig@save */ public function save() { global $WT_TREE; $tmp_contrl = new PageController(); $tmp_contrl->restrictAccess(Auth::isManager($WT_TREE) && Filter::checkCsrf()); $ga_id = Filter::postInteger('ga_id'); $description = Filter::post('description'); $analysislevel = Filter::postInteger('analysislevel'); $use_map = Filter::postBool('use_map'); if ($use_map) { $map_file = base64_decode(Filter::post('map_file')); $map_top_level = Filter::postInteger('map_top_level'); } $use_flags = Filter::postBool('use_flags'); $gen_details = Filter::postInteger('gen_details'); $success = false; if ($ga_id) { $ga = $this->provider->getGeoAnalysis($ga_id, false); if ($ga) { $ga->setTitle($description); $ga->setAnalysisLevel($analysislevel + 1); $options = $ga->getOptions(); if ($options) { $options->setUsingFlags($use_flags); $options->setMaxDetailsInGen($gen_details); if ($use_map) { $options->setMap(new OutlineMap($map_file)); $options->setMapLevel($map_top_level + 1); } else { $options->setMap(null); } } $res = $this->provider->updateGeoAnalysis($ga); if ($res) { FlashMessages::addMessage(I18N::translate('The geographical dispersion analysis “%s” has been successfully updated', $res->getTitle()), 'success'); Log::addConfigurationLog('Module ' . $this->module->getName() . ' : Geo Analysis ID “' . $res->getId() . '” has been updated.'); $ga = $res; $success = true; } else { FlashMessages::addMessage(I18N::translate('An error occured while updating the geographical dispersion analysis “%s”', $ga->getTitle()), 'danger'); Log::addConfigurationLog('Module ' . $this->module->getName() . ' : Geo Analysis ID “' . $ga->getId() . '” could not be updated. See error log.'); } } } else { $ga = $this->provider->createGeoAnalysis($description, $analysislevel + 1, $use_map ? $map_file : null, $use_map ? $map_top_level + 1 : null, $use_flags, $gen_details); if ($ga) { FlashMessages::addMessage(I18N::translate('The geographical dispersion analysis “%s” has been successfully added.', $ga->getTitle()), 'success'); Log::addConfigurationLog('Module ' . $this->module->getName() . ' : Geo Analysis ID “' . $ga->getId() . '” has been added.'); $success = true; } else { FlashMessages::addMessage(I18N::translate('An error occured while adding the geographical dispersion analysis “%s”', $description), 'danger'); Log::addConfigurationLog('Module ' . $this->module->getName() . ' : Geo Analysis “' . $description . '” could not be added. See error log.'); } } $redirection_url = 'module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig&ged=' . $WT_TREE->getNameUrl(); if (!$success) { if ($ga) { $redirection_url = 'module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig@edit&ga_id=' . $ga->getId() . '&ged=' . $WT_TREE->getNameUrl(); } else { $redirection_url = 'module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig@add&ged=' . $WT_TREE->getNameUrl(); } } header('Location: ' . WT_BASE_URL . $redirection_url); }