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/
development/
# ./configure output
config.log
autom4te.cache

View File

@ -18,10 +18,12 @@ class LayoutController extends ActionController
*/
public function menuAction()
{
$this->setAutorefreshInterval(15);
$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()
{
$module = $this->_getParam('module_name');
// TODO: This is more than dangerous, must be fixed!!
$file = $this->_getParam('file');
$basedir = Icinga::app()->getModuleManager()->getModule($module)->getBaseDir();
$filePath = $basedir . '/public/img/' . $file;
if (! file_exists($filePath)) {
$filePath = realpath($basedir . '/public/img/' . $file);
if (! $filePath || strpos($filePath, $basedir) !== 0) {
throw new ActionException(sprintf(
'%s does not exist',
$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()): ?>
<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>
<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; ?>
<?= new MenuRenderer(Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()); ?>
<?= new MenuRenderer(Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()); ?>
</div>

View File

@ -2,7 +2,7 @@
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
use Zend_View_Helper_FormElement;
use \Zend_View_Helper_FormElement;
/**
* 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_Controller_Router_Route_Abstract;
use Zend_Controller_Router_Route as Route;
use Zend_Controller_Router_Route_Regex as RegexRoute;
use Icinga\Application\ApplicationBootstrap;
use Icinga\Application\Config;
use Icinga\Application\Icinga;
@ -821,12 +822,15 @@ class Module
);
$router->addRoute(
$this->name . '_img',
new Route(
'img/' . $this->name . '/:file',
new RegexRoute(
'img/' . $this->name . '/(.+)',
array(
'controller' => 'static',
'action' => 'img',
'module_name' => $this->name
),
array(
1 => 'file'
)
)
);

View File

@ -67,7 +67,7 @@ class Tooltip
*/
public function __construct (
$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->defaultFormat = $format;

View File

@ -123,7 +123,7 @@ class Hook
*/
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) {
$base_class .= self::$classSuffix;

View File

@ -4,6 +4,7 @@
namespace Icinga\Web;
use Icinga\Web\Menu\MenuItemRenderer;
use RecursiveIterator;
use Zend_Config;
use Icinga\Application\Config;
@ -61,15 +62,32 @@ class Menu implements RecursiveIterator
*/
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
*
* @param int $id The id of 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;
if ($parent !== null) {
$this->parent = $parent;
}
$this->setProperties($config);
}
@ -83,6 +101,15 @@ class Menu implements RecursiveIterator
if ($props !== null) {
foreach ($props as $key => $value) {
$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)) {
$this->{$method}($value);
} else {
@ -234,6 +261,30 @@ class Menu implements RecursiveIterator
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
*
@ -330,6 +381,26 @@ class Menu implements RecursiveIterator
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
*
@ -351,7 +422,7 @@ class Menu implements RecursiveIterator
public function addSubMenu($id, Zend_Config $menuConfig = null)
{
if (false === ($pos = strpos($id, '.'))) {
$subMenu = new self($id, $menuConfig);
$subMenu = new self($id, $menuConfig, $this);
$this->subMenus[$id] = $subMenu;
} else {
list($parentId, $id) = explode('.', $id, 2);
@ -618,4 +689,12 @@ class Menu implements RecursiveIterator
{
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();
/**
* @var bool
*/
protected $useCustomRenderer = false;
/**
* Create a new MenuRenderer
*
@ -41,6 +46,15 @@ class MenuRenderer extends RecursiveIteratorIterator
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
*/
@ -91,6 +105,9 @@ class MenuRenderer extends RecursiveIteratorIterator
*/
public function renderChild(Menu $child)
{
if ($child->getRenderer() !== null && $this->useCustomRenderer) {
return $child->getRenderer()->render($child);
}
return sprintf(
'<a href="%s">%s%s</a>',
$child->getUrl() ?: '#',
@ -115,9 +132,9 @@ class MenuRenderer extends RecursiveIteratorIterator
if ($childIsActive || ($passedActiveChild && $this->getDepth() === 0)) {
$passedActiveChild &= $this->getDepth() !== 0;
$openTag = '<li class="active">';
$openTag = '<li class="active" id="' . $child->getUniqueId() . '">';
} else {
$openTag = '<li>';
$openTag = '<li id="' . $child->getUniqueId() . '">';
}
$content = $this->renderChild($child);
$closingTag = '</li>';

View File

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

View File

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

View File

@ -273,7 +273,7 @@ class HistoryColorGrid extends AbstractWidget {
$sun = DateTimeFactory::create('last Sunday');
$interval = new DateInterval('P' . $weekday . 'D');
$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())
->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(
array(
'label' => t('Ok'),
@ -199,7 +199,7 @@ class Monitoring_ChartController extends Controller
$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->alignTopLeft();
$this->view->chart->setAxisLabel('', t('Hosts'))

View File

@ -4,7 +4,6 @@
use Icinga\Module\Monitoring\Controller;
use Icinga\Module\Monitoring\Backend;
use Icinga\Module\Monitoring\DataView\DataView;
use Icinga\Web\Url;
use Icinga\Web\Hook;
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
$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(
'raw_timestamp' => 'Occurence'
'timestamp' => 'Occurence'
));
$this->applyFilters($query);
$this->view->history = $query->paginate();
@ -500,19 +518,19 @@ class Monitoring_ListController extends Controller
{
$this->addTitleTab('servicematrix');
$this->setAutorefreshInterval(15);
$dataview = $this->backend->select()->from('serviceStatus', array(
$query = $this->backend->select()->from('serviceStatus', array(
'host_name',
'service_description',
'service_state',
'service_output',
'service_handled'
));
$this->applyFilters($dataview);
$this->applyFilters($query);
$this->setupSortControl(array(
'host_name' => 'Hostname',
'service_description' => 'Service description'
));
$pivot = $dataview->pivot('service_description', 'host_name');
$pivot = $query->pivot('service_description', 'host_name');
$this->view->pivot = $pivot;
$this->view->horizontalPaginator = $pivot->paginateXAxis();
$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
*
* @param DataView $dataView
*
* @return DataView
*/
protected function applyRestrictions($query)
{

View File

@ -70,6 +70,7 @@ class Monitoring_ShowController extends Controller
if ($this->grapher) {
$this->view->grapherHtml = $this->grapher->getPreviewHtml($o);
}
$this->fetchHostStats();
}
/**
@ -85,6 +86,7 @@ class Monitoring_ShowController extends Controller
if ($this->grapher) {
$this->view->grapherHtml = $this->grapher->getPreviewHtml($o);
}
$this->fetchHostStats();
}
public function historyAction()
@ -94,6 +96,7 @@ class Monitoring_ShowController extends Controller
$this->view->object->fetchEventHistory();
$this->view->history = $this->view->object->eventhistory->paginate($this->params->get('limit', 50));
$this->handleFormatRequest($this->view->object->eventhistory);
$this->fetchHostStats();
}
public function servicesAction()
@ -106,6 +109,28 @@ class Monitoring_ShowController extends Controller
'view' => 'compact',
'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()

View File

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

View File

@ -85,7 +85,7 @@ $helper = $this->getHelper('CommandForm');
<br>
<?= $comment->expiration ? sprintf(
$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)
) : $this->translate('This comment does not expire.'); ?>
</td>
@ -111,4 +111,4 @@ $helper = $this->getHelper('CommandForm');
<?php endforeach ?>
</tbody>
</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' : '' ?>">
<!-- State -->
<td class="state" title="<?= $helper->getStateTitle($host, 'host') ?>">
<?php if (! $this->compact): ?>
<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) ?>
<?php if ($host->host_state > 0 && (int) $host->host_state_type === 0): ?>
<br />
<strong>Soft <?= $host->host_attempt ?></strong>
<?php endif ?>
<?php endif ?>
</td>
<!-- Host / Status / Output -->

View File

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

View File

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

View File

@ -1,11 +1,15 @@
<div class="controls">
<?php
use Icinga\Data\Filter\Filter;
?><div class="controls">
<?= $this->tabs ?>
<h1>History - Critical Events</h1>
</div>
<div class="content" data-base-target="_next">
<?php
$grid->setColor('#FC0707');
$grid->setColor('#f05060');
$data = array();
if (count($summary) === 0) {
@ -16,19 +20,20 @@ foreach ($summary as $entry) {
$value = $entry->cnt_critical;
$caption = $value . ' ' .
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(
'value' => $value,
'caption' => $caption,
'url' => $this->href(
'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)'
)
)
'url' => $this->href('monitoring/list/eventhistory?' . $filter->toQueryString())
);
}
$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
$contactHelper = $this->getHelper('ContactFlags');
?>
<div style="margin-top: 0.5em;">
<?php if ($contact): ?>
<table style="border-spacing: 0.25em; border-collapse: separate;">
<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 $contactHelper = $this->getHelper('ContactFlags') ?>
<div class="controls">
<h1><?= $this->translate('Contact details') ?></h1>
<div class="circular" style="margin-top: 1em; margin-left: 2em; width: 120px; height: 120px; float: left; background-image: url('<?=
$this->href('static/gravatar', array('email' => $contact->contact_email))
?>')"></div>
<?php if (count($commands)): ?>
<h4><?= $this->translate('Commands'); ?>:</h4>
<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; ?>
<?php if (! $contact): ?>
<?= $this->translate('No such contact') ?>: <?= $contactName ?>
</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>
<?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">
<tbody>
<?php foreach ($history as $event): ?>
@ -21,51 +31,61 @@
case 'notify':
$icon = '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;
case 'comment':
$icon = 'comment';
$title = $this->translate('Comment');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'comment_deleted':
$icon = 'remove';
$title = $this->translate('Comment deleted');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'ack':
$icon = 'acknowledgement';
$title = $this->translate('Acknowledge');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'ack_deleted':
$icon = 'remove';
$title = $this->translate('Ack removed');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'dt_comment':
$icon = 'in_downtime';
$title = $this->translate('In Downtime');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'dt_comment_deleted':
$icon = 'remove';
$title = $this->translate('Downtime removed');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'flapping':
$icon = 'flapping';
$title = $this->translate('Flapping');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'flapping_deleted':
$icon = 'remove';
$title = $this->translate('Flapping stopped');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'hard_state':
$icon = $isService ? 'service' : 'host';
$msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $event->output;
$msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $this->escape($event->output);
$stateClass = (
$isService
? strtolower($this->util()->getServiceStateName($event->state))
@ -75,7 +95,7 @@
break;
case 'soft_state':
$icon = 'softstate';
$msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $event->output;
$msg = '[ ' . $event->attempt . '/' . $event->max_attempts . ' ] ' . $this->escape($event->output);
$stateClass = (
$isService
? strtolower($this->util()->getServiceStateName($event->state))
@ -86,12 +106,12 @@
case 'dt_start':
$icon = 'downtime_start';
$title = $this->translate('Downtime Start');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
case 'dt_end':
$icon = 'downtime_end';
$title = $this->translate('Downtime End');
$msg = $event->output;
$msg = $this->escape($event->output);
break;
}
?>
@ -106,8 +126,8 @@
$output = $this->tickets ? preg_replace_callback(
$this->tickets->getPattern(),
array($this->tickets, 'createLink'),
$this->escape($msg)
) : $this->escape($msg);
$msg
) : $msg;
?>
<?php if ($isService): ?>

View File

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

View File

@ -1,7 +1,5 @@
<div class="controls">
<?= $this->render('show/components/header.phtml') ?>
<h1><?= $this->translate('All services configured on this host') ?></h1>
<?= $this->render('show/components/hostservicesummary.phtml') ?>
</div>
<div class="content">
<?= 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
*/
$section = $this->menuSection($this->translate('Problems'), array(
'icon' => 'img/icons/error.png',
'priority' => 20
'renderer' => 'ProblemMenuItemRenderer',
'icon' => 'img/icons/error.png',
'priority' => 20
));
$section->add($this->translate('Unhandled Hosts'), array(
'renderer' => 'UnhandledHostMenuItemRenderer',
'url' => 'monitoring/list/hosts?host_problem=1&host_handled=0',
'priority' => 40
));
$section->add($this->translate('Unhandled Services'), array(
'renderer' => 'UnhandledServiceMenuItemRenderer',
'url' => 'monitoring/list/services?service_problem=1&service_handled=0&sort=service_severity',
'priority' => 40
));

View File

@ -42,15 +42,15 @@ class NotificationhistoryQuery extends IdoQuery
{
switch ($this->ds->getDbType()) {
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;
case 'pgsql':
// 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;
case 'oracle':
// 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:
//
// RTRIM(XMLAGG(XMLELEMENT(e, column_name, ',').EXTRACT('//text()')),
@ -74,9 +74,13 @@ class NotificationhistoryQuery extends IdoQuery
array('cn' => $this->prefix . 'contactnotifications'),
'cn.notification_id = n.notification_id',
array()
)->joinLeft(
array('co' => $this->prefix . 'objects'),
'cn.contact_object_id = co.object_id',
array()
)->joinLeft(
array('c' => $this->prefix . 'contacts'),
'cn.contact_object_id = c.contact_object_id',
'co.object_id = c.contact_object_id',
array()
)->group('cn.notification_id');

View File

@ -6,6 +6,11 @@ namespace Icinga\Module\Monitoring\Backend\Ido\Query;
class StatehistoryQuery extends IdoQuery
{
protected $types = array(
'soft_state' => 0,
'hard_state' => 1,
);
protected $columnMap = array(
'statehistory' => array(
'raw_timestamp' => 'sh.state_time',
@ -33,6 +38,8 @@ class StatehistoryQuery extends IdoQuery
{
if ($col === 'UNIX_TIMESTAMP(sh.state_time)') {
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 {
return parent::whereToSql($col, $sign, $expression);
}

View File

@ -8,7 +8,15 @@ use Zend_Db_Select;
class StatusSummaryQuery extends IdoQuery
{
protected $subHosts;
protected $subServices;
protected $columnMap = array(
'services' => array(
'service_host_name' => 'so.name1',
'service_description' => 'so.name2',
),
'hoststatussummary' => array(
'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)',
@ -159,10 +167,24 @@ class StatusSummaryQuery extends IdoQuery
'object_type' => '(\'service\')'
));
$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->joinedVirtualTables = array(
'servicestatussummary' => true,
'hoststatussummary' => true
'services' => 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_notes_url',
'host_modified_host_attributes',
'host_problem'
'host_problem',
'process_perfdata' => 'host_process_performance_data',
))->where('host_name', $this->params->get('host'));
return $this->view->getQuery()->fetchRow();
}

View File

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

View File

@ -53,3 +53,80 @@ div.contacts div.contact > img {
div.contacts div.notification-periods {
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',
'translator_name' => 'FULL NAME',
'translator_mail' => 'EMAIL@ADDRESS',
'language' => $this->locale,
'language_team_name' => 'LANGUAGE',
'language_team_url' => 'LL@li.org',
'charset' => self::FILE_ENCODING
@ -298,6 +299,9 @@ class GettextTranslationHelper
$headerInfo['language_team_name'] = $languageInfo[1];
$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(
@ -321,6 +325,7 @@ class GettextTranslationHelper
'"PO-Revision-Date: ' . $headerInfo['po_revision_date'] . '\n"',
'"Last-Translator: ' . $headerInfo['translator_name'] . ' <'
. $headerInfo['translator_mail'] . '>\n"',
'"Language: ' . $headerInfo['language'] . '\n"',
'"Language-Team: ' . $headerInfo['language_team_name'] . ' <'
. $headerInfo['language_team_url'] . '>\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 {
margin-left: 0.5em;
margin-right: 0.5em;
}
#menu > ul > li {
@ -159,7 +158,7 @@
}
#menu li.hover > ul a {
width: 100%;
width: 95%;
display: block;
color: white;
}

View File

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

View File

@ -174,8 +174,82 @@ ul.tree li a.error:hover {
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 */
.svg-container-responsive {
padding: 1.5em;
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';
var activeMenuId;
var mouseX, mouseY;
Icinga.Events = function (icinga) {
@ -133,22 +135,37 @@
if (!icinga.utils.elementsOverlap(arrow, el)) {
return;
}
var title = $(this).find('.tipsy-inner').html();
var atMouse = document.elementFromPoint(mouseX, mouseY);
var nearestTip = $(atMouse)
.closest('[original-title="' + title + '"]')[0];
if (nearestTip) {
console.log ('migrating orphan...');
var tipsy = $.data(nearestTip, 'tipsy');
tipsy.$tip = $(this);
$.data(this, 'tipsy-pointee', nearestTip);
} else {
// doesn't match delete
console.log ('deleting orphan...');
$(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');
$('#menu .active').removeClass('active');
$li.addClass('active');
activeMenuId = $($li).attr('id');
if ($li.hasClass('hover')) {
$li.removeClass('hover');
}
@ -594,14 +612,22 @@
return false;
}
} else {
if (isMenuLink) {
activeMenuId = $(event.target).closest('li').attr('id');
}
$target = self.getLinkTargetFor($a);
}
// Load link URL
icinga.loader.loadUrl(href, $target);
// Menu links should remove all but the first layout column
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();
}
@ -687,6 +713,7 @@
$(document).off('mouseenter', 'li.dropdown', this.dropdownHover);
$(document).off('mouseleave', 'li.dropdown', this.dropdownLeave);
$(document).off('click', 'div.tristate .tristate-dummy', this.clickTriState);
$(document).off('mousemove');
},
destroy: function() {

View File

@ -673,8 +673,12 @@
}
var origFocus = document.activeElement;
if (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, form has focus');
if (
// 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;
}

View File

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

View File

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