/** * Display services * * @method get * @route /service * @todo work on ajax refresh */ public function displayServicesAction() { $tpl = Di::getDefault()->get('template'); $router = Di::getDefault()->get('router'); /* Load css */ $tpl->addCss('dataTables.tableTools.min.css')->addCss('jquery.fileupload.css')->addCss('dataTables.colVis.min.css')->addCss('dataTables.colReorder.min.css')->addCss('select2.css')->addCss('select2-bootstrap.css')->addCss('centreon-wizard.css'); /* Load js */ $tpl->addJs('jquery.min.js')->addJs('jquery.dataTables.min.js')->addJs('dataTables.tableTools.min.js')->addJs('dataTables.colVis.min.js')->addJs('dataTables.colReorder.min.js')->addJs('bootstrap-dataTables-paging.js')->addJs('jquery.dataTables.columnFilter.js')->addJs('dataTables.bootstrap.js')->addJs('jquery.select2/select2.min.js')->addJs('jquery.validation/jquery.validate.min.js')->addJs('jquery.validation/additional-methods.min.js')->addJs('jquery.qtip.min.js')->addJs('moment-with-locales.js')->addJs('hogan-3.0.0.min.js')->addJs('daterangepicker.js')->addJs('bootstrap3-typeahead.js')->addJs('centreon.search.js')->addJs('centreon.overlay.js')->addJs('centreon.tag.js', 'bottom', 'centreon-administration')->addJs('moment-timezone-with-data.min.js')->addJs('centreon-wizard.js'); /* Datatable */ $tpl->assign('moduleName', 'CentreonRealtime'); $tpl->assign('datatableObject', $this->datatableObject); $tpl->assign('objectDisplayName', 'Service'); $tpl->assign('objectName', 'Service'); $tpl->assign('objectListUrl', '/centreon-realtime/service/list'); $actions = array(); $actions[] = array('group' => _('Services'), 'actions' => ServicedetailRepository::getMonitoringActions()); $actions[] = array('group' => _('Hosts'), 'actions' => HostdetailRepository::getMonitoringActions()); $tpl->assign('actions', $actions); $urls = array('tag' => array('add' => $router->getPathFor('/centreon-administration/tag/add'), 'del' => $router->getPathFor('/centreon-administration/tag/delete'), 'getallGlobal' => $router->getPathFor('/centreon-administration/tag/all'), 'getallPerso' => $router->getPathFor('/centreon-administration/tag/allPerso'), 'addMassive' => $router->getPathFor('/centreon-administration/tag/addMassive'))); $tpl->append('jsUrl', $urls, true); /* Add javascript and css file for hooks */ Hook::addStaticFile('displaySvcTooltipGraph'); $tpl->display('file:[CentreonMainModule]list.tpl'); }
/** * Host tooltip * * @method get * @route /host/[i:id]/tooltip */ public function hostTooltipAction() { $params = $this->getParams(); $rawdata = HostdetailRepository::getRealtimeData($params['id']); if (isset($rawdata[0])) { $data = $this->transformRawData($rawdata[0]); $this->tpl->assign('title', $rawdata[0]['host_name']); $this->tpl->assign('state', $rawdata[0]['state']); $this->tpl->assign('data', $data); } else { $this->tpl->assign('error', sprintf(_('No data found for host id:%s'), $params['id'])); } $this->tpl->assign('params', array('host_id' => $params['id'])); $this->tpl->display('file:[CentreonRealtimeModule]host_tooltip.tpl'); }
/** * Acknowledge host / service problems * * @method post * @route /externalcommands/advanced/[i:cmdid] * @todo */ public function advancedAction() { $params = $this->getParams(); $cmdId = $params['cmdid']; $router = Di::getDefault()->get('router'); try { if ($cmdId == ServicedetailRepository::DOWNTIME || $cmdId == HostdetailRepository::DOWNTIME) { list($start, $end) = explode(' - ', $params['period']); $params['start_time'] = strtotime($start); $params['end_time'] = strtotime($end); } switch ($cmdId) { case ServicedetailRepository::DOWNTIME: case ServicedetailRepository::ACKNOWLEDGE: ServicedetailRepository::processCommand($cmdId, $params['ids'], $params); break; case HostdetailRepository::DOWNTIME: case HostdetailRepository::ACKNOWLEDGE: HostdetailRepository::processCommand($cmdId, $params['ids'], $params); break; } $router->response()->json(array('message' => _('Command has been successfully submitted'))); } catch (\Exception $e) { $router->response()->json(array('message' => $e->getMessage())); } }