* @author Icinga Development Team */ // {{{ICINGA_LICENSE_HEADER}}} use \Icinga\Application\Benchmark; use \Icinga\Authentication\Manager; use \Icinga\Web\Controller\BaseConfigController; use \Icinga\Web\Widget\Tab; use \Icinga\Web\Url; use \Icinga\Web\Hook\Configuration\ConfigurationTabBuilder; use \Icinga\Application\Icinga; /** * Application wide controller for application preferences */ class ConfigController extends BaseConfigController { /** * Create tabs for this configuration controller * * @return array * * @see BaseConfigController::createProvidedTabs() */ public static function createProvidedTabs() { return array( 'index' => new Tab( array( 'name' => 'index', 'title' => 'Configuration', 'iconCls' => 'wrench', 'url' => Url::fromPath('/config') ) ), 'modules' => new Tab( array( 'name' => 'modules', 'title' => 'Modules', 'iconCls' => 'puzzle-piece', 'url' => Url::fromPath('/config/moduleoverview') ) ) ); } /** * Index action, entry point for configuration * @TODO: Implement configuration interface (#3777) */ public function indexAction() { } /** * Display the list of all modules */ public function moduleoverviewAction() { $this->view->modules = Icinga::app()->getModuleManager()->select() ->from('modules') ->order('name'); $this->render('module/overview'); } /** * Enable a specific module provided by the 'name' param */ public function moduleenableAction() { $manager = Icinga::app()->getModuleManager(); $manager->enableModule($this->_getParam('name')); $manager->loadModule($this->_getParam('name')); $this->redirectNow('config/moduleoverview?_render=body'); } /** * Disable a module specific module provided by the 'name' param */ public function moduledisableAction() { $manager = Icinga::app()->getModuleManager(); $manager->disableModule($this->_getParam('name')); $this->redirectNow('config/moduleoverview?_render=body'); } } // @codingStandardsIgnoreEnd