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('