Merge branch 'master' into bugfix/rebuild-form-builder-5525

This commit is contained in:
Johannes Meyer 2014-09-09 16:03:22 +02:00
commit 83772c6684
51 changed files with 863 additions and 640 deletions

2
.gitignore vendored
View File

@ -11,6 +11,8 @@
build/ build/
development/
# ./configure output # ./configure output
config.log config.log
autom4te.cache autom4te.cache

View File

@ -18,10 +18,12 @@ class LayoutController extends ActionController
*/ */
public function menuAction() public function menuAction()
{ {
$this->setAutorefreshInterval(15);
$this->_helper->layout()->disableLayout(); $this->_helper->layout()->disableLayout();
$this->view->menuRenderer = new MenuRenderer(
Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl() $url = Url::fromRequest();
); $menu = new MenuRenderer(Menu::load(), $url->getRelativeUrl());
$this->view->menuRenderer = $menu->useCustomRenderer();
} }
/** /**

View File

@ -59,13 +59,12 @@ class StaticController extends ActionController
public function imgAction() public function imgAction()
{ {
$module = $this->_getParam('module_name'); $module = $this->_getParam('module_name');
// TODO: This is more than dangerous, must be fixed!!
$file = $this->_getParam('file'); $file = $this->_getParam('file');
$basedir = Icinga::app()->getModuleManager()->getModule($module)->getBaseDir(); $basedir = Icinga::app()->getModuleManager()->getModule($module)->getBaseDir();
$filePath = $basedir . '/public/img/' . $file; $filePath = realpath($basedir . '/public/img/' . $file);
if (! file_exists($filePath)) {
if (! $filePath || strpos($filePath, $basedir) !== 0) {
throw new ActionException(sprintf( throw new ActionException(sprintf(
'%s does not exist', '%s does not exist',
$filePath $filePath

View File

@ -11,11 +11,15 @@ if (! $this->auth()->isAuthenticated()) {
} }
?> ?>
<div id="menu" data-base-target="_main"> <div
id="menu" data-last-update="<?= (time() - 14) ?>000" data-base-target="_main" class="container" data-icinga-url="<?=$this->href('layout/menu');?>"
data-icinga-refresh="15"
>
<? if (SearchDashboard::search('dummy')->getPane('search')->hasComponents()): ?> <? if (SearchDashboard::search('dummy')->getPane('search')->hasComponents()): ?>
<form action="<?= $this->href('search') ?>" method="get" role="search"> <form action="<?= $this->href('search') ?>" method="get" role="search">
<input type="text" name="q" class="search autofocus" placeholder="<?= $this->translate('Search...') ?>" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" /> <input type="text" name="q" class="search autofocus" placeholder="<?= $this->translate('Search...') ?>"
</form> autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
</form>
<? endif; ?> <? endif; ?>
<?= new MenuRenderer(Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()); ?> <?= new MenuRenderer(Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()); ?>
</div> </div>

View File

@ -2,7 +2,7 @@
// {{{ICINGA_LICENSE_HEADER}}} // {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}} // {{{ICINGA_LICENSE_HEADER}}}
use Zend_View_Helper_FormElement; use \Zend_View_Helper_FormElement;
/** /**
* Helper to generate a "datetime" element * Helper to generate a "datetime" element

View File

@ -1 +1,13 @@
<?= $menuRenderer; ?> <?php
use Icinga\Web\Widget\SearchDashboard;
?>
<? if (SearchDashboard::search('dummy')->getPane('search')->hasComponents()): ?>
<form action="<?= $this->href('search') ?>" method="get" role="search">
<input
type="text" name="q" class="search autofocus" placeholder="<?= $this->translate('Search...') ?>"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
/>
</form>
<? endif; ?>
<?= $menuRenderer; ?>

View File

@ -1,130 +0,0 @@
# Frontend components
Frontend components are JavaScript modules that can be required directly through the HTML markup of
your view, to provide additional functionality for the user. Although its best practice to
make all features available without JavaScript, these components can be used to provide a richer
and more comfortable user experience in case JavaScript is available.
There is a certain set of frontend components which come directly with the Icinga2-Web core application,
but it is also possible to define new components directly in Icinga2-Web modules.
## How do components work?
Components are defined in JavaScript files that provide a set of functionality that will be added to the
targeted HTML node. Icinga2-Web uses [RequireJS](http://requirejs.org) to load
all frontend components, so each frontend component is in fact
[defined exactly like a RequireJS-Module](http://requirejs.org/docs/api.html#define) .
The important difference to plain RequireJS is, that the loading and execution of these components is
done automatically through the HTML markup. The attribute *data-icinga-component* in a DIV
element will indicate that this element is a container for a frontend component and will trigger
the component loader to create a component instance for this HTML node. The component loader
keeps track of all available components and makes it possible to retrieve this instance when needed.
### Component names
A component name consists of two parts: the namespace and the name of the component itself. The component
is named exactly like its JavaScript file, while the namespace is the name of the Icinga2-Web module that contains
the component. Each Icinga2-Web module can contain its own components in the folder *public/js*.
<module>/<component>
NOTE: The namespace used for modules defined in the Icinga2-Web core application is "app". In opposition to
the modules the core application keeps its modules located in *public/js/icinga/components*
instead of *public/js*.
#### Example Names
The full name for the component *modules/monitoring/public/js/someComponent.js* in the module "monitoring" would be:
"monitoring/someComponent"
The full component name for the component *public/js/icinga/components/datetime.js* in the Icinga2-Web core application
would:
"app/datetime"
## Creating a component
As described in the chapters above, components are defined exactly like RequireJS modules, but
with the additional requirement that they must always return a class constructor. The component below will
search all date pickers, set the time format and create a JavaScript date picker when there is no native one
available.
/**
* Ensures that our date/time controls will work on every browser (natively or javascript based)
*/
define(['jquery', 'datetimepicker'], function($) {
"use strict";
var DateTimePicker = function(target) {
$(target).find('.datetime input')
.attr('data-format', 'yyyy-MM-dd hh:mm:ss');
$(target).find('.datetime')
.addClass('input-append')
.append('<span class="add-on">' +
'<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span>')
.datetimepicker();
};
return DateTimePicker;
});
## Loading a component
The following code will load the module *datetime*, which will ensure that there is always a datetime-picker
with right time-format available.
<div id="date-time-picker" data-icinga-component="app/datetime">
<div class="datetime">
<input data-format="dd/MM/yyyy hh:mm:ss" type="text"/>
</div>
</div>
### Component ids
When an ID is assigned to the HTML element, it will be used by the component loader to reference this
component. Otherwise an ID in the form "icinga-component-&lt;ID&gt;" will be created and the ID attribute in the
HTML Element will be updated accordingly.
### Component "target"
The div-element with the *data-icinga-component* will be used as the "target" for the loaded component,
which means that the component will perform its actions on this HTML node.
# Retrieving a component
Sometimes it can be necessary to retrieve the instances of the components itself, for example when they implement
additional functions that can be called. The component loader is available in the Icinga object and can be used
to retrieve component instances using their ID or their full component name.
## By component id
var component = Icinga.components.getById("component-id");
component.doSomething();
## By full component name
var components = Icinga.components.getByType("app/datetime");
// ... do something with every component of the type app/datetime
## All components
var components = Icinga.components.getComponents();
// ... do something with every component

View File

@ -8,6 +8,7 @@ use Exception;
use Zend_Config; use Zend_Config;
use Zend_Controller_Router_Route_Abstract; use Zend_Controller_Router_Route_Abstract;
use Zend_Controller_Router_Route as Route; use Zend_Controller_Router_Route as Route;
use Zend_Controller_Router_Route_Regex as RegexRoute;
use Icinga\Application\ApplicationBootstrap; use Icinga\Application\ApplicationBootstrap;
use Icinga\Application\Config; use Icinga\Application\Config;
use Icinga\Application\Icinga; use Icinga\Application\Icinga;
@ -821,12 +822,15 @@ class Module
); );
$router->addRoute( $router->addRoute(
$this->name . '_img', $this->name . '_img',
new Route( new RegexRoute(
'img/' . $this->name . '/:file', 'img/' . $this->name . '/(.+)',
array( array(
'controller' => 'static', 'controller' => 'static',
'action' => 'img', 'action' => 'img',
'module_name' => $this->name 'module_name' => $this->name
),
array(
1 => 'file'
) )
) )
); );

View File

