mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-29 08:44:10 +02:00
commit
ea2a17a76c
@ -66,6 +66,7 @@ class ConfigController extends ActionController
|
||||
$allowedActions[] = 'roles';
|
||||
}
|
||||
$this->firstAllowedAction = array_shift($allowedActions);
|
||||
$this->getTabs()->setTitle($this->translate('Config Navigation'));
|
||||
}
|
||||
|
||||
public function devtoolsAction()
|
||||
|
@ -45,6 +45,7 @@ class RolesController extends ActionController
|
||||
'title' => $this->translate('Roles'),
|
||||
'url' => 'roles'
|
||||
));
|
||||
$this->getTabs()->setTitle($this->translate('Role Configuration'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,10 +1,9 @@
|
||||
<div class="controls" data-base-target="_main">
|
||||
<?= $this->tabs->render($this); ?>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="application-configuration">
|
||||
<?= t('Generic Configuration'); ?>
|
||||
<h1 tabindex="-1" id="application-configuration">
|
||||
<?= $this->translate('Generic Configuration'); ?>
|
||||
</h1>
|
||||
<?php if (isset($this->messageBox)): ?>
|
||||
<?= $this->messageBox->render() ?>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<?= $this->tabs->showOnlyCloseButton() ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="authentication-create">
|
||||
<h1 tabindex="-1" id="authentication-create">
|
||||
<?= $this->translate('Create New Authentication Backend'); ?>
|
||||
</h1>
|
||||
<p>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<?= $this->tabs->showOnlyCloseButton() ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="authentication-modify">
|
||||
<h1 tabindex="-1" id="authentication-modify">
|
||||
<?= $this->translate('Edit Backend'); ?>
|
||||
</h1>
|
||||
<div>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<?= $this->tabs->showOnlyCloseButton() ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="authentication-remove">
|
||||
<h1 tabindex="-1" id="authentication-remove">
|
||||
<?= $this->translate('Remove Backend'); ?>
|
||||
</h1>
|
||||
<div>
|
||||
|
@ -2,21 +2,10 @@
|
||||
<?= $tabs; ?>
|
||||
</div>
|
||||
<div class="content" data-base-target="_next">
|
||||
<h1 tabindex="0" id="authentication-reorder">
|
||||
<?= t('Authentication Configuration'); ?>
|
||||
<h1 tabindex="-1" id="authentication-reorder">
|
||||
<?= $this->translate('Authentication Configuration'); ?>
|
||||
</h1>
|
||||
<div class="skip-links skip-links-inline">
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<a tabindex="0" href="#authentication-reorder-form">
|
||||
<?= t('Skip To Authentication Reorder Form'); ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<h2 tabindex="0" id="authentication-new-backend" class="sr-only">
|
||||
<h2 tabindex="-1" id="authentication-new-backend" class="sr-only">
|
||||
<?= t('New Authentication Backend'); ?>
|
||||
</h2>
|
||||
<p>
|
||||
@ -24,7 +13,7 @@
|
||||
<?= $this->icon('plus'); ?><?= $this->translate('Create A New Authentication Backend'); ?>
|
||||
</a>
|
||||
</p>
|
||||
<h2 tabindex="0" id="authentication-reorder" class="sr-only">
|
||||
<h2 tabindex="-1" id="authentication-reorder" class="sr-only">
|
||||
<?= t('Reorder Authentication Backends'); ?>
|
||||
</h2>
|
||||
<div id="authentication-reorder-form">
|
||||
|
@ -1,8 +1,10 @@
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<h1><?= $this->escape($module->getTitle()) ?></h1>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="-1">
|
||||
<?= $this->escape($module->getTitle()) ?>
|
||||
</h1>
|
||||
<?php if (! $module): ?>
|
||||
<?= $this->translate('There is no such module installed.') ?>
|
||||
<?php return; endif ?>
|
||||
@ -11,7 +13,6 @@ $dependencies = $module->getDependencies();
|
||||
$restrictions = $module->getProvidedRestrictions();
|
||||
$permissions = $module->getProvidedPermissions();
|
||||
$state = $moduleData->enabled ? ($moduleData->loaded ? 'enabled' : 'failed') : 'disabled'
|
||||
|
||||
?>
|
||||
<table class="avp">
|
||||
<tr>
|
||||
@ -40,31 +41,34 @@ $state = $moduleData->enabled ? ($moduleData->loaded ? 'enabled' : 'failed') : '
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?= $this->escape($this->translate('Dependencies')) ?></th>
|
||||
<td><?php
|
||||
|
||||
<td>
|
||||
<?php
|
||||
if (empty($dependencies)):
|
||||
echo $this->translate('This module has no dependencies');
|
||||
|
||||
else: foreach ($dependencies as $name => $versionString): ?>
|
||||
<strong><?= $this->escape($name) ?></strong><?php if ($versionString !== true): ?>: <?= $this->escape($versionString) ?><?php endif ?><br />
|
||||
<?php endforeach; endif ?></td>
|
||||
<?php endforeach; endif ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if (! empty($permissions)): ?>
|
||||
<tr>
|
||||
<th><?= $this->escape($this->translate('Permissions')) ?></th>
|
||||
<td><?php foreach ($permissions as $permission): ?>
|
||||
<td>
|
||||
<?php foreach ($permissions as $permission): ?>
|
||||
<strong><?= $this->escape($permission->name) ?></strong>: <?= $this->escape($permission->description) ?><br />
|
||||
<?php endforeach ?></td>
|
||||
<?php endforeach ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif ?>
|
||||
<?php if (! empty($restrictions)): ?>
|
||||
<tr>
|
||||
<th><?= $this->escape($this->translate('Restrictions')) ?></th>
|
||||
<td><?php foreach ($restrictions as $restriction): ?>
|
||||
<td>
|
||||
<?php foreach ($restrictions as $restriction): ?>
|
||||
<strong><?= $this->escape($restriction->name) ?></strong>: <?= $this->escape($restriction->description) ?><br />
|
||||
<?php endforeach ?></td>
|
||||
<?php endforeach ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif ?>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<h1><?= $this->translate('Installed Modules') ?></h1>
|
||||
<?= $this->paginationControl($modules) ?>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h1 tabindex="-1"><?= $this->translate('Installed Modules') ?></h1>
|
||||
<table class="action" data-base-target="_next">
|
||||
<tbody>
|
||||
<?php foreach ($modules as $module): ?>
|
||||
|
@ -2,21 +2,10 @@
|
||||
<?= $tabs; ?>
|
||||
</div>
|
||||
<div class="content" data-base-target="_next">
|
||||
<h1 tabindex="0" id="resource-index">
|
||||
<h1 tabindex="-1" id="resource-index">
|
||||
<?= t('Resource Configuration'); ?>
|
||||
</h1>
|
||||
<div class="skip-links skip-links-inline">
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<a tabindex="0" href="#resource-edit-table">
|
||||
<?= t('Skip To Existing Resources'); ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<h2 tabindex="0" id="resource-new-resource" class="sr-only">
|
||||
<h2 tabindex="-1" id="resource-new-resource" class="sr-only">
|
||||
<?= t('Create New Resource'); ?>
|
||||
</h2>
|
||||
<p>
|
||||
@ -24,7 +13,7 @@
|
||||
<?= $this->icon('plus'); ?> <?= $this->translate('Create A New Resource'); ?>
|
||||
</a>
|
||||
</p>
|
||||
<h2 tabindex="0" id="resource-edit-resource" class="sr-only">
|
||||
<h2 tabindex="-1" id="resource-edit-resource" class="sr-only">
|
||||
<?= t('Edit Existing Resources'); ?>
|
||||
</h2>
|
||||
<table class="action" id="resource-edit-table">
|
||||
|
@ -2,7 +2,7 @@
|
||||
<?= $this->tabs->showOnlyCloseButton() ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="resource-create">
|
||||
<h1 tabindex="-1" id="resource-create">
|
||||
<?= $this->translate('Create A New Resource'); ?>
|
||||
</h1>
|
||||
<p><?= $this->translate('Resources are entities that provide data to Icinga Web 2.'); ?></p>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<?= $this->tabs->showOnlyCloseButton() ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="resource-edit">
|
||||
<h1 tabindex="-1" id="resource-edit">
|
||||
<?= $this->translate('Edit Existing Resource'); ?>
|
||||
</h1>
|
||||
<div>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<?= $this->tabs->showOnlyCloseButton() ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="0" id="resource-remove">
|
||||
<h1 tabindex="-1" id="resource-remove">
|
||||
<?= $this->translate('Remove Existing Resource'); ?>
|
||||
</h1>
|
||||
<div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="controls">
|
||||
<?= $tabs; ?>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h1 tabindex="-1" id="preferences"><?= $this->translate('Preferences'); ?></h1>
|
||||
<?= $form; ?>
|
||||
</div>
|
@ -1,8 +1,10 @@
|
||||
<div class="controls" data-base-target="_main">
|
||||
<?= $tabs ?>
|
||||
<h1><?= $this->translate('Roles') ?></h1>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="-1" id="roles-index">
|
||||
<?= $this->translate('Roles') ?>
|
||||
</h1>
|
||||
<div>
|
||||
<?php /** @var \Icinga\Application\Config $roles */ if ($roles->isEmpty()): ?>
|
||||
<?= $this->translate('No roles found.') ?>
|
||||
@ -64,6 +66,9 @@
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
<h2 tabindex="-1" id="roles-index-new" class="sr-only">
|
||||
<?= $this->translate('Create New Role'); ?>
|
||||
</h2>
|
||||
<a data-base-target="_next" href="<?= $this->href('roles/new') ?>">
|
||||
<?= $this->translate('New Role') ?>
|
||||
</a>
|
||||
|
@ -1,7 +1,9 @@
|
||||
<div class="controls">
|
||||
<?= $tabs->showOnlyCloseButton() ?>
|
||||
<h1><?= $this->translate('New Role') ?></h1>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="-1" id="roles-new">
|
||||
<?= $this->translate('New Role') ?>
|
||||
</h1>
|
||||
<?= $form ?>
|
||||
</div>
|
||||
|
@ -1,7 +1,9 @@
|
||||
<div class="controls">
|
||||
<?= $tabs->showOnlyCloseButton() ?>
|
||||
<h1><?= sprintf($this->translate('Remove Role %s'), $name) ?></h1>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="-1" id="roles-remove">
|
||||
<?= sprintf($this->translate('Remove Role %s'), $name) ?>
|
||||
</h1>
|
||||
<?= $form ?>
|
||||
</div>
|
||||
|
@ -1,7 +1,9 @@
|
||||
<div class="controls">
|
||||
<?= $tabs->showOnlyCloseButton() ?>
|
||||
<h1><?= sprintf($this->translate('Update Role %s'), $name) ?></h1>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 tabindex="-1" id="roles-update">
|
||||
<?= sprintf($this->translate('Update Role %s'), $name) ?>
|
||||
</h1>
|
||||
<?= $form ?>
|
||||
</div>
|
||||
|
@ -676,9 +676,9 @@ class FilterEditor extends AbstractWidget
|
||||
public function render()
|
||||
{
|
||||
if (! $this->preservedUrl()->getParam('modifyFilter')) {
|
||||
return $this->renderSearch() . $this->shorten($this->filter, 50);
|
||||
}
|
||||
return $this->renderSearch()
|
||||
$filterEditor = $this->renderSearch() . $this->shorten($this->filter, 50);
|
||||
} else {
|
||||
$filterEditor = $this->renderSearch()
|
||||
. '<form action="'
|
||||
. Url::fromRequest()
|
||||
. '" class="filterEditor" method="POST">'
|
||||
@ -692,6 +692,14 @@ class FilterEditor extends AbstractWidget
|
||||
. '</form>';
|
||||
}
|
||||
|
||||
return sprintf(
|
||||
'<div class="filter-editor dontprint">'
|
||||
. '<h2 tabindex="-1" class="sr-only">%s</h2>%s</div>',
|
||||
t('Filters'),
|
||||
$filterEditor
|
||||
);
|
||||
}
|
||||
|
||||
protected function shorten($string, $length)
|
||||
{
|
||||
if (strlen($string) > $length) {
|
||||
|
@ -133,6 +133,13 @@ class SortBox extends AbstractWidget
|
||||
if ($this->request) {
|
||||
$form->populate($this->request->getParams());
|
||||
}
|
||||
return $form;
|
||||
|
||||
return sprintf(
|
||||
'<div class="sort-box dontprint">'
|
||||
. '<h2 tabindex="-1" class="sr-only">%s</h2>%s%s</div>',
|
||||
t('Sort Criteria'),
|
||||
t('Sort by'),
|
||||
(string) $form
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ class Tabs extends AbstractWidget implements Countable
|
||||
* @var string
|
||||
*/
|
||||
private $baseTpl = <<< 'EOT'
|
||||
{HEADER}
|
||||
<ul class="tabs">
|
||||
{TABS}
|
||||
{DROPDOWN}
|
||||
@ -26,6 +27,13 @@ class Tabs extends AbstractWidget implements Countable
|
||||
</ul>
|
||||
EOT;
|
||||
|
||||
/**
|
||||
* Template used for the header
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
private $headerTpl = '<h2 class="sr-only">{TITLE}</h2>';
|
||||
|
||||
/**
|
||||
* Template used for the tabs dropdown
|
||||
*
|
||||
@ -87,6 +95,13 @@ EOT;
|
||||
*/
|
||||
private $closeTab = true;
|
||||
|
||||
/**
|
||||
* Title of the tab navigation
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
private $title;
|
||||
|
||||
/**
|
||||
* Set whether the current tab is closable
|
||||
*/
|
||||
@ -309,11 +324,21 @@ EOT;
|
||||
}
|
||||
$close = $this->closeTab ? $this->renderCloseTab() : '';
|
||||
|
||||
$html = $this->baseTpl;
|
||||
$html = str_replace('{TABS}', $tabs, $html);
|
||||
$html = str_replace('{DROPDOWN}', $drop, $html);
|
||||
$html = str_replace('{CLOSE}', $close, $html);
|
||||
return $html;
|
||||
return str_replace(
|
||||
array(
|
||||
'{TABS}',
|
||||
'{DROPDOWN}',
|
||||
'{CLOSE}',
|
||||
'{HEADER}'
|
||||
),
|
||||
array(
|
||||
$tabs,
|
||||
$drop,
|
||||
$close,
|
||||
$this->renderHeader()
|
||||
),
|
||||
$this->baseTpl
|
||||
);
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
@ -372,4 +397,30 @@ EOT;
|
||||
$tabextension->apply($this);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the title of the tab navigation
|
||||
*
|
||||
* @param string $title
|
||||
* @return self
|
||||
*/
|
||||
public function setTitle($title)
|
||||
{
|
||||
$this->title = $title;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the title into the header template
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function renderHeader()
|
||||
{
|
||||
if (! $this->title) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return str_replace('{TITLE}', $this->title, $this->headerTpl);
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,8 @@ class Monitoring_AlertsummaryController extends Controller
|
||||
|
||||
$this->notificationData = $this->createNotificationData();
|
||||
$this->problemData = $this->createProblemData();
|
||||
|
||||
$tabs->setTitle($this->translate('Alertsummary Navigation'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -717,6 +717,7 @@ class Monitoring_ListController extends Controller
|
||||
private function createTabs()
|
||||
{
|
||||
$tabs = $this->getTabs();
|
||||
$tabs->setTitle($this->translate('Monitoring Navigation'));
|
||||
if (in_array($this->_request->getActionName(), array(
|
||||
'hosts',
|
||||
'services',
|
||||
|
@ -25,7 +25,7 @@ class Monitoring_ProcessController extends Controller
|
||||
'title' => $this->translate('Monitoring Health'),
|
||||
'url' =>'monitoring/process/info'
|
||||
)
|
||||
);
|
||||
)->setTitle($this->translate('Process Information'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -19,7 +19,8 @@ class Monitoring_TimelineController extends Controller
|
||||
$this->getTabs()->add($action, array(
|
||||
'title' => $title,
|
||||
'url' => Url::fromRequest()
|
||||
))->activate($action);
|
||||
))->activate($action)
|
||||
->setTitle($this->translate('Timeline Navigation'));
|
||||
$this->view->title = $title;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<h2 tabindex="-1" class="sr-only">
|
||||
<?= $this->translate('Filters'); ?>
|
||||
</h2>
|
||||
<?= $intervalBox; ?>
|
||||
</div>
|
||||
<?= $this->widget('limiter') ?>
|
||||
@ -8,25 +11,33 @@
|
||||
</div>
|
||||
|
||||
<div class="content alertsummary">
|
||||
<!-- <h1><?= $this->translate('Alert summary'); ?></h1> -->
|
||||
<h1 tabindex="-1">
|
||||
<?= $this->translate('Alert summary'); ?>
|
||||
</h1>
|
||||
|
||||
<div class="hbox">
|
||||
<div class="hbox-item">
|
||||
<h2><?= $this->translate('Notifications and Problems'); ?></h2>
|
||||
<h2 tabindex="-1" id="alertsummary-notifications">
|
||||
<?= $this->translate('Notifications and Problems'); ?>
|
||||
</h2>
|
||||
<div style="width: 400px; height: 400px;">
|
||||
<?= $defectChart->render(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hbox-item">
|
||||
<h2><?= $this->translate('Time to Reaction (Ack, Recover)'); ?></h2>
|
||||
<h2 tabindex="-1" id="alertsummary-reaction-time">
|
||||
<?= $this->translate('Time to Reaction (Ack, Recover)'); ?>
|
||||
</h2>
|
||||
<div style="width: 400px; height: 400px;">
|
||||
<?= $healingChart->render(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2><?= $this->translate('Trend'); ?></h2>
|
||||
<h2 tabindex="-1" id="alertsummary-trend">
|
||||
<?= $this->translate('Trend'); ?>
|
||||
</h2>
|
||||
|
||||
<div class="alertsummary-flex-container">
|
||||
<div class="alertsummary-flex">
|
||||
@ -53,7 +64,9 @@
|
||||
</div>
|
||||
|
||||
<?php if ($this->recentAlerts): ?>
|
||||
<h1><?= $this->translate('Top 5 Recent Alerts'); ?></h1>
|
||||
<h2 tabindex="-1" id="alertsummary-top5">
|
||||
<?= $this->translate('Top 5 Recent Alerts'); ?>
|
||||
</h2>
|
||||
|
||||
<div class="alertsummary-flex-container">
|
||||
<div class="alertsummary-flex">
|
||||
@ -66,7 +79,9 @@
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h1><?= $this->translate('History'); ?></h1>
|
||||
<h2 tabindex="-1" id="alertsummary-history">
|
||||
<?= $this->translate('History'); ?>
|
||||
</h2>
|
||||
<div class="alertsummary-flex-container">
|
||||
<div class="alertsummary-flex">
|
||||
<?= $this->partial('list/notifications.phtml', array(
|
||||
|
@ -3,6 +3,7 @@
|
||||
<?= $this->render('partials/host/servicesummary.phtml') ?>
|
||||
</div>
|
||||
<div class="content" data-base-target="_next">
|
||||
<h1 tabindex="-1"><?= $this->translate('Host Detail Information') ?></h1>
|
||||
<?= $this->render('show/components/output.phtml') ?>
|
||||
<?= $this->render('show/components/grapher.phtml') ?>
|
||||
|
||||
|
@ -1,15 +1,14 @@
|
||||
<?php if (false === $this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs->render($this); ?>
|
||||
<div style="margin: 1em" class="dontprint">
|
||||
<?= $this->translate('Sort by'); ?> <?= $this->sortControl->render($this); ?>
|
||||
</div>
|
||||
<?= $this->tabs ?>
|
||||
<?= $this->sortControl ?>
|
||||
<?= $this->widget('limiter', array('url' => $this->url, 'max' => $comments->count())); ?>
|
||||
<?= $this->paginationControl($comments, null, null, array('preserve' => $this->preserve)); ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="content">
|
||||
<h1 tabindex="-1"><?= $this->translate('Comments') ?></h1>
|
||||
<?php if (count($comments) === 0): ?>
|
||||
<?= $this->translate('No comments matching the filter'); ?>
|
||||
</div>
|
||||
|
@ -4,6 +4,9 @@
|
||||
</div>
|
||||
<?php endif ?>
|
||||
<div class="content">
|
||||
<h1 tabindex="-1">
|
||||
<?= $this->translate('Contact Groups'); ?>
|
||||
</h1>
|
||||
<div class="boxview" data-base-target="_next">
|
||||
|
||||
<?php
|
||||
|
@ -1,12 +1,14 @@
|
||||
<?php if (false === $this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div style="margin: 1em">
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
</div>
|
||||
<?= $this->sortControl ?>
|
||||
<?= $this->widget('limiter', array('url' => $this->url, 'max' => $contacts->count())); ?>
|
||||
<?= $this->paginationControl($contacts, null, null, array('preserve' => $this->preserve)); ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div data-base-target="_next" class="content contacts">
|
||||
<h1 tabindex="-1"><?= $this->translate('Contacts') ?></h1>
|
||||
<?php
|
||||
if (count($contacts) === 0) {
|
||||
echo mt('monitoring', 'No contacts matching the filter');
|
||||
|
@ -4,23 +4,17 @@ use Icinga\Module\Monitoring\Object\Host;
|
||||
use Icinga\Module\Monitoring\Object\Service;
|
||||
|
||||
?>
|
||||
|
||||
<?php if (false === $this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs->render($this); ?>
|
||||
<div style="margin: 1em" class="dontprint">
|
||||
<?= $this->translate('Sort by'); ?> <?= $this->sortControl->render($this); ?>
|
||||
<?php if (! $this->filterEditor): ?>
|
||||
<?= $this->filterPreview ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?= $this->tabs ?>
|
||||
<?= $this->sortControl ?>
|
||||
<?= $this->widget('limiter', array('url' => $this->url, 'max' => $downtimes->count())); ?>
|
||||
<?= $this->paginationControl($downtimes, null, null, array('preserve' => $this->preserve)); ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="content">
|
||||
<?= $this->filterEditor ?>
|
||||
<h1 tabindex="-1"><?= $this->translate('Downtimes'); ?></h1>
|
||||
<?php if (count($downtimes) === 0): ?>
|
||||
<?= $this->translate('No active downtimes'); ?>
|
||||
</div>
|
||||
|
@ -2,18 +2,21 @@
|
||||
use Icinga\Data\Filter\Filter;
|
||||
use Icinga\Web\Widget\Chart\HistoryColorGrid;
|
||||
?>
|
||||
|
||||
|
||||
<? if (! $compact): ?>
|
||||
<?php if (! $compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs->render($this); ?>
|
||||
<div class="fake-controls">
|
||||
<h2 tabindex="-1" class="sr-only">
|
||||
<?= $this->translate('Filters'); ?>
|
||||
</h2>
|
||||
<?= $form ?>
|
||||
</div>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
|
||||
<div class="content" data-base-target="_next">
|
||||
<h1 tabindex="-1"><?= $this->translate('Event Grid'); ?></h1>
|
||||
<?php else: ?>
|
||||
<div class="content" data-base-target="_next">
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
|
||||
$settings = array(
|
||||
|
@ -4,24 +4,21 @@ use Icinga\Module\Monitoring\Object\Host;
|
||||
use Icinga\Module\Monitoring\Object\Service;
|
||||
|
||||
?>
|
||||
|
||||
<?php if (false === $this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div style="margin: 1em" class="dontprint">
|
||||
<div style="float: right">
|
||||
<?= $this->translate('Sort by') ?> <?= $this->sortControl ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?= $this->sortControl ?>
|
||||
<?= $this->widget('limiter', array('url' => $this->url, 'max' => $this->history->count())); ?>
|
||||
<?= $this->paginationControl($history, null, null, array('preserve' => $this->preserve)); ?>
|
||||
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="content">
|
||||
<?= $this->filterEditor ?>
|
||||
<h1 tabindex="-1"><?= $this->translate('Event History') ?></h1>
|
||||
<?php else: ?>
|
||||
<div class="content">
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<?php if (empty($history)): ?>
|
||||
<?= $this->translate('No history events matching the filter') ?>
|
||||
</div>
|
||||
|
@ -3,14 +3,13 @@
|
||||
<?php else: ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<?= $this->translate('Sort by'); ?> <?= $this->sortControl->render($this); ?>
|
||||
</div>
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
<?= $this->widget('limiter')->setMaxLimit(count($hostgroups)); ?>
|
||||
<?= $this->paginationControl($hostgroups, null, null, array('preserve' => $this->preserve)); ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<?= $this->filterEditor; ?>
|
||||
<h1 tabindex="-1"><?= $this->translate('Host Groups') ?></h1>
|
||||
<?php endif ?>
|
||||
<?php
|
||||
if (count($hostgroups) === 0) {
|
||||
|
@ -9,9 +9,8 @@ if ($this->compact): ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<?= $this->render('list/components/selectioninfo.phtml') ?>
|
||||
<?= $this->render('list/components/hostssummary.phtml') ?>
|
||||
<?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?>
|
||||
</div>
|
||||
|
||||
<?= $this->sortControl->render($this) ?>
|
||||
<?= $this->widget('limiter')->setMaxLimit($this->hosts->count()) ?>
|
||||
<?= $this->paginationControl($hosts, null, null, array('preserve' => $this->preserve)) ?>
|
||||
<?= $this->selectionToolbar('multi', $this->href('monitoring/hosts/show?' . $this->filter->toQueryString())) ?>
|
||||
@ -19,6 +18,7 @@ if ($this->compact): ?>
|
||||
|
||||
<div class="content">
|
||||
<?= $this->filterEditor ?>
|
||||
<h1 tabindex="-1"><?= $this->translate('Hosts') ?></h1>
|
||||
<?php
|
||||
|
||||
endif;
|
||||
@ -31,7 +31,6 @@ if ($hosts->count() === 0) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
|
||||
<table
|
||||
data-base-target="_next"
|
||||
class="action multiselect"
|
||||
|
@ -4,19 +4,18 @@ use Icinga\Module\Monitoring\Object\Host;
|
||||
use Icinga\Module\Monitoring\Object\Service;
|
||||
|
||||
?>
|
||||
|
||||
<?php if (! $this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div class="dontprint" style="margin: 1em;">
|
||||
<?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?>
|
||||
</div>
|
||||
<?= $this->sortControl->render($this) ?>
|
||||
<?= $this->widget('limiter') ?>
|
||||
<?= $this->paginationControl($notifications, null, null, array('preserve' => $this->preserve)) ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="content">
|
||||
<h1 tabindex="-1"><?= $this->translate('Notifications'); ?></h1>
|
||||
<?php else: ?>
|
||||
<div class="content">
|
||||
<?php endif ?>
|
||||
<?php if (count($notifications) === 0): ?>
|
||||
<?= $this->translate('No notifications matching the filter') ?>
|
||||
<?php return; endif ?>
|
||||
|
@ -6,12 +6,11 @@ use Icinga\Module\Monitoring\Object\Service;
|
||||
<?php if (!$this->compact): ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs; ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<?= $this->translate('Sort by'); ?> <?= $this->sortControl; ?>
|
||||
</div>
|
||||
<?= $this->sortControl; ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
<div class="content" data-base-target="_next">
|
||||
<h1 tabindex="-1"><?= $this->translate('Service Grid') ?></h1>
|
||||
<table class="pivot servicestates">
|
||||
<?php
|
||||
$hasHeader = false;
|
||||
|
@ -3,14 +3,13 @@
|
||||
<?php else: ?>
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<?= $this->translate('Sort by'); ?> <?= $this->sortControl->render($this); ?>
|
||||
</div>
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
<?= $this->widget('limiter')->setMaxLimit(count($servicegroups)); ?>
|
||||
<?= $this->paginationControl($servicegroups, null, null, array('preserve' => $this->preserve)); ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<?= $this->filterEditor; ?>
|
||||
<h1 tabindex="-1"><?= $this->translate('Service Groups') ?></h1>
|
||||
<?php endif ?>
|
||||
<?php
|
||||
if (count($servicegroups) === 0) {
|
||||
|
@ -10,10 +10,8 @@ if (!$this->compact): ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<?= $this->render('list/components/selectioninfo.phtml') ?>
|
||||
<?= $this->render('list/components/servicesummary.phtml') ?>
|
||||
<div style="float: right">
|
||||
<?= $this->translate('Sort by') ?> <?= $this->sortControl ?>
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->sortControl ?>
|
||||
<?php if ($this->limit === 0): ?>
|
||||
<?= $this->widget('limiter') ?>
|
||||
<?php else: ?>
|
||||
@ -24,6 +22,7 @@ if (!$this->compact): ?>
|
||||
|
||||
<div class="content">
|
||||
<?= $this->filterEditor ?>
|
||||
<h1 tabindex="-1"><?= $this->translate('Services') ?></h1>
|
||||
<?php else: ?>
|
||||
|
||||
<div class="content">
|
||||
|
@ -3,7 +3,9 @@
|
||||
<?php endif ?>
|
||||
<?php if (($hostCount = count($objects)) > 0): ?>
|
||||
<div class="hbox-item">
|
||||
<strong><?= sprintf($this->translatePlural('Host (%u)', 'Hosts (%u)', $hostCount), $hostCount); ?></strong>
|
||||
<h1 tabindex="-1">
|
||||
<?= sprintf($this->translatePlural('Host (%u)', 'Hosts (%u)', $hostCount), $hostCount); ?>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="hbox-item">
|
||||
<?= $hostStatesPieChart; ?>
|
||||
|
@ -4,7 +4,9 @@
|
||||
<?php if (($serviceCount = count($objects)) > 0): ?>
|
||||
<div class="hbox">
|
||||
<div class="hbox-item" style="width: 6em;">
|
||||
<strong><?= sprintf($this->translatePlural('Service (%u)', 'Services (%u)', $serviceCount), $serviceCount); ?></strong>
|
||||
<h1 tabindex="-1">
|
||||
<?= sprintf($this->translatePlural('Service (%u)', 'Services (%u)', $serviceCount), $serviceCount); ?>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="hbox-item">
|
||||
<?= $serviceStatesPieChart; ?>
|
||||
|
@ -9,15 +9,23 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
|
||||
</div>
|
||||
|
||||
<div class="content processinfo">
|
||||
<h1 tabindex="-1">
|
||||
<?= $this->translate('Monitoring Health'); ?>
|
||||
</h1>
|
||||
|
||||
<div class="boxview">
|
||||
|
||||
<div class="box left">
|
||||
<h2><?= $this->translate('Feature Commands') ?></h2>
|
||||
<h2 tabindex="-1" id="process-feature-command">
|
||||
<?= $this->translate('Feature Commands') ?>
|
||||
</h2>
|
||||
<?= $this->toggleFeaturesForm ?>
|
||||
</div>
|
||||
|
||||
<div class="box left">
|
||||
<h2><?= $this->translate('Process Info') ?></h2>
|
||||
<h2 tabindex="-1" id="process-process-info">
|
||||
<?= $this->translate('Process Info') ?>
|
||||
</h2>
|
||||
<table class="avp">
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -68,9 +76,13 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
|
||||
</div>
|
||||
|
||||
<div class="box left">
|
||||
<h2><?= $this->translate('Performance Info') ?></h2>
|
||||
<h2 tabindex="-1" id="process-performance-info">
|
||||
<?= $this->translate('Performance Info') ?>
|
||||
</h2>
|
||||
|
||||
<h3><?= $this->translate('Object summaries') ?></h3>
|
||||
<h3 tabindex="-1" id="process-object-summaries">
|
||||
<?= $this->translate('Object summaries') ?>
|
||||
</h3>
|
||||
<table class="avp">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -118,7 +130,9 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3><?= $this->translate('Active checks') ?></h3>
|
||||
<h3 tabindex="-1" id="process-active-checks">
|
||||
<?= $this->translate('Active checks') ?>
|
||||
</h3>
|
||||
<table class="avp">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -148,7 +162,9 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3><?= $this->translate('Passive checks') ?></h3>
|
||||
<h3 tabindex="-1" id="process-passive-checks">
|
||||
<?= $this->translate('Passive checks') ?>
|
||||
</h3>
|
||||
<table class="avp">
|
||||
<tbody>
|
||||
<tr>
|
||||
|
@ -4,6 +4,7 @@
|
||||
</div>
|
||||
<?php endif ?>
|
||||
<div class="content tactical">
|
||||
<h1 tabindex="-1"><?= $this->translate('Tactical Overview') ?></h1>
|
||||
<div class="boxview" data-base-target="_next">
|
||||
<?php if ($this->statusSummary->hosts_down || $this->statusSummary->hosts_unreachable): ?>
|
||||
<?= $this->render('tactical/components/problem_hosts.phtml'); ?>
|
||||
|
@ -10,6 +10,9 @@ $firstRow = !$beingExtended;
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<div style="margin: 1em;" class="dontprint">
|
||||
<h2 tabindex="-1" class="sr-only">
|
||||
<?= $this->translate('Filters') ?>
|
||||
</h2>
|
||||
<?= $intervalBox; ?>
|
||||
</div>
|
||||
<div style="margin: 1em;" class="timeline-legend">
|
||||
@ -22,6 +25,7 @@ $firstRow = !$beingExtended;
|
||||
</div>
|
||||
</div>
|
||||
<div class="content" data-base-target="_next">
|
||||
<h1 tabindex="-1"><?= $this->translate('Timeline'); ?></h1>
|
||||
<div class="timeline">
|
||||
<?php endif ?>
|
||||
<?php if ($switchedContext): ?>
|
||||
|
@ -198,3 +198,8 @@ hr.command-separator {
|
||||
border: none;
|
||||
border-bottom: 2px solid @colorPetrol;
|
||||
}
|
||||
|
||||
.sort-box {
|
||||
float: right;
|
||||
margin-right: 1em;
|
||||
}
|
@ -270,7 +270,7 @@ a:focus {
|
||||
|
||||
/* Accessibility Skip Links */
|
||||
.skip-links {
|
||||
position: absolute;
|
||||
position: relative;
|
||||
opacity: 1;
|
||||
ul {
|
||||
list-style-type: none;
|
||||
@ -286,7 +286,6 @@ a:focus {
|
||||
left: -999em;
|
||||
box-sizing: content-box;
|
||||
width: 10.4em !important;
|
||||
top: 0em;
|
||||
text-align: left !important;
|
||||
padding: 0.8em;
|
||||
background-color: white;
|
||||
@ -301,5 +300,8 @@ a:focus {
|
||||
}
|
||||
}
|
||||
.skip-links-inline {
|
||||
margin-top: -3.5em;
|
||||
ul > li > a {
|
||||
width: 14em !important;
|
||||
top: -3em;
|
||||
}
|
||||
}
|
||||
|
@ -337,21 +337,29 @@
|
||||
handleAnchor: function(query) {
|
||||
var $element = $(query);
|
||||
if ($element.length > 0) {
|
||||
// Try to find the first header. It is more pleasant to users
|
||||
// to select the header instead a container
|
||||
var $header = $element.find(':header:first');
|
||||
if ($header.length > 0) {
|
||||
$element = $header;
|
||||
} else {
|
||||
var $input = $element.find(':header:first');
|
||||
if ($input.length > 0) {
|
||||
$element = $input
|
||||
// TODO(mh): Some elements are missing to place the right focus
|
||||
// This is a fixed workarround until all header took place
|
||||
|
||||
var $item = $element.find(':header:first').nextUntil(':header:first').next();
|
||||
if ($item.length > 0) {
|
||||
$element = $item;
|
||||
}
|
||||
|
||||
/*
|
||||
var focusQueries = ['h1:first', ':header:first', ':input:first'];
|
||||
$.each(focusQueries, function(index,q) {
|
||||
var $item = $element.find(q);
|
||||
if ($item.length > 0) {
|
||||
$element = $item;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
// If we want to focus an element which has no tabindex
|
||||
// add one that we can focus is
|
||||
if ($element.prop('tabindex') < 0) {
|
||||
$element.prop('tabindex', 0);
|
||||
$element.prop('tabindex', '-1');
|
||||
}
|
||||
$element.focus();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user