alert_status_items = [ 'all_enabled' => __('All (Enabled)'), 'all' => __('All'), 'fired' => __('Fired'), 'notfired' => __('Not fired'), 'disabled' => __('Disabled'), ]; $this->alert_standby_items = [ '-1' => __('All'), '1' => __('Standby on'), '0' => __('Standby off'), ]; $this->columns = ['agent' => 1]; $system = System::getInstance(); if ($system->checkACL($this->acl)) { $this->correct_acl = true; } else { $this->correct_acl = false; } } private function alertsGetFilters() { $system = System::getInstance(); $user = User::getInstance(); $this->default_filters['standby'] = true; $this->default_filters['group'] = true; $this->default_filters['status'] = true; $this->default_filters['free_search'] = true; $this->free_search = $system->getRequest('free_search', ''); if ($this->free_search != '') { $this->default = false; $this->default_filters['free_search'] = false; } $this->status = $system->getRequest('status', __('Status')); if (($this->status === __('Status')) || ($this->status == 'all')) { $this->status = 'all'; } else { $this->default = false; $this->default_filters['status'] = false; } $this->group = $system->getRequest('group', __('Group')); if (!$user->isInGroup($this->acl, $this->group)) { $this->group = 0; } if (($this->group === __('Group')) || ($this->group == 0)) { $this->group = 0; } else { $this->default = false; $this->default_filters['group'] = false; } $this->standby = $system->getRequest('standby', __('Stand by')); if (($this->standby === __('Stand by')) || ($this->standby == -1)) { $this->standby = -1; } else { $this->default = false; $this->default_filters['standby'] = false; } } public function setFilters($filters) { if (isset($filters['id_agent'])) { $this->id_agent = $filters['id_agent']; } if (isset($filters['all_alerts'])) { $this->all_alerts = $filters['all_alerts']; } } public function ajax($parameter2=false) { $system = System::getInstance(); if (!$this->correct_acl) { return; } else { switch ($parameter2) { case 'xxxx': break; } } } public function show() { if (!$this->correct_acl) { $this->show_fail_acl(); } else { $this->alertsGetFilters(); $this->show_alerts(); } } private function show_fail_acl() { $error['type'] = 'onStart'; $error['title_text'] = __('You don\'t have access to this page'); $error['content_text'] = System::getDefaultACLFailText(); if (class_exists('HomeEnterprise')) { $home = new HomeEnterprise(); } else { $home = new Home(); } $home->show($error); } private function show_alerts() { $ui = Ui::getInstance(); $ui->createPage(); $ui->createDefaultHeader( __('Alerts'), $ui->createHeaderButton( [ 'icon' => 'back', 'pos' => 'left', 'text' => __('Back'), 'href' => 'index.php?page=home', ] ) ); $ui->showFooter(false); $ui->beginContent(); $filter_title = sprintf( __('Filter Alerts by %s'), $this->filterAlertsGetString() ); $ui->contentBeginCollapsible($filter_title); $ui->beginForm(); $options = [ 'name' => 'page', 'type' => 'hidden', 'value' => 'alerts', ]; $ui->formAddInput($options); $system = System::getInstance(); $groups = users_get_groups_for_select( $system->getConfig('id_user'), 'ER', true, true, false, 'id_grupo' ); $options = [ 'name' => 'group', 'title' => __('Group'), 'label' => __('Group'), 'items' => $groups, 'selected' => $this->group, ]; $ui->formAddSelectBox($options); $options = [ 'name' => 'free_search', 'value' => $this->free_search, 'placeholder' => __('Free search'), ]; $ui->formAddInputSearch($options); $options = [ 'name' => 'status', 'title' => __('Status'), 'label' => __('Status'), 'items' => $this->alert_status_items, 'selected' => $this->status, ]; $ui->formAddSelectBox($options); $options = [ 'name' => 'standby', 'title' => __('Stand by'), 'label' => __('Stand by'), 'items' => $this->alert_standby_items, 'selected' => $this->standby, ]; $ui->formAddSelectBox($options); $options = [ 'icon' => 'refresh', 'icon_pos' => 'right', 'text' => __('Apply Filter'), ]; $ui->formAddSubmitButton($options); $html = $ui->getEndForm(); $ui->contentCollapsibleAddItem($html); $ui->contentEndCollapsible(); $this->listAlertsHtml(); $ui->endContent(); $ui->showPage(); } public function disabledColumns($columns=null) { if (!empty($columns)) { foreach ($columns as $column) { unset($this->columns[$column]); } } } public function listAlertsHtml($return=false) { $countAlerts = alerts_get_alerts( $this->group, $this->free_search, $this->status, $this->standby, 'AR', true, $this->id_agent ); $alerts = alerts_get_alerts( $this->group, $this->free_search, $this->status, $this->standby, 'AR', false, $this->id_agent ); if (empty($alerts)) { $alerts = []; } $table = []; foreach ($alerts as $alert) { if ($alert['alert_disabled']) { $disabled_style = "%s"; } else { $disabled_style = '%s'; } if ($alert['times_fired'] > 0) { $status = STATUS_ALERT_FIRED; $title = __('Alert fired').' '.$alert['internal_counter'].' '.__('time(s)'); } else if ($alert['disabled'] > 0) { $status = STATUS_ALERT_DISABLED; $title = __('Alert disabled'); } else { $status = STATUS_ALERT_NOT_FIRED; $title = __('Alert not fired'); } $row = []; if (isset($this->columns['agent']) && $this->columns['agent']) { $row[__('Agent')] = sprintf($disabled_style, io_safe_output($alert['agent_alias'])); } $row[__('Module')] = sprintf( $disabled_style, io_safe_output($alert['module_name']) ); $row[__('Template')] = sprintf( $disabled_style, io_safe_output($alert['template_name']) ); $row[__('Last Fired')] = sprintf( $disabled_style, ui_print_timestamp($alert['last_fired'], true) ); $row[__('Status')] = ui_print_status_image($status, $title, true); $table[] = $row; } $ui = UI::getInstance(); if (empty($table)) { $html = '
'.__('No alerts').'
'; if (!$return) { $ui->contentAddHtml($html); } else { return $html; } } else { $tableHTML = new Table(); $tableHTML->id = 'list_alerts'; $tableHTML->importFromHash($table); if (!$return) { $ui->contentAddHtml($tableHTML->getHTML()); } else { return $tableHTML->getHTML(); } } } private function filterAlertsGetString() { if ($this->default) { return __('(Default)'); } else { $filters_to_serialize = []; if (!$this->default_filters['standby']) { $filters_to_serialize[] = sprintf( __('Standby: %s'), $this->alert_standby_items[$this->standby] ); } if (!$this->default_filters['group']) { $filters_to_serialize[] = sprintf( __('Group: %s'), groups_get_name($this->group, true) ); } if (!$this->default_filters['status']) { $filters_to_serialize[] = sprintf( __('Status: %s'), $this->alert_status_items[$this->status] ); } if (!$this->default_filters['free_search']) { $filters_to_serialize[] = sprintf( __('Free Search: %s'), $this->free_search ); } $string = '('.implode(' - ', $filters_to_serialize).')'; return $string; // ~ $status_text = $this->alert_status_items[$this->status]; // ~ $standby_text = $this->alert_standby_items[$this->standby]; // ~ $group_text = groups_get_name($this->group, true); // ~ return sprintf(__('(Status: %s - Standby: %s - Group: %s - Free Search: %s)'), // ~ $status_text, $standby_text, $group_text, $this->free_search); } } }