} else { $query .= $where; } $query .= " AND `{$entry}` != '' {$query_permitted} GROUP BY `{$entry}` ORDER BY `{$entry}`"; foreach (dbFetchColumn($query) as $item) { if ($entry == 'os') { $name = $config['os'][$item]['text']; } else { $name = nicecase($item); } $form_items[$entry][$item] = $name; } } $form = array('type' => 'rows', 'space' => '5px', 'submit_by_key' => TRUE, 'url' => generate_url($vars)); //Device field $form_items['devices'] = generate_form_values('device', $form_devices); $form['row'][0]['device_id'] = array('type' => 'multiselect', 'name' => 'Device', 'width' => '100%', 'value' => $vars['device_id'], 'groups' => array('', 'UP', 'DOWN', 'DISABLED'), 'values' => $form_items['devices']); // Device OS field $form['row'][0]['os'] = array('type' => 'multiselect', 'name' => 'Select OS', 'width' => '100%', 'value' => $vars['os'], 'values' => $form_items['os']); // Parts field ksort($form_items['parts']); $form['row'][0]['parts'] = array('type' => 'multiselect', 'name' => 'Part Numbers', 'width' => '100%', 'value' => $vars['parts'], 'values' => $form_items['parts']); //Serial field $form['row'][0]['serial'] = array('type' => 'text', 'name' => 'Serial', 'width' => '100%', 'placeholder' => TRUE, 'submit_by_key' => TRUE, 'value' => escape_html($vars['serial'])); //Description field $form['row'][0]['description'] = array('type' => 'text', 'name' => 'Description', 'grid' => 3, 'width' => '100%', 'placeholder' => TRUE, 'submit_by_key' => TRUE, 'value' => escape_html($vars['description'])); // search button $form['row'][0]['search'] = array('type' => 'submit', 'grid' => 1, 'right' => TRUE); print_form($form); unset($form, $form_items, $form_devices); // Pagination
<div class="col-md-12"> <?php if (!is_array($alert_rules)) { $alert_rules = cache_alert_rules(); } // Note, this form have more complex grid and class elements for responsive datetime field $form = array('type' => 'rows', 'space' => '5px', 'submit_by_key' => TRUE, 'url' => generate_url($vars)); $where = ' WHERE 1 ' . generate_query_values($device['device_id'], 'device_id'); // Checkers Field $form_filter = dbFetchColumn('SELECT DISTINCT `alert_test_id` FROM `alert_log`' . $where); $form_items['checkers'] = generate_form_values('alert_log', $form_filter, 'alert_test_id'); $form['row'][0]['alert_test_id'] = array('type' => 'multiselect', 'name' => 'Checkers', 'width' => '100%', 'div_class' => 'col-lg-2 col-md-2 col-sm-4', 'subtext' => TRUE, 'value' => $vars['alert_test_id'], 'values' => $form_items['checkers']); // Status Type Field $form_filter = dbFetchColumn('SELECT DISTINCT `log_type` FROM `alert_log`' . $where); $form_items['statuses'] = generate_form_values('alert_log', $form_filter, 'log_type'); $form['row'][0]['log_type'] = array('type' => 'multiselect', 'name' => 'Status Type', 'width' => '100%', 'div_class' => 'col-lg-2 col-md-2 col-sm-4', 'size' => '15', 'value' => $vars['log_type'], 'values' => $form_items['statuses']); // Datetime Field $form['row'][0]['timestamp'] = array('type' => 'datetime', 'div_class' => 'col-lg-5 col-md-7 col-sm-9', 'presets' => TRUE, 'min' => dbFetchCell('SELECT `timestamp` FROM `alert_log`' . $where . ' ORDER BY `timestamp` LIMIT 0,1;'), 'max' => dbFetchCell('SELECT `timestamp` FROM `alert_log`' . $where . ' ORDER BY `timestamp` DESC LIMIT 0,1;'), 'from' => $vars['timestamp_from'], 'to' => $vars['timestamp_to']); // Second row with timestamp for sm //$form['row_options'][1] = array('class' => 'hidden-lg hidden-md hidden-xs'); //$form['row'][1]['timestamp'] = $form['row'][0]['timestamp']; //$form['row'][1]['timestamp']['div_class'] = 'text-nowrap col-sm-9'; // search button $form['row'][0]['search'] = array('type' => 'submit', 'div_class' => 'col-lg-3 col-md-1 col-sm-3', 'right' => TRUE); print_form($form); unset($form, $form_items, $form_filter); // Pagination $vars['pagination'] = TRUE; // Print Alert Log print_alert_log($vars);
* @subpackage webui * @author Adam Armstrong <*****@*****.**> * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ $where = ' WHERE 1 ' . generate_query_values($device['device_id'], 'device_id'); $timestamp_min = dbFetchCell('SELECT `timestamp` FROM `eventlog` ' . $where . ' ORDER BY `timestamp` LIMIT 0,1;'); $timestamp_max = dbFetchCell('SELECT `timestamp` FROM `eventlog` ' . $where . ' ORDER BY `timestamp` DESC LIMIT 0,1;'); // Note, this form have more complex grid and class elements for responsive datetime field $form = array('type' => 'rows', 'space' => '5px', 'submit_by_key' => TRUE, 'url' => generate_url($vars)); // Message field $form['row'][0]['message'] = array('type' => 'text', 'name' => 'Message', 'placeholder' => 'Message', 'width' => '100%', 'div_class' => 'col-lg-4 col-md-6 col-sm-6', 'value' => $vars['message']); // Severities field $form_filter = dbFetchColumn('SELECT DISTINCT `severity` FROM `eventlog`' . $where); $form_items['severities'] = generate_form_values('eventlog', $form_filter, 'severity'); $form['row'][0]['severity'] = array('type' => 'multiselect', 'name' => 'Severities', 'width' => '100%', 'div_class' => 'col-lg-1 col-md-2 col-sm-2', 'subtext' => TRUE, 'value' => $vars['severity'], 'values' => $form_items['severities']); // Types field $form_filter = dbFetchColumn('SELECT DISTINCT `entity_type` FROM `eventlog` IGNORE INDEX (`type`)' . $where); $form_items['types'] = generate_form_values('eventlog', $form_filter, 'type'); $form['row'][0]['type'] = array('type' => 'multiselect', 'name' => 'Types', 'width' => '100%', 'div_class' => 'col-lg-1 col-md-2 col-sm-2', 'size' => '15', 'value' => $vars['type'], 'values' => $form_items['types']); // Datetime field $form['row'][0]['timestamp'] = array('type' => 'datetime', 'div_class' => 'col-lg-5 col-md-7 col-sm-10', 'presets' => TRUE, 'min' => $timestamp_min, 'max' => $timestamp_max, 'from' => $vars['timestamp_from'], 'to' => $vars['timestamp_to']); // search button $form['row'][0]['search'] = array('type' => 'submit', 'div_class' => 'col-lg-1 col-md-5 col-sm-2', 'right' => TRUE); print_form($form); unset($form, $form_items, $form_devices); /// Pagination $vars['pagination'] = TRUE; print_events($vars); register_html_title("Events"); // EOF
$form_devices = dbFetchColumn('SELECT DISTINCT `device_id` FROM `syslog`' . $where); $form_items['devices'] = generate_form_values('device', $form_devices); // Device field $form['row'][0]['device_id'] = array('type' => 'multiselect', 'name' => 'Devices', 'width' => '100%', 'div_class' => 'col-lg-1 col-md-2 col-sm-2', 'value' => $vars['device_id'], 'groups' => array('', 'UP', 'DOWN', 'DISABLED'), 'values' => $form_items['devices']); // Add device_id limit for other fields if (isset($vars['device_id'])) { $where .= generate_query_values($vars['device_id'], 'device_id'); } // Message field $form['row'][0]['message'] = array('type' => 'text', 'name' => 'Message', 'placeholder' => 'Message', 'width' => '100%', 'div_class' => 'col-lg-3 col-md-4 col-sm-4', 'value' => $vars['message']); // Priority field $form_items['priorities'] = generate_form_values('syslog', NULL, 'priorities'); $form['row'][0]['priority'] = array('type' => 'multiselect', 'name' => 'Priorities', 'width' => '100%', 'div_class' => 'col-lg-1 col-md-2 col-sm-2', 'subtext' => TRUE, 'value' => $vars['priority'], 'values' => $form_items['priorities']); // Program field $form_filter = dbFetchColumn('SELECT DISTINCT `program` FROM `syslog` IGNORE INDEX (`program`)' . $where); $form_items['programs'] = generate_form_values('syslog', $form_filter, 'programs'); $form['row'][0]['program'] = array('type' => 'multiselect', 'name' => 'Programs', 'width' => '100%', 'div_class' => 'col-lg-1 col-md-2 col-sm-2', 'size' => '15', 'value' => $vars['program'], 'values' => $form_items['programs']); // Datetime Field $form['row'][0]['timestamp'] = array('type' => 'datetime', 'div_class' => 'col-lg-5 col-md-7 col-sm-10 col-lg-push-0 col-md-push-2 col-sm-push-2', 'presets' => TRUE, 'min' => dbFetchCell('SELECT `timestamp` FROM `syslog`' . $where . ' ORDER BY `timestamp` LIMIT 0,1;'), 'max' => dbFetchCell('SELECT `timestamp` FROM `syslog`' . $where . ' ORDER BY `timestamp` DESC LIMIT 0,1;'), 'from' => $vars['timestamp_from'], 'to' => $vars['timestamp_to']); // Second row with timestamp for md and sm //$form['row_options'][1] = array('class' => 'hidden-lg hidden-xs'); //$form['row'][1]['timestamp'] = $form['row'][0]['timestamp']; //$form['row'][1]['timestamp']['div_class'] = 'text-nowrap col-md-7 col-sm-8 col-md-offset-2 col-sm-offset-2'; // search button $form['row'][0]['search'] = array('type' => 'submit', 'div_class' => 'col-lg-1 col-md-5 col-sm-2', 'right' => TRUE); print_form($form); unset($form, $form_items, $form_devices); // Pagination $vars['pagination'] = TRUE; // Print syslog print_syslogs($vars);
function generate_eventlog_form_values($form_filter = FALSE, $column = NULL) { //global $cache; global $config; $form_items = array(); $filter = is_array($form_filter); // Use filer or not switch ($column) { case 'severities': case 'severity': // These complete same as syslog priorities return generate_form_values('syslog', $form_filter, 'priorities'); break; case 'entity_type': case 'type': case 'types': // Use filter as items if ($filter && in_array('device', $form_filter)) { // Device always first $form_filter = array_unique(array_merge(array('device'), $form_filter)); } foreach ($form_filter as $type) { $name = $type != '' ? $type : OBS_VAR_UNSET; $form_items[$type]['name'] = nicecase($name); if (!isset($config['entities'][$type]['icon'])) { $form_items[$type]['icon'] = $config['entity_default']['icon']; } else { $form_items[$type]['icon'] = $config['entities'][$type]['icon']; } } break; } return $form_items; }