@ -67,7 +67,7 @@ class Tooltip
*/ */
public function __construct ( public function __construct (
$data = array(), $data = array(),
$format = '<b>{title}</b></b><br> {value} of {sum} {label}' $format = '<b>{title}</b></b><br/> {value} of {sum} {label}'
) { ) {
$this->data = array_merge($this->data, $data); $this->data = array_merge($this->data, $data);
$this->defaultFormat = $format; $this->defaultFormat = $format;

View File

@ -123,7 +123,7 @@ class Hook
*/ */
private static function assertValidHook($instance, $name) private static function assertValidHook($instance, $name)
{ {
$base_class = self::$BASE_NS . ucfirst($name); $base_class = self::$BASE_NS . ucfirst($name) . 'Hook';
if (strpos($base_class, self::$classSuffix) === false) { if (strpos($base_class, self::$classSuffix) === false) {
$base_class .= self::$classSuffix; $base_class .= self::$classSuffix;

View File

@ -4,6 +4,7 @@
namespace Icinga\Web; namespace Icinga\Web;
use Icinga\Web\Menu\MenuItemRenderer;
use RecursiveIterator; use RecursiveIterator;
use Zend_Config; use Zend_Config;
use Icinga\Application\Config; use Icinga\Application\Config;
@ -61,15 +62,32 @@ class Menu implements RecursiveIterator
*/ */
protected $subMenus = array(); protected $subMenus = array();
/**
* A custom item renderer used instead of the default rendering logic
*
* @var MenuItemRenderer
*/
protected $itemRenderer = null;
/*
* Parent menu
*
* @var Menu
*/
protected $parent;
/** /**
* Create a new menu * Create a new menu
* *
* @param int $id The id of this menu * @param int $id The id of this menu
* @param Zend_Config $config The configuration for this menu * @param Zend_Config $config The configuration for this menu
*/ */
public function __construct($id, Zend_Config $config = null) public function __construct($id, Zend_Config $config = null, Menu $parent = null)
{ {
$this->id = $id; $this->id = $id;
if ($parent !== null) {
$this->parent = $parent;
}
$this->setProperties($config); $this->setProperties($config);
} }
@ -83,6 +101,15 @@ class Menu implements RecursiveIterator
if ($props !== null) { if ($props !== null) {
foreach ($props as $key => $value) { foreach ($props as $key => $value) {
$method = 'set' . implode('', array_map('ucfirst', explode('_', strtolower($key)))); $method = 'set' . implode('', array_map('ucfirst', explode('_', strtolower($key))));
if ($key === 'renderer') {
$class = '\Icinga\Web\Menu\\' . $value;
if (!class_exists($class)) {
throw new ConfigurationError(
sprintf('ItemRenderer with class "%s" does not exist', $class)
);
}
$value = new $class;
}
if (method_exists($this, $method)) { if (method_exists($this, $method)) {
$this->{$method}($value); $this->{$method}($value);
} else { } else {
@ -234,6 +261,30 @@ class Menu implements RecursiveIterator
return $this->id; return $this->id;
} }
/**
* Get our ID without invalid characters
*
* @return string the ID
*/
protected function getSafeHtmlId()
{
return preg_replace('/[^a-zA-Z0-9]/', '_', $this->getId());
}
/**
* Get a unique menu item id
*
* @return string the ID
*/
public function getUniqueId()
{
if ($this->parent === null) {
return 'menuitem-' . $this->getSafeHtmlId();
} else {
return $this->parent->getUniqueId() . '-' . $this->getSafeHtmlId();
}
}
/** /**
* Set the title of this menu * Set the title of this menu
* *
@ -330,6 +381,26 @@ class Menu implements RecursiveIterator
return $this->icon; return $this->icon;
} }
/**
* Get the class that renders the current menu item
*
* @return MenuItemRenderer
*/
public function getRenderer()
{
return $this->itemRenderer;
}
/**
* Set the class that renders the current menu item
*
* @param MenuItemRenderer $renderer
*/
public function setRenderer(MenuItemRenderer $renderer)
{
$this->itemRenderer = $renderer;
}
/** /**
* Return whether this menu has any sub menus * Return whether this menu has any sub menus
* *
@ -351,7 +422,7 @@ class Menu implements RecursiveIterator
public function addSubMenu($id, Zend_Config $menuConfig = null) public function addSubMenu($id, Zend_Config $menuConfig = null)
{ {
if (false === ($pos = strpos($id, '.'))) { if (false === ($pos = strpos($id, '.'))) {
$subMenu = new self($id, $menuConfig); $subMenu = new self($id, $menuConfig, $this);
$this->subMenus[$id] = $subMenu; $this->subMenus[$id] = $subMenu;
} else { } else {
list($parentId, $id) = explode('.', $id, 2); list($parentId, $id) = explode('.', $id, 2);
@ -618,4 +689,12 @@ class Menu implements RecursiveIterator
{ {
next($this->subMenus); next($this->subMenus);
} }
/**
* PHP 5.3 GC should not leak, but just to be on the safe side...
*/
public function __destruct()
{
$this->parent = null;
}
} }

View File

@ -0,0 +1,14 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Web\Menu;
use Icinga\Web\Menu;
/**
* Renders the html content of a single menu item
*/
interface MenuItemRenderer {
public function render(Menu $menu);
}

View File

@ -0,0 +1,39 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Web\Menu;
use Icinga\Module\Monitoring\Backend;
use Icinga\Web\Menu;
use Icinga\Web\Url;
class ProblemMenuItemRenderer implements MenuItemRenderer {
public function render(Menu $menu)
{
$statusSummary = Backend::createBackend()
->select()->from(
'statusSummary',
array(
'hosts_down_unhandled',
'services_critical_unhandled'
)
)->getQuery()->fetchRow();
$unhandled = $statusSummary->hosts_down_unhandled + $statusSummary->services_critical_unhandled;
$badge = '';
if ($unhandled) {
$badge = sprintf(
'<div class="badge-container"><span class="badge badge-critical">%s</span></div>',
$unhandled
);
}
return sprintf(
'<a href="%s">%s%s %s</a>',
$menu->getUrl() ?: '#',
$menu->getIcon() ? '<img src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '',
htmlspecialchars($menu->getTitle()),
$badge
);
}
}

View File

@ -0,0 +1,38 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Web\Menu;
use Icinga\Module\Monitoring\Backend;
use Icinga\Web\Menu;
use Icinga\Web\Url;
class UnhandledHostMenuItemRenderer implements MenuItemRenderer {
public function render(Menu $menu)
{
$statusSummary = Backend::createBackend()
->select()->from(
'statusSummary',
array(
'hosts_down_unhandled'
)
)->getQuery()->fetchRow();
$badge = '';
if ($statusSummary->hosts_down_unhandled) {
$badge = sprintf(
'<div title="%s" class="badge-container"><span class="badge badge-critical">%s</span></div>',
t(sprintf('%d unhandled host problems', $statusSummary->hosts_down_unhandled)),
$statusSummary->hosts_down_unhandled
);
}
return sprintf(
'<a href="%s">%s%s %s</a>',
$menu->getUrl() ?: '#',
$menu->getIcon() ? '<img src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '',
htmlspecialchars($menu->getTitle()),
$badge
);
}
}

View File

@ -0,0 +1,38 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Web\Menu;
use Icinga\Module\Monitoring\Backend;
use Icinga\Web\Menu;
use Icinga\Web\Url;
class UnhandledServiceMenuItemRenderer implements MenuItemRenderer {
public function render(Menu $menu)
{
$statusSummary = Backend::createBackend()
->select()->from(
'statusSummary',
array(
'services_critical_unhandled'
)
)->getQuery()->fetchRow();
$badge = '';
if ($statusSummary->services_critical_unhandled) {
$badge = sprintf(
'<div title="%s" class="badge-container"><span class="badge badge-critical">%s</span></div>',
t(sprintf('%d unhandled service problems', $statusSummary->services_critical_unhandled)),
$statusSummary->services_critical_unhandled
);
}
return sprintf(
'<a href="%s">%s%s %s</a>',
$menu->getUrl() ?: '#',
$menu->getIcon() ? '<img src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '',
htmlspecialchars($menu->getTitle()),
$badge
);
}
}

View File

@ -25,6 +25,11 @@ class MenuRenderer extends RecursiveIteratorIterator
*/ */
protected $tags = array(); protected $tags = array();
/**
* @var bool
*/
protected $useCustomRenderer = false;
/** /**
* Create a new MenuRenderer * Create a new MenuRenderer
* *
@ -41,6 +46,15 @@ class MenuRenderer extends RecursiveIteratorIterator
parent::__construct($menu, RecursiveIteratorIterator::CHILD_FIRST); parent::__construct($menu, RecursiveIteratorIterator::CHILD_FIRST);
} }
/**
* @param bool $value
*/
public function useCustomRenderer($value = true)
{
$this->useCustomRenderer = $value;
return $this;
}
/** /**
* Register the outer ul opening html-tag * Register the outer ul opening html-tag
*/ */
@ -91,6 +105,9 @@ class MenuRenderer extends RecursiveIteratorIterator
*/ */
public function renderChild(Menu $child) public function renderChild(Menu $child)
{ {
if ($child->getRenderer() !== null && $this->useCustomRenderer) {
return $child->getRenderer()->render($child);
}
return sprintf( return sprintf(
'<a href="%s">%s%s</a>', '<a href="%s">%s%s</a>',
$child->getUrl() ?: '#', $child->getUrl() ?: '#',
@ -115,9 +132,9 @@ class MenuRenderer extends RecursiveIteratorIterator
if ($childIsActive || ($passedActiveChild && $this->getDepth() === 0)) { if ($childIsActive || ($passedActiveChild && $this->getDepth() === 0)) {
$passedActiveChild &= $this->getDepth() !== 0; $passedActiveChild &= $this->getDepth() !== 0;
$openTag = '<li class="active">'; $openTag = '<li class="active" id="' . $child->getUniqueId() . '">';
} else { } else {
$openTag = '<li>'; $openTag = '<li id="' . $child->getUniqueId() . '">';
} }
$content = $this->renderChild($child); $content = $this->renderChild($child);
$closingTag = '</li>'; $closingTag = '</li>';

View File

@ -24,7 +24,6 @@ class StyleSheet
'css/icinga/monitoring-colors.less', 'css/icinga/monitoring-colors.less',
'css/icinga/selection-toolbar.less', 'css/icinga/selection-toolbar.less',
'css/icinga/login.less', 'css/icinga/login.less',
'css/icinga/charts.less',
'css/vendor/tipsy.css' 'css/vendor/tipsy.css'
); );

View File

@ -22,7 +22,7 @@ $this->addHelperFunction('url', function ($path = null, $params = null) {
$url = Url::fromPath($path); $url = Url::fromPath($path);
} }
if ($params !== null) { if ($params !== null) {
$url->setParams($params); $url->overwriteParams($params);
} }
return $url; return $url;

View File

@ -273,7 +273,7 @@ class HistoryColorGrid extends AbstractWidget {
$sun = DateTimeFactory::create('last Sunday'); $sun = DateTimeFactory::create('last Sunday');
$interval = new DateInterval('P' . $weekday . 'D'); $interval = new DateInterval('P' . $weekday . 'D');
$sun->add($interval); $sun->add($interval);
return $sun->format('D'); return substr($sun->format('D'), 0, 2);
} }
/** /**

View File

@ -1,324 +0,0 @@
<span style='color: #000'>1084 frames</span> <span style='color: #900'>64,000 KB</span> <span style='color: #090'>12,219.54 ms</span> <span style='color: #009' title='Quirksmode'><span style='color: #c00'>ON</span></span><br /><br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.0962</td><td bgcolor='#eeeeec' align='right'>49449768</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.0962</td><td bgcolor='#eeeeec' align='right'>49449768</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.0987</td><td bgcolor='#eeeeec' align='right'>49466560</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.0987</td><td bgcolor='#eeeeec' align='right'>49466560</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.0962</td><td bgcolor='#eeeeec' align='right'>49449768</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.0962</td><td bgcolor='#eeeeec' align='right'>49449768</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2135</td><td bgcolor='#eeeeec' align='right'>49818768</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2136</td><td bgcolor='#eeeeec' align='right'>49818768</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.2355</td><td bgcolor='#eeeeec' align='right'>49886736</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.2356</td><td bgcolor='#eeeeec' align='right'>49886736</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.2459</td><td bgcolor='#eeeeec' align='right'>49935336</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.2459</td><td bgcolor='#eeeeec' align='right'>49935336</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.2519</td><td bgcolor='#eeeeec' align='right'>49965624</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.2519</td><td bgcolor='#eeeeec' align='right'>49965624</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>22</td><td bgcolor='#eeeeec' align='center'>9.2575</td><td bgcolor='#eeeeec' align='right'>49989664</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>23</td><td bgcolor='#eeeeec' align='center'>9.2575</td><td bgcolor='#eeeeec' align='right'>49989664</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>24</td><td bgcolor='#eeeeec' align='center'>9.2593</td><td bgcolor='#eeeeec' align='right'>50005472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>25</td><td bgcolor='#eeeeec' align='center'>9.2594</td><td bgcolor='#eeeeec' align='right'>50005472</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>26</td><td bgcolor='#eeeeec' align='center'>9.2611</td><td bgcolor='#eeeeec' align='right'>50020048</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>27</td><td bgcolor='#eeeeec' align='center'>9.2611</td><td bgcolor='#eeeeec' align='right'>50020048</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.2519</td><td bgcolor='#eeeeec' align='right'>49965624</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.2519</td><td bgcolor='#eeeeec' align='right'>49965624</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>22</td><td bgcolor='#eeeeec' align='center'>9.2575</td><td bgcolor='#eeeeec' align='right'>49989664</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>23</td><td bgcolor='#eeeeec' align='center'>9.2575</td><td bgcolor='#eeeeec' align='right'>49989664</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>24</td><td bgcolor='#eeeeec' align='center'>9.2593</td><td bgcolor='#eeeeec' align='right'>50005472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>25</td><td bgcolor='#eeeeec' align='center'>9.2594</td><td bgcolor='#eeeeec' align='right'>50005472</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>26</td><td bgcolor='#eeeeec' align='center'>9.2722</td><td bgcolor='#eeeeec' align='right'>50061408</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>27</td><td bgcolor='#eeeeec' align='center'>9.2722</td><td bgcolor='#eeeeec' align='right'>50061408</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.2431</td><td bgcolor='#eeeeec' align='right'>49918440</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.2999</td><td bgcolor='#eeeeec' align='right'>50176560</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.2999</td><td bgcolor='#eeeeec' align='right'>50176560</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.3083</td><td bgcolor='#eeeeec' align='right'>50220200</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.3083</td><td bgcolor='#eeeeec' align='right'>50220200</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.3103</td><td bgcolor='#eeeeec' align='right'>50235768</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.3103</td><td bgcolor='#eeeeec' align='right'>50235768</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.3083</td><td bgcolor='#eeeeec' align='right'>50220200</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.3083</td><td bgcolor='#eeeeec' align='right'>50220200</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.3170</td><td bgcolor='#eeeeec' align='right'>50278592</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.3170</td><td bgcolor='#eeeeec' align='right'>50278592</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.3246</td><td bgcolor='#eeeeec' align='right'>50312056</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.3247</td><td bgcolor='#eeeeec' align='right'>50312056</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.3266</td><td bgcolor='#eeeeec' align='right'>50326968</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.3266</td><td bgcolor='#eeeeec' align='right'>50326968</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.3246</td><td bgcolor='#eeeeec' align='right'>50312056</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.3247</td><td bgcolor='#eeeeec' align='right'>50312056</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>20</td><td bgcolor='#eeeeec' align='center'>9.3367</td><td bgcolor='#eeeeec' align='right'>50378088</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>21</td><td bgcolor='#eeeeec' align='center'>9.3367</td><td bgcolor='#eeeeec' align='right'>50378088</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined offset: 1 in /vagrant/library/vendor/dompdf/include/table_frame_reflower.cls.php on line <i>396</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>634696</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Icinga\Application\Web->dispatch( )</td><td title='/vagrant/public/index.php' bgcolor='#eeeeec'>../index.php<b>:</b>17</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.6663</td><td bgcolor='#eeeeec' align='right'>7155080</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch( )</td><td title='/vagrant/library/Icinga/Application/Web.php' bgcolor='#eeeeec'>../Web.php<b>:</b>177</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.6718</td><td bgcolor='#eeeeec' align='right'>7339544</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Front.php' bgcolor='#eeeeec'>../Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.7544</td><td bgcolor='#eeeeec' align='right'>9789672</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch( )</td><td title='/usr/share/php/Zend/Controller/Dispatcher/Standard.php' bgcolor='#eeeeec'>../Standard.php<b>:</b>308</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.8547</td><td bgcolor='#eeeeec' align='right'>11070736</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->postDispatch( )</td><td title='/usr/share/php/Zend/Controller/Action.php' bgcolor='#eeeeec'>../Action.php<b>:</b>521</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.8550</td><td bgcolor='#eeeeec' align='right'>11071712</td><td bgcolor='#eeeeec'>Icinga\Web\Controller\ActionController->sendAsPdfAndDie( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>244</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.9930</td><td bgcolor='#eeeeec' align='right'>23228752</td><td bgcolor='#eeeeec'>Icinga\File\Pdf->renderPage( )</td><td title='/vagrant/library/Icinga/Web/Controller/ActionController.php' bgcolor='#eeeeec'>../ActionController.php<b>:</b>279</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>2.0668</td><td bgcolor='#eeeeec' align='right'>23495800</td><td bgcolor='#eeeeec'>DOMPDF->render( )</td><td title='/vagrant/library/Icinga/File/Pdf.php' bgcolor='#eeeeec'>../Pdf.php<b>:</b>62</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430472</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/dompdf.cls.php' bgcolor='#eeeeec'>../dompdf.cls.php<b>:</b>817</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>9.0902</td><td bgcolor='#eeeeec' align='right'>49430520</td><td bgcolor='#eeeeec'>Page_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432912</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/page_frame_reflower.cls.php' bgcolor='#eeeeec'>../page_frame_reflower.cls.php<b>:</b>138</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>9.0910</td><td bgcolor='#eeeeec' align='right'>49432960</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>9.2291</td><td bgcolor='#eeeeec' align='right'>49850600</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>17</td><td bgcolor='#eeeeec' align='center'>9.2338</td><td bgcolor='#eeeeec' align='right'>49873816</td><td bgcolor='#eeeeec'>Block_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>18</td><td bgcolor='#eeeeec' align='center'>9.3442</td><td bgcolor='#eeeeec' align='right'>50422280</td><td bgcolor='#eeeeec'>Frame_Decorator->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/block_frame_reflower.cls.php' bgcolor='#eeeeec'>../block_frame_reflower.cls.php<b>:</b>722</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>19</td><td bgcolor='#eeeeec' align='center'>9.3442</td><td bgcolor='#eeeeec' align='right'>50422280</td><td bgcolor='#eeeeec'>Table_Frame_Reflower->reflow( )</td><td title='/vagrant/library/vendor/dompdf/include/frame_decorator.cls.php' bgcolor='#eeeeec'>../frame_decorator.cls.php<b>:</b>556</td></tr>
</table></font>

View File

@ -147,7 +147,7 @@ class Monitoring_ChartController extends Controller
->setXAxis(new StaticAxis()) ->setXAxis(new StaticAxis())
->setAxisMin(null, 0); ->setAxisMin(null, 0);
$tooltip = t('<b>{title}:</b><br />{value} of {sum} services are {label}'); $tooltip = t('<b>{title}:</b><br>{value} of {sum} services are {label}');
$this->view->chart->drawBars( $this->view->chart->drawBars(
array( array(
'label' => t('Ok'), 'label' => t('Ok'),
@ -199,7 +199,7 @@ class Monitoring_ChartController extends Controller
$hostgroup->hosts_unreachable_unhandled $hostgroup->hosts_unreachable_unhandled
); );
} }
$tooltip = t('<b>{title}:</b><br /> {value} of {sum} hosts are {label}'); $tooltip = t('<b>{title}:</b><br> {value} of {sum} hosts are {label}');
$this->view->chart = new GridChart(); $this->view->chart = new GridChart();
$this->view->chart->alignTopLeft(); $this->view->chart->alignTopLeft();
$this->view->chart->setAxisLabel('', t('Hosts')) $this->view->chart->setAxisLabel('', t('Hosts'))

View File

@ -4,7 +4,6 @@
use Icinga\Module\Monitoring\Controller; use Icinga\Module\Monitoring\Controller;
use Icinga\Module\Monitoring\Backend; use Icinga\Module\Monitoring\Backend;
use Icinga\Module\Monitoring\DataView\DataView;
use Icinga\Web\Url; use Icinga\Web\Url;
use Icinga\Web\Hook; use Icinga\Web\Hook;
use Icinga\Web\Widget\Tabextension\DashboardAction; use Icinga\Web\Widget\Tabextension\DashboardAction;
@ -236,6 +235,25 @@ class Monitoring_ListController extends Controller
// TODO: Workaround, paginate should be able to fetch limit from new params // TODO: Workaround, paginate should be able to fetch limit from new params
$this->view->services = $query->paginate($this->params->get('limit')); $this->view->services = $query->paginate($this->params->get('limit'));
} }
$this->view->stats = $this->backend->select()->from('statusSummary', array(
'services_total',
'services_ok',
'services_problem',
'services_problem_handled',
'services_problem_unhandled',
'services_critical',
'services_critical_unhandled',
'services_critical_handled',
'services_warning',
'services_warning_unhandled',
'services_warning_handled',
'services_unknown',
'services_unknown_unhandled',
'services_unknown_handled',
'services_pending',
))->getQuery()->fetchRow();
} }
/** /**
@ -490,7 +508,7 @@ class Monitoring_ListController extends Controller
)); ));
$this->setupSortControl(array( $this->setupSortControl(array(
'raw_timestamp' => 'Occurence' 'timestamp' => 'Occurence'
)); ));
$this->applyFilters($query); $this->applyFilters($query);
$this->view->history = $query->paginate(); $this->view->history = $query->paginate();
@ -500,19 +518,19 @@ class Monitoring_ListController extends Controller
{ {
$this->addTitleTab('servicematrix'); $this->addTitleTab('servicematrix');
$this->setAutorefreshInterval(15); $this->setAutorefreshInterval(15);
$dataview = $this->backend->select()->from('serviceStatus', array( $query = $this->backend->select()->from('serviceStatus', array(
'host_name', 'host_name',
'service_description', 'service_description',
'service_state', 'service_state',
'service_output', 'service_output',
'service_handled' 'service_handled'
)); ));
$this->applyFilters($dataview); $this->applyFilters($query);
$this->setupSortControl(array( $this->setupSortControl(array(
'host_name' => 'Hostname', 'host_name' => 'Hostname',
'service_description' => 'Service description' 'service_description' => 'Service description'
)); ));
$pivot = $dataview->pivot('service_description', 'host_name'); $pivot = $query->pivot('service_description', 'host_name');
$this->view->pivot = $pivot; $this->view->pivot = $pivot;
$this->view->horizontalPaginator = $pivot->paginateXAxis(); $this->view->horizontalPaginator = $pivot->paginateXAxis();
$this->view->verticalPaginator = $pivot->paginateYAxis(); $this->view->verticalPaginator = $pivot->paginateYAxis();
@ -572,10 +590,6 @@ class Monitoring_ListController extends Controller
/** /**
* Apply current user's `monitoring/filter' restrictions on the given data view * Apply current user's `monitoring/filter' restrictions on the given data view
*
* @param DataView $dataView
*
* @return DataView
*/ */
protected function applyRestrictions($query) protected function applyRestrictions($query)
{ {

View File

@ -70,6 +70,7 @@ class Monitoring_ShowController extends Controller
if ($this->grapher) { if ($this->grapher) {
$this->view->grapherHtml = $this->grapher->getPreviewHtml($o); $this->view->grapherHtml = $this->grapher->getPreviewHtml($o);
} }
$this->fetchHostStats();
} }
/** /**
@ -85,6 +86,7 @@ class Monitoring_ShowController extends Controller
if ($this->grapher) { if ($this->grapher) {
$this->view->grapherHtml = $this->grapher->getPreviewHtml($o); $this->view->grapherHtml = $this->grapher->getPreviewHtml($o);
} }
$this->fetchHostStats();
} }
public function historyAction() public function historyAction()
@ -94,6 +96,7 @@ class Monitoring_ShowController extends Controller
$this->view->object->fetchEventHistory(); $this->view->object->fetchEventHistory();
$this->view->history = $this->view->object->eventhistory->paginate($this->params->get('limit', 50)); $this->view->history = $this->view->object->eventhistory->paginate($this->params->get('limit', 50));
$this->handleFormatRequest($this->view->object->eventhistory); $this->handleFormatRequest($this->view->object->eventhistory);
$this->fetchHostStats();
} }
public function servicesAction() public function servicesAction()
@ -106,6 +109,28 @@ class Monitoring_ShowController extends Controller
'view' => 'compact', 'view' => 'compact',
'sort' => 'service_description', 'sort' => 'service_description',
)); ));
$this->fetchHostStats();
}
protected function fetchHostStats()
{
$this->view->stats = $this->backend->select()->from('statusSummary', array(
'services_total',
'services_ok',
'services_problem',
'services_problem_handled',
'services_problem_unhandled',
'services_critical',
'services_critical_unhandled',
'services_critical_handled',
'services_warning',
'services_warning_unhandled',
'services_warning_handled',
'services_unknown',
'services_unknown_unhandled',
'services_unknown_handled',
'services_pending',
))->where('service_host_name', $this->params->get('host'))->getQuery()->fetchRow();
} }
public function contactAction() public function contactAction()

View File

@ -1493,7 +1493,7 @@ msgstr "UP"
#: /usr/local/src/bugfix.master/modules/monitoring/application/views/scripts/list/components/servicesummary.phtml:23 #: /usr/local/src/bugfix.master/modules/monitoring/application/views/scripts/list/components/servicesummary.phtml:23
#, php-format #, php-format
msgid "Unandled services with state %s" msgid "Unhandled services with state %s"
msgstr "Unbestätigte Services mit Status %s" msgstr "Unbestätigte Services mit Status %s"
#: /usr/local/src/bugfix.master/modules/monitoring/configuration.php:29 #: /usr/local/src/bugfix.master/modules/monitoring/configuration.php:29

View File

@ -85,7 +85,7 @@ $helper = $this->getHelper('CommandForm');
<br> <br>
<?= $comment->expiration ? sprintf( <?= $comment->expiration ? sprintf(
$this->translate('This comment expires on %s at %s.'), $this->translate('This comment expires on %s at %s.'),
date('d.m.y', $comment-expiration), date('d.m.y', $comment->expiration),
date('H:i', $comment->expiration) date('H:i', $comment->expiration)
) : $this->translate('This comment does not expire.'); ?> ) : $this->translate('This comment does not expire.'); ?>
</td> </td>
@ -111,4 +111,4 @@ $helper = $this->getHelper('CommandForm');
<?php endforeach ?> <?php endforeach ?>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -0,0 +1,80 @@
<?php
use Icinga\Web\Url;
$selfUrl = 'monitoring/list/services';
$currentUrl = Url::fromRequest()->getRelativeUrl();
?><h3 class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : '' ?>>
<?= $this->qlink(sprintf($this->translate('%s services:'), $this->stats->services_total), $selfUrl) ?>
<span class="state ok<?= $currentUrl === Url::fromPath($selfUrl, array('service_state' => 0))->getRelativeUrl() ? ' active' : '' ?>"><?= $this->qlink(
$this->stats->services_ok,
$selfUrl,
array('service_state' => 0),
array('title' => sprintf($this->translate('Services with state %s'), strtoupper($this->translate('ok'))))
) ?></span>
<?php
foreach (array(2 => 'critical', 3 => 'unknown', 1 => 'warning') as $stateId => $state) {
$pre = 'services_' . $state;
if ($this->stats->$pre) {
$handled = $pre . '_handled';
$unhandled = $pre . '_unhandled';
$paramsHandled = array('service_state' => $stateId, 'service_handled' => 1);
$paramsUnhandled = array('service_state' => $stateId, 'service_handled' => 0);
if ($this->stats->$unhandled) {
$compareUrl = Url::fromPath($selfUrl, $paramsUnhandled)->getRelativeUrl();
} else {
$compareUrl = Url::fromPath($selfUrl, $paramsHandled)->getRelativeUrl();
}
if ($compareUrl === $currentUrl) {
$active = ' active';
} else {
$active = '';
}
echo '<span class="state ' . $state . $active . ($this->stats->$unhandled ? '' : ' handled') . '">';
if ($this->stats->$unhandled) {
echo $this->qlink(
$this->stats->$unhandled,
$selfUrl,
$paramsUnhandled,
array('title' => sprintf($this->translate('Unhandled services with state %s'), strtoupper($this->translate($state))))
);
}
if ($this->stats->$handled) {
if (Url::fromPath($selfUrl, $paramsHandled)->getRelativeUrl() === $currentUrl) {
$active = ' active';
} else {
$active = '';
}
if ($this->stats->$unhandled) {
echo '<span class="state handled ' . $state . $active . '">';
}
echo $this->qlink(
$this->stats->$handled,
$selfUrl,
$paramsHandled,
array('title' => sprintf($this->translate('Handled services with state %s'), strtoupper($this->translate($state))))
);
if ($this->stats->$unhandled) {
echo "</span>\n";
}
}
echo "</span>\n";
}
}
?>
<?php if ($this->stats->services_pending): ?>
<span class="state pending<?= $currentUrl === Url::fromPath($selfUrl, array('service_state' => 99))->getRelativeUrl() ? ' active' : '' ?>"><?= $this->qlink(
$this->stats->services_pending,
$selfUrl,
array('service_state' => 99),
array('title' => sprintf($this->translate('Services with state %s'), strtoupper($this->translate('pending'))))
) ?></span>
<?php endif ?>
</h3>

View File

@ -81,14 +81,14 @@ if ($hosts->count() === 0) {
<tr class="state <?= $hostStateName ?><?= $host->host_handled ? ' handled' : '' ?>"> <tr class="state <?= $hostStateName ?><?= $host->host_handled ? ' handled' : '' ?>">
<!-- State --> <!-- State -->
<td class="state" title="<?= $helper->getStateTitle($host, 'host') ?>"> <td class="state" title="<?= $helper->getStateTitle($host, 'host') ?>">
<?php if (! $this->compact): ?>
<strong><?= ucfirst($helper->monitoringState($host, 'host')) ?></strong><br /> <strong><?= ucfirst($helper->monitoringState($host, 'host')) ?></strong><br />
<?php endif ?> <?php if ((int) $host->host_state !== 99): ?>
<?= $this->prefixedTimeSince($host->host_last_state_change, true) ?> <?= $this->prefixedTimeSince($host->host_last_state_change, true) ?>
<?php if ($host->host_state > 0 && (int) $host->host_state_type === 0): ?> <?php if ($host->host_state > 0 && (int) $host->host_state_type === 0): ?>
<br /> <br />
<strong>Soft <?= $host->host_attempt ?></strong> <strong>Soft <?= $host->host_attempt ?></strong>
<?php endif ?> <?php endif ?>
<?php endif ?>
</td> </td>
<!-- Host / Status / Output --> <!-- Host / Status / Output -->

View File

@ -1,15 +1,13 @@
<?php if (!$this->compact): ?> <?php if (!$this->compact): ?>
<div class="controls"> <div class="controls">
<?= $this->tabs ?> <?= $this->tabs ?>
<div class="dontprint"> <div class="dontprint" style="margin: 1em;">
<?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?> <?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?>
<?= $this->selectionToolbar('single') ?> </div>
</div> <?= $this->widget('limiter') ?>
<?= $this->widget('limiter') ?> <?= $this->paginationControl($notifications, null, null, array('preserve' => $this->preserve)) ?>
<?php if ($notifications->count() >= 100): ?><br /><?php endif ?> </div>
<?= $this->paginationControl($notifications, null, null, array('preserve' => $this->preserve)) ?>
</div>
<?php endif ?> <?php endif ?>
<div class="content"> <div class="content">
@ -47,7 +45,7 @@ foreach ($notifications as $notification):
?> ?>
<tr class="state <?= $stateName ?>"> <tr class="state <?= $stateName ?>">
<td class="state"><?= $this->timeSince($notification->notification_start_time) ?></td> <td class="state"><?= $this->timeSince($notification->notification_start_time) ?></td>
<td> <td style="font-size: 0.8em">
<?php if ($isService): ?> <?php if ($isService): ?>
<a href="<?= $href ?>"><?= $notification->service ?></a> on <?= $notification->host ?> <a href="<?= $href ?>"><?= $notification->service ?></a> on <?= $notification->host ?>
<?php else: ?> <?php else: ?>
@ -56,12 +54,14 @@ foreach ($notifications as $notification):
<br /> <br />
<?= $this->escape(substr(strip_tags($notification->notification_output), 0, 10000)); ?> <?= $this->escape(substr(strip_tags($notification->notification_output), 0, 10000)); ?>
<br /> <br />
<?php if (!$this->contact): ?>
<small> <small>
Sent to <a href="<?= $this->href( Sent to <a href="<?= $this->href(
'monitoring/show/contact', 'monitoring/show/contact',
array('contact' => $notification->notification_contact) array('contact' => $notification->notification_contact)
) ?>"><?= $this->escape($notification->notification_contact) ?></a> ) ?>"><?= $this->escape($notification->notification_contact) ?></a>
</small> </small>
<?php endif ?>
</td> </td>
</tr> </tr>
<?php endforeach ?> <?php endforeach ?>

View File

@ -1,10 +1,13 @@
<?php <?php
$helper = $this->getHelper('MonitoringState'); $helper = $this->getHelper('MonitoringState');
$selfUrl = 'monitoring/list/services';
if (!$this->compact): ?> if (!$this->compact): ?>
<div class="controls"> <div class="controls">
<?= $this->tabs ?> <?= $this->tabs ?>
<div style="margin: 1em;" class="dontprint"> <div style="margin: 1em;" class="dontprint">
<?= $this->render('list/components/servicesummary.phtml') ?>
<?= $this->translate('Sort by') ?> <?= $this->sortControl ?> <?= $this->translate('Sort by') ?> <?= $this->sortControl ?>
<?php if (! $this->filterEditor): ?> <?php if (! $this->filterEditor): ?>
<?= $this->filterPreview ?> <?= $this->filterPreview ?>
@ -21,6 +24,9 @@ if (!$this->compact): ?>
<div class="content"> <div class="content">
<?= $this->filterEditor ?> <?= $this->filterEditor ?>
<?php else: ?>
<div class="content">
<?php endif ?> <?php endif ?>
<table data-base-target="_next" <table data-base-target="_next"
class="action multiselect <?php if ($this->compact): ?> compact<?php endif ?>" style="table-layout: auto;" class="action multiselect <?php if ($this->compact): ?> compact<?php endif ?>" style="table-layout: auto;"
@ -113,6 +119,4 @@ foreach ($services as $service):
<?php endforeach ?> <?php endforeach ?>
</tbody> </tbody>
</table> </table>
<?php if (!$this->compact): ?>
</div> </div>
<?php endif ?>

View File

@ -1,11 +1,15 @@
<div class="controls"> <?php
use Icinga\Data\Filter\Filter;
?><div class="controls">
<?= $this->tabs ?> <?= $this->tabs ?>
<h1>History - Critical Events</h1> <h1>History - Critical Events</h1>
</div> </div>
<div class="content" data-base-target="_next"> <div class="content" data-base-target="_next">
<?php <?php
$grid->setColor('#FC0707'); $grid->setColor('#f05060');
$data = array(); $data = array();
if (count($summary) === 0) { if (count($summary) === 0) {
@ -16,19 +20,20 @@ foreach ($summary as $entry) {
$value = $entry->cnt_critical; $value = $entry->cnt_critical;
$caption = $value . ' ' . $caption = $value . ' ' .
t('critical events on ') . $this->dateFormat()->formatDate(strtotime($day)); t('critical events on ') . $this->dateFormat()->formatDate(strtotime($day));
$filter = Filter::matchAll(
Filter::expression('timestamp', '<', strtotime($day . ' 23:59:59')),
Filter::expression('timestamp', '>', strtotime($day . ' 00:00:00')),
Filter::expression('object_type', '=', 'service'),
Filter::expression('state', '=', '2'),
Filter::matchAny(
Filter::expression('type', '=', 'hard_state'),
Filter::expression('type', '=', 'hard_state')
)
);
$data[$day] = array( $data[$day] = array(
'value' => $value, 'value' => $value,
'caption' => $caption, 'caption' => $caption,
'url' => $this->href( 'url' => $this->href('monitoring/list/eventhistory?' . $filter->toQueryString())
'monitoring/list/eventhistory',
array(
'timestamp<' => strtotime($day . ' 23:59:59'),
'timestamp>' => strtotime($day . ' 00:00:00'),
'object_type' => 'service',
'state' => '2',
'type' => '(hard_state|soft_state)'
)
)
); );
} }
$grid->setData($data); $grid->setData($data);

View File

@ -0,0 +1,83 @@
<?php
use Icinga\Web\Url;
$selfUrl = Url::fromPath('monitoring/show/services', array('host' => $this->object->host_name));
$currentUrl = Url::fromRequest()->without('limit')->getRelativeUrl();
?>
<h3 class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : '' ?>>
<?= $this->qlink(sprintf($this->translate('%s service configured:'), $this->stats->services_total), $selfUrl) ?>
<?php if ($this->stats->services_ok > 0): ?>
<span class="state ok<?= $currentUrl === $selfUrl->with('service_state', 0)->getRelativeUrl() ? ' active' : '' ?>"><?= $this->qlink(
$this->stats->services_ok,
$selfUrl,
array('service_state' => 0),
array('title' => sprintf($this->translate('Services with state %s'), strtoupper($this->translate('ok'))))
) ?></span>
<?php endif ?>
<?php
foreach (array(2 => 'critical', 3 => 'unknown', 1 => 'warning') as $stateId => $state) {
$pre = 'services_' . $state;
if ($this->stats->$pre) {
$handled = $pre . '_handled';
$unhandled = $pre . '_unhandled';
$paramsHandled = array('service_state' => $stateId, 'service_handled' => 1);
$paramsUnhandled = array('service_state' => $stateId, 'service_handled' => 0);
if ($this->stats->$unhandled) {
$compareUrl = $selfUrl->with($paramsUnhandled)->getRelativeUrl();
} else {
$compareUrl = $selfUrl->with($paramsHandled)->getRelativeUrl();
}
if ($compareUrl === $currentUrl) {
$active = ' active';
} else {
$active = '';
}
echo '<span class="state ' . $state . $active . ($this->stats->$unhandled ? '' : ' handled') . '">';
if ($this->stats->$unhandled) {
echo $this->qlink(
$this->stats->$unhandled,
$selfUrl,
$paramsUnhandled,
array('title' => sprintf($this->translate('Unhandled services with state %s'), strtoupper($this->translate($state))))
);
}
if ($this->stats->$handled) {
if ($selfUrl->with($paramsHandled)->getRelativeUrl() === $currentUrl) {
$active = ' active';
} else {
$active = '';
}
if ($this->stats->$unhandled) {
echo '<span class="state handled ' . $state . $active . '">';
}
echo $this->qlink(
$this->stats->$handled,
$selfUrl,
$paramsHandled,
array('title' => sprintf($this->translate('Handled services with state %s'), strtoupper($this->translate($state))))
);
if ($this->stats->$unhandled) {
echo "</span>\n";
}
}
echo "</span>\n";
}
}
?>
<?php if ($this->stats->services_pending): ?>
<span class="state pending<?= $currentUrl === $selfUrl->with('service_state', 99)->getRelativeUrl() ? ' active' : '' ?>"><?= $this->qlink(
$this->stats->services_pending,
$selfUrl,
array('service_state' => 99),
array('title' => sprintf($this->translate('Services with state %s'), strtoupper($this->translate('pending'))))
) ?></span>
<?php endif ?>
</h3>

View File

@ -1,69 +1,59 @@
<?php <?php $contactHelper = $this->getHelper('ContactFlags') ?>
$contactHelper = $this->getHelper('ContactFlags'); <div class="controls">
?> <h1><?= $this->translate('Contact details') ?></h1>
<div style="margin-top: 0.5em;"> <div class="circular" style="margin-top: 1em; margin-left: 2em; width: 120px; height: 120px; float: left; background-image: url('<?=
<?php if ($contact): ?> $this->href('static/gravatar', array('email' => $contact->contact_email))
<table style="border-spacing: 0.25em; border-collapse: separate;"> ?>')"></div>
<thead>
<tr>
<th colspan="2" style="text-align: left">
<?= $this->escape($contact->contact_name) ?><span style="font-weight: normal;"> (<?=
$this->escape($contact->contact_alias)
?>)</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<td><?= t('Email') ?></td>
<td><?php printf(
'<a href="mailto:%1$s">%1$s</a>',
$this->escape($contact->contact_email)
); ?></td>
</tr>
<?php if ($contact->contact_pager): ?>
<tr>
<td><?= t('Pager') ?></td>
<td><?= $this->escape($contact->contact_pager) ?></td>
</tr>
<?php endif; ?>
<tr>
<td><?= t('Flags (service)') ?></td>
<td><?= $this->escape($contactHelper->contactFlags($contact, 'service')) ?></td>
</tr>
<tr>
<td><?= t('Flags (host)') ?></td>
<td><?= $this->escape($contactHelper->contactFlags($contact, 'host')) ?></td>
</tr>
<tr>
<td><?= t('Service notification period') ?></td>
<td><?= $this->escape($contact->contact_notify_service_timeperiod) ?></td>
</tr>
<tr>
<td><?= t('Host notification period') ?></td>
<td><?= $this->escape($contact->contact_notify_host_timeperiod) ?></td>
</tr>
</tbody>
</table>
<?php if (count($commands)): ?> <?php if (! $contact): ?>
<h4><?= $this->translate('Commands'); ?>:</h4> <?= $this->translate('No such contact') ?>: <?= $contactName ?>
<ul>
<?php foreach ($commands as $command): ?>
<li><?= $command->command_name; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<h4><?= $this->translate('Notifications'); ?>:</h4>
<?php if (count($notifications)): ?>
<?= $this->render('list/notifications.phtml') ?>
<?php else: ?>
<p><?= $this->translate('No notifications for this contact'); ?></p>
<?php endif; ?>
<?php else: ?>
<?= $this->translate('No such contact'); ?>: <?= $contactName; ?>
<?php endif; ?>
</div> </div>
<?php return; endif ?>
<table class="avp" style="width: 70%">
<tbody>
<tr>
<th style="width: 20%"></th>
<td><strong><?= $this->escape($contact->contact_alias) ?></strong> (<?= $contact->contact_name ?>)</td>
</tr>
<?php if ($contact->contact_email): ?>
<tr>
<th><?= t('Email') ?></th>
<td><?= sprintf('<a href="mailto:%1$s">%1$s</a>', $this->escape($contact->contact_email)) ?></td>
</tr>
<?php endif ?>
<?php if ($contact->contact_pager): ?>
<tr>
<th><?= t('Pager') ?></th>
<td><?= $this->escape($contact->contact_pager) ?></td>
</tr>
<?php endif ?>
<tr>
<th><?= t('Hosts') ?></th>
<td><?= $this->escape($contactHelper->contactFlags($contact, 'host')) ?><br />
<?= $this->escape($contact->contact_notify_host_timeperiod) ?></td>
</tr>
<tr>
<th><?= t('Services') ?></th>
<td><?= $this->escape($contactHelper->contactFlags($contact, 'service')) ?><br />
<?= $this->escape($contact->contact_notify_service_timeperiod) ?></td>
</tr>
</tbody>
</table>
<?php /* WTF?? */ ?>
<?php if (count($commands)): ?>
<h1><?= $this->translate('Commands') ?>:</h1>
<ul>
<?php foreach ($commands as $command): ?>
<li><?= $command->command_name ?></li>
<?php endforeach ?>
</ul>
<?php endif ?>
<h1><?= $this->translate('Notifications sent to this contact') ?></h1>
</div>
<?php if (count($notifications)): ?>
<?= $this->render('list/notifications.phtml') ?>
<?php else: ?>
<div class="content"><?= $this->translate('No notifications have been sent for this contact') ?></div>
<?php endif ?>

View File

@ -11,6 +11,16 @@
</div> </div>
<?php return; endif ?> <?php return; endif ?>
<?php
function contactsLink($match, $self) {
$links = array();
foreach (preg_split('/,\s/', $match[1]) as $contact) {
$links[] = $self->qlink($contact, 'monitoring/show/contact', array('contact' => $contact));
}
return '[' . implode(', ', $links) . ']';
}
?>
<table data-base-target="_next" class="action objecthistory"> <table data-base-target="_next" class="action objecthistory">
<tbody> <tbody>
<?php foreach ($history as $event): ?> <?php foreach ($history as $event): ?>
@ -21,51 +31,61 @@
case 'notify': case 'notify':
$icon = 'notification'; $icon = 'notification';
$title = $this->translate('Notification'); $title = $this->translate('Notification');
$msg = $event->output; $stateClass = (
$isService
? strtolower($this->util()->getServiceStateName($event->state))
: strtolower($this->util()->getHostStateName($event->state))
);
$msg = preg_replace_callback(
'/^\[([^\]]+)\]/',
function($match) { return contactsLink($match, $this); },
$this->escape($event->output)
);
break; break;
case 'comment': case 'comment':
$icon = 'comment'; $icon = 'comment';
$title = $this->translate('Comment'); $title = $this->translate('Comment');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'comment_deleted': case 'comment_deleted':
$icon = 'remove'; $icon = 'remove';
$title = $this->translate('Comment deleted'); $title = $this->translate('Comment deleted');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'ack': case 'ack':
$icon = 'acknowledgement'; $icon = 'acknowledgement';
$title = $this->translate('Acknowledge'); $title = $this->translate('Acknowledge');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'ack_deleted': case 'ack_deleted':
$icon = 'remove'; $icon = 'remove';
$title = $this->translate('Ack removed'); $title = $this->translate('Ack removed');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'dt_comment': case 'dt_comment':
$icon = 'in_downtime'; $icon = 'in_downtime';
$title = $this->translate('In Downtime'); $title = $this->translate('In Downtime');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'dt_comment_deleted': case 'dt_comment_deleted':
$icon = 'remove'; $icon = 'remove';
$title = $this->translate('Downtime removed'); $title = $this->translate('Downtime removed');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'flapping': case 'flapping':
$icon = 'flapping'; $icon = 'flapping';
$title = $this->translate('Flapping'); $title = $this->translate('Flapping');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'flapping_deleted': case 'flapping_deleted':
$icon = 'remove'; $icon = 'remove';
$title = $this->translate('Flapping stopped'); $title = $this->translate('Flapping stopped');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'hard_state': case 'hard_state':
$icon = $isService ? 'service' : 'host'; $icon = $isService ? 'service' : 'host';
$msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $event->output; $msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $this->escape($event->output);
$stateClass = ( $stateClass = (
$isService $isService
? strtolower($this->util()->getServiceStateName($event->state)) ? strtolower($this->util()->getServiceStateName($event->state))
@ -75,7 +95,7 @@
break; break;
case 'soft_state': case 'soft_state':
$icon = 'softstate'; $icon = 'softstate';
$msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $event->output; $msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $this->escape($event->output);
$stateClass = ( $stateClass = (
$isService $isService
? strtolower($this->util()->getServiceStateName($event->state)) ? strtolower($this->util()->getServiceStateName($event->state))
@ -86,12 +106,12 @@
case 'dt_start': case 'dt_start':
$icon = 'downtime_start'; $icon = 'downtime_start';
$title = $this->translate('Downtime Start'); $title = $this->translate('Downtime Start');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
case 'dt_end': case 'dt_end':
$icon = 'downtime_end'; $icon = 'downtime_end';
$title = $this->translate('Downtime End'); $title = $this->translate('Downtime End');
$msg = $event->output; $msg = $this->escape($event->output);
break; break;
} }
?> ?>
@ -106,8 +126,8 @@
$output = $this->tickets ? preg_replace_callback( $output = $this->tickets ? preg_replace_callback(
$this->tickets->getPattern(), $this->tickets->getPattern(),
array($this->tickets, 'createLink'), array($this->tickets, 'createLink'),
$this->escape($msg) $msg
) : $this->escape($msg); ) : $msg;
?> ?>
<?php if ($isService): ?> <?php if ($isService): ?>

View File

@ -1,7 +1,7 @@
<?php if ($object->host_name !== false): ?> <?php if ($object->host_name !== false): ?>
<div class="controls"> <div class="controls">
<?= $this->render('show/components/header.phtml') ?> <?= $this->render('show/components/header.phtml') ?>
<h1><?= $this->translate("This host's current state") ?></h1> <?= $this->render('show/components/hostservicesummary.phtml') ?>
</div> </div>
<div class="content" data-base-target="_next"> <div class="content" data-base-target="_next">
<?= $this->render('show/components/output.phtml') ?> <?= $this->render('show/components/output.phtml') ?>

View File

@ -1,7 +1,5 @@
<div class="controls"> <div class="controls">
<?= $this->render('show/components/header.phtml') ?> <?= $this->render('show/components/header.phtml') ?>
<h1><?= $this->translate('All services configured on this host') ?></h1> <?= $this->render('show/components/hostservicesummary.phtml') ?>
</div> </div>
<div class="content">
<?= preg_replace('~<table data-base-target="_next"~', '<table data-base-target="_self"', $services) /* TODO: find an elegant solution for this */ ?> <?= preg_replace('~<table data-base-target="_next"~', '<table data-base-target="_self"', $services) /* TODO: find an elegant solution for this */ ?>
</div>

View File

@ -31,14 +31,17 @@ $this->provideSearchUrl($this->translate('Servicegroups'), 'monitoring/list/serv
* Problems Section * Problems Section
*/ */
$section = $this->menuSection($this->translate('Problems'), array( $section = $this->menuSection($this->translate('Problems'), array(
'icon' => 'img/icons/error.png', 'renderer' => 'ProblemMenuItemRenderer',
'priority' => 20 'icon' => 'img/icons/error.png',
'priority' => 20
)); ));
$section->add($this->translate('Unhandled Hosts'), array( $section->add($this->translate('Unhandled Hosts'), array(
'renderer' => 'UnhandledHostMenuItemRenderer',
'url' => 'monitoring/list/hosts?host_problem=1&host_handled=0', 'url' => 'monitoring/list/hosts?host_problem=1&host_handled=0',
'priority' => 40 'priority' => 40
)); ));
$section->add($this->translate('Unhandled Services'), array( $section->add($this->translate('Unhandled Services'), array(
'renderer' => 'UnhandledServiceMenuItemRenderer',
'url' => 'monitoring/list/services?service_problem=1&service_handled=0&sort=service_severity', 'url' => 'monitoring/list/services?service_problem=1&service_handled=0&sort=service_severity',
'priority' => 40 'priority' => 40
)); ));

View File

@ -42,15 +42,15 @@ class NotificationhistoryQuery extends IdoQuery
{ {
switch ($this->ds->getDbType()) { switch ($this->ds->getDbType()) {
case 'mysql': case 'mysql':
$concattedContacts = "GROUP_CONCAT(c.alias ORDER BY c.alias SEPARATOR ', ')"; $concattedContacts = "GROUP_CONCAT(co.name1 ORDER BY co.name1 SEPARATOR ', ') COLLATE latin1_general_ci";
break; break;
case 'pgsql': case 'pgsql':
// TODO: Find a way to order the contact alias list: // TODO: Find a way to order the contact alias list:
$concattedContacts = "ARRAY_TO_STRING(ARRAY_AGG(c.alias), ', ')"; $concattedContacts = "ARRAY_TO_STRING(ARRAY_AGG(co.name1), ', ')";
break; break;
case 'oracle': case 'oracle':
// TODO: This is only valid for Oracle >= 11g Release 2 // TODO: This is only valid for Oracle >= 11g Release 2
$concattedContacts = "LISTAGG(c.alias, ', ') WITHIN GROUP (ORDER BY c.alias)"; $concattedContacts = "LISTAGG(co.name1, ', ') WITHIN GROUP (ORDER BY co.name1)";
// Alternatives: // Alternatives:
// //
// RTRIM(XMLAGG(XMLELEMENT(e, column_name, ',').EXTRACT('//text()')), // RTRIM(XMLAGG(XMLELEMENT(e, column_name, ',').EXTRACT('//text()')),
@ -74,9 +74,13 @@ class NotificationhistoryQuery extends IdoQuery
array('cn' => $this->prefix . 'contactnotifications'), array('cn' => $this->prefix . 'contactnotifications'),
'cn.notification_id = n.notification_id', 'cn.notification_id = n.notification_id',
array() array()
)->joinLeft(
array('co' => $this->prefix . 'objects'),
'cn.contact_object_id = co.object_id',
array()
)->joinLeft( )->joinLeft(
array('c' => $this->prefix . 'contacts'), array('c' => $this->prefix . 'contacts'),
'cn.contact_object_id = c.contact_object_id', 'co.object_id = c.contact_object_id',
array() array()
)->group('cn.notification_id'); )->group('cn.notification_id');

View File

@ -6,6 +6,11 @@ namespace Icinga\Module\Monitoring\Backend\Ido\Query;
class StatehistoryQuery extends IdoQuery class StatehistoryQuery extends IdoQuery
{ {
protected $types = array(
'soft_state' => 0,
'hard_state' => 1,
);
protected $columnMap = array( protected $columnMap = array(
'statehistory' => array( 'statehistory' => array(
'raw_timestamp' => 'sh.state_time', 'raw_timestamp' => 'sh.state_time',
@ -33,6 +38,8 @@ class StatehistoryQuery extends IdoQuery
{ {
if ($col === 'UNIX_TIMESTAMP(sh.state_time)') { if ($col === 'UNIX_TIMESTAMP(sh.state_time)') {
return 'sh.state_time ' . $sign . ' ' . $this->timestampForSql($this->valueToTimestamp($expression)); return 'sh.state_time ' . $sign . ' ' . $this->timestampForSql($this->valueToTimestamp($expression));
} elseif ($col === $this->columnMap['statehistory']['type']) {
return 'sh.state_type ' . $sign . ' ' . $this->types[$expression];
} else { } else {
return parent::whereToSql($col, $sign, $expression); return parent::whereToSql($col, $sign, $expression);
} }

View File

@ -8,7 +8,15 @@ use Zend_Db_Select;
class StatusSummaryQuery extends IdoQuery class StatusSummaryQuery extends IdoQuery
{ {
protected $subHosts;
protected $subServices;
protected $columnMap = array( protected $columnMap = array(
'services' => array(
'service_host_name' => 'so.name1',
'service_description' => 'so.name2',
),
'hoststatussummary' => array( 'hoststatussummary' => array(
'hosts_up' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 THEN 1 ELSE 0 END)', 'hosts_up' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 THEN 1 ELSE 0 END)',
'hosts_up_not_checked' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 AND is_active_checked = 0 AND is_passive_checked = 0 THEN 1 ELSE 0 END)', 'hosts_up_not_checked' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 AND is_active_checked = 0 AND is_passive_checked = 0 THEN 1 ELSE 0 END)',
@ -159,10 +167,24 @@ class StatusSummaryQuery extends IdoQuery
'object_type' => '(\'service\')' 'object_type' => '(\'service\')'
)); ));
$union = $this->db->select()->union(array($hosts, $services), Zend_Db_Select::SQL_UNION_ALL); $union = $this->db->select()->union(array($hosts, $services), Zend_Db_Select::SQL_UNION_ALL);
$this->subHosts = $hosts;
$this->subServices = $services;
$this->select->from(array('statussummary' => $union), array()); $this->select->from(array('statussummary' => $union), array());
$this->joinedVirtualTables = array( $this->joinedVirtualTables = array(
'servicestatussummary' => true, 'services' => true,
'hoststatussummary' => true 'servicestatussummary' => true,
'hoststatussummary' => true
); );
} }
public function whereToSql($col, $sign, $expression)
{
if ($col === 'so.name1') {
$this->subServices->where('so.name1 ' . $sign . ' ?', $expression);
return '';
return 'sh.state_time ' . $sign . ' ' . $this->timestampForSql($this->valueToTimestamp($expression));
} else {
return parent::whereToSql($col, $sign, $expression);
}
}
} }

View File

@ -69,7 +69,8 @@ class Host extends MonitoredObject
'host_action_url', 'host_action_url',
'host_notes_url', 'host_notes_url',
'host_modified_host_attributes', 'host_modified_host_attributes',
'host_problem' 'host_problem',
'process_perfdata' => 'host_process_performance_data',
))->where('host_name', $this->params->get('host')); ))->where('host_name', $this->params->get('host'));
return $this->view->getQuery()->fetchRow(); return $this->view->getQuery()->fetchRow();
} }

View File

@ -114,6 +114,7 @@ class Service extends MonitoredObject
'service_flap_detection_enabled', 'service_flap_detection_enabled',
'service_flap_detection_enabled_changed', 'service_flap_detection_enabled_changed',
'service_modified_service_attributes', 'service_modified_service_attributes',
'process_perfdata' => 'service_process_performance_data',
))->where('host_name', $this->params->get('host')) ))->where('host_name', $this->params->get('host'))
->where('service_description', $this->params->get('service')); ->where('service_description', $this->params->get('service'));

View File

@ -53,3 +53,80 @@ div.contacts div.contact > img {
div.contacts div.notification-periods { div.contacts div.notification-periods {
margin-top: 0.5em; margin-top: 0.5em;
} }
h3.tinystatesummary {
line-height: 2em;
font-size: 1em;
font-weight: bold;
padding-left: 1em;
background-color: #555;
color: white;
border: none;
border-radius: 0.2em;
-moz-border-radius: 0.2em;
-webkit-border-radius: 0.2em;
}
h3.tinystatesummary a {
color: inherit;
text-decoration: none;
padding: 1px 3px;
}
h3.tinystatesummary a:hover {
text-decoration: underline;
}
/* State badges */
span.state {
font-size: 0.8em;
color: white;
font-weight: bold;
padding: 1px 2px;
margin-right: 5px;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border: 2px solid transparent;
}
span.state.active {
border: 2px solid white;
}
span.state span.state {
font-size: 1em;
margin: 0 -3px 0 5px;
}
span.state.ok {
background: @colorOk;
}
span.state.critical {
background: @colorCritical;
}
span.state.handled.critical {
background: @colorCriticalHandled;
}
span.state.warning {
background: @colorWarning;
}
span.state.handled.warning {
background: @colorWarningHandled;
}
span.state.unknown {
background: @colorUnknown;
}
span.state.handled.unknown {
background: @colorUnknownHandled;
}
span.state.pending {
background: @colorPending;
}

View File

@ -271,6 +271,7 @@ class GettextTranslationHelper
'po_revision_date' => 'YEAR-MO-DA HO:MI+ZONE', 'po_revision_date' => 'YEAR-MO-DA HO:MI+ZONE',
'translator_name' => 'FULL NAME', 'translator_name' => 'FULL NAME',
'translator_mail' => 'EMAIL@ADDRESS', 'translator_mail' => 'EMAIL@ADDRESS',
'language' => $this->locale,
'language_team_name' => 'LANGUAGE', 'language_team_name' => 'LANGUAGE',
'language_team_url' => 'LL@li.org', 'language_team_url' => 'LL@li.org',
'charset' => self::FILE_ENCODING 'charset' => self::FILE_ENCODING
@ -298,6 +299,9 @@ class GettextTranslationHelper
$headerInfo['language_team_name'] = $languageInfo[1]; $headerInfo['language_team_name'] = $languageInfo[1];
$headerInfo['language_team_url'] = $languageInfo[2]; $headerInfo['language_team_url'] = $languageInfo[2];
} }
if (preg_match('@Language: ([a-z]{2}_[A-Z]{2})@', $content, $languageInfo)) {
$headerInfo['language'] = $languageInfo[1];
}
} }
file_put_contents( file_put_contents(
@ -321,6 +325,7 @@ class GettextTranslationHelper
'"PO-Revision-Date: ' . $headerInfo['po_revision_date'] . '\n"', '"PO-Revision-Date: ' . $headerInfo['po_revision_date'] . '\n"',
'"Last-Translator: ' . $headerInfo['translator_name'] . ' <' '"Last-Translator: ' . $headerInfo['translator_name'] . ' <'
. $headerInfo['translator_mail'] . '>\n"', . $headerInfo['translator_mail'] . '>\n"',
'"Language: ' . $headerInfo['language'] . '\n"',
'"Language-Team: ' . $headerInfo['language_team_name'] . ' <' '"Language-Team: ' . $headerInfo['language_team_name'] . ' <'
. $headerInfo['language_team_url'] . '>\n"', . $headerInfo['language_team_url'] . '>\n"',
'"MIME-Version: 1.0\n"', '"MIME-Version: 1.0\n"',

View File

@ -1,11 +0,0 @@
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
/* Add hover effects to chart data */
.chart-data:hover {
opacity: 0.85;
}
.pie-data:hover {
opacity: 0.6;
}

View File

@ -26,7 +26,6 @@
#menu li { #menu li {
margin-left: 0.5em; margin-left: 0.5em;
margin-right: 0.5em;
} }
#menu > ul > li { #menu > ul > li {
@ -159,7 +158,7 @@
} }
#menu li.hover > ul a { #menu li.hover > ul a {
width: 100%; width: 95%;
display: block; display: block;
color: white; color: white;
} }

View File

@ -5,6 +5,7 @@ ul.pagination {
font-size: 0.68em; font-size: 0.68em;
padding: 0; padding: 0;
display: inline; display: inline;
white-space: nowrap;
-webkit-touch-callout: none; -webkit-touch-callout: none;
-webkit-user-select: none; -webkit-user-select: none;

View File

@ -174,8 +174,82 @@ ul.tree li a.error:hover {
color: @colorCritical; color: @colorCritical;
} }
/* Add hover effect to chart data */
.chart-data:hover {
opacity: 0.85;
}
.pie-data:hover {
opacity: 0.6;
}
/* charts should grow as much as possible but never beyond the current viewport's size */ /* charts should grow as much as possible but never beyond the current viewport's size */
.svg-container-responsive { .svg-container-responsive {
padding: 1.5em; padding: 1.5em;
height: 80vh; height: 80vh;
} }
.badge-container {
font-size: 1em;
display: inline-block;
float: right;
margin-right: 0.6em;
}
li li .badge-container {
/*
fix margin for smaller font-size of list elements
1 = 0,8em / 0.8em
*/
margin-right: 0.75em;
}
#menu > ul > li.active > a > .badge-container {
display: none;
}
#layout.hoveredmenu .hover > a > .badge-container {
margin-right: 14.15em;
}
.badge {
position: relative;
top: -0.1em;
display: inline-block;
min-width: 1em;
padding: 3px 7px;
font-size: 0.8em;
font-weight: 700;
line-height: 1.1em;
color: white;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: 1em;
background-color: @colorInvalid;
}
li li .badge {
font-size: 0.975em;
}
.badge-critical {
background-color: @colorCritical;
}
.badge-warning {
background-color: @colorWarning;
}
.badge-ok {
background-color: @colorOk;
}
.badge-pending {
background-color: @colorPending;
}
.badge-pending {
background-color: @colorUnknown;
}

