* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 * @author Icinga Development Team * */ // {{{ICINGA_LICENSE_HEADER}}} use Icinga\Web\Controller\BasePreferenceController; use Icinga\Web\Widget\Tab; use Icinga\Application\Config as IcingaConfig; use Icinga\Web\Url; use Icinga\Form\Preference\GeneralForm; /** * Application wide preference controller for user preferences */ class PreferenceController extends BasePreferenceController { /** * Create tabs for this preference controller * * @return array * * @see BasePreferenceController::createProvidedTabs() */ public static function createProvidedTabs() { return array( 'general' => new Tab( array( 'title' => 'General settings', 'url' => Url::fromPath('/preference') ) ) ); } /** * General settings for date and time */ public function indexAction() { $form = new GeneralForm(); $this->getTabs()->activate('general'); $form->setConfiguration(IcingaConfig::app()) ->setRequest($this->getRequest()); if ($form->isSubmittedAndValid()) { try { $this->savePreferences($form->getPreferences()); $this->view->successMessage = 'Preferences Updated Successfully'; // Recreate form to show new values // TODO(el): It must sufficient to call $form->populate(...) $form = new GeneralForm(); $form->setConfiguration(IcingaConfig::app()); $form->setRequest($this->getRequest()); } catch (Exception $e) { $this->view->exceptionMessage = $e->getMessage(); } } $this->view->form = $form; } } // @codeCoverageIgnoreEnd