diff options
Diffstat (limited to 'modules/monitoring/application/views/scripts/list/services.phtml')
-rw-r--r-- | modules/monitoring/application/views/scripts/list/services.phtml | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/modules/monitoring/application/views/scripts/list/services.phtml b/modules/monitoring/application/views/scripts/list/services.phtml new file mode 100644 index 0000000..b2088e9 --- /dev/null +++ b/modules/monitoring/application/views/scripts/list/services.phtml @@ -0,0 +1,161 @@ +<?php +use Icinga\Date\DateFormatter; +use Icinga\Module\Monitoring\Object\Host; +use Icinga\Module\Monitoring\Object\Service; + +if (! $this->compact): ?> +<div class="controls"> + <?= $this->tabs ?> + <?= $this->paginator ?> + <div class="sort-controls-container"> + <?= $this->limiter ?> + <?= $this->sortBox ?> + </div> + <?= $this->filterEditor ?> +</div> +<?php endif ?> +<div class="content"> +<?php if (! $services->hasResult()): ?> + <p><?= $this->translate('No services found matching the filter.') ?></p> +</div> +<?php return; endif ?> + <table data-base-target="_next" + class="table-row-selectable state-table multiselect<?php if ($this->compact): ?> compact<?php endif ?>" + data-icinga-multiselect-url="<?= $this->href('monitoring/services/show') ?>" + data-icinga-multiselect-controllers="<?= $this->href('monitoring/services') ?>" + data-icinga-multiselect-data="service,host"> + <thead class="print-only"> + <tr> + <th><?= $this->translate('State') ?></th> + <th><?= $this->translate('Service') ?></th> + <?php foreach($this->addColumns as $col): ?> + <th><?= $this->escape($col) ?></th> + <?php endforeach ?> + </tr> + </thead> + <tbody> + <?php foreach ($services->peekAhead($this->compact) as $service): + $serviceLink = $this->href( + 'monitoring/service/show', + array( + 'host' => $service->host_name, + 'service' => $service->service_description + ) + ); + $hostLink = $this->href( + 'monitoring/host/show', + array( + 'host' => $service->host_name, + ) + ); + $serviceStateName = Service::getStateText($service->service_state); + $serviceCheckOverdue = $service->service_next_update < time(); ?> + <tr<?= $serviceCheckOverdue ? ' class="state-outdated"' : '' ?>> + <td class="state-col state-<?= $serviceStateName ?><?= $service->service_handled ? ' handled' : '' ?>"> + <div class="state-label"> + <?php if ($serviceCheckOverdue): ?> + <?= $this->icon('clock', sprintf($this->translate('Overdue %s'), DateFormatter::timeSince($service->service_next_update))) ?> + <?php endif ?> + <?= Service::getStateText($service->service_state, true) ?> + </div> + <?php if ((int) $service->service_state !== 99): ?> + <div class="state-meta"> + <?= $this->timeSince($service->service_last_state_change, $this->compact) ?> + <?php if ((int) $service->service_state > 0 && (int) $service->service_state_type === 0): ?> + <div><?= $this->translate('Soft', 'Soft state') ?> <?= $service->service_attempt ?></div> + <?php endif ?> + </div> + <?php endif ?> + </td> + + <td> + <div class="state-header"> + <span class="service-on"> + <?= $this->iconImage()->service($service) ?> + <?php + if ($this->showHost) { + echo sprintf( + $this->translate('%s on %s', 'service on host'), + $this->qlink( + $service->service_display_name, + $serviceLink, + null, + array( + 'title' => sprintf( + $this->translate('Show detailed information for service %s on host %s'), + $service->service_display_name, + $service->host_display_name + ), + 'class' => 'rowaction' + ) + ), + $this->qlink( + $service->host_display_name + . ($service->host_state != 0 ? ' (' . Host::getStateText($service->host_state, true) . ')' : ''), + $hostLink, + null, + [ + 'title' => sprintf( + $this->translate('Show detailed information for host %s'), + $service->host_display_name + ) + ] + ) + ); + } else { + echo $this->qlink( + $service->service_display_name, + $serviceLink, + null, + array( + 'title' => sprintf( + $this->translate('Show detailed information for service %s on host %s'), + $service->service_display_name, + $service->host_display_name + ), + 'class' => 'rowaction' + ) + ); + } + ?> + </span> + <span class="state-icons"><?= $this->serviceFlags($service) ?></span> + </div> + <div class="overview-plugin-output-container"> + <div class="overview-performance-data"> + <?= $this->perfdata($service->service_perfdata, true, 5) ?> + </div> + <p class="overview-plugin-output"><?= $this->pluginOutput($this->ellipsis($service->service_output, 10000), true, $service->service_check_command) ?></p> + </div> + </td> + <?php foreach($this->addColumns as $col): ?> + <?php if ($service->$col && preg_match('~^_(host|service)_([a-zA-Z0-9_]+)$~', $col, $m)): ?> + <td><?= $this->escape(\Icinga\Module\Monitoring\Object\MonitoredObject::protectCustomVars([$m[2] => $service->$col])[$m[2]]) ?></td> + <?php else: ?> + <td><?= $this->escape($service->$col) ?></td> + <?php endif ?> + <?php endforeach ?> + </tr> + <?php endforeach ?> + </tbody> + </table> +<?php if ($services->hasMore()): ?> +<div class="dont-print action-links"> + <?= $this->qlink( + $this->translate('Show More'), + $this->url()->without(array('showCompact', 'limit')), + null, + array( + 'class' => 'action-link', + 'data-base-target' => '_next' + ) + ) ?> +</div> +<?php endif ?> +</div> +<?php if (! $this->compact): ?> +<div class="monitoring-statusbar dont-print"> + <?= $this->render('list/components/servicesummary.phtml') ?> + <?= $this->render('list/components/selectioninfo.phtml') ?> +</div> +<?php endif ?> |