setName('form_config_general_application'); } /** * {@inheritdoc} * * @return $this */ public function createElements(array $formData) { $this->addElement( 'checkbox', 'global_show_stacktraces', array( 'value' => true, 'label' => $this->translate('Show Stacktraces'), 'description' => $this->translate( 'Set whether to show an exception\'s stacktrace by default. This can also' . ' be set in a user\'s preferences with the appropriate permission.' ) ) ); $this->addElement( 'checkbox', 'global_show_application_state_messages', array( 'value' => true, 'label' => $this->translate('Show Application State Messages'), 'description' => $this->translate( "Set whether to show application state messages." . " This can also be set in a user's preferences." ) ) ); $this->addElement( 'text', 'global_module_path', array( 'label' => $this->translate('Module Path'), 'required' => true, 'value' => implode(':', Icinga::app()->getModuleManager()->getModuleDirs()), 'description' => $this->translate( 'Contains the directories that will be searched for available modules, separated by ' . 'colons. Modules that don\'t exist in these directories can still be symlinked in ' . 'the module folder, but won\'t show up in the list of disabled modules.' ) ) ); // we do not need this form for setup because we set the database there as default. // this form is only displayed in configuration -> application if preferences backend type of ini is recognized if (isset($formData['global_config_backend']) && $formData['global_config_backend'] === 'ini') { $this->addElement( 'select', 'global_config_backend', [ 'required' => true, 'autosubmit' => true, 'label' => $this->translate('User Preference Storage Type'), 'multiOptions' => [ 'ini' => $this->translate('File System (INI Files)'), 'db' => $this->translate('Database') ] ] ); } else { $this->addElement( 'hidden', 'global_config_backend', [ 'required' => true, 'value' => 'db', 'disabled' => true ] ); } if (! isset($formData['global_config_backend']) || $formData['global_config_backend'] === 'db') { $backends = array(); foreach (ResourceFactory::getResourceConfigs()->toArray() as $name => $resource) { if ($resource['type'] === 'db') { $backends[$name] = $name; } } $this->addElement( 'select', 'global_config_resource', array( 'required' => true, 'multiOptions' => array_merge( ['' => sprintf(' - %s - ', $this->translate('Please choose'))], $backends ), 'disable' => [''], 'value' => '', 'label' => $this->translate('Configuration Database') ) ); } return $this; } }