start_date = date("Y-m-d"); if ($system->checkACL($this->acl)) { $this->correct_acl = true; } else { $this->correct_acl = false; } } private function getFilters() { $system = System::getInstance(); $this->id = (int)$system->getRequest('id', 0); $this->module = modules_get_agentmodule($this->id); $this->graph_type = return_graphtype($this->module["id_tipo_modulo"]); $period_hours = $system->getRequest('period_hours', false); if ($period_hours === false) { $this->period = SECONDS_1DAY; } else { $this->period = $period_hours * SECONDS_1HOUR; } $this->draw_events = (int)$system->getRequest('draw_events', 0); $this->draw_alerts = (int)$system->getRequest('draw_alerts', 0); $this->avg_only = (int)$system->getRequest('avg_only', 0); $this->start_date = $system->getRequest('start_date', false); if ($this->start_date === false) { $this->start_date = date("Y-m-d"); } else { $this->start_date = date("Y-m-d", strtotime($this->start_date)); } $this->time_compare_separated = (int)$system->getRequest('time_compare_separated', 0); $this->time_compare_overlapped = (int)$system->getRequest('time_compare_overlapped', 0); $this->unknown_graph = (int)$system->getRequest('unknown_graph', 0); $this->zoom = (int)$system->getRequest('zoom', 1); $this->baseline = (int)$system->getRequest('baseline', 0); $this->width = (int)$system->getRequest('width', 0); $this->width -= 20; //Correct the width $this->height = (int)$system->getRequest('height', 0); //Sancho says "put the height to 1/2 for to make more beautyful" $this->height = $this->height / 2; $this->height -= 80; //Correct the height } public function ajax($parameter2 = false) { $system = System::getInstance(); if (!$this->correct_acl) { return; } else { switch ($parameter2) { case 'get_graph': $this->getFilters(); $correct = 0; $graph = ''; $correct = 1; $label = $this->module["nombre"]; $unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $this->id); $utime = get_system_time (); $current = date("Y-m-d", $utime); if ($this->start_date != $current) $date = strtotime($this->start_date); else $date = $utime; $urlImage = ui_get_full_url(false); $time_compare = false; if ($this->time_compare_separated) { $time_compare = 'separated'; } else if ($this->time_compare_overlapped) { $time_compare = 'overlapped'; } ob_start(); switch ($this->graph_type) { case 'boolean': $graph = grafico_modulo_boolean ($this->id, $this->period, $this->draw_events, $this->width, $this->height, $label, $unit, $this->draw_alerts, $this->avg_only, false, $date, false, $urlImage, 'adapter_' . $this->graph_type, $time_compare, $this->unknown_graph); if ($show_events_graph) { $graph .= '
'; $graph .= graphic_module_events($this->id, $this->width, $this->height, $this->period, $config['homeurl'], $this->zoom, 'adapted_' . $this->graph_type, $date); } break; case 'sparse': $graph = grafico_modulo_sparse ($this->id, $this->period, $this->draw_events, $this->width, $this->height, $label, null, $this->draw_alerts, $this->avg_only, false, $date, $unit, $this->baseline, 0, true, false, $urlImage, 1, false, 'adapter_' . $this->graph_type, $time_compare, $this->unknown_graph); if ($show_events_graph) { $graph .= '
'; $graph .= graphic_module_events($this->id, $this->width, $this->height, $this->period, $config['homeurl'], $this->zoom, 'adapted_'.$this->graph_type, $date); } break; case 'string': $graph = grafico_modulo_string ($this->id, $this->period, $this->draw_events, $this->width, $this->height, $label, null, $this->draw_alerts, 1, false, $date, false, $urlImage, 'adapter_' . $this->graph_type); if ($show_events_graph) { $graph .= '
'; $graph .= graphic_module_events($this->id, $this->width, $this->height, $this->period, $config['homeurl'], $this->zoom, 'adapted_' . $this->graph_type, $date); } break; case 'log4x': $graph = grafico_modulo_log4x ($this->id, $this->period, $this->draw_events, $this->width, $this->height, $label, $unit_name, $this->draw_alerts, 1, $pure, $date); if ($show_events_graph) { $graph .= '
'; $graph .= graphic_module_events($this->id, $this->width, $this->height, $this->period, $config['homeurl'], $this->zoom, '', $date); } break; default: $graph .= fs_error_image ('../images'); break; } $graph = ob_get_clean() . $graph; echo json_encode(array('correct' => $correct, 'graph' => $graph)); break; } } } public function show() { if (!$this->correct_acl) { $this->show_fail_acl(); } else { $this->getFilters(); $this->showModuleGraph(); } } private function show_fail_acl() { $ui = Ui::getInstance(); $ui->createPage(); $options['type'] = 'onStart'; $options['title_text'] = __('You don\'t have access to this page'); $options['content_text'] = __('Access to this page is restricted to authorized users only, please contact system administrator if you need assistance.

Please know that all attempts to access this page are recorded in security logs of Pandora System Database'); $ui->addDialog($options); $ui->showPage(); } private function javascript_code() { ob_start(); ?> createPage(); $ui->createDefaultHeader(sprintf(__("PandoraFMS: %s"), $this->module["nombre"])); $ui->showFooter(false); $ui->beginContent(); $ui->contentAddHtml($ui->getInput(array( 'id' => 'id_module', 'value' => $this->id, 'type' => 'hidden' ))); $ui->contentBeginCollapsible("Options"); $ui->beginForm("index.php?page=module_graph&id=" . $this->id); $options = array( 'name' => 'draw_alerts', 'value' => 1, 'checked' => (bool)$this->draw_alerts, 'label' => __('Show Alerts') ); $ui->formAddCheckbox($options); $options = array( 'name' => 'draw_events', 'value' => 1, 'checked' => (bool)$this->draw_events, 'label' => __('Show Events') ); $ui->formAddCheckbox($options); $options = array( 'name' => 'time_compare_separated', 'value' => 1, 'checked' => (bool)$this->time_compare_separated, 'label' => __('Time compare (Separated)') ); $ui->formAddCheckbox($options); $options = array( 'name' => 'time_compare_overlapped', 'value' => 1, 'checked' => (bool)$this->time_compare_overlapped, 'label' => __('Time compare (Overlapped)') ); $ui->formAddCheckbox($options); $options = array( 'name' => 'unknown_graph', 'value' => 1, 'checked' => (bool)$this->unknown_graph, 'label' => __('Show unknown graph') ); $ui->formAddCheckbox($options); $options = array( 'name' => 'avg_only', 'value' => 1, 'checked' => (bool)$this->avg_only, 'label' => __('Avg Only') ); $ui->formAddCheckbox($options); $options = array( 'label' => __('Time range (hours)'), 'name' => 'period_hours', 'value' => ($this->period / SECONDS_1HOUR), 'min' => 0, 'max' => 24 * 30, 'step' => 4 ); $ui->formAddSlider($options); /* $items = array('1' => __('x1'), '2' => __('x2'), '3' => __('x3'), '4' => __('x4')); $options = array( 'name' => 'zoom', 'title' => __('Zoom'), 'label' => __('Zoom'), 'items' => $items, 'selected' => $this->zoom ); $ui->formAddSelectBox($options); */ $options = array( 'name' => 'start_date', 'value' => $this->start_date, 'label' => __('Begin date') ); $ui->formAddInpuDate($options); $options = array( 'icon' => 'refresh', 'icon_pos' => 'right', 'text' => __('Update graph') ); $ui->formAddSubmitButton($options); $html = $ui->getEndForm(); $ui->contentCollapsibleAddItem($html); $ui->contentEndCollapsible(); $ui->contentAddHtml('
' . __('Loading...') . '
'); $ui->contentAddHtml($this->javascript_code()); $ui->endContent(); $ui->showPage(); } /* */ }