Services » 'Basic', ); if (!$vars['view']) { $vars['view'] = 'basic'; } $status_options = array( 'all' => 'All', 'ok' => 'Ok', 'warning' => 'Warning', 'critical' => 'Critical', ); if (!$vars['state']) { $vars['state'] = 'all'; } // The menu option - on the left $sep = ''; foreach ($menu_options as $option => $text) { if (empty($vars['view'])) { $vars['view'] = $option; } echo $sep; if ($vars['view'] == $option) { echo ""; } echo generate_link($text, $vars, array( 'view' => $option )); if ($vars['view'] == $option) { echo ''; } $sep = ' | '; } unset($sep); // The status option - on the right echo '
'; $sep = ''; foreach ($status_options as $option => $text) { if (empty($vars['state'])) { $vars['state'] = $option; } echo $sep; if ($vars['state'] == $option) { echo ""; } echo generate_link($text, $vars, array( 'state' => $option )); if ($vars['state'] == $option) { echo ''; } $sep = ' | '; } unset($sep); echo '
'; echo '
'; echo '
'; echo '
'; $sql_param = array(); if (isset($vars['state'])) { if ($vars['state'] == 'ok') { $state = '0'; } elseif ($vars['state'] == 'critical') { $state = '2'; } elseif ($vars['state'] == 'warning') { $state = '1'; } } if (isset($state)) { $where .= " AND service_status= ? AND service_disabled='0' AND `service_ignore`='0'"; $sql_param[] = $state; } $host_par = array(); $perms_sql = null; if (!Auth::user()->hasGlobalRead()) { $device_ids = Permissions::devicesForUser()->toArray() ?: [0]; $perms_sql .= " AND `D`.`device_id` IN " .dbGenPlaceholders(count($device_ids)); $host_par = $device_ids; } $host_sql = 'SELECT `D`.`device_id`,`D`.`hostname`,`D`.`sysName` FROM devices AS D, services AS S WHERE D.device_id = S.device_id ' . $perms_sql . ' GROUP BY `D`.`hostname`, `D`.`device_id`, `D`.`sysName` ORDER BY D.hostname'; $shift = 1; foreach (dbFetchRows($host_sql, $host_par) as $device) { $device_id = $device['device_id']; $device_hostname = $device['hostname']; $device_sysName = $device['sysName']; $devlink = generate_device_link($device, null, array('tab' => 'services')); if ($shift == 1) { array_unshift($sql_param, $device_id); $shift = 0; } else { $sql_param[0] = $device_id; } $header = true; $footer = false; $service_iteration = 0; $services = dbFetchRows("SELECT * FROM `services` WHERE `device_id` = ? $where ORDER BY service_type", $sql_param); $services_count = count($services); foreach ($services as $service) { if ($service['service_status'] == '2') { $label = 'label-danger'; $title = 'CRITICAL'; } elseif ($service['service_status'] == '1') { $label = 'label-warning'; $title = 'WARNING'; } elseif ($service['service_status'] == '0') { $label = 'label-success'; $title = 'OK'; } else { $label = 'label-info'; $title = 'UNKNOWN'; } $service_iteration++; if ($service_iteration < 2 && $header) { echo '
'; echo '

' . $devlink . '

' . $device_sysName . '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } $header = false; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; if (Auth::user()->hasGlobalAdmin()) { echo ""; } echo ''; if ($service_iteration >= $services_count) { $footer = true; } if ($footer) { echo '
ServiceLast ChangedDescriptionMessage
' . nl2br(display($service['service_type'])) . '' . formatUptime(time() - $service['service_changed']) . '' . nl2br(display($service['service_desc'])) . '' . nl2br(display($service['service_message'])) . '
'; echo '
'; echo '
'; } } } unset($samehost); ?>