View File

@ -10,6 +10,8 @@
'use strict'; 'use strict';
var activeMenuId;
var mouseX, mouseY; var mouseX, mouseY;
Icinga.Events = function (icinga) { Icinga.Events = function (icinga) {
@ -133,22 +135,37 @@
if (!icinga.utils.elementsOverlap(arrow, el)) { if (!icinga.utils.elementsOverlap(arrow, el)) {
return; return;
} }
var title = $(this).find('.tipsy-inner').html(); var title = $(this).find('.tipsy-inner').html();
var atMouse = document.elementFromPoint(mouseX, mouseY); var atMouse = document.elementFromPoint(mouseX, mouseY);
var nearestTip = $(atMouse) var nearestTip = $(atMouse)
.closest('[original-title="' + title + '"]')[0]; .closest('[original-title="' + title + '"]')[0];
if (nearestTip) { if (nearestTip) {
console.log ('migrating orphan...');
var tipsy = $.data(nearestTip, 'tipsy'); var tipsy = $.data(nearestTip, 'tipsy');
tipsy.$tip = $(this); tipsy.$tip = $(this);
$.data(this, 'tipsy-pointee', nearestTip); $.data(this, 'tipsy-pointee', nearestTip);
} else { } else {
// doesn't match delete // doesn't match delete
console.log ('deleting orphan...');
$(this).remove(); $(this).remove();
} }
}); });
// restore menu state
if (activeMenuId) {
$('li.active', el).removeClass('active');
var $selectedMenu = $('#' + activeMenuId, el);
var $outerMenu = $selectedMenu.parent().closest('li');
if ($outerMenu.size()) {
$selectedMenu = $outerMenu;
}
$selectedMenu.addClass('active');
} else {
// store menu state
var $menus = $('[role="navigation"] li.active', el);
if ($menus.size()) {
activeMenuId = $menus[0].id;
}
}
}, },
/** /**
@ -569,6 +586,7 @@
$li = $a.closest('li'); $li = $a.closest('li');
$('#menu .active').removeClass('active'); $('#menu .active').removeClass('active');
$li.addClass('active'); $li.addClass('active');
activeMenuId = $($li).attr('id');
if ($li.hasClass('hover')) { if ($li.hasClass('hover')) {
$li.removeClass('hover'); $li.removeClass('hover');
} }
@ -594,14 +612,22 @@
return false; return false;
} }
} else { } else {
if (isMenuLink) {
activeMenuId = $(event.target).closest('li').attr('id');
}
$target = self.getLinkTargetFor($a); $target = self.getLinkTargetFor($a);
} }
// Load link URL // Load link URL
icinga.loader.loadUrl(href, $target); icinga.loader.loadUrl(href, $target);
// Menu links should remove all but the first layout column
if (isMenuLink) { if (isMenuLink) {
// update target url of the menu container to the clicked link
var menuDataUrl = icinga.utils.parseUrl($('#menu').data('icinga-url'));
menuDataUrl = icinga.utils.addUrlParams(menuDataUrl.path, { url: href });
$('#menu').data('icinga-url', menuDataUrl);
// Menu links should remove all but the first layout column
icinga.ui.layout1col(); icinga.ui.layout1col();
} }
@ -687,6 +713,7 @@
$(document).off('mouseenter', 'li.dropdown', this.dropdownHover); $(document).off('mouseenter', 'li.dropdown', this.dropdownHover);
$(document).off('mouseleave', 'li.dropdown', this.dropdownLeave); $(document).off('mouseleave', 'li.dropdown', this.dropdownLeave);
$(document).off('click', 'div.tristate .tristate-dummy', this.clickTriState); $(document).off('click', 'div.tristate .tristate-dummy', this.clickTriState);
$(document).off('mousemove');
}, },
destroy: function() { destroy: function() {

View File

@ -673,8 +673,12 @@
} }
var origFocus = document.activeElement; var origFocus = document.activeElement;
if (typeof containerId !== 'undefined' && autorefresh && origFocus && $(origFocus).closest('form').length && $container.has($(origFocus)) && $(origFocus).closest('#' + containerId).length && ! $(origFocus).hasClass('autosubmit')) { if (
this.icinga.logger.debug('Not changing content, form has focus'); // Do not reload menu when search field has content
(containerId === 'menu' && $(origFocus).length && $(origFocus).val().length)
// TODO: remove once #7146 is solved
|| (containerId !== 'menu' && typeof containerId !== 'undefined' && autorefresh && origFocus && $(origFocus).closest('form').length && $container.has($(origFocus)) && $(origFocus).closest('#' + containerId).length && ! $(origFocus).hasClass('autosubmit'))) {
this.icinga.logger.debug('Not changing content for ', containerId, ' form has focus');
return; return;
} }

View File

@ -10,9 +10,6 @@
'use strict'; 'use strict';
// The currently hovered tooltip
var tooltip = null;
// Stores the icinga-data-url of the last focused table. // Stores the icinga-data-url of the last focused table.
var focusedTableDataUrl = null; var focusedTableDataUrl = null;

View File

@ -217,9 +217,9 @@
return false; return false;
} }
var at = aoff.top; var at = aoff.top;
var ah = a.offsetHeight; var ah = a.offsetHeight || (a.getBBox && a.getBBox().height);
var al = aoff.left; var al = aoff.left;
var aw = a.offsetWidth; var aw = a.offsetWidth || (a.getBBox && a.getBBox().width);
// b bounds // b bounds
var boff = $(b).offset(); var boff = $(b).offset();
@ -227,9 +227,9 @@
return false; return false;
} }
var bt = boff.top; var bt = boff.top;
var bh = b.offsetHeight; var bh = b.offsetHeight || (b.getBBox && b.getBBox().height);
var bl = boff.left; var bl = boff.left;
var bw = b.offsetWidth; var bw = b.offsetWidth || (b.getBBox && b.getBBox().width);
return !(at > (bt + bh) || bt > (at + ah)) && !(bl > (al + aw) || al > (bl + bw)); return !(at > (bt + bh) || bt > (at + ah)) && !(bl > (al + aw) || al > (bl + bw));
}, },