Merge branch 'feature/refine-ui-for-rc1-9361'
This commit is contained in:
commit
8296e2f4c8
|
@ -27,6 +27,7 @@ $iframeClass = $isIframe ? ' iframe' : '';
|
|||
<meta content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
|
||||
<meta name="google" value="notranslate">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta http-equiv="cleartype" content="on">
|
||||
<title><?= $this->title ? $this->escape($this->title) : 'Icinga Web' ?></title>
|
||||
<!-- TODO: viewport and scale settings make no sense for us, fix this -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<a href="<?= $this->href('/config/createresource'); ?>">
|
||||
<?= $this->icon('plus'); ?> <?= $this->translate('Create A New Resource'); ?>
|
||||
</a>
|
||||
<table class="action" id="resource-edit-table">
|
||||
<table class="action alternating" id="resource-edit-table">
|
||||
<thead>
|
||||
<th><?= $this->translate('Resource'); ?></th>
|
||||
<th style="width: 5em"><?= $this->translate('Remove'); ?></th>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<form id="<?= $form->getId(); ?>" name="<?= $form->getName(); ?>" enctype="<?= $form->getEncType(); ?>" method="<?= $form->getMethod(); ?>" action="<?= $form->getAction(); ?>">
|
||||
<table class="action">
|
||||
<table class="action alternating">
|
||||
<thead>
|
||||
<th>Backend</th>
|
||||
<th style="width: 5em"><?= $this->translate('Remove'); ?></th>
|
||||
|
|
|
@ -27,7 +27,7 @@ if (! isset($backend)) {
|
|||
}
|
||||
|
||||
if (count($groups) > 0): ?>
|
||||
<table data-base-target="_next" class="action group-list">
|
||||
<table data-base-target="_next" class="action group-list alternating">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="group-name"><?= $this->translate('Group'); ?></th>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<?php /** @var \Icinga\Application\Config $roles */ if ($roles->isEmpty()): ?>
|
||||
<?= $this->translate('No roles found.') ?>
|
||||
<?php else: ?>
|
||||
<table class="avp action" data-base-target="_next">
|
||||
<table class="avp action alternating" data-base-target="_next">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= $this->translate('Name') ?></th>
|
||||
|
|
|
@ -27,7 +27,7 @@ if (! isset($backend)) {
|
|||
}
|
||||
|
||||
if (count($users) > 0): ?>
|
||||
<table data-base-target="_next" class="action user-list">
|
||||
<table data-base-target="_next" class="action user-list alternating">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="user-name"><?= $this->translate('Username'); ?></th>
|
||||
|
|
|
@ -5,7 +5,7 @@ use Icinga\Data\Reducible;
|
|||
use Icinga\Data\Selectable;
|
||||
|
||||
$editLink = null;
|
||||
if ($this->hasPermission('config/authentication/users/edit') && $backend instanceof Updatable) {
|
||||
if (true || $this->hasPermission('config/authentication/users/edit') && $backend instanceof Updatable) {
|
||||
$editLink = $this->qlink(
|
||||
null,
|
||||
'user/edit',
|
||||
|
@ -24,25 +24,35 @@ if ($this->hasPermission('config/authentication/users/edit') && $backend instanc
|
|||
?>
|
||||
<div class="controls">
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $tabs; ?>
|
||||
<?= $tabs ?>
|
||||
<?php endif ?>
|
||||
<div class="user-header">
|
||||
<p class="user-name"><strong><?= $this->escape($user->user_name); ?></strong></p> <?= $editLink; ?>
|
||||
<p class="user-state"><strong><?= $this->translate('State'); ?>:</strong> <?= $user->is_active === null ? '-' : ($user->is_active ? $this->translate('Active') : $this->translate('Inactive')); ?></p>
|
||||
<p class="user-created"><strong><?= $this->translate('Created at'); ?>:</strong> <?= $user->created_at === null ? '-' : $this->formatDateTime($user->created_at); ?></p>
|
||||
<p class="user-modified"><strong><?= $this->translate('Last modified'); ?>:</strong> <?= $user->last_modified === null ? '-' : $this->formatDateTime($user->last_modified); ?></p>
|
||||
<h3><?= $this->translate('Group Memberships'); ?></h3>
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $this->sortBox; ?>
|
||||
<?php endif ?>
|
||||
<?= $this->limiter; ?>
|
||||
<?= $this->paginator; ?>
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $this->filterEditor; ?>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
||||
<h1><?= $this->escape($user->user_name); ?><span class="pull-right"><?= $editLink ?></span></h1>
|
||||
</div>
|
||||
<div class="content memberships" data-base-target="_next">
|
||||
<div class="content">
|
||||
<table class="avp">
|
||||
<tr>
|
||||
<th><?= $this->translate('State'); ?>:</th>
|
||||
<td><?= $user->is_active === null ? '-' : ($user->is_active ? $this->translate('Active') : $this->translate('Inactive')); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?= $this->translate('Created at'); ?>:</th>
|
||||
<td><?= $user->created_at === null ? '-' : $this->formatDateTime($user->created_at); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?= $this->translate('Last modified'); ?>:</th>
|
||||
<td><?= $user->last_modified === null ? '-' : $this->formatDateTime($user->last_modified); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3><?= $this->translate('Group Memberships'); ?></h3>
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $this->sortBox ?>
|
||||
<?php endif ?>
|
||||
<?= $this->limiter ?>
|
||||
<?= $this->paginator ?>
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $this->filterEditor ?>
|
||||
<?php endif ?>
|
||||
<?php if (count($memberships) > 0): ?>
|
||||
<table data-base-target="_next" class="action membership-list">
|
||||
<thead>
|
||||
|
@ -84,13 +94,18 @@ if ($this->hasPermission('config/authentication/users/edit') && $backend instanc
|
|||
<p><?= $this->translate('No memberships found matching the filter'); ?></p>
|
||||
<?php endif ?>
|
||||
<?php if ($showCreateMembershipLink): ?>
|
||||
<?= $this->qlink($this->translate('Create new membership'), 'user/createmembership', array(
|
||||
'backend' => $backend->getName(),
|
||||
'user' => $user->user_name
|
||||
), array(
|
||||
'icon' => 'plus',
|
||||
'data-base-target' => '_next',
|
||||
'class' => 'membership-create'
|
||||
)); ?>
|
||||
<?= $this->qlink(
|
||||
$this->translate('Create new membership'),
|
||||
'user/createmembership',
|
||||
array(
|
||||
'backend' => $backend->getName(),
|
||||
'user' => $user->user_name
|
||||
),
|
||||
array(
|
||||
'icon' => 'plus',
|
||||
'data-base-target' => '_next',
|
||||
'class' => 'membership-create'
|
||||
)
|
||||
) ?>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
)
|
||||
); ?>
|
||||
<?php if (count($backendNames) > 0): ?>
|
||||
<table class="action usergroupbackend-list">
|
||||
<table class="action usergroupbackend-list alternating">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="backend-name"><?= $this->translate('Backend'); ?></th>
|
||||
|
|
|
@ -25,7 +25,6 @@ class StyleSheet
|
|||
'css/icinga/setup.less',
|
||||
'css/icinga/widgets.less',
|
||||
'css/icinga/pagination.less',
|
||||
'css/icinga/monitoring-colors.less',
|
||||
'css/icinga/selection-toolbar.less',
|
||||
'css/icinga/login.less',
|
||||
'css/icinga/controls.less'
|
||||
|
|
|
@ -1,13 +1,37 @@
|
|||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<h1>Style Guide</h1>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h1>H1 - header</h1>
|
||||
<h2>H2 - header</h2>
|
||||
<h3>H3 - header</h3>
|
||||
<h4>H4 - header</h4>
|
||||
<h5>H5 - header</h5>
|
||||
<h6>H6 - header</h6>
|
||||
<h1>Header h1</h1>
|
||||
<h2>Header h2</h2>
|
||||
<h3>Header h3</h3>
|
||||
<h4>Header h4</h4>
|
||||
<h5>Header h5</h5>
|
||||
<h6>Header h6</h6>
|
||||
|
||||
<p>This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. A <a href="#">link pointing somewhere</a>. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph.</p>
|
||||
|
||||
<table class="avp">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Table Head - th in thead</th>
|
||||
<td>td in thead<td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Tbody - th</th>
|
||||
<td>Tbody - td</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Tbody - th</th>
|
||||
<td>Tbody - td</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Tbody - th</th>
|
||||
<td>Tbody - td</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -35,7 +35,7 @@ class CheckNowCommandForm extends ObjectsCommandForm
|
|||
'ignore' => true,
|
||||
'type' => 'submit',
|
||||
'value' => $this->translate('Check now'),
|
||||
'label' => '<i aria-hidden="true" class="icon-reschedule"></i> '
|
||||
'label' => '<i aria-hidden="true" class="icon-reschedule"></i>'
|
||||
. $this->translate('Check now'),
|
||||
'decorators' => array('ViewHelper'),
|
||||
'escape' => false,
|
||||
|
|
|
@ -72,7 +72,7 @@ class DeleteCommentCommandForm extends CommandForm
|
|||
'escape' => false,
|
||||
'type' => 'submit',
|
||||
'class' => 'link-like',
|
||||
'label' => $this->getView()->icon('trash'),
|
||||
'label' => $this->getView()->icon('cancel'),
|
||||
'title' => $this->translate('Delete this comment'),
|
||||
'decorators' => array('ViewHelper')
|
||||
)
|
||||
|
|
|
@ -21,7 +21,7 @@ class ToggleObjectFeaturesCommandForm extends ObjectsCommandForm
|
|||
$this->setUseFormAutosubmit();
|
||||
$this->setTitle('Feature Commands');
|
||||
$this->setAttrib('class', 'inline object-features');
|
||||
$this->loadDefaultDecorators()->getDecorator('description')->setTag('h4');
|
||||
$this->loadDefaultDecorators()->getDecorator('description')->setTag('h2');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -51,7 +51,8 @@ class Zend_View_Helper_Link extends Zend_View_Helper_Abstract
|
|||
public function service($service, $serviceLinkText, $host, $hostLinkText)
|
||||
{
|
||||
return sprintf(
|
||||
$this->view->translate('%s on %s', 'Service running on host'),
|
||||
'%s: %s',
|
||||
$this->host($host, $hostLinkText),
|
||||
$this->view->qlink(
|
||||
$serviceLinkText,
|
||||
'monitoring/service/show',
|
||||
|
@ -61,8 +62,7 @@ class Zend_View_Helper_Link extends Zend_View_Helper_Abstract
|
|||
$service,
|
||||
$host
|
||||
))
|
||||
),
|
||||
$this->host($host, $hostLinkText)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="controls">
|
||||
<div class="controls separated">
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $this->tabs; ?>
|
||||
<?php endif ?>
|
||||
|
|
|
@ -4,9 +4,7 @@
|
|||
<div class="dontprint">
|
||||
<?= $this->render('list/components/selectioninfo.phtml'); ?>
|
||||
</div>
|
||||
<div class="tinystatesummary">
|
||||
<?= count($comments) ?> <?= $this->translate('Comments') ?>:
|
||||
</div>
|
||||
<h1><?= count($comments) ?> <?= $this->translate('Comments') ?></h1>
|
||||
<?= $this->sortBox; ?>
|
||||
<?= $this->limiter; ?>
|
||||
<?= $this->paginator; ?>
|
||||
|
@ -39,9 +37,9 @@ if (count($comments) === 0) {
|
|||
|
||||
<?= $this->qlink(
|
||||
sprintf(
|
||||
$this->translate('%s on %s', 'Service running on host'),
|
||||
$comment->service_display_name,
|
||||
$comment->host_display_name
|
||||
'%s: %s',
|
||||
$comment->host_display_name,
|
||||
$comment->service_display_name
|
||||
),
|
||||
'monitoring/comment/show',
|
||||
array('comment_id' => $comment->id),
|
||||
|
|
|
@ -14,7 +14,7 @@ function urlAddFilterOptional($url, $filter, $optional) {
|
|||
$this->baseFilter = isset($this->baseFilter) ? $this->baseFilter : null;
|
||||
$selfUrl = 'monitoring/list/hosts';
|
||||
$currentUrl = Url::fromRequest()->getRelativeUrl();
|
||||
?><div class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
||||
?><h1 class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
||||
<?= $this->qlink(
|
||||
sprintf($this->translatePlural('%u Host', '%u Hosts', $this->stats->hosts_total), $this->stats->hosts_total),
|
||||
$selfUrl,
|
||||
|
@ -164,4 +164,4 @@ $currentUrl = Url::fromRequest()->getRelativeUrl();
|
|||
</span>
|
||||
<?php endif; ?>
|
||||
</span>
|
||||
</div>
|
||||
</h1>
|
||||
|
|
|
@ -16,7 +16,7 @@ $this->baseFilter = isset($this->baseFilter) ? $this->baseFilter : null;
|
|||
|
||||
$selfUrl = 'monitoring/list/services';
|
||||
$currentUrl = Url::fromRequest()->getRelativeUrl();
|
||||
?><div class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
||||
?><h1 class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
||||
<?= $this->qlink(
|
||||
sprintf($this->translatePlural(
|
||||
'%u Service', '%u Services', $this->stats->services_total),
|
||||
|
@ -143,4 +143,4 @@ foreach (array(2 => 'critical', 3 => 'unknown', 1 => 'warning') as $stateId => $
|
|||
</span>
|
||||
<?php endif ?>
|
||||
</span>
|
||||
</div>
|
||||
</h1>
|
||||
|
|
|
@ -8,9 +8,7 @@ if (! $this->compact): ?>
|
|||
<div class="dontprint">
|
||||
<?= $this->render('list/components/selectioninfo.phtml'); ?>
|
||||
</div>
|
||||
<div class="tinystatesummary">
|
||||
<?= count($downtimes) ?> <?= $this->translate('Downtimes') ?>
|
||||
</div>
|
||||
<h1><?= count($downtimes) ?> <?= $this->translate('Downtimes') ?></h1>
|
||||
<?= $this->sortBox; ?>
|
||||
<?= $this->limiter; ?>
|
||||
<?= $this->paginator; ?>
|
||||
|
@ -56,7 +54,7 @@ if (count($downtimes) === 0) {
|
|||
}
|
||||
?>
|
||||
<?= $this->qlink(
|
||||
sprintf($this->translate('%s on %s', 'Service running on host'), $downtime->service_display_name, $downtime->host_display_name),
|
||||
sprintf('%s: %s', $downtime->host_display_name, $downtime->service_display_name),
|
||||
'monitoring/downtime/show',
|
||||
array('downtime_id' => $downtime->id),
|
||||
array('title' => sprintf(
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
use Icinga\Module\Monitoring\Object\Host;
|
||||
|
||||
if (! $this->compact): ?>
|
||||
<div class="controls">
|
||||
<div class="controls separated">
|
||||
<?= $this->tabs; ?>
|
||||
<div class="dontprint">
|
||||
<?= $this->render('list/components/selectioninfo.phtml'); ?>
|
||||
|
@ -54,7 +54,7 @@ if (count($hosts) === 0) {
|
|||
<!-- Host / Status / Output -->
|
||||
<td>
|
||||
<?= $this->iconImage()->host($host) ?>
|
||||
<?= implode(' ', $this->hostFlags($host)) ?>
|
||||
<span="objectflags"><?= implode(' ', $this->hostFlags($host)) ?></span>
|
||||
<?= $this->qlink(
|
||||
$host->host_display_name,
|
||||
$hostLink,
|
||||
|
|
|
@ -5,16 +5,16 @@ use Icinga\Module\Monitoring\Object\Service;
|
|||
$selfUrl = 'monitoring/list/services';
|
||||
|
||||
if (! $this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs; ?>
|
||||
<div class="controls separated">
|
||||
<?= $this->tabs ?>
|
||||
<div class="dontprint">
|
||||
<?= $this->render('list/components/selectioninfo.phtml'); ?>
|
||||
<?= $this->render('list/components/servicesummary.phtml'); ?>
|
||||
<?= $this->render('list/components/selectioninfo.phtml') ?>
|
||||
<?= $this->render('list/components/servicesummary.phtml') ?>
|
||||
</div>
|
||||
<?= $this->sortBox; ?>
|
||||
<?= $this->limiter; ?>
|
||||
<?= $this->paginator; ?>
|
||||
<?= $this->filterEditor; ?>
|
||||
<?= $this->sortBox ?>
|
||||
<?= $this->limiter ?>
|
||||
<?= $this->paginator ?>
|
||||
<?= $this->filterEditor ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
<div class="content">
|
||||
|
@ -48,7 +48,7 @@ if (count($services) === 0) {
|
|||
?>
|
||||
<tr class="state <?= $serviceStateName ?><?= $service->service_handled ? ' handled' : '' ?>">
|
||||
<td class="state">
|
||||
<strong><?= Service::getStateText($service->service_state, true); ?></strong>
|
||||
<strong><?= Service::getStateText($service->service_state, true) ?></strong>
|
||||
<?php if ((int) $service->service_state !== 99): ?>
|
||||
<br />
|
||||
<?= $this->timeSince($service->service_last_state_change, $this->compact) ?>
|
||||
|
@ -60,25 +60,29 @@ if (count($services) === 0) {
|
|||
</td>
|
||||
|
||||
<td>
|
||||
<div class="sparkline-box"><?= $this->perfdata($service->service_perfdata, true, 5) ?> </div>
|
||||
<?= $this->iconImage()->service($service) ?>
|
||||
<?= implode(' ', $this->serviceFlags($service)); ?>
|
||||
<?= $this->qlink(
|
||||
$service->service_display_name,
|
||||
$serviceLink,
|
||||
null,
|
||||
array('title' => sprintf(
|
||||
$this->translate('Show detailed information for service %s on host %s'),
|
||||
$service->service_display_name,
|
||||
$service->host_display_name
|
||||
))
|
||||
); ?><?php if ($this->showHost): ?> on <?= $this->qlink(
|
||||
<span class="objectflags"><?= implode(' ', $this->serviceFlags($service)) ?></span>
|
||||
<?php if ($this->showHost): ?><?= $this->qlink(
|
||||
$service->host_display_name . ($service->host_state != 0 ? ' (' . Host::getStateText($service->host_state, true) . ')' : ''),
|
||||
$hostLink,
|
||||
null,
|
||||
array('title' => sprintf($this->translate('Show detailed information for host %s'), $service->host_display_name))
|
||||
); ?><?php endif ?><br>
|
||||
<p class="pluginoutput"><?= $this->escape($this->ellipsis($service->service_output, 10000)); ?></p>
|
||||
) ?>:
|
||||
<?php endif ?><?= $this->qlink(
|
||||
$service->service_display_name,
|
||||
$serviceLink,
|
||||
null,
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translate('Show detailed information for service %s on host %s'),
|
||||
$service->service_display_name,
|
||||
$service->host_display_name
|
||||
),
|
||||
'class' => 'rowaction'
|
||||
)
|
||||
) ?><br />
|
||||
<div class="sparkline-box"><?= $this->perfdata($service->service_perfdata, true, 5) ?> </div>
|
||||
<p class="pluginoutput"><?= $this->escape($this->ellipsis($service->service_output, 10000)) ?></p>
|
||||
</td>
|
||||
<?php foreach($this->addColumns as $col): ?>
|
||||
<td><?= $this->escape($service->$col) ?></td>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?php if ($comment->objecttype === 'service'): ?>
|
||||
<?= $this->icon('service', $this->translate('Service')); ?>
|
||||
<?= sprintf(
|
||||
$this->translate('%s on %s', 'Service running on host'),
|
||||
$comment->service_display_name,
|
||||
$comment->host_display_name
|
||||
'%s: %s',
|
||||
$comment->host_display_name,
|
||||
$comment->service_display_name
|
||||
) ?>
|
||||
<?php else: ?>
|
||||
<?= $this->icon('host', $this->translate('Host')); ?>
|
||||
|
|
|
@ -13,7 +13,7 @@ function urlAddFilterOptional($url, $filter, $optional) {
|
|||
}
|
||||
|
||||
$selfUrl = Url::fromPath('monitoring/list/services', array('host' => $object->host_name));
|
||||
?><div class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
||||
?><h2 class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : ''; ?>>
|
||||
<?php if ($object->stats->services_total): ?>
|
||||
<?= $this->qlink(
|
||||
sprintf(
|
||||
|
@ -147,4 +147,4 @@ foreach (array(2 => 'critical', 3 => 'unknown', 1 => 'warning') as $stateId => $
|
|||
</span>
|
||||
<?php endif ?>
|
||||
</span>
|
||||
</div>
|
||||
</h2>
|
||||
|
|
|
@ -18,9 +18,8 @@ $i = 0;
|
|||
<?= $this->iconImage()->service($service) ?>
|
||||
<?= implode(' ', $this->serviceFlags($service)) ?>
|
||||
<b>
|
||||
<?= $this->escape($service->getName()); ?>
|
||||
<?= $this->translate('on') ?>
|
||||
<?= $this->escape($service->getHost()->getName()); ?><br>
|
||||
<?= $this->escape($service->getHost()->getName()); ?>:
|
||||
<?= $this->escape($service->getName()); ?> <br>
|
||||
</b>
|
||||
<?= $this->escape($service->service_output) ?>
|
||||
</td>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="controls">
|
||||
<div class="controls separated">
|
||||
<?php if (! $this->compact): ?>
|
||||
<?= $this->tabs; ?>
|
||||
<?php endif ?>
|
||||
|
|
|
@ -1,62 +1,90 @@
|
|||
<tr>
|
||||
<th><?= $this->translate('Comments'); ?></th>
|
||||
<td>
|
||||
<?php if ($this->hasPermission('monitoring/command/comment/add')) {
|
||||
/** @var \Icinga\Module\Monitoring\Object\MonitoredObject $object */
|
||||
if ($object->getType() === $object::TYPE_HOST) {
|
||||
echo $this->qlink(
|
||||
$this->translate('Add comment'),
|
||||
'monitoring/host/add-comment',
|
||||
array('host' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'comment',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate('Add a new comment to this host')
|
||||
)
|
||||
);
|
||||
} else {
|
||||
echo $this->qlink(
|
||||
$this->translate('Add comment'),
|
||||
'monitoring/service/add-comment',
|
||||
array('host' => $object->getHost()->getName(), 'service' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'comment',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate('Add a new comment to this service')
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
echo '-';
|
||||
} ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
||||
foreach ($object->comments as $comment) {
|
||||
// Ticket hook sample
|
||||
$commentText = $this->tickets ? preg_replace_callback(
|
||||
$this->tickets->getPattern(),
|
||||
array($this->tickets, 'createLink'),
|
||||
$this->escape($comment->comment)
|
||||
) : $this->escape($comment->comment);
|
||||
$addLink = '';
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<th><?= $this->escape($comment->author); ?> (<?= $this->timeAgo($comment->timestamp); ?>)</th>
|
||||
<td data-base-target="_self">
|
||||
<?php if (isset($delCommentForm)) { // Form is unset if the current user lacks the respective permission
|
||||
$delCommentForm = clone $delCommentForm;
|
||||
$delCommentForm->populate(
|
||||
array(
|
||||
'comment_id' => $comment->id,
|
||||
'comment_is_service' => isset($comment->service_description)
|
||||
)
|
||||
);
|
||||
echo $delCommentForm;
|
||||
} ?>
|
||||
<span class="sr-only">(<?= $this->translate('Comment'); ?>): </span><?= str_replace(array('\r\n', '\n'), '<br>', $commentText); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } // endforeach ?>
|
||||
if ($this->hasPermission('monitoring/command/comment/add')) {
|
||||
/** @var \Icinga\Module\Monitoring\Object\MonitoredObject $object */
|
||||
if ($object->getType() === $object::TYPE_HOST) {
|
||||
$addLink = $this->qlink(
|
||||
$this->translate('Add comment'),
|
||||
'monitoring/host/add-comment',
|
||||
array('host' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'comment',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate('Add a new comment to this host')
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$addLink = $this->qlink(
|
||||
$this->translate('Add comment'),
|
||||
'monitoring/service/add-comment',
|
||||
array('host' => $object->getHost()->getName(), 'service' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'comment',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate('Add a new comment to this service')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($object->comments) && ! $addLink) {
|
||||
return;
|
||||
}
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<th><?php
|
||||
|
||||
echo $this->translate('Comments');
|
||||
|
||||
if (! empty($object->comments) && $addLink) {
|
||||
echo '<br />' . $addLink;
|
||||
}
|
||||
|
||||
?></th>
|
||||
<td data-base-target="_self">
|
||||
<?php if (empty($object->comments)): ?>
|
||||
<?= $addLink ?>
|
||||
<?php else: ?>
|
||||
<ul class="inline-comments">
|
||||
<?php foreach ($object->comments as $comment): ?>
|
||||
<?php
|
||||
|
||||
// Ticket hook sample
|
||||
$commentText = $this->tickets ? preg_replace_callback(
|
||||
$this->tickets->getPattern(),
|
||||
array($this->tickets, 'createLink'),
|
||||
$this->escape($comment->comment)
|
||||
) : $this->escape($comment->comment);
|
||||
|
||||
|
||||
// Form is unset if the current user lacks the respective permission
|
||||
if (isset($delCommentForm)) {
|
||||
$deleteButton = clone($delCommentForm);
|
||||
$deleteButton->populate(
|
||||
array(
|
||||
'comment_id' => $comment->id,
|
||||
'comment_is_service' => isset($comment->service_description)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$deleteButton = '';
|
||||
}
|
||||
|
||||
?>
|
||||
<li class="comment-item">
|
||||
<h3>
|
||||
<span class="author"><?= $this->escape($comment->author) ?></span>
|
||||
<?= $this->timeAgo($comment->timestamp) ?>
|
||||
<?= $deleteButton ?>
|
||||
</h3>
|
||||
<p><span class="sr-only">(<?= $this->translate('Comment'); ?>): </span><?= str_replace(array('\r\n', '\n'), '<br>', $commentText) ?></p>
|
||||
</li>
|
||||
<?php endforeach ?>
|
||||
</ul>
|
||||
<?php endif ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -13,9 +13,8 @@ if (! empty($object->contacts)) {
|
|||
}
|
||||
|
||||
printf(
|
||||
"<tr><th>%s</th><td>%s %s</td></tr>\n",
|
||||
"<tr><th>%s</th><td class=\"go-ahead\">%s</td></tr>\n",
|
||||
$this->translate('Contacts'),
|
||||
$this->icon('user'),
|
||||
implode(', ', $list)
|
||||
);
|
||||
|
||||
|
@ -33,9 +32,8 @@ if (! empty($object->contactgroups)) {
|
|||
}
|
||||
|
||||
printf(
|
||||
"<tr><th>%s</th><td>%s %s</td></tr>\n",
|
||||
"<tr><th>%s</th><td class=\"go-ahead\">%s</td></tr>\n",
|
||||
$this->translate('Contactgroups'),
|
||||
$this->icon('users'),
|
||||
implode(', ', $list)
|
||||
);
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php if (empty($object->customvars)) return; ?>
|
||||
<tr class="newsection">
|
||||
<td colspan="2">
|
||||
<h4 class="customvar"><?= $this->translate('Custom variables') ?></h4>
|
||||
<h2 class="customvar"><?= $this->translate('Custom variables') ?></h2>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
|
|
|
@ -1,44 +1,63 @@
|
|||
<tr>
|
||||
<th><?= $this->translate('Downtimes'); ?></th>
|
||||
<td>
|
||||
<?php if ($this->hasPermission('monitoring/command/downtime/schedule')) {
|
||||
/** @var \Icinga\Module\Monitoring\Object\MonitoredObject $object */
|
||||
if ($object->getType() === $object::TYPE_HOST) {
|
||||
echo $this->qlink(
|
||||
$this->translate('Schedule downtime'),
|
||||
'monitoring/host/schedule-downtime',
|
||||
array('host' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'plug',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate(
|
||||
'Schedule a downtime to suppress all problem notifications within a specific period of time'
|
||||
)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
echo $this->qlink(
|
||||
$this->translate('Schedule downtime'),
|
||||
'monitoring/service/schedule-downtime',
|
||||
array('host' => $object->getHost()->getName(), 'service' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'plug',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate(
|
||||
'Schedule a downtime to suppress all problem notifications within a specific period of time'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
echo '-';
|
||||
} ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
||||
foreach ($object->downtimes as $downtime) {
|
||||
$addLink = '';
|
||||
|
||||
if ($this->hasPermission('monitoring/command/downtime/schedule')) {
|
||||
/** @var \Icinga\Module\Monitoring\Object\MonitoredObject $object */
|
||||
if ($object->getType() === $object::TYPE_HOST) {
|
||||
$addLink = $this->qlink(
|
||||
$this->translate('Schedule downtime'),
|
||||
'monitoring/host/schedule-downtime',
|
||||
array('host' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'plug',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate(
|
||||
'Schedule a downtime to suppress all problem notifications within a specific period of time'
|
||||
)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$addLink = $this->qlink(
|
||||
$this->translate('Schedule downtime'),
|
||||
'monitoring/service/schedule-downtime',
|
||||
array('host' => $object->getHost()->getName(), 'service' => $object->getName()),
|
||||
array(
|
||||
'icon' => 'plug',
|
||||
'data-base-target' => '_self',
|
||||
'title' => $this->translate(
|
||||
'Schedule a downtime to suppress all problem notifications within a specific period of time'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($object->comments) && ! $addLink) {
|
||||
return;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<th><?php
|
||||
|
||||
echo $this->translate('Downtimes');
|
||||
|
||||
if (! empty($object->downtimes) && $addLink) {
|
||||
echo '<br />' . $addLink;
|
||||
}
|
||||
|
||||
?></th>
|
||||
<td data-base-target="_self">
|
||||
<?php if (empty($object->downtimes)): ?>
|
||||
<?= $addLink ?>
|
||||
<?php else: ?>
|
||||
<ul class="inline-comments">
|
||||
|
||||
<?php foreach ($object->downtimes as $downtime): ?>
|
||||
<?php
|
||||
|
||||
// Ticket hook sample
|
||||
$commentText = $this->tickets ? preg_replace_callback(
|
||||
$this->tickets->getPattern(),
|
||||
|
@ -65,21 +84,33 @@ foreach ($object->downtimes as $downtime) {
|
|||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<th><?= $this->escape($downtime->author_name); ?> (<?= $this->timeAgo($downtime->entry_time); ?>)</th>
|
||||
<td data-base-target="_self">
|
||||
<?php if (isset($delDowntimeForm)) { // Form is unset if the current user lacks the respective permission
|
||||
$delDowntimeForm = clone $delDowntimeForm;
|
||||
$delDowntimeForm->populate(
|
||||
array(
|
||||
'downtime_id' => $downtime->id,
|
||||
'downtime_is_service' => $object->getType() === $object::TYPE_SERVICE
|
||||
)
|
||||
);
|
||||
echo $delDowntimeForm;
|
||||
} ?>
|
||||
<span class="sr-only"><?= $this->translate('Downtime'); ?></span><?= $state; ?> - <?= str_replace(array('\r\n', '\n'), '<br>', $commentText); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } // endforeach ?>
|
||||
|
||||
// Form is unset if the current user lacks the respective permission
|
||||
if (isset($delDowntimeForm)) {
|
||||
$deleteButton = clone($delDowntimeForm);
|
||||
$deleteButton->populate(
|
||||
array(
|
||||
'downtime_id' => $downtime->id,
|
||||
'downtime_is_service' => $object->getType() === $object::TYPE_SERVICE
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$deleteButton = '';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<li class="comment-item">
|
||||
<h3>
|
||||
<span class="author"><?= $this->escape($downtime->author_name) ?></span>
|
||||
<?= $this->timeAgo($downtime->entry_time) ?>
|
||||
<?= $deleteButton ?>
|
||||
</h3>
|
||||
<p> <span class="sr-only"><?= $this->translate('Downtime'); ?></span><?= $state; ?> - <?= str_replace(array('\r\n', '\n'), '<br>', $commentText); ?></p>
|
||||
</li>
|
||||
<?php endforeach ?>
|
||||
</ul>
|
||||
<?php endif ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="pluginoutput">
|
||||
<h4><?= $this->translate('Plugin Output') ?></h4>
|
||||
<h2><?= $this->translate('Plugin Output') ?></h2>
|
||||
<?= $this->pluginOutput($object->output) ?>
|
||||
<?= $this->pluginOutput($object->long_output) ?>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
<?php if (! $object->perfdata) return ?>
|
||||
<tr>
|
||||
<th><?= $this->translate('Performance data') ?></th>
|
||||
<td>
|
||||
<?= $this->perfdata($object->perfdata) ?>
|
||||
</td>
|
||||
<tr class="newsection">
|
||||
<td colspan="2">
|
||||
<h2><?= $this->translate('Performance data') ?></h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="performance-data">
|
||||
<?= $this->perfdata($object->perfdata) ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,22 +1,22 @@
|
|||
/*! Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
|
||||
|
||||
/* Color definitions */
|
||||
@colorMainLayout: #049baf;
|
||||
@colorMainBackground: #fff;
|
||||
@colorMainForeground: #666;
|
||||
@colorMainLink: #222;
|
||||
@colorSecondary: #f9f9f9;
|
||||
|
||||
|
||||
@colorGray: #f9f9f9;
|
||||
@colorLinkDefault: #049baf;
|
||||
@colorTextDefault: #666;
|
||||
@colorTextDefault: @colorMainForeground;
|
||||
@colorTextDarkDefault: #555;
|
||||
@colorPetrol: #049baf;
|
||||
@colorOk: #44bb77;
|
||||
@colorWarning: #ffaa44;
|
||||
@colorWarningHandled: #ffcc66;
|
||||
@colorCritical: #ff5566;
|
||||
@colorCriticalHandled: #ff99aa;
|
||||
/*
|
||||
@colorUnknown: #dd66ff;
|
||||
@colorUnknownHandled: #ee99ff;
|
||||
@colorUnreachable: #dd66ff;
|
||||
@colorUnreachableHandled: #ee99ff;
|
||||
*/
|
||||
@colorUnknown: #aa44ff;
|
||||
@colorUnknownHandled: #cc77ff;
|
||||
@colorUnreachable: #aa44ff;
|
||||
|
@ -27,20 +27,8 @@
|
|||
@colorFormNotificationWarning: #ffaa44;
|
||||
@colorFormNotificationError: #ff5566;
|
||||
|
||||
/* Mixins */
|
||||
|
||||
.page-header(@borderSize: 2px; @fontSize: 2em; @textColor: @colorTextDarkDefault) {
|
||||
font-size: @fontSize;
|
||||
color: @textColor;
|
||||
border-bottom: @borderSize solid @colorPetrol;
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* deprecated */
|
||||
@colorPetrol: @colorMainLayout;
|
||||
|
||||
/*** Base rules ***/
|
||||
* {
|
||||
|
@ -81,44 +69,21 @@ body {
|
|||
}
|
||||
|
||||
a {
|
||||
color: #333;
|
||||
text-decoration: underline;
|
||||
}
|
||||
@colorMainLink;
|
||||
text-decoration: none;
|
||||
|
||||
a:hover {
|
||||
color: black;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* W3C Recommendation <http://www.w3.org/TR/CSS21/sample.html> (except h4) */
|
||||
h1 {
|
||||
.page-header();
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
color: @colorPetrol;
|
||||
}
|
||||
|
||||
h3 {
|
||||
.page-header(1px, 1.17em);
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
color: @colorPetrol;
|
||||
}
|
||||
|
||||
h5 {
|
||||
.page-header(1px, .83em);
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: .75em;
|
||||
color: @colorPetrol;
|
||||
:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-size: 1em;
|
||||
padding: 0.3em 0em;
|
||||
margin: 0.7em 0 0.5em 0;
|
||||
color: @textColor;
|
||||
border-bottom: 1px dotted #aaa;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
|
@ -129,6 +94,31 @@ h1, h2, h3, h4, h5, h6 {
|
|||
}
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.83em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
border-bottom: 3px solid #666;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2 {
|
||||
border-bottom: 1px solid #888;
|
||||
font-variant: small-caps;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-weight: normal;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
button {
|
||||
font-family: inherit;
|
||||
}
|
||||
|
@ -141,4 +131,4 @@ button {
|
|||
position: absolute;
|
||||
top: -2em;
|
||||
}
|
||||
/*** END of Base rules */
|
||||
/*** END of Base rules */
|
||||
|
|
|
@ -260,9 +260,3 @@ form ul.descriptions {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
form > div.header {
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
/*! Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
|
||||
|
||||
#header div.user {
|
||||
font-size: 1.1em;
|
||||
margin-top: 0.8em;
|
||||
margin-right: 2em;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#logo {
|
||||
height: 3.6em;
|
||||
width: 13em;
|
||||
|
|
|
@ -112,6 +112,7 @@ html {
|
|||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
font-size: 0.875em;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
|
@ -139,6 +140,11 @@ html {
|
|||
z-index: 100;
|
||||
}
|
||||
|
||||
.container .controls.separated {
|
||||
box-shadow: 0 3px 4px -4px rgba(0, 0, 0, 0.2);
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.container .fake-controls {
|
||||
padding: 1em 1em 0;
|
||||
}
|
||||
|
@ -152,7 +158,6 @@ html {
|
|||
}
|
||||
|
||||
.dashboard > div.container {
|
||||
font-size: 0.9em;
|
||||
vertical-align: top;
|
||||
width: 48.5%;
|
||||
display: inline-block;
|
||||
|
@ -161,10 +166,6 @@ html {
|
|||
margin-left: 1%;
|
||||
}
|
||||
|
||||
.content h3 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.container .controls .pagination {
|
||||
margin-left: 1.2em;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,6 @@ table.avp {
|
|||
color: @colorTextDarkDefault;
|
||||
table-layout: auto;
|
||||
width: 100%;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
table.avp a {
|
||||
|
@ -62,7 +61,7 @@ table.avp > tbody > tr > td {
|
|||
}
|
||||
|
||||
table.avp.newsection, table.avp tr.newsection {
|
||||
border-top: 1px solid #d9d9d9;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.content table.avp dd, .content table.avp dd {
|
||||
|
@ -70,10 +69,6 @@ table.avp.newsection, table.avp tr.newsection {
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
table.avp {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
table.avp a {
|
||||
color: @colorLinkDefault;
|
||||
text-decoration: none;
|
||||
|
@ -83,76 +78,12 @@ table.avp a:hover {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Definitively monitoring-only: */
|
||||
table.objectstate {
|
||||
border-collapse: separate;
|
||||
border-spacing: 1px;
|
||||
}
|
||||
|
||||
table.objectstate td {
|
||||
font-size: 1.2em;
|
||||
line-height: 1.5em;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
table.objectstate tr.state td.state {
|
||||
font-size: 1em;
|
||||
width: 9em;
|
||||
text-align: center;
|
||||
padding-left: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
table.objectstate tr.state.handled td.state {
|
||||
}
|
||||
|
||||
table.perfdata {
|
||||
min-width: 24em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
table.perfdata.perfdata-piecharts {
|
||||
left: -2.6em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
table.perfdata th {
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
|
||||
table.perfdata td {
|
||||
white-space: nowrap;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
|
||||
table.objectlist {
|
||||
min-width: 28em;
|
||||
th {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
table.benchmark {
|
||||
margin: 1em 1% 1em 1%;
|
||||
font-family: monospace;
|
||||
font-size: 1em;
|
||||
width: 96%;
|
||||
}
|
||||
|
||||
.dashboard h1 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.dashboard h2 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.dashboard h3 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.dashboard table.benchmark {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
@ -167,6 +98,7 @@ table.benchmark {
|
|||
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
text-decoration: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.info-box {
|
||||
|
@ -175,6 +107,86 @@ table.benchmark {
|
|||
background-color: #fbfcc5;
|
||||
}
|
||||
|
||||
/* Action table */
|
||||
table.action {
|
||||
border-collapse: separate;
|
||||
border-spacing: 1px;
|
||||
width: 100%;
|
||||
table-layout: fixed !important;
|
||||
margin: 0;
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
||||
table.action th {
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
table.action.wide td {
|
||||
line-height: 2.5em;
|
||||
}
|
||||
|
||||
table.action td {
|
||||
padding: 0.3em 0.5em 0.3em 0.5em;
|
||||
line-height: 1.5em;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.dashboard table.action td {
|
||||
line-height: 1.2em;
|
||||
padding: 0.2 0.4em 0.2em 0.5em;
|
||||
}
|
||||
|
||||
table.action td a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.action td a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* END of Action table */
|
||||
|
||||
/* Table behaviour */
|
||||
|
||||
tr[href] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
tr[href].active {
|
||||
background-color: #eee;
|
||||
color: black;
|
||||
}
|
||||
|
||||
table.alternating {
|
||||
tr[href].active:nth-child(even), tr[href].active:nth-child(odd) {
|
||||
background-color: #E5E5E5;
|
||||
color: black;
|
||||
}
|
||||
tr[href]:nth-child(even) {
|
||||
background-color: #FDFDFD;
|
||||
}
|
||||
tr[href]:nth-child(odd) {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
tr[href]:hover {
|
||||
color: black;
|
||||
background-color: #DDDDDD;
|
||||
}
|
||||
}
|
||||
/* End of table behaviour */
|
||||
|
||||
|
||||
/* HOVER colors */
|
||||
|
||||
tr[href]:hover {
|
||||
color: black;
|
||||
background-color: #DDDDDD;
|
||||
}
|
||||
/* END of HOVER colors */
|
||||
|
||||
/* TODO: get rid of most if not all styles below this line */
|
||||
div.content.users {
|
||||
table.user-list {
|
||||
th.user-remove {
|
||||
|
@ -198,19 +210,6 @@ div.content.users {
|
|||
}
|
||||
}
|
||||
|
||||
div.controls div.user-header {
|
||||
.user-name {
|
||||
display: inline-block;
|
||||
margin: 0 0 0.3em;
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.user-state, .user-created, .user-modified {
|
||||
margin: 0 0 0.2em;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
}
|
||||
|
||||
div.content.memberships {
|
||||
table.membership-list {
|
||||
th.membership-cancel {
|
||||
|
|
|
@ -1,964 +0,0 @@
|
|||
/*! Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
|
||||
|
||||
/* Special tables and states */
|
||||
|
||||
table.colors {
|
||||
font-size: 0.8em;
|
||||
width: 98%;
|
||||
margin: 0 1%;
|
||||
}
|
||||
|
||||
table.colors td {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 10%;
|
||||
height: 1.6em;
|
||||
font-weight: normal;
|
||||
border: 0.079em solid white;
|
||||
}
|
||||
|
||||
/* Action table */
|
||||
table.action {
|
||||
font-size: 0.9em;
|
||||
border-collapse: separate;
|
||||
border-spacing: 1px;
|
||||
width: 100%;
|
||||
table-layout: fixed !important;
|
||||
margin: 0;
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
||||
table.action th {
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
table.action.wide td {
|
||||
line-height: 2.5em;
|
||||
}
|
||||
|
||||
table.action td {
|
||||
padding: 0.3em 0.5em 0.3em 0.5em;
|
||||
line-height: 1.5em;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.dashboard table.action td {
|
||||
line-height: 1.2em;
|
||||
padding: 0.2 0.4em 0.2em 0.5em;
|
||||
}
|
||||
|
||||
table.action td .pluginoutput {
|
||||
font-size: 0.8em;
|
||||
line-height: 1.2em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table.action td a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.action td a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* END of Action table */
|
||||
|
||||
|
||||
/* Table behaviour */
|
||||
|
||||
tr[href] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* End of table behaviour */
|
||||
|
||||
|
||||
table.action td.state {
|
||||
font-size: 0.7em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.action td.timesince {
|
||||
width: 3.5em;
|
||||
}
|
||||
|
||||
|
||||
/* State row behaviour */
|
||||
|
||||
tr.state img.icon {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
tr.state a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tr.state a.active {
|
||||
}
|
||||
|
||||
tr.state.new td.state {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tr.state td.state strong {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
tr.state td.state {
|
||||
width: 9em;
|
||||
color: white;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
tr.state.handled td.state, tr.state.ok td.state, tr.state.up td.state, tr.state.pending td.state {
|
||||
border-left-style: solid;
|
||||
border-left-width: 1.5em;
|
||||
padding-left: 0em;
|
||||
padding-right: 0.5em;
|
||||
color: black;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
tr[href].active {
|
||||
background-color: #eee;
|
||||
color: black;
|
||||
}
|
||||
|
||||
tr.state.ok td.state, tr.state.up td.state {
|
||||
border-left-color: @colorOk;
|
||||
}
|
||||
|
||||
tr.state.warning td.state {
|
||||
background-color: @colorWarning;
|
||||
}
|
||||
|
||||
tr.state.warning.handled td.state {
|
||||
border-left-color: @colorWarningHandled;
|
||||
}
|
||||
|
||||
tr.state.critical td.state, tr.state.down td.state {
|
||||
background-color: @colorCritical;
|
||||
}
|
||||
|
||||
tr.state.critical.handled td.state, tr.state.down.handled td.state {
|
||||
border-left-color: @colorCriticalHandled;
|
||||
}
|
||||
|
||||
tr.state.unreachable td.state {
|
||||
background-color: @colorUnreachable;
|
||||
}
|
||||
|
||||
tr.state.unreachable.handled td.state {
|
||||
border-left-color: @colorUnreachableHandled;
|
||||
}
|
||||
|
||||
tr.state.unknown td.state {
|
||||
background-color: @colorUnknown;
|
||||
}
|
||||
|
||||
tr.state.unknown.handled td.state {
|
||||
border-left-color: @colorUnknownHandled;
|
||||
}
|
||||
|
||||
tr.state.pending td.state {
|
||||
border-left-color: @colorPending;
|
||||
}
|
||||
|
||||
tr.state.invalid td.state {
|
||||
background-color: @colorInvalid;
|
||||
}
|
||||
|
||||
tr.state.unreachable td.state {
|
||||
background-color: @colorUnreachable;
|
||||
}
|
||||
|
||||
tr.state.unreachable.handled td.state {
|
||||
border-left-color: @colorUnreachableHandled;
|
||||
}
|
||||
|
||||
tr.state.handled td.state {
|
||||
color: inherit;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* HOVER colors */
|
||||
tr[href]:hover {
|
||||
color: black;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
tr.state[href]:hover td.state {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
tr.state.ok[href]:hover, tr.state.up[href]:hover {
|
||||
background-color: @colorOk;
|
||||
}
|
||||
|
||||
tr.state.handled[href]:hover, tr.state.handled[href]:hover td.state {
|
||||
color: #121212 !important;
|
||||
}
|
||||
|
||||
tr.state.warning[href]:hover {
|
||||
background-color: @colorWarning;
|
||||
}
|
||||
|
||||
tr.state.warning.handled[href]:hover {
|
||||
background-color: @colorWarningHandled;
|
||||
}
|
||||
|
||||
tr.state.critical[href]:hover, tr.state.down[href]:hover {
|
||||
background-color: @colorCritical;
|
||||
}
|
||||
|
||||
tr.state.critical.handled[href]:hover, tr.state.down.handled[href]:hover {
|
||||
background-color: @colorCriticalHandled;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
tr.state.unknown[href]:hover {
|
||||
background-color: @colorUnknown;
|
||||
}
|
||||
|
||||
tr.state.unknown.handled[href]:hover {
|
||||
background-color: @colorUnknownHandled;
|
||||
}
|
||||
|
||||
tr.state.pending[href]:hover {
|
||||
background-color: @colorPending;
|
||||
}
|
||||
|
||||
tr.state.invalid[href]:hover {
|
||||
background-color: @colorInvalid;
|
||||
}
|
||||
|
||||
tr.state.unreachable[href]:hover {
|
||||
background-color: @colorUnreachable;
|
||||
}
|
||||
|
||||
tr.state.unreachable.handled[href]:hover {
|
||||
background-color: @colorUnreachableHandled;
|
||||
}
|
||||
|
||||
tr.state[href]:hover td.state {
|
||||
background-color: inherit !important;
|
||||
}
|
||||
|
||||
/* END of HOVER colors */
|
||||
|
||||
/* END of special tables and states */
|
||||
|
||||
|
||||
/* Generic colors */
|
||||
|
||||
a.critical {
|
||||
color: @colorCritical;
|
||||
}
|
||||
|
||||
/* END of Generic colors */
|
||||
|
||||
|
||||
/* Generic box element */
|
||||
|
||||
.boxview a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.boxview > div.box {
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
padding: 0.4em;
|
||||
margin: 0.4em;
|
||||
border: 1px solid #d9d9d9;
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
/* Box caption */
|
||||
.boxview div.box h2 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.6em;
|
||||
font-size: 0.8em;
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
||||
.boxview div.box h2:first-child {
|
||||
margin-top: 0.2em;
|
||||
padding-bottom: 0.5em;
|
||||
font-size: inherit;
|
||||
color: @colorTextDefault;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
}
|
||||
|
||||
.boxview div.box h2 > a {
|
||||
color: inherit;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
.boxview div.box h2 > a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.boxview div.box h2:first-child > a:hover {
|
||||
}
|
||||
|
||||
.boxview div.box h3 {
|
||||
line-height: 1.5em;
|
||||
font-size: 0.9em;
|
||||
color: #555;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
}
|
||||
|
||||
/* Box body of contents */
|
||||
.boxview div.box.contents {
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
.boxview div.box.contents table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.boxview div.box.contents td {
|
||||
width: 13em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Box separator */
|
||||
.boxview div.box-separator:first-child {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.boxview div.box-separator {
|
||||
font-size: 0.8em;
|
||||
padding: 0.4em 0 0.4em;
|
||||
border: 1px solid #d9d9d9;
|
||||
|
||||
font-weight: bold;
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
||||
/* Box entry */
|
||||
.boxview div.box.entry {
|
||||
min-height: 2.7em;
|
||||
margin: 0.2em;
|
||||
font-size: 0.9em;
|
||||
white-space: nowrap;
|
||||
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
||||
/* Any line of a box entry */
|
||||
.boxview div.box.entry a {
|
||||
display: block;
|
||||
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.boxview div.box.entry a:hover {
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
||||
/* First line of a box entry */
|
||||
.boxview div.box.entry a:first-child {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* End of generic box element */
|
||||
|
||||
|
||||
/* Monitoring box element styles */
|
||||
|
||||
/* Host- and Servicegroup element styles */
|
||||
|
||||
div.box.entry.state_up, div.box.entry.state_ok {
|
||||
border: 1px solid @colorOk;
|
||||
border-left: 1em solid @colorOk;
|
||||
}
|
||||
|
||||
div.box.entry.state_pending {
|
||||
border: 1px solid @colorPending;
|
||||
border-left: 1em solid @colorPending;
|
||||
}
|
||||
|
||||
div.box.entry.state_down, div.box.entry.state_critical {
|
||||
border: 1px solid @colorCritical;
|
||||
border-left: 1em solid @colorCritical;
|
||||
background-color: @colorCritical;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.box.entry.state_down a:hover, div.box.entry.state_critical a:hover {
|
||||
color: #dcdcdc;
|
||||
}
|
||||
|
||||
div.box.entry.state_warning {
|
||||
border: 1px solid @colorWarning;
|
||||
border-left: 1em solid @colorWarning;
|
||||
background-color: @colorWarning;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.box.entry.state_warning a:hover {
|
||||
color: #dcdcdc;
|
||||
}
|
||||
|
||||
div.box.entry.state_unreachable, div.box.entry.state_unknown {
|
||||
border: 1px solid @colorUnknown;
|
||||
border-left: 1em solid @colorUnknown;
|
||||
background-color: @colorUnknown;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.box.entry.state_unreachable a:hover, div.box.entry.state_unknown a:hover {
|
||||
color: #dcdcdc;
|
||||
}
|
||||
|
||||
div.box.entry.handled {
|
||||
background-color: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
div.box.entry.handled a:hover {
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
||||
/* Tactical overview element styles */
|
||||
|
||||
.tactical > .boxview > div.box {
|
||||
min-height: 20em;
|
||||
min-width: 12.1em;
|
||||
}
|
||||
|
||||
.tactical div.box.contents {
|
||||
min-height: 14.5em;
|
||||
}
|
||||
|
||||
div.box.contents.zero {
|
||||
min-width: 11.1em;
|
||||
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
div.box.contents.zero span {
|
||||
font-weight: bold;
|
||||
line-height: 2em;
|
||||
|
||||
color: #666;
|
||||
}
|
||||
|
||||
div.box.contents.zero h3 {
|
||||
margin: 0;
|
||||
font-size: 12em;
|
||||
line-height: 1em;
|
||||
|
||||
color: #666;
|
||||
}
|
||||
|
||||
div.box.ok_hosts.state_up {
|
||||
border: 5px solid @colorOk;
|
||||
}
|
||||
|
||||
div.box.ok_hosts.state_pending {
|
||||
background-color: @colorPending;
|
||||
}
|
||||
|
||||
div.box.problem_hosts.state_down {
|
||||
border: 5px solid @colorCritical;
|
||||
}
|
||||
|
||||
div.box.problem_hosts.state_down.handled {
|
||||
background-color: @colorCriticalHandled;
|
||||
}
|
||||
|
||||
div.box.problem_hosts.state_unreachable {
|
||||
background-color: @colorUnreachable;
|
||||
}
|
||||
|
||||
div.box.problem_hosts.state_unreachable.handled {
|
||||
background-color: @colorUnreachableHandled;
|
||||
}
|
||||
|
||||
div.box.ok_hosts div.box.entry, div.box.problem_hosts div.box.entry {
|
||||
min-width: 11.1em;
|
||||
}
|
||||
|
||||
div.box.monitoringfeatures div.box.contents {
|
||||
padding: 0 2 0em;
|
||||
}
|
||||
|
||||
div.box.monitoringfeatures {
|
||||
border: 5px solid #d9d9d9;
|
||||
}
|
||||
|
||||
div.box.monitoringfeatures div.box-separator {
|
||||
color: white;
|
||||
background-color: @colorOk;
|
||||
}
|
||||
|
||||
div.box.monitoringfeatures div.feature-highlight {
|
||||
background-color: @colorCritical;
|
||||
}
|
||||
|
||||
div.box.monitoringfeatures a.feature-highlight {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.box.hostservicechecks {
|
||||
border: 5px solid #d9d9d9;
|
||||
}
|
||||
|
||||
/* Contactgroup element styles */
|
||||
|
||||
div.box.contactgroup {
|
||||
width: 18em;
|
||||
padding: 0.8em;
|
||||
}
|
||||
|
||||
div.box.contactgroup div.box.contents {
|
||||
padding: 0.6em;
|
||||
}
|
||||
|
||||
div.box.contactgroup div.box.entry {
|
||||
overflow: hidden;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
div.box.contactgroup div.box.entry img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
float: left;
|
||||
|
||||
}
|
||||
|
||||
div.box.contactgroup div.box.entry a {
|
||||
margin-top: 0.4em;
|
||||
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.box.contactgroup div.box.entry p {
|
||||
margin: 0.4em 0 0;
|
||||
}
|
||||
|
||||
div.circular {
|
||||
margin-top: 0.5em;
|
||||
margin-left: 2em;
|
||||
margin-right: 1em;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
float: left;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
/* End of monitoring box element styles */
|
||||
|
||||
|
||||
/* Monitoring pivot table styles */
|
||||
|
||||
div.pivot-pagination {
|
||||
margin: 1em;
|
||||
|
||||
table {
|
||||
table-layout: fixed;
|
||||
border-spacing: 1px;
|
||||
border-collapse: separate;
|
||||
border: 1px solid LightGrey;
|
||||
border-radius: 0.3em;
|
||||
|
||||
td {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding: 0;
|
||||
background-color: #fbfbfb;
|
||||
|
||||
&:hover, &.active {
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
a {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table.joystick-pagination {
|
||||
margin-top: -1.5em;
|
||||
|
||||
td {
|
||||
width: 1.25em;
|
||||
height: 1.3em;
|
||||
}
|
||||
}
|
||||
|
||||
table.pivot {
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
|
||||
&:hover {
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
}
|
||||
|
||||
& > thead {
|
||||
th {
|
||||
height: 6em;
|
||||
|
||||
div {
|
||||
margin-right: -1.5em;
|
||||
padding-left: 1.3em;
|
||||
|
||||
span {
|
||||
width: 1.5em;
|
||||
margin-right: 0.25em;
|
||||
margin-top: 4em;
|
||||
line-height: 2em;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
float: left;
|
||||
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: bottom left;
|
||||
-o-transform: rotate(-45deg);
|
||||
-o-transform-origin: bottom left;
|
||||
-ms-transform: rotate(-45deg);
|
||||
-ms-transform-origin: bottom left;
|
||||
-moz-transform: rotate(-45deg);
|
||||
-moz-transform-origin: bottom left;
|
||||
-webkit-transform: rotate(-45deg);
|
||||
-webkit-transform-origin: bottom left;
|
||||
//filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
|
||||
|
||||
abbr {
|
||||
border: 0; // Remove highlighting in firefox
|
||||
font-size: 0.8em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > tbody {
|
||||
th {
|
||||
padding: 0 14px 0 0;
|
||||
white-space: nowrap;
|
||||
|
||||
a {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 2px;
|
||||
min-width: 1.5em;
|
||||
line-height: 1.5em;
|
||||
text-align: center;
|
||||
|
||||
a {
|
||||
width: 1.5em;
|
||||
height: 1.5em;
|
||||
display: block;
|
||||
border-radius: 0.5em;
|
||||
|
||||
&.state_ok {
|
||||
background-color: @colorOk;
|
||||
}
|
||||
|
||||
&.state_pending {
|
||||
background-color: @colorPending;
|
||||
}
|
||||
|
||||
&.state_warning {
|
||||
background-color: @colorWarning;
|
||||
|
||||
&.handled {
|
||||
background-color: @colorWarningHandled;
|
||||
}
|
||||
}
|
||||
|
||||
&.state_critical {
|
||||
background-color: @colorCritical;
|
||||
|
||||
&.handled {
|
||||
background-color: @colorCriticalHandled;
|
||||
}
|
||||
}
|
||||
|
||||
&.state_unknown {
|
||||
background-color: @colorUnknown;
|
||||
|
||||
&.handled {
|
||||
background-color: @colorUnknownHandled;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* End of monitoring pivot table styles */
|
||||
|
||||
/* Monitoring timeline styles */
|
||||
|
||||
div.timeline-legend {
|
||||
float: left;
|
||||
padding: 0.5em;
|
||||
border: 1px solid #d9d9d9;
|
||||
background-color: #eee;
|
||||
|
||||
h2 {
|
||||
margin: 0;
|
||||
margin-left: 0.5em;
|
||||
line-height: 1.1em;
|
||||
}
|
||||
|
||||
& > span {
|
||||
display: inline-block;
|
||||
padding: 0.5em;
|
||||
margin: 0.5em;
|
||||
|
||||
span {
|
||||
color: white;
|
||||
font-size: 0.8em;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.timeline {
|
||||
div.timeframe {
|
||||
height: 7em;
|
||||
margin-bottom: 1em;
|
||||
clear: left;
|
||||
|
||||
span {
|
||||
width: 8em;
|
||||
margin-top: 2.3em;
|
||||
margin-right: 1.5em;
|
||||
display: block;
|
||||
float: left;
|
||||
text-align: center;
|
||||
|
||||
a {
|
||||
color: @colorTextDefault;
|
||||
font-size: 0.8em;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
|
||||
&:hover {
|
||||
color: @colorTextDefault;
|
||||
text-decoration: underline;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.circle-box {
|
||||
// width: inline-style;
|
||||
height: 100%;
|
||||
margin-right: 0.5em;
|
||||
position: relative;
|
||||
float: left;
|
||||
|
||||
div.outer-circle {
|
||||
// width: inline-style;
|
||||
// height: inline-style;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
// margin-top: inline-style;
|
||||
|
||||
&.extrapolated {
|
||||
border-width: 2px;
|
||||
border-style: dotted;
|
||||
//border-color: inline-style;
|
||||
border-radius: 100%;
|
||||
// background-color: inline-style;
|
||||
}
|
||||
|
||||
a.inner-circle {
|
||||
// width: inline-style;
|
||||
// height: inline-style;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
// margin-top: inline-style;
|
||||
// margin-left: inline-style;
|
||||
border-radius: 100%;
|
||||
// background-color: inline-style;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
height: 1px;
|
||||
background-image: linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.3), rgba(0,0,0,0));
|
||||
background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.3), rgba(0,0,0,0));
|
||||
background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.3), rgba(0,0,0,0));
|
||||
background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.3), rgba(0,0,0,0));
|
||||
background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.3), rgba(0,0,0,0));
|
||||
}
|
||||
}
|
||||
|
||||
/* End of monitoring timeline styles */
|
||||
|
||||
/* Monitoring groupsummary styles */
|
||||
|
||||
.dashboard table.groupview {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
table.groupview {
|
||||
width: 100%;
|
||||
margin-top: 1em;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0.1em;
|
||||
|
||||
th {
|
||||
font-size: 0.9em;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
td {
|
||||
&.groupname {
|
||||
width: 60%;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.total {
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
&.state {
|
||||
width: 20%;
|
||||
white-space: nowrap;
|
||||
|
||||
&.change {
|
||||
width: 10%;
|
||||
text-align: center;
|
||||
border-left-width: 1.5em;
|
||||
border-left-style: solid;
|
||||
padding: 0.3em 0.5em 0.3em 0.5em;
|
||||
|
||||
strong {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
span.timesince {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
&.ok {
|
||||
border-color: @colorOk;
|
||||
}
|
||||
|
||||
&.pending {
|
||||
border-color: @colorPending;
|
||||
}
|
||||
|
||||
&.warning {
|
||||
border-color: @colorWarningHandled;
|
||||
|
||||
&.unhandled {
|
||||
color: white;
|
||||
border-left-width: 0;
|
||||
background-color: @colorWarning;
|
||||
}
|
||||
}
|
||||
|
||||
&.unknown {
|
||||
border-color: @colorUnknownHandled;
|
||||
|
||||
&.unhandled {
|
||||
color: white;
|
||||
border-left-width: 0;
|
||||
background-color: @colorUnknown;
|
||||
}
|
||||
}
|
||||
|
||||
&.critical {
|
||||
border-color: @colorCriticalHandled;
|
||||
|
||||
&.unhandled {
|
||||
color: white;
|
||||
border-left-width: 0;
|
||||
background-color: @colorCritical;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span.state {
|
||||
&.handled {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: 0.9em;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* End of monitoring groupsummary styles */
|
||||
|
||||
/* compact table */
|
||||
table.statesummary {
|
||||
text-align: left;
|
||||
width: auto;
|
||||
border-collapse: separate;
|
||||
|
||||
tr.state td.state {
|
||||
width: auto;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: 0.9em;
|
||||
line-height: 1.2em;
|
||||
padding-left: 0.2em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
td.state {
|
||||
padding: 0.2em;
|
||||
min-width: 75px;
|
||||
font-size: 0.75em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
td.name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
|
@ -42,10 +42,15 @@
|
|||
|
||||
// Set first links href in a action table tr as row href:
|
||||
$('table.action tr', el).each(function(idx, el) {
|
||||
var $a = $('a[href]', el).first();
|
||||
var $a = $('a[href].rowaction', el).first();
|
||||
if ($a.length) {
|
||||
// TODO: Find out whether we leak memory on IE with this:
|
||||
$(el).attr('href', $a.attr('href'));
|
||||
return;
|
||||
}
|
||||
$a = $('a[href]', el).first();
|
||||
if ($a.length) {
|
||||
$(el).attr('href', $a.attr('href'));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue