* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 * @author Icinga Development Team */ // {{{ICINGA_LICENSE_HEADER}}} # namespace Icinga\Application\Controllers; use Icinga\Web\ActionController; use Icinga\Application\Icinga; use Icinga\Web\Hook\Configuration\ConfigurationTabBuilder; use Icinga\Web\Widget\Tabs; /** * Handle module depending frontend actions */ class ModulesController extends ActionController { /** * @var ModuleManager */ protected $manager; /** * Setup this controller * @see ZfActionController::init */ public function init() { $this->manager = Icinga::app()->getModuleManager(); } /** * Display a list of all modules */ public function indexAction() { $tabBuilder = new ConfigurationTabBuilder(new Tabs()); $tabBuilder->build(); $this->view->tabs = $tabBuilder->getTabs(); $this->view->modules = $this->manager->select() ->from('modules') ->order('name'); $this->render('overview'); } /** * Alias for index * * @see self::indexAction */ public function overviewAction() { $this->indexAction(); } /** * Enable a module */ public function enableAction() { $this->manager->enableModule($this->_getParam('name')); $this->manager->loadModule($this->_getParam('name')); $this->getResponse()->setHeader('X-Icinga-Enable-Module', $this->_getParam('name')); $this->redirectNow('modules/overview?_render=body'); } /** * Disable a module */ public function disableAction() { $this->manager->disableModule($this->_getParam('name')); $this->redirectNow('modules/overview?_render=body'); } } // @codingStandardsIgnoreEnd