@ -20,6 +20,7 @@ $item = $this->navigation->keys("menu");
|
||||
$item = $this->navigation->menu->$itemName;
|
||||
$active = false;
|
||||
$url = "";
|
||||
$iconClass = '';
|
||||
|
||||
if (is_string($item)) {
|
||||
$active = !$activeSet && $this->baseUrl($item) == $currentKey;
|
||||
@ -28,10 +29,13 @@ $item = $this->navigation->keys("menu");
|
||||
$url = $this->baseUrl(isset($item->route) ? $item->route : "");
|
||||
$itemName = isset($item->title) ? $item->title : $itemName;
|
||||
$active = !$activeSet && (isset($item->key) ? $item->key : $url) === $currentKey;
|
||||
if (isset($item->iconClass)) {
|
||||
$iconClass = $item->iconClass;
|
||||
}
|
||||
}
|
||||
$activeSet = $activeSet || $active;
|
||||
?>
|
||||
<li class="<?= $active ? "active" : "" ?>">
|
||||
<li class="<?= $active ? "active" : "" ?> <?= $iconClass; ?>">
|
||||
<a href="<?= $url ?>"><?= $itemName ?></a>
|
||||
</li>
|
||||
<?php
|
||||
|
@ -1,9 +1,7 @@
|
||||
<nav class="navbar navbar-default navbar-fixed-top" id="icingatopbar" role="navigation">
|
||||
<ul class="nav navbar-nav pull-left">
|
||||
<li>
|
||||
<a href="<?= $this->baseUrl('/') ?>" class="brand" style="margin-left:0px;">Icinga</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="navbar-header">
|
||||
<a href="<?= $this->baseUrl('/') ?>" class="navbar-brand icinga-logo">Icinga</a>
|
||||
</div>
|
||||
<?php if ($this->auth()->isAuthenticated()): ?>
|
||||
<ul class="nav navbar-nav pull-right" >
|
||||
<!-- Remove component as of #4583 since it's not working-->
|
||||
@ -17,7 +15,7 @@
|
||||
<span id="icinga_app_nav_username">
|
||||
<?= $this->escape($this->auth()->getUser()->getUsername()); ?>
|
||||
</span>
|
||||
<i>{{USER_ICON}}</i>
|
||||
<i class="icinga-icon-user"></i>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
|
@ -1,4 +1,9 @@
|
||||
[menu]
|
||||
Dashboard = "/dashboard/index"
|
||||
Configuration = "/config/index"
|
||||
Dashboard.title = "Dashboard"
|
||||
Dashboard.route = "/dashboard/index"
|
||||
Dashboard.iconClass = "nav-icon-dashboard"
|
||||
|
||||
Configuration.title = "Configuration"
|
||||
Configuration.route = "/config/index"
|
||||
Configuration.iconClass = "nav-icon-configuration"
|
||||
|
||||
|
@ -9,8 +9,14 @@
|
||||
;Changes.route = "/monitoring/list/services?sort=service_last_state_change"
|
||||
;_1 = 1 ;Spacer after this section
|
||||
|
||||
Hosts = "/monitoring/list/hosts"
|
||||
Services = "/monitoring/list/services"
|
||||
Hosts.title = "Hosts"
|
||||
Hosts.route = "/monitoring/list/hosts"
|
||||
Hosts.iconClass = "nav-icon-hosts"
|
||||
|
||||
Services.title = "Services"
|
||||
Services.route = "/monitoring/list/services"
|
||||
Services.iconClass = "nav-icon-services"
|
||||
|
||||
Downtimes = "/monitoring/list/downtimes"
|
||||
Notifications = "/monitoring/list/notifications"
|
||||
Comments = "/monitoring/list/comments"
|
||||
|
9
doc/Icinga-Design/bootstrap.min.css
vendored
Normal file
125
doc/Icinga-Design/documentation.css
Normal file
@ -0,0 +1,125 @@
|
||||
/* ==========================================================================
|
||||
Styles ONLY used for documentation
|
||||
========================================================================== */
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
|
||||
/* Projektname - color customer CI */
|
||||
|
||||
.docu-project-name {
|
||||
font-size: 2em;
|
||||
color: #049BAF;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-main {
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
margin: 0 auto;
|
||||
margin-top: 50px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.docu-main-headline {
|
||||
font-size: 2em;
|
||||
color: #333;
|
||||
/* customer CI */
|
||||
padding-bottom: 10px;
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
|
||||
.docu-sub-headline {
|
||||
font-size: 1.5em;
|
||||
color: #333;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-section {
|
||||
border: 1px solid #dddddd;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.docu-description {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-example {
|
||||
background-color: #FFFFFF;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-example:before {
|
||||
color: #BBBBBB;
|
||||
content: "Example";
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-module {
|
||||
/* width: 320px; */
|
||||
/* show your modules in device width */
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-codeblock {
|
||||
background-color: #F7F7F9;
|
||||
border-top: 1px solid #e1e1e8;
|
||||
padding: 10px;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
.docu-codeblock:before {
|
||||
color: #BBBBBB;
|
||||
content: "Code";
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.docu-code {
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
font-weight: bold;
|
||||
color: #777;
|
||||
padding-top: 10px;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
|
||||
.docu-footer {
|
||||
margin-top: 40px;
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid #dddddd;
|
||||
font-size: 0.75em;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
|
||||
.docu-classes {
|
||||
background-color: #FEFBED;
|
||||
padding: 3px;
|
||||
color: #c6b256;
|
||||
font-family: "Courier New", Courier, monospace, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
974
doc/Icinga-Design/documentation.html
Normal file
@ -0,0 +1,974 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Icinga Documentation</title>
|
||||
|
||||
<link media="screen" href="bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" href="icinga-design.css">
|
||||
<link rel="stylesheet" href="documentation.css">
|
||||
<link rel="apple-touch-icon-precomposed" href="../apple-touch-icon-152×152-precomposed.png">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<!-- ######### Top Navbar ##########-->
|
||||
|
||||
<nav role="navigation" id="icingatopbar" class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand icinga-logo pull-left" href="/icinga2-web/">Icinga</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pull-left icinga-navbar icinga-navbar-hosts-container">
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-up">999/999</span>
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-unreachable">999/999</span>
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-down">999/999</span>
|
||||
</div>
|
||||
|
||||
<div class="pull-left icinga-navbar icinga-navbar-services-container">
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-ok">999/999</span>
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-critical">999/999</span>
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-warning">999/999</span>
|
||||
<span class="icinga-navbar-pills icinga-navbar-pills-unknown">999/999</span>
|
||||
</div>
|
||||
|
||||
<div class="pull-left icinga-navbar icinga-navbar-reload">
|
||||
<a class="button btn-common btn-small" href="#">
|
||||
<span class="icon-refresh icon-btn-small"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pull-left icinga-navbar icinga-navbar-search-container">
|
||||
<input type="text" class="form-control input-sm icinga-navbar-search" />
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="nav navbar-nav pull-right">
|
||||
|
||||
<li class="dropdown">
|
||||
<a id="icinga_app_nav_useraction" data-toggle="dropdown" class="dropdown-toggle" href="#">
|
||||
<span id="icinga_app_nav_username">
|
||||
jdoe </span>
|
||||
<i class="icinga-icon-user"></i>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li id="icinga_app_nav_preferences">
|
||||
<a href="/icinga2-web/preference">Preferences </a>
|
||||
</li>
|
||||
<li id="icinga_app_nav_logout">
|
||||
<a title="Logout" href="/icinga2-web/authentication/logout">Logout</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="docu-main">
|
||||
|
||||
<h1 class="docu-project-name">Icinga Documentation</h1>
|
||||
<!-- <div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div> -->
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Basic Elements</h1>
|
||||
|
||||
<h1 class="docu-sub-headline">Headlines</h1>
|
||||
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
<h1>Main headline h1</h1>
|
||||
<h2>Sub headline h2</h2>
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code"><h1>Main Headline H1</h1>
|
||||
<h2>Sub headline h2</h2>
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
<h1 class="docu-sub-headline">Textblocks</h1>
|
||||
<div class="docu-description">
|
||||
Used on simple pages with continuous text e.g. Imprint or Privacy.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At <a href="#">vero eos et accusam et justo</a> duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <a href="#">sanctus est Lorem ipsum</a> dolor sit amet.
|
||||
</p>
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At <a href="#">vero eos et accusam et justo</a> duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <a href="#">sanctus est Lorem ipsum</a> dolor sit amet.
|
||||
</p>
|
||||
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-sub-headline">Table</h1>
|
||||
<div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3">Status</th>
|
||||
|
||||
<th>Output</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/show/host?host=host_000" style="visibility:hidden"></a>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
|
||||
</td>
|
||||
|
||||
<td title="UP since 2013-09-30 16:57:58">
|
||||
|
||||
<span class="badge-container_">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge pull-right">
|
||||
12
|
||||
</a>
|
||||
</span>
|
||||
<div>
|
||||
|
||||
<b>Up</b><br />
|
||||
Since
|
||||
30.09.
|
||||
</div>
|
||||
</td>
|
||||
|
||||
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000">
|
||||
<b>host_000</b>
|
||||
<i>127.0.0.1</i>
|
||||
</a><br />
|
||||
host_000 (checked by localhost.localdomain) OK: random hostcheck ok<br />
|
||||
<span class="output-text">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="tacheader-status-unreachable">
|
||||
<a href="/icingawebinsfx/monitoring/show/host?host=host_000" style="visibility:hidden"></a>
|
||||
</td>
|
||||
<td>
|
||||
<div class="icon-table icon-flapping"></div>
|
||||
<div class="icon-table icon-comment"></div>
|
||||
<div class="icon-table icon-unhandled"></div>
|
||||
</td>
|
||||
|
||||
<td title="UP since 2013-09-30 16:57:58">
|
||||
<span class="badge-container_">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge pull-right">
|
||||
6
|
||||
</a>
|
||||
</span>
|
||||
<div>
|
||||
<b>Unreachable</b><br />
|
||||
Since
|
||||
30.09.
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000">
|
||||
<b>host_000</b>
|
||||
<i>127.0.0.1</i>
|
||||
</a><br />
|
||||
host_000 (checked by localhost.localdomain) OK: random hostcheck ok
|
||||
<span class="output-text">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="tacheader-status-down">
|
||||
<a href="/icingawebinsfx/monitoring/show/host?host=host_000" style="visibility:hidden"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td title="UP since 2013-09-30 16:57:58">
|
||||
<span class="badge-container_">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge pull-right">
|
||||
6
|
||||
</a>
|
||||
</span>
|
||||
<div>
|
||||
<b>Down</b><br />
|
||||
Since
|
||||
30.09.
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000">
|
||||
<b>host_000</b>
|
||||
<i>127.0.0.1</i>
|
||||
</a><br />
|
||||
host_000 (checked by localhost.localdomain) OK: random hostcheck ok
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="">
|
||||
<a href="/icingawebinsfx/monitoring/show/host?host=host_000" style="visibility:hidden"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td title="UP since 2013-09-30 16:57:58">
|
||||
<span class="badge-container_">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge pull-right">
|
||||
6
|
||||
</a>
|
||||
</span>
|
||||
<div>
|
||||
<b>Up</b><br />
|
||||
Since
|
||||
30.09.
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000">
|
||||
<b>host_000</b>
|
||||
<i>127.0.0.1</i>
|
||||
</a><br />
|
||||
host_000 (checked by localhost.localdomain) OK: random hostcheck ok
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="">
|
||||
<a href="/icingawebinsfx/monitoring/show/host?host=host_000" style="visibility:hidden"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
|
||||
<td title="UP since 2013-09-30 16:57:58">
|
||||
<span class="badge-container_">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge pull-right">
|
||||
6
|
||||
</a>
|
||||
</span>
|
||||
<div>
|
||||
<b>Up</b><br />
|
||||
Since
|
||||
30.09.
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000">
|
||||
<b>host_000</b>
|
||||
<i>127.0.0.1</i>
|
||||
</a><br />
|
||||
host_000 (checked by localhost.localdomain) OK: random hostcheck ok
|
||||
<span class="output-text">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="tacheader-status-down">
|
||||
<a href="/icingawebinsfx/monitoring/show/host?host=host_000" style="visibility:hidden"></a>
|
||||
</td>
|
||||
<td>
|
||||
<div class="icon-table icon-flapping"></div>
|
||||
<div class="icon-table icon-comment"></div>
|
||||
<div class="icon-table icon-unhandled"></div>
|
||||
</td>
|
||||
|
||||
<td title="UP since 2013-09-30 16:57:58">
|
||||
<span class="badge-container_">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge pull-right">
|
||||
6
|
||||
</a>
|
||||
</span>
|
||||
<div>
|
||||
<b>Down</b><br />
|
||||
Since
|
||||
30.09.
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000">
|
||||
<b>host_000</b>
|
||||
<i>127.0.0.1</i>
|
||||
</a><br />
|
||||
host_000 (checked by localhost.localdomain) OK: random hostcheck ok
|
||||
<span class="output-text">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code">
|
||||
code...
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Pagination</h1>
|
||||
|
||||
<div class="docu-description">
|
||||
The pagination is placed on top and bottom of every list.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
<ul class="pagination pagination-sm">
|
||||
<!-- Previous page link -->
|
||||
|
||||
<li class="disabled"><span>« Prev</span></li>
|
||||
|
||||
<!-- Numbered page links -->
|
||||
<li class="active">
|
||||
<a title="1 to 20 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=1">
|
||||
1 </a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="21 to 40 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=2">
|
||||
2 </a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="41 to 60 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=3">
|
||||
3 </a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="61 to 80 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=4">
|
||||
4 </a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="81 to 100 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=5">
|
||||
5 </a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="101 to 111 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=6">
|
||||
6 </a>
|
||||
</li>
|
||||
<!-- Next page link -->
|
||||
<li>
|
||||
<a title="21 to 40 of 111" href="/icinga2-web/monitoring/list/hosts?detail=%2Ficinga2-web%2Fmonitoring%2Fshow%2Fhost%3Fhost%3Dhost_001&page=2">Next »
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code">Code... Code...
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Details</h1>
|
||||
|
||||
<h1 class="docu-sub-headline">Basic Example</h1>
|
||||
<div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
|
||||
<div class="panel-heading border-status-critical">
|
||||
<div class="panel-hostname">
|
||||
Host Status host_000 ölaierjoe paeurüuaeraeüure <span class="panel-header-status">- Unreachable since 15:59</span></div>
|
||||
</div>
|
||||
<hr class="separator" />
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
<div class="panel-row">
|
||||
<p>host_000 (checked by localhost.localdomain) OK: random hostcheck ok sometimes with multiline and html tags\n </p>
|
||||
</div>
|
||||
|
||||
<div class="panel-row">
|
||||
<a href="#" class="button btn-cta btn-wide">Recheck</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Last Check
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
1381308168
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Next Check
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
1381309978
|
||||
</div>
|
||||
<div class="panel-button">
|
||||
<a href="#" class="button btn-common btn-small"><span class="icon-reschedule icon-btn-small"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Host Address
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
127.0.0.1
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Alias
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
random_000
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="panel-row">
|
||||
<a href="#" class="button btn-common btn-half-left">View Services For This Host </a>
|
||||
<a href="#" class="button btn-common btn-half-right">Recheck All Services</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- ########## Box mit Tabelle ############# -->
|
||||
|
||||
<div class="panel-heading">
|
||||
<div class="panel-hostname">
|
||||
Box mit Tabelle</div>
|
||||
</div>
|
||||
<hr class="separator" />
|
||||
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-detail">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Lorem</th>
|
||||
<th>Ipsum xyz</th>
|
||||
<th>blablubb</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>08.10. 15:51</td>
|
||||
<td><a href="#">Lorem ipusm_002</a></td>
|
||||
<td><a href="#" class="button btn-common btn-small pull-right"><span class="icon-downtime icon-btn-small"></span></a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>08.10. 15:51</td>
|
||||
<td>Ich bin ein toller Text</td>
|
||||
<td><a href="#" class="button btn-common btn-small pull-right"><span class="icon-edit icon-btn-small"></span></a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Hallo hallo</td>
|
||||
<td>Server 123 blabla</td>
|
||||
<td>Noch ein Text</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Lorem ipsum</td>
|
||||
<td>Juhuhallo_host01</td>
|
||||
<td>128747404</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- ########## Heading ############# -->
|
||||
|
||||
<div class="panel-heading">
|
||||
<div class="panel-hostname">
|
||||
Heading</div>
|
||||
</div>
|
||||
<hr class="separator" />
|
||||
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-detail">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td>Passive Checks</td>
|
||||
<td><div class="icon-table-hint icon-edit pull-left"></div></td>
|
||||
<td><input type="checkbox" id="#" name="#" class="pull-right" checked /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Checks</td>
|
||||
<td></td>
|
||||
<td><input type="checkbox" id="#" name="#" class="pull-right" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Obsessing</td>
|
||||
<td><div class="icon-table-hint icon-edit pull-left"></div></td>
|
||||
<td><input type="checkbox" id="#" name="#" class="pull-right" checked /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Notifications</td>
|
||||
<td></td>
|
||||
<td><input type="checkbox" id="#" name="#" class="pull-right" checked /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Event Handler</td>
|
||||
<td><div class="icon-table-hint icon-edit pull-left"></div></td>
|
||||
<td><input type="checkbox" id="#" name="#" class="pull-right" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Flap Detection</td>
|
||||
<td></td>
|
||||
<td><input type="checkbox" id="#" name="#" class="pull-right" /></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code">Code... Code...
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Form Elements</h1>
|
||||
|
||||
<h1 class="docu-sub-headline">Select</h1>
|
||||
<div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
|
||||
<form data-icinga-component="app/form" action="" method="get" class="form-inline" name="hosts" id="icinga-component-0">
|
||||
<div id="sort-element" class="form-group">
|
||||
<label for="sort">Sort By</label>
|
||||
<select data-icinga-form-autosubmit="1" class="form-control input-sm" id="sort" name="sort">
|
||||
<option value="host_last_check">Last Host Check</option>
|
||||
<option value="host_severity">Host Severity</option>
|
||||
<option value="host_state">Hard State</option>
|
||||
<option value="host_name">Host Name</option>
|
||||
<option value="host_address">Address</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="dir-element" class="form-group"><label for="dir"> </label>
|
||||
<select data-icinga-form-autosubmit="1" class="form-control input-sm" id="dir" name="dir">
|
||||
<option value="desc">Desc</option>
|
||||
<option value="asc">Asc</option>
|
||||
</select></div>
|
||||
<div id="submit_hosts-element" class="form-group"><label for="submit_hosts"> </label><noscript>
|
||||
<input type="submit" name="submit_hosts" id="submit_hosts" value="Sort" class="btn btn-default form-control input-sm" condition="0" addLabelPlaceholder="1"></noscript>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code">
|
||||
...
|
||||
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Main Navigation</h1>
|
||||
|
||||
<h1 class="docu-sub-headline">Without Subnavigation</h1>
|
||||
<div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
<ul id="icinganavigation" role="navigation" class="nav nav-stacked">
|
||||
<li class="icon-main-nav nav-icon-hosts">
|
||||
<a href="/icinga2-web/monitoring/list/hosts">Hosts</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-services">
|
||||
<a href="/icinga2-web/monitoring/list/services" class="nav-notification">Services</a>
|
||||
<span class="badge-container-nav">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge-nav">
|
||||
12
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-downtimes">
|
||||
<a href="/icinga2-web/monitoring/list/downtimes">Downtimes</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-notifications">
|
||||
<a href="/icinga2-web/monitoring/list/notifications">Notifications</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-comments">
|
||||
<a href="/icinga2-web/monitoring/list/comments">Comments</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-dashboard active">
|
||||
<a href="/icinga2-web/dashboard/index">Dashboard</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-configuration">
|
||||
<a href="/icinga2-web/config/index">Configuration</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-sub-headline">With Subnavigation</h1>
|
||||
<div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
<ul id="icinganavigation" role="navigation" class="nav nav-stacked">
|
||||
<li class="icon-main-nav nav-icon-hosts">
|
||||
<a href="/icinga2-web/monitoring/list/hosts">Hosts</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-services">
|
||||
<a href="/icinga2-web/monitoring/list/services" class="nav-notification">Services</a>
|
||||
<span class="badge-container-nav">
|
||||
<a href="/icingawebinsfx/monitoring/list/services?host=host_000&service_problems=1" class="badge-nav">
|
||||
12
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-downtimes">
|
||||
<a href="/icinga2-web/monitoring/list/downtimes">Downtimes</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-notifications">
|
||||
<a href="/icinga2-web/monitoring/list/notifications">Notifications</a>
|
||||
</li>
|
||||
|
||||
<!-- ##### Sub Nav ######## -->
|
||||
<ul class="icinga-subnavigation">
|
||||
<li class="icon-main-nav subnav-icon-configuration">
|
||||
<a href="#">Lorem Ipsum lorem</a>
|
||||
</li>
|
||||
<li class="icon-main-nav subnav-icon-configuration">
|
||||
<a href="#" class="nav-notification">Submenüpunkt 2</a>
|
||||
<span class="badge-container-subnav">
|
||||
<a href="#" class="badge-subnav">
|
||||
12
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
<li class="icon-main-nav subnav-icon-configuration active">
|
||||
<a href="#">Dritter toller Punkt</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<li class="icon-main-nav nav-icon-comments">
|
||||
<a href="/icinga2-web/monitoring/list/comments">Comments</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-dashboard">
|
||||
<a href="/icinga2-web/dashboard/index">Dashboard</a>
|
||||
</li>
|
||||
<li class="icon-main-nav nav-icon-configuration">
|
||||
<a href="/icinga2-web/config/index">Configuration</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Dashboard</h1>
|
||||
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
|
||||
<div class="dashboard-container">
|
||||
<table class="table table-condensed table-detail table-dashboard">
|
||||
|
||||
<thead class="sep">
|
||||
<tr>
|
||||
<th colspan="3" class="test">
|
||||
<a href="#">Dies ist eine tolle Headline</a>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="border-status-critical">09.10. 17:40</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
<i class="dashboard-icons icon-flapping"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Service</strong></a> on <a href="#">Hosta</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="border-status-unknown">unknown</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_123456</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="border-status-warning">11.10.</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
<i class="dashboard-icons icon-flapping"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>random_06</strong></a> on <a href="#">Host_insertEFFECT</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border-status-unknown">unknown</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_123456</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border-status-unknown">unknown</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_123456</a></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="dashboard-container">
|
||||
<table class="table table-condensed table-detail">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th colspan="3" class="test">
|
||||
<a href="#">Dies ist eine tolle Headline</a>
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="border-status-critical">09.10.</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
<i class="dashboard-icons icon-flapping"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_0815</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="border-status-unknown">unknown</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_123456</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="border-status-warning">11.10.</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
<i class="dashboard-icons icon-flapping"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>random_06</strong></a> on <a href="#">Host_insertEFFECT</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border-status-unknown">unknown</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_123456</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border-status-unknown">unknown</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>Ping</strong></a> on <a href="#">Host_123456</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border-status-warning">11.10.</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
<i class="dashboard-icons icon-flapping"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>random_06</strong></a> on <a href="#">Host_insertEFFECT</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border-status-warning">11.10.</td>
|
||||
<td>
|
||||
<i class="dashboard-icons icon-unhandled"></i>
|
||||
<i class="dashboard-icons icon-flapping"></i>
|
||||
<i class="dashboard-icons icon-comment"></i>
|
||||
</td>
|
||||
<td><a href="#"><strong>random_06</strong></a> on <a href="#">Host_insertEFFECT</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="docu-main-headline">Main Header</h1>
|
||||
|
||||
<h1 class="docu-sub-headline">Sub Header</h1>
|
||||
<div class="docu-description">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
</div>
|
||||
|
||||
<div class="docu-section">
|
||||
<div class="docu-example">
|
||||
<div class="docu-module">
|
||||
<h1>bla</h1>
|
||||
<h2>blubb</h2>
|
||||
</div><!-- .docu-module -->
|
||||
</div><!-- .docu-example -->
|
||||
|
||||
<div class="docu-codeblock">
|
||||
<textarea class="docu-code">Code... Code...
|
||||
</textarea>
|
||||
</div><!-- .docu-codeblock -->
|
||||
</div><!-- .docu-section -->
|
||||
|
||||
|
||||
|
||||
<!-- END CONTENT ####################### -->
|
||||
|
||||
<div class="docu-footer">
|
||||
09/2013 - insertEFFECT GmbH
|
||||
</div>
|
||||
|
||||
|
||||
</div><!-- .docu-main -->
|
||||
|
||||
<script src="../js/vendor/requirejs/require.js" data-main="../js/main"></script>
|
||||
</body>
|
||||
</html>
|
956
doc/Icinga-Design/icinga-design.css
Normal file
@ -0,0 +1,956 @@
|
||||
/* ==========================================================================
|
||||
Icinga Design
|
||||
========================================================================== */
|
||||
|
||||
html {
|
||||
font-family: sans-serif; /* 1 */
|
||||
-ms-text-size-adjust: 100%; /* 2 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
color: #262625;
|
||||
font-family: "Lucida Grande","Lucida Sans Unicode",Verdana,Helvetica,Arial,sans-serif;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.gap {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Links
|
||||
========================================================================== */
|
||||
|
||||
a {
|
||||
color: #049baf;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `outline` inconsistency between Chrome and other browsers.
|
||||
*/
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability when focused and also mouse hovered in all browsers.
|
||||
*/
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline: 0;
|
||||
color: #049baf;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Typography
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address variable `h1` font-size and margin within `section` and `article`
|
||||
* contexts in Firefox 4+, Safari 5, and Chrome.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
color: #262625;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #262625;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Tables
|
||||
========================================================================== */
|
||||
|
||||
|
||||
table, th, td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
padding: 8px 8px 10px 8px;
|
||||
border-bottom: 2px solid #ddd;
|
||||
}
|
||||
|
||||
.table-detail th {
|
||||
font-size: 16px;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
|
||||
.table-detail thead > tr > th, .table tbody > tr > th,
|
||||
.table-detail tbody > tr > td, .table tfoot > tr > td {
|
||||
border-top: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.table-detail > thead {
|
||||
border-top: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
td {
|
||||
padding: 8px 10px 8px 8px !important;
|
||||
border-bottom: 1px dotted #ddd !important;
|
||||
border-top: none;
|
||||
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
float: right !important;
|
||||
clear: right !important;
|
||||
|
||||
display: block;
|
||||
clear: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.badge-container {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.badge {
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
color: #ff3300;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
min-width: 10px;
|
||||
padding-bottom: 3px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 3px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #ff3300;
|
||||
|
||||
}
|
||||
|
||||
.badge a,
|
||||
.badge a:active,
|
||||
.badge a:hover,
|
||||
.badge:hover {
|
||||
color: #ff3300 !important;
|
||||
display: inline-block !important;
|
||||
|
||||
}
|
||||
|
||||
.host-name {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.active {
|
||||
background-color: #f5f5f5;
|
||||
|
||||
}
|
||||
|
||||
.output-text {
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.panel-disabled {
|
||||
border-left: 8px solid #FF3300;
|
||||
}
|
||||
|
||||
.panel-enabled {
|
||||
border-left: 8px solid #00CC33;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Forms
|
||||
========================================================================== */
|
||||
|
||||
|
||||
.form-inline .form-group {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.form-group {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.input-sm {
|
||||
border-radius: 3px;
|
||||
font-size: 16px;
|
||||
|
||||
|
||||
padding: 5px;
|
||||
margin-right: 15px;
|
||||
|
||||
}
|
||||
.form-control {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #CCCCCC;
|
||||
border-radius: 4px;
|
||||
padding: 5px;
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
|
||||
color: #555555;
|
||||
display: block;
|
||||
|
||||
|
||||
|
||||
|
||||
vertical-align: middle;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
select.input-sm {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Pagination
|
||||
========================================================================== */
|
||||
|
||||
.pagination > .active > a,
|
||||
.pagination > .active > span,
|
||||
.pagination > .active > a:hover,
|
||||
.pagination > .active > span:hover,
|
||||
.pagination > .active > a:focus,
|
||||
.pagination > .active > span:focus {
|
||||
|
||||
background-color: #049baf !important;
|
||||
border-color: fuchsia !mportant;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.pagination-sm > li > a, .pagination-sm > li > span {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Status colors
|
||||
========================================================================== */
|
||||
|
||||
.status-up {
|
||||
background-color: #00cc33; /* green */
|
||||
}
|
||||
|
||||
.status-warning {
|
||||
background-color: #00cc33; /* xx */
|
||||
}
|
||||
|
||||
.status-critical {
|
||||
background-color: #ff3300; /* red */
|
||||
}
|
||||
|
||||
.status-unknown {
|
||||
background-color: #00cc33; /* xx */
|
||||
}
|
||||
|
||||
.status-pending {
|
||||
background-color: #00cc33; /* xx */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** Service status **/
|
||||
|
||||
.tacheader-status-critical {
|
||||
background-color: #FF3300;
|
||||
}
|
||||
|
||||
.tacheader-status-ok {
|
||||
background-color: #00CC33;
|
||||
}
|
||||
|
||||
.tacheader-status-warning {
|
||||
background-color: #FFA500;
|
||||
}
|
||||
|
||||
.tacheader-status-unknown {
|
||||
background-color: #E066FF;
|
||||
}
|
||||
|
||||
/** Host status **/
|
||||
|
||||
.tacheader-status-unreachable {
|
||||
background-color: #E066FF;
|
||||
}
|
||||
|
||||
.tacheader-status-down {
|
||||
background-color: #FF3300;
|
||||
}
|
||||
|
||||
.tacheader-status-up {
|
||||
background-color: #00CC33;
|
||||
}
|
||||
|
||||
|
||||
/* Borders for Detail Headers */
|
||||
|
||||
.border-status-critical {
|
||||
border-left: 10px solid #FF3300;
|
||||
}
|
||||
|
||||
.border-status-ok {
|
||||
border-left: 10px solid #00CC33;
|
||||
}
|
||||
|
||||
.border-status-warning {
|
||||
border-left: 10px solid #FFA500;
|
||||
}
|
||||
|
||||
.border-status-unknown {
|
||||
border-left: 10px solid #E066FF;
|
||||
}
|
||||
|
||||
/** Host status **/
|
||||
|
||||
.border-status-unreachable {
|
||||
border-left: 10px solid #E066FF;
|
||||
}
|
||||
|
||||
.border-status-down {
|
||||
border-left: 10px solid #FF3300;
|
||||
}
|
||||
|
||||
.border-status-up {
|
||||
background-color: #00CC33;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Icons
|
||||
========================================================================== */
|
||||
|
||||
.icon-table {
|
||||
width: 16px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
background-position: 50% 0;
|
||||
}
|
||||
|
||||
.icon-header {
|
||||
background-position: 0 50%;
|
||||
padding-left: 25px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.icon-btn-small {
|
||||
background-position: 0 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.icon-table-hint {
|
||||
width: 16px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
background-position: 50% 50%;
|
||||
}
|
||||
.icon-table-hint:after {
|
||||
content: "edited";
|
||||
padding-left: 22px;
|
||||
}
|
||||
|
||||
|
||||
.icon-flapping {
|
||||
background-image: url('images/flapping.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-comment {
|
||||
background-image: url('images/comment.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-unhandled {
|
||||
background-image: url('images/unhandled.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-host {
|
||||
background-image: url('images/host.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-acknowledgement {
|
||||
background-image: url('images/acknowledgement.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-remove {
|
||||
background-image: url('images/remove.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-submit {
|
||||
background-image: url('images/submit.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-create {
|
||||
background-image: url('images/create.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-dashboard {
|
||||
background-image: url('images/dashboard.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-disable {
|
||||
background-image: url('images/disable.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-edit {
|
||||
background-image: url('images/edit.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-error {
|
||||
background-image: url('images/error.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-downtime {
|
||||
background-image: url('images/in_downtime.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-save {
|
||||
background-image: url('images/save.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-service {
|
||||
background-image: url('images/service.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-user {
|
||||
background-image: url('images/user.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-reschedule {
|
||||
background-image: url('images/reschedule.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-refresh {
|
||||
background-image: url('images/refresh.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Details Panel
|
||||
========================================================================== */
|
||||
|
||||
|
||||
.panel-heading {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 0px !important;
|
||||
padding-left: 5px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 5px;
|
||||
overflow: hidden;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.panel-hostname {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.separator {
|
||||
border-top: 2px solid #ddd;
|
||||
border-bottom: 0;
|
||||
margin: 0;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.panel-header-status {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.panel-row {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px dotted #ddd;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.panel-label {
|
||||
float: left;
|
||||
padding-right: 10px;
|
||||
width: 30%;
|
||||
clear: left;
|
||||
|
||||
}
|
||||
.panel-content {
|
||||
float: left;
|
||||
padding-right: 10px;
|
||||
display: inline-block;
|
||||
max-width: 40%;
|
||||
}
|
||||
|
||||
.panel-button {
|
||||
float: right;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.panel-body {
|
||||
margin-bottom: 45px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Buttons
|
||||
========================================================================== */
|
||||
|
||||
.button {
|
||||
text-align: center;
|
||||
padding: 3px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.btn-common {
|
||||
border-color: #ddd;
|
||||
color: #262625;
|
||||
background: rgb(255,255,255); /* Old browsers */
|
||||
background: -moz-linear-gradient(top, rgb(255,255,255) 1%, rgb(245,245,245) 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,rgb(255,255,255)), color-stop(100%,rgb(245,245,245))); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* W3C */
|
||||
}
|
||||
|
||||
.panel-row > a:hover,
|
||||
.btn-common:hover {
|
||||
border-color: #262625 !important;
|
||||
color: #262625 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
.btn-cta {
|
||||
border-color: #049BAF;
|
||||
color: #049BAF;
|
||||
background: rgb(255,255,255); /* Old browsers */
|
||||
background: -moz-linear-gradient(top, rgb(255,255,255) 1%, rgb(245,245,245) 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,rgb(255,255,255)), color-stop(100%,rgb(245,245,245))); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* W3C */
|
||||
}
|
||||
|
||||
|
||||
|
||||
.btn-small {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.btn-wide {
|
||||
width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.btn-half-left {
|
||||
float: left;
|
||||
width: 48%;
|
||||
}
|
||||
.btn-half-right {
|
||||
float: right;
|
||||
width: 48%;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Main Navigation
|
||||
========================================================================== */
|
||||
|
||||
|
||||
.nav-stacked > li + li {
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
.nav-stacked {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
.icinga-subnavigation {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.nav-stacked > li {
|
||||
padding-top: 7px;
|
||||
padding-bottom: 7px;
|
||||
border-bottom: 1px dotted #049baf;
|
||||
border-right: 1px dotted #049baf;
|
||||
}
|
||||
.nav-stacked > li:first-child {
|
||||
border-top: 1px dotted #049baf;
|
||||
}
|
||||
|
||||
|
||||
.icinga-subnavigation > li {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px dotted #049baf;
|
||||
border-right: 1px dotted #049baf;
|
||||
}
|
||||
|
||||
ul.icinga-subnavigation {
|
||||
|
||||
border-bottom: 1px dotted #049baf;
|
||||
margin-left: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.icinga-subnavigation > li:last-child {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 0;
|
||||
|
||||
}
|
||||
|
||||
.nav-stacked > li > a,
|
||||
.icinga-subnavigation > li > a {
|
||||
padding-left: 40px;
|
||||
padding-right: 3px;
|
||||
border-left: 6px solid #049baf;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.nav-stacked > li > a.nav-notification,
|
||||
.icinga-subnavigation > li > a.nav-notification {
|
||||
border-left: 6px solid red !important;
|
||||
}
|
||||
|
||||
.nav-stacked > li > a:hover,
|
||||
.icinga-subnavigation > li > a:focus {
|
||||
/* font-weight: bold;*/
|
||||
background-color: transparent; !important;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.nav-stacked > li:hover,
|
||||
.nav-stacked > li:focus,
|
||||
.icinga-subnavigation > li:hover,
|
||||
.icinga-subnavigation > li:focus {
|
||||
background-color: #fff;
|
||||
|
||||
}
|
||||
|
||||
.nav-stacked > li.active,
|
||||
.icinga-subnavigation > li.active {
|
||||
background-color: #fff;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.nav-icon-hosts {
|
||||
background-image: url('images/host_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
|
||||
.nav-icon-services {
|
||||
background-image: url('images/service_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-downtimes {
|
||||
background-image: url('images/in_downtime_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-notifications {
|
||||
background-image: url('images/notification_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 20px;
|
||||
}
|
||||
.nav-icon-comments {
|
||||
background-image: url('images/comment_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-dashboard {
|
||||
background-image: url('images/dashboard_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-configuration {
|
||||
background-image: url('images/configuration_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
|
||||
|
||||
.subnav-icon-configuration {
|
||||
background-image: url('images/configuration_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.badge-container-nav {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
padding-top: 0;
|
||||
margin-bottom: 5px;
|
||||
|
||||
}
|
||||
.badge-nav {
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
color: #ff3300;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
min-width: 10px;
|
||||
padding-bottom: 3px;
|
||||
padding-left: 7px;
|
||||
padding-right: 7px;
|
||||
padding-top: 3px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #ff3300;
|
||||
}
|
||||
|
||||
.badge-container-subnav {
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
padding-top: 0;
|
||||
padding-bottom;
|
||||
margin-left: 2px;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.badge-subnav {
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
color: #ff3300;
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
min-width: 10px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 2px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #ff3300;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Dashboard
|
||||
========================================================================== */
|
||||
|
||||
.dashboard-container {
|
||||
|
||||
margin-right: 40px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
}
|
||||
|
||||
.dashboard-icons {
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Top Navbar
|
||||
========================================================================== */
|
||||
|
||||
|
||||
.icinga-logo {
|
||||
background-attachment: scroll;
|
||||
background-clip: border-box;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
background-image: url("images/logo_icinga.png");
|
||||
background-origin: padding-box;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto auto;
|
||||
display: block;
|
||||
height: 33px;
|
||||
margin-bottom: 0;
|
||||
margin-left: 8px;
|
||||
margin-right: 30px;
|
||||
margin-top: 8px;
|
||||
text-indent: -999px;
|
||||
width: 94px;
|
||||
}
|
||||
|
||||
.icinga-icon-user {
|
||||
background-attachment: scroll;
|
||||
background-clip: border-box;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
background-image: url("images/user.png");
|
||||
background-origin: padding-box;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto auto;
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.icinga-navbar {
|
||||
margin-right: 15px;
|
||||
}
|
||||
.icinga-navbar-reload {
|
||||
margin-top: 13px;
|
||||
margin-right: 40px;
|
||||
}
|
||||
|
||||
.icinga-navbar-search {
|
||||
background-image: url('images/search.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 5px 50%;
|
||||
padding-left: 25px !important;
|
||||
}
|
||||
|
||||
.icinga-navbar-search-container {
|
||||
border-left: 1px solid #ddd;
|
||||
padding-left: 15px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.icinga-navbar-hosts-container {
|
||||
background-image: url('images/host.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 5px 50%;
|
||||
padding-left: 30px !important;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.icinga-navbar-services-container {
|
||||
background-image: url('images/service.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 5px 50%;
|
||||
padding-left: 25px !important;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.icinga-navbar-pills {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
padding: 3px 5px 3px 5px;
|
||||
border-radius: 3px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** Service status **/
|
||||
|
||||
.icinga-navbar-pills-critical {
|
||||
border-color: #FF3300;
|
||||
color: #FF3300;
|
||||
}
|
||||
|
||||
.icinga-navbar-pills-ok {
|
||||
border-color: #00CC33;
|
||||
color: #00CC33;
|
||||
}
|
||||
|
||||
.icinga-navbar-pills-warning {
|
||||
border-color: #FFA500;
|
||||
color: #FFA500;
|
||||
}
|
||||
|
||||
.icinga-navbar-pills-unknown {
|
||||
border-color: #E066FF;
|
||||
color: #E066FF;
|
||||
}
|
||||
|
||||
/** Host status **/
|
||||
|
||||
.icinga-navbar-pills-unreachable {
|
||||
border-color: #E066FF;
|
||||
color: #E066FF;
|
||||
}
|
||||
|
||||
.icinga-navbar-pills-down {
|
||||
border-color: #FF3300;
|
||||
color: #FF3300;
|
||||
}
|
||||
|
||||
.icinga-navbar-pills-up {
|
||||
border-color: #00CC33;
|
||||
color: #00CC33;
|
||||
}
|
||||
|
BIN
doc/Icinga-Design/images/acknowledgement.png
Normal file
After Width: | Height: | Size: 501 B |
BIN
doc/Icinga-Design/images/comment.png
Normal file
After Width: | Height: | Size: 491 B |
BIN
doc/Icinga-Design/images/comment_petrol.png
Normal file
After Width: | Height: | Size: 502 B |
BIN
doc/Icinga-Design/images/configuration_petrol.png
Normal file
After Width: | Height: | Size: 645 B |
BIN
doc/Icinga-Design/images/create.png
Normal file
After Width: | Height: | Size: 475 B |
BIN
doc/Icinga-Design/images/dashboard.png
Normal file
After Width: | Height: | Size: 415 B |
BIN
doc/Icinga-Design/images/dashboard_petrol.png
Normal file
After Width: | Height: | Size: 420 B |
BIN
doc/Icinga-Design/images/disabled.png
Normal file
After Width: | Height: | Size: 535 B |
BIN
doc/Icinga-Design/images/edit.png
Normal file
After Width: | Height: | Size: 486 B |
BIN
doc/Icinga-Design/images/error.png
Normal file
After Width: | Height: | Size: 532 B |
BIN
doc/Icinga-Design/images/flapping.png
Normal file
After Width: | Height: | Size: 621 B |
BIN
doc/Icinga-Design/images/host.png
Normal file
After Width: | Height: | Size: 512 B |
BIN
doc/Icinga-Design/images/host_petrol.png
Normal file
After Width: | Height: | Size: 489 B |
BIN
doc/Icinga-Design/images/in_downtime.png
Normal file
After Width: | Height: | Size: 490 B |
BIN
doc/Icinga-Design/images/in_downtime_petrol.png
Normal file
After Width: | Height: | Size: 497 B |
BIN
doc/Icinga-Design/images/logo_icinga.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
doc/Icinga-Design/images/notification_petrol.png
Normal file
After Width: | Height: | Size: 604 B |
BIN
doc/Icinga-Design/images/refresh.png
Normal file
After Width: | Height: | Size: 523 B |
BIN
doc/Icinga-Design/images/remove.png
Normal file
After Width: | Height: | Size: 661 B |
BIN
doc/Icinga-Design/images/reschedule.png
Normal file
After Width: | Height: | Size: 400 B |
BIN
doc/Icinga-Design/images/save.png
Normal file
After Width: | Height: | Size: 506 B |
BIN
doc/Icinga-Design/images/search.png
Normal file
After Width: | Height: | Size: 491 B |
BIN
doc/Icinga-Design/images/service.png
Normal file
After Width: | Height: | Size: 496 B |
BIN
doc/Icinga-Design/images/service_petrol.png
Normal file
After Width: | Height: | Size: 505 B |
BIN
doc/Icinga-Design/images/submit.png
Normal file
After Width: | Height: | Size: 418 B |
BIN
doc/Icinga-Design/images/unhandled.png
Normal file
After Width: | Height: | Size: 553 B |
BIN
doc/Icinga-Design/images/user.png
Normal file
After Width: | Height: | Size: 487 B |
@ -112,6 +112,7 @@ class ActionController extends Zend_Controller_Action
|
||||
$url = substr($url, strlen($this->getRequest()->getBaseUrl()));
|
||||
// the host is mandatory, but ignored in Zend
|
||||
$req = new Request('http://ignoredhost/' . $url);
|
||||
$req->setUser($this->getRequest()->getUser());
|
||||
$req->setBaseUrl($this->getRequest()->getBaseUrl());
|
||||
$router = Zend_Controller_Front::getInstance()->getRouter();
|
||||
$router->route($req);
|
||||
|
@ -267,7 +267,7 @@ class Monitoring_CommandController extends ActionController
|
||||
$given = array_intersect_key($supported, $this->getRequest()->getParams());
|
||||
|
||||
if (empty($given)) {
|
||||
throw new \Exception('Missing parameter, supported: '.implode(', ', $supported));
|
||||
throw new \Exception('Missing parameter, supported: '.implode(', ', array_flip($supported)));
|
||||
}
|
||||
|
||||
if (isset($given['host'])) {
|
||||
@ -815,19 +815,19 @@ class Monitoring_CommandController extends ActionController
|
||||
*/
|
||||
public function removedowntimeAction()
|
||||
{
|
||||
$this->setSupportedParameters(array('downtimeid'));
|
||||
$form = new CommandWithIdentifierForm();
|
||||
$this->setSupportedParameters(array('host', 'service', 'downtimeid'));
|
||||
$form = new SingleArgumentCommandForm();
|
||||
$form->setRequest($this->getRequest());
|
||||
|
||||
$form->setSubmitLabel(t('Delete Downtime'));
|
||||
$form->setFieldName('downtimeid');
|
||||
$form->setFieldLabel(t('Downtime Id'));
|
||||
$form->setParameterName('downtimeid');
|
||||
$form->addNote(t('Delete a single downtime with the id shown above'));
|
||||
|
||||
$form->setCommand('DEL_HOST_DOWNTIME', 'DEL_SVC_DOWNTIME');
|
||||
$form->setObjectIgnoreFlag(true);
|
||||
$this->setForm($form);
|
||||
|
||||
if ($form->IsSubmittedAndValid() === true) {
|
||||
$this->target->removeDowntime($this->view->objects);
|
||||
$this->target->sendCommand($form->createCommand(), $this->view->objects);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,17 +28,17 @@
|
||||
*/
|
||||
// {{{ICINGA_LICENSE_HEADER}}}
|
||||
|
||||
use \Icinga\Application\Benchmark;
|
||||
use \Icinga\Data\Db\Query;
|
||||
use \Icinga\File\Csv;
|
||||
use \Icinga\Module\Monitoring\Controller as MonitoringController;
|
||||
use \Icinga\Web\Hook;
|
||||
use \Icinga\Web\Widget\Tabextension\DashboardAction;
|
||||
use \Icinga\Web\Widget\Tabextension\OutputFormat;
|
||||
use \Icinga\Web\Widget\Tabs;
|
||||
use \Icinga\Module\Monitoring\Backend;
|
||||
use \Icinga\Web\Widget\SortBox;
|
||||
use \Icinga\Application\Config as IcingaConfig;
|
||||
use Icinga\Application\Benchmark;
|
||||
use Icinga\Data\Db\Query;
|
||||
use Icinga\File\Csv;
|
||||
use Icinga\Module\Monitoring\Controller as MonitoringController;
|
||||
use Icinga\Web\Hook;
|
||||
use Icinga\Web\Widget\Tabextension\DashboardAction;
|
||||
use Icinga\Web\Widget\Tabextension\OutputFormat;
|
||||
use Icinga\Web\Widget\Tabs;
|
||||
use Icinga\Module\Monitoring\Backend;
|
||||
use Icinga\Web\Widget\SortBox;
|
||||
use Icinga\Application\Config as IcingaConfig;
|
||||
|
||||
use Icinga\Module\Monitoring\DataView\Notification as NotificationView;
|
||||
use Icinga\Module\Monitoring\DataView\Downtime as DowntimeView;
|
||||
@ -116,7 +116,9 @@ class Monitoring_ListController extends MonitoringController
|
||||
'host_notes_url',
|
||||
'host_last_comment',
|
||||
'host_active_checks_enabled',
|
||||
'host_passive_checks_enabled'
|
||||
'host_passive_checks_enabled',
|
||||
'host_current_check_attempt',
|
||||
'host_max_check_attempts'
|
||||
)
|
||||
)->getQuery();
|
||||
$this->view->hosts = $query->paginate();
|
||||
|
@ -80,7 +80,7 @@ class Zend_View_Helper_Perfdata extends Zend_View_Helper_Abstract
|
||||
$result = $perfdata;
|
||||
}
|
||||
if (! $compact && $result !== '') {
|
||||
$result = '<table style="width: 100%">' . $result . '</table>';
|
||||
$result = '<table style="width: 100%; border: none;">' . $result . '</table>';
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
@ -1,5 +1,3 @@
|
||||
<?= $this->tabs->render($this); ?>
|
||||
|
||||
<?php
|
||||
/**
|
||||
* Create a DateTime from a string and use the util helper to
|
||||
@ -14,8 +12,11 @@ function formatDateString($self,$dateString){
|
||||
return $self->util()->showTime($d->getTimestamp());
|
||||
}
|
||||
|
||||
$commandHelper = $this->getHelper('CommandForm');
|
||||
?>
|
||||
|
||||
<?= $this->tabs->render($this); ?>
|
||||
|
||||
<div data-icinga-component="app/mainDetailGrid">
|
||||
<div>
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
@ -48,6 +49,7 @@ function formatDateString($self,$dateString){
|
||||
<th>Downtime ID</th>
|
||||
<th>Trigger ID</th>
|
||||
<th>Duration</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@ -109,6 +111,22 @@ function formatDateString($self,$dateString){
|
||||
<?= $this->util()->showHourMin(intval($downtime->downtime_duration)); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
$data = array(
|
||||
'downtimeid' => $downtime->downtime_internal_downtime_id,
|
||||
'host' => $downtime->host_name
|
||||
);
|
||||
|
||||
if ($downtime->object_type == 'service') {
|
||||
$data['service'] = $downtime->service_description;
|
||||
}
|
||||
|
||||
echo $commandHelper->simpleForm(
|
||||
'removedowntime',
|
||||
'Remove Downtime',
|
||||
$data
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
|
@ -1,122 +1,114 @@
|
||||
<?= $this->tabs->render($this); ?>
|
||||
|
||||
<?php
|
||||
$viewHelper = $this->getHelper('MonitoringState');
|
||||
?>
|
||||
|
||||
<?= $this->tabs->render($this); ?>
|
||||
<h1>Hosts Status</h1>
|
||||
<div data-icinga-component="app/mainDetailGrid">
|
||||
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
<?= $this->paginationControl($hosts, null, null, array('preserve' => $this->preserve)); ?>
|
||||
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3">Status</th>
|
||||
<th>Host</th>
|
||||
<th>Output</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<?php foreach($hosts as $host): ?>
|
||||
<?php $hostStateName = strtolower($this->util()->getHostStateName($host->host_state)); ?>
|
||||
<?php $hostLink = $this->href('monitoring/show/host', array('host' => $host->host_name)); ?>
|
||||
<tr <?= ($this->activeRowHref === $hostLink) ? 'class="active"' : ''; ?> >
|
||||
<td>
|
||||
|
||||
<!-- Color column -->
|
||||
<td class="tacheader-status-<?= $hostStateName; ?>">
|
||||
<a style="visibility:hidden" href="<?= $hostLink; ?>"></a>
|
||||
<?php if ($host->host_icon_image) : ?>
|
||||
<img src="<?= $host->host_icon_image; ?>"/>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<!-- Icons -->
|
||||
<td>
|
||||
<?php if (!$host->host_handled && $host->host_state > 0): ?>
|
||||
<a href="#" title="Unhandled">
|
||||
<i>{{UNHANDLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-unhandled"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($host->host_acknowledged && !$host->host_in_downtime): ?>
|
||||
<a href="#" title="Acknowledged">
|
||||
<i>{{ACKNOWLEDGED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-acknowledgement"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($host->host_is_flapping): ?>
|
||||
<a href="#" title="Flapping">
|
||||
<i>{{FLAPPING_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-flapping"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$host->host_notifications_enabled): ?>
|
||||
<a href="#" title="Notifications Disabled">
|
||||
<i>{{NOTIFICATIONS_DISABLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-notification-disabled"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($host->host_in_downtime): ?>
|
||||
<a href="#" title="In Downtime">
|
||||
<i>{{IN_DOWNTIME_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-in-downtime"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$host->host_active_checks_enabled): ?>
|
||||
<?php if (!$host->host_passive_checks_enabled): ?>
|
||||
<a href="#" title="Active And Passive Checks Disabled">
|
||||
<i>{{ACTIVE_PASSIVE_CHECKS_DISABLED_ICON}}</i>
|
||||
<i class="icinga-icon-active-passive-checks-disabled"></i>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<a href="#" title="Active Checks Disabled">
|
||||
<i>{{ACTIVE_CHECKS_DISABLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-active-checks-disabled"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($host->host_last_comment !== null): ?>
|
||||
<a href="#" title="Comments">
|
||||
<i>{{COMMENT_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-comment"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<!-- State -->
|
||||
<td title="<?= $viewHelper->getStateTitle($host, 'host'); ?>">
|
||||
<div>
|
||||
<?php if ($host->host_state_type == 0): ?>
|
||||
<a href="#" title="Soft State">
|
||||
<i>{{SOFTSTATE_ICON}}</i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<b><?= ucfirst($viewHelper->monitoringState($host, 'host')); ?></b>
|
||||
Since
|
||||
<?= $this->timeSince($host->host_last_state_change); ?>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<?php if ($host->host_unhandled_service_count): ?>
|
||||
<span class="badge pull-right">
|
||||
<?php if ($host->host_unhandled_service_count): ?>
|
||||
<span class="badge pull-right" title="<?= $host->host_unhandled_service_count; ?> Service Problems on Host">
|
||||
<a href="<?= $this->href('monitoring/list/services', array('host' => $host->host_name, 'service_problems' => 1)); ?>">
|
||||
<?= $host->host_unhandled_service_count; ?>
|
||||
</a>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<a href="<?= $this->href('monitoring/list/services', array('host' => $host->host_name)) ?>">
|
||||
<b><?= $host->host_name ?></b><br/>
|
||||
<i><?= $host->host_address ?></i>
|
||||
</a>
|
||||
|
||||
<?php if (!empty($host->host_action_url)): ?>
|
||||
<a href="<?= $host->host_action_url; ?>">Action</a>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($host->host_notes_url)): ?>
|
||||
<a href="<?= $host->host_notes_url; ?>">Notes</a>
|
||||
<?php endif; ?>
|
||||
<strong><?= ucfirst($viewHelper->monitoringState($host, 'host')); ?></strong><br />
|
||||
<div class="small-row">
|
||||
Since <?= $this->timeSince($host->host_last_state_change); ?>
|
||||
<?php if ($host->host_state > 0): ?>
|
||||
<br />
|
||||
<strong>Attempt:</strong> <?= $host->host_current_check_attempt; ?>/<?= $host->host_max_check_attempts; ?>
|
||||
(<?= ($host->host_state_type === '1') ? 'Hard' : 'Soft'; ?>)
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<!-- Host / Status / Output -->
|
||||
<td>
|
||||
<?= $this->escape(substr(strip_tags($host->host_output), 0, 10000)); ?>
|
||||
<?php if ($host->host_icon_image) : ?>
|
||||
<div class="pull-left" style="margin-right: 2px;">
|
||||
<i class="inline-image" style="background-image: url(<?= $host->host_icon_image; ?>);"></i>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<a href="<?= $this->href('monitoring/list/services', array('host' => $host->host_name)) ?>">
|
||||
<strong><?= $host->host_name ?></strong>
|
||||
</a>
|
||||
|
||||
<div class="output-text">
|
||||
<?= $this->escape(substr(strip_tags($host->host_output), 0, 10000)); ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
@ -1,141 +1,120 @@
|
||||
<?= $this->tabs->render($this); ?>
|
||||
|
||||
<?php
|
||||
$viewHelper = $this->getHelper('MonitoringState');
|
||||
?>
|
||||
|
||||
<?= $this->tabs->render($this); ?>
|
||||
<h1>Services Status</h1>
|
||||
<div data-icinga-component="app/mainDetailGrid">
|
||||
|
||||
<?= $this->sortControl->render($this); ?>
|
||||
<?= $this->paginationControl($services, null, null, array('preserve' => $this->preserve)); ?>
|
||||
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3">Status</th>
|
||||
<th>Service</th>
|
||||
<th>Host</th>
|
||||
<th>Output</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($services as $service): ?>
|
||||
<?php
|
||||
$serviceLink = $this->href('monitoring/show/service',array(
|
||||
'host' => $service->host_name,
|
||||
'service' => $service->service_description
|
||||
)
|
||||
);
|
||||
$hostLink = $this->href('monitoring/show/host',array(
|
||||
'host' => $service->host_name,
|
||||
)
|
||||
);
|
||||
$serviceLink = $this->href(
|
||||
'monitoring/show/service',
|
||||
array(
|
||||
'host' => $service->host_name,
|
||||
'service' => $service->service_description
|
||||
)
|
||||
);
|
||||
$hostLink = $this->href(
|
||||
'monitoring/show/host',
|
||||
array(
|
||||
'host' => $service->host_name,
|
||||
)
|
||||
);
|
||||
$serviceStateName = strtolower($this->util()->getServiceStateName($service->service_state));
|
||||
?>
|
||||
<tr <?= ($this->activeRowHref === $serviceLink) ? 'class="active"' : ''; ?>>
|
||||
<!-- Color column -->
|
||||
<td class="tacheader-status-<?= $serviceStateName; ?>">
|
||||
<a style="visibility:hidden" href="<?= $serviceLink; ?>"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a style="visibility:hidden" href="<?= $serviceLink; ?>"></a>
|
||||
<?php if ($service->service_icon_image) : ?>
|
||||
<img src="<?= $service->service_icon_image; ?>"/>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<?php if (!$service->service_handled && $service->service_state > 0): ?>
|
||||
<a href="#" title="Unhandled">
|
||||
<i>{{UNHANDLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-unhandled"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($service->service_acknowledged && !$service->service_in_downtime): ?>
|
||||
<a href="#" title="Acknowledged">
|
||||
<i>{{ACKNOWLEDGED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-acknowledgement"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($service->service_is_flapping): ?>
|
||||
<a href="#" title="Flapping">
|
||||
<i>{{FLAPPING_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-flapping"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$service->service_notifications_enabled): ?>
|
||||
<a href="#" title="Notifications Disabled">
|
||||
<i>{{NOTIFICATIONS_DISABLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-notification-disabled"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($service->service_in_downtime): ?>
|
||||
<a href="#" title="In Downtime">
|
||||
<i>{{IN_DOWNTIME_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-in-downtime"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$service->service_active_checks_enabled): ?>
|
||||
<?php if (!$service->service_passive_checks_enabled): ?>
|
||||
<a href="#" title="Active And Passive Checks Disabled">
|
||||
<i>{{ACTIVE_PASSIVE_CHECKS_DISABLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-active-passive-checks-disabled"></i>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<a href="#" title="Active Checks Disabled">
|
||||
<i>{{ACTIVE_CHECKS_DISABLED_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-active-checks-disabled"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($service->service_last_comment !== null): ?>
|
||||
<a href="#" title="Comments">
|
||||
<i>{{COMMENT_ICON}}</i>
|
||||
<i class="icon-table icinga-icon-comment"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<td title="<?= $viewHelper->getStateTitle($service, 'service'); ?>">
|
||||
<div>
|
||||
<?php if ($service->service_state_type == 0): ?>
|
||||
<a href="#" title="Soft State">
|
||||
<i>{{SOFTSTATE_ICON}}</i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<b><?= ucfirst($viewHelper->monitoringState($service, 'service')); ?></b>
|
||||
Since
|
||||
<?= $this->timeSince($service->service_last_state_change); ?>
|
||||
<strong><?= ucfirst($viewHelper->monitoringState($service, 'service')); ?></strong><br />
|
||||
|
||||
<div class="small-row">
|
||||
Since <?= $this->timeSince($service->service_last_state_change); ?>
|
||||
<?php if ($service->service_state): ?>
|
||||
<br />
|
||||
<strong>Attempt:</strong>
|
||||
<?= $service->current_check_attempt; ?>/<?= $service->max_check_attempts; ?>
|
||||
(<?= ($service->service_state_type === '1') ? 'Hard' : 'Soft'; ?>)
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<!--<a href="<?= $serviceLink; ?>">-->
|
||||
<b> <?= $service->service_display_name; ?></b>
|
||||
<!--</a>-->
|
||||
<br/>
|
||||
|
||||
<?php if (!empty($service->service_action_url)): ?>
|
||||
<a href="<?= $service->service_action_url; ?>">Action</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!empty($service->service_notes_url)): ?>
|
||||
<a href="<?= $service->service_notes_url; ?>">Notes</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<td title="<?= $viewHelper->getStateTitle($service, 'host'); ?>">
|
||||
<?php if (!$service->host_handled && $service->host_state > 0): ?>
|
||||
<a href="#" title="Unhandled Host">
|
||||
<i>{{UNHANDLED_ICON}}</i>
|
||||
</a>
|
||||
<?php if ($service->service_icon_image): ?>
|
||||
<div class="pull-left" style="margin-right: 2px;">
|
||||
<i class="inline-image" style="background-image: url(<?= $service->service_icon_image; ?>);"></i>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<a href="<?= $this->href('monitoring/list/services', array('host' => $service->host_name)) ?>">
|
||||
<b><?= $service->host_name; ?></b>
|
||||
<?php if ($service->host_state != 0): ?>
|
||||
(<?= ucfirst($viewHelper->monitoringState($service, 'host')); ?>)
|
||||
<?php endif; ?>
|
||||
<br /><?= $service->host_address ?>
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<strong> <?= $service->service_display_name; ?></strong>
|
||||
<small>
|
||||
on <a href="<?= $this->href('monitoring/list/services', array('host' => $service->host_name)) ?>">
|
||||
<?= $service->host_name; ?>
|
||||
<?php if ($service->host_state != 0): ?>
|
||||
(<?= ucfirst($viewHelper->monitoringState($service, 'host')); ?>)
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
</small>
|
||||
<div class="output-text">
|
||||
<?= $this->escape(substr(strip_tags($service->service_output), 0, 10000)); ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
@ -1,19 +1,49 @@
|
||||
<div>
|
||||
Comments
|
||||
<?php if (!empty($object->comments)): ?>
|
||||
<blockquote>
|
||||
<?php foreach ($object->comments as $comment): ?>
|
||||
<p>
|
||||
<?= sprintf(
|
||||
'[%s] %s (%s): %s',
|
||||
$this->escape($comment->comment_author),
|
||||
$this->format()->timeSince($comment->comment_timestamp),
|
||||
$comment->comment_type,
|
||||
$comment->comment_data
|
||||
); ?>
|
||||
<a href="#" class="button">{{REMOVE_ICON}}</a>
|
||||
</p>
|
||||
<?php endforeach; ?>
|
||||
</blockquote>
|
||||
<?php endif; ?>
|
||||
<div class="panel-heading">
|
||||
<div class="panel-hostname">
|
||||
Comments
|
||||
<?php
|
||||
$data = array(
|
||||
'host' => $object->host_name
|
||||
);
|
||||
if ($object->service_description) {
|
||||
$data['service'] = $object->service_description;
|
||||
}
|
||||
$addCommentHref = $this->href(
|
||||
'monitoring/command/addComment',
|
||||
$data
|
||||
);
|
||||
$sendNotificationHref = $this->href(
|
||||
'monitoring/command/sendCustomNotification',
|
||||
$data
|
||||
);
|
||||
?>
|
||||
<div class="pull-right">
|
||||
<a href="<?= $addCommentHref; ?>" class="btn-common btn-small button">
|
||||
<i class="icinga-icon-comment"></i>
|
||||
</a>
|
||||
<a href="<?= $sendNotificationHref; ?>" class="btn-common btn-small button">
|
||||
<i class="icinga-icon-notification"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="separator" />
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-detail">
|
||||
<tbody>
|
||||
<?php foreach ($object->comments as $comment): ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?= $this->escape($comment->comment_author); ?>, <?= $comment->comment_type; ?>
|
||||
(<?= $this->format()->timeSince($comment->comment_timestamp); ?>)
|
||||
<div class="small-row">
|
||||
<?= $this->escape($comment->comment_data); ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -0,0 +1,173 @@
|
||||
<?php
|
||||
$object = $this->object;
|
||||
$type = (isset($object->service_description) === true) ? 'service' : 'host';
|
||||
|
||||
if ($type === 'host') {
|
||||
$objectStateName = strtolower($this->util()->getHostStateName($this->object->host_state));
|
||||
$objectState = (int) $object->host_state;
|
||||
} else {
|
||||
$objectStateName = strtolower($this->util()->getServiceStateName($this->object->service_state));
|
||||
$objectState = (int) $object->service_state;
|
||||
}
|
||||
?>
|
||||
<div>
|
||||
<div class="panel-heading border-status-<?= $objectStateName ?>">
|
||||
<div class="panel-hostname">
|
||||
<?php if ($type === 'host'): ?>
|
||||
<a title="View all services for this host"
|
||||
href="<?= $this->href('monitoring/list/services', array('host' => $object->host_name)); ?>">
|
||||
<?= $this->escape($object->host_name); ?>
|
||||
</a><?= ($object->host_name !== $object->host_alias) ? ',' : ''; ?>
|
||||
|
||||
<?php if ($object->host_name !== $object->host_alias): ?>
|
||||
<?= $object->host_alias ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<span class="panel-header-status">
|
||||
- <?= $this->util()->getHostStateName($this->object->host_state); ?>
|
||||
since <?= $this->timeSince($this->object->host_last_state_change); ?>
|
||||
</span>
|
||||
|
||||
<?php else: ?>
|
||||
<?= $this->escape($object->service_description); ?>
|
||||
|
||||
<span class="panel-header-status">
|
||||
- <?= $this->util()->getServiceStateName($object->service_state); ?>
|
||||
since <?= $this->timeSince($object->service_last_state_change); ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?= $this->render('show/components/statusIcons.phtml'); ?>
|
||||
|
||||
<?php if ($object->service_display_name && $object->service_description !== $object->service_display_name): ?>
|
||||
<div class="small-row">
|
||||
(<?= $object->service_display_name; ?>)
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="small-row">
|
||||
<?php if ($type === 'service'): ?>
|
||||
On <?= $object->host_name; ?>
|
||||
<?php if ($object->host_state > 0): ?>
|
||||
(<?= $this->util()->getHostStateName($this->object->host_state); ?>)
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($object->action_url || $object->notes_url): ?>
|
||||
<br />
|
||||
<?php if ($object->notes_url): ?>
|
||||
<a target="_new" href='<?= $object->notes_url ?>'>Notes</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($object->action_url): ?>
|
||||
<a target="_new" href='<?= $this->object->action_url ?>'>Action</a>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="separator" />
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
<div class="panel-row">
|
||||
<p><?= $this->pluginOutput($object->output); ?></p>
|
||||
|
||||
<form>
|
||||
|
||||
<?php if ($objectState > 0): ?>
|
||||
<button type="submit" class="button btn-cta btn-half-left">Acknowledge</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<button type="submit" class="button btn-cta <?= ($objectState > 0) ? 'btn-half-right' : 'btn-wide'; ?>">Recheck</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="panel-row">
|
||||
<?php if ($object->perfdata): ?>
|
||||
<div class="small-row">
|
||||
<?= $this->perfdata($this->object->perfdata); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($object->long_output): ?>
|
||||
<div class="small-row">
|
||||
<?= $this->pluginOutput($object->long_output); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php if ($object->is_flapping): ?>
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Flapping
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<?= sprintf('%.2f', $object->percent_state_change) ?>% state change
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Last Check
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<?= $this->dateFormat()->formatDateTime($object->last_check); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Next Check
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<?= $this->dateFormat()->formatDateTime($object->next_check); ?>
|
||||
</div>
|
||||
<div class="panel-button">
|
||||
<form>
|
||||
<button class="button btn-common btn-small">
|
||||
<i class="icinga-icon-reschedule"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if ($objectState > 0): ?>
|
||||
<?php
|
||||
if ($object->service_description) {
|
||||
$notificationsHref = $this->href(
|
||||
'monitoring/list/notifications',
|
||||
array(
|
||||
'host' => $object->host_name,
|
||||
'service' => $object->service_description
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$notificationsHref = $this->href(
|
||||
'monitoring/list/notifications',
|
||||
array(
|
||||
'host' => $object->host_name
|
||||
)
|
||||
);
|
||||
}
|
||||
?>
|
||||
<div class="panel-row">
|
||||
<div class="panel-label">
|
||||
Last Notification
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<a href="<?= $notificationsHref ?>">
|
||||
<?php if ($object->last_notification === '0000-00-00 00:00:00'): ?>
|
||||
N/A
|
||||
<?php else: ?>
|
||||
<?= $object->last_notification ?>
|
||||
<?php if ($object->current_notification_number > 0): ?>
|
||||
<br />
|
||||
<?= $object->current_notification_number ?> notifications sent during current problem state
|
||||
<?php endif ;?>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
$o = $this->object;
|
||||
$isService = (isset($o->service_description)) ? true : false;
|
||||
$transitionObject = new \stdClass();
|
||||
$transitionObject->handled =
|
||||
($isService) ? $o->service_handled : $o->host_handled;
|
||||
$transitionObject->state =
|
||||
($isService) ? $o->service_state : $o->host_state;
|
||||
$transitionObject->acknowledged =
|
||||
($isService) ? $o->service_acknowledged : $o->host_acknowledged;
|
||||
$transitionObject->in_downtime =
|
||||
($isService) ? $o->in_downtime : $o->host_in_downtime;
|
||||
$transitionObject->is_flapping =
|
||||
($isService) ? $o->is_flapping : $o->host_is_flapping;
|
||||
$transitionObject->notifications_enabled =
|
||||
($isService) ? $o->notifications_enabled : $o->service_notifications_enabled;
|
||||
$transitionObject->active_checks_enabled =
|
||||
($isService) ? $o->active_checks_enabled : $o->host_active_checks_enabled;
|
||||
$transitionObject->passive_checks_enabled =
|
||||
($isService) ? $o->passive_checks_enabled : $o->host_passive_checks_enabled;
|
||||
$transitionObject->last_comment =
|
||||
($isService) ? $o->last_comment : $o->host_last_comment;
|
||||
?>
|
||||
|
||||
<span>
|
||||
<?php if (!$transitionObject->handled && $transitionObject->state > 0): ?>
|
||||
<i title="Unhandled" class="icinga-icon-unhandled"></i>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($transitionObject->acknowledged && !$transitionObject->in_downtime): ?>
|
||||
<i title="Acknowledged" class="icinga-icon-acknowledgement"></i>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($transitionObject->is_flapping): ?>
|
||||
<i title="Flapping" class="icinga-icon-flapping"></i>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$transitionObject->notifications_enabled): ?>
|
||||
<i title="Notifications Disabled" class="icinga-icon-notification-disabled"></i>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($transitionObject->in_downtime): ?>
|
||||
<i title="In Downtime" class="icinga-icon-in-downtime"></i>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$transitionObject->active_checks_enabled): ?>
|
||||
<?php if (!$transitionObject->passive_checks_enabled): ?>
|
||||
<i title="Active And Passive Checks Disabled" class="icinga-icon-active-passive-checks-disabled"></i>
|
||||
<?php else: ?>
|
||||
<i title="Active Checks Disabled" class="icinga-icon-active-checks-disabled"></i>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($transitionObject->last_comment !== null): ?>
|
||||
<i title="Comments" class="icinga-icon-comment"></i>
|
||||
<?php endif; ?>
|
||||
</span>
|
@ -1,112 +1,4 @@
|
||||
<?= $this->tabs->render($this); ?>
|
||||
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<?php if ($this->object->host_icon_image): ?>
|
||||
<img src="<?= $this->object->host_icon_image; ?>" alt="Host image" />
|
||||
<?php else: ?>
|
||||
{{HOST_ICON}}
|
||||
<?php endif; ?>
|
||||
<h4>
|
||||
Host Status
|
||||
<a href="<?= $this->href('monitoring/list/services', array('host' => $object->host_name)); ?>">
|
||||
<?= $this->escape($this->object->host_name); ?>
|
||||
</a>
|
||||
<?php if ($this->object->host_address && $this->object->host_address !== $this->object->host_name): ?>
|
||||
(<?= $this->object->host_address; ?>)
|
||||
<?php endif; ?>
|
||||
<?php if (isset($this->object->host_alias) && $this->object->host_alias !== $this->object->host_name): ?>
|
||||
(<?= $this->object->host_alias; ?>)
|
||||
<?php endif; ?>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<?= $this->util()->getHostStateName($this->object->host_state); ?>
|
||||
since <?= $this->timeSince($this->object->host_last_state_change); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<?= $this->pluginOutput($this->object->output); ?>
|
||||
</div>
|
||||
|
||||
<a class="button" href="#">{{RECHECK_COMMAND}</a>
|
||||
|
||||
<div>
|
||||
<?= $this->perfdata($this->object->perfdata); ?>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<?= $this->pluginOutput($this->object->long_output); ?>
|
||||
</div>
|
||||
|
||||
<?= $this->render('show/components/comments.phtml'); ?>
|
||||
|
||||
<div>
|
||||
Check Statistics
|
||||
<dl class="dl-horizontal">
|
||||
<dt>Last Check</dt>
|
||||
<dd><?= $object->last_check; ?></dd>
|
||||
<dt>Next Check</dt>
|
||||
<dd><?= $object->next_check; ?> <a href="#" class="button">{{RESCHEDULE_COMMAND}}</a></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<table>
|
||||
<i class="successIcon"></i>
|
||||
<tr>
|
||||
<?php if (!$object->host_handled && $object->host_state > 0): ?>
|
||||
<td>
|
||||
<a href="#" title="Unhandled">
|
||||
<i>{{UNHANDLED_ICON}}</i>
|
||||
</a>
|
||||
<a href="#" title="Acknowledge">
|
||||
<i>{{ACKNOWLEDGE_COMMAND}}</i>
|
||||
</a>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<?php if ($object->service_acknowledged && !$object->service_in_downtime): ?>
|
||||
<td>
|
||||
<a href="#" title="Acknowledged">
|
||||
<i>{{ACKNOWLEDGED_ICON}}</i>
|
||||
</a>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Last Check</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Next Check</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<?php if ($this->object->host_action_url || $this->object->host_notes_url): ?>
|
||||
<tr>
|
||||
<td rowspan="2">
|
||||
<?php if ($this->object->host_action_url): ?>
|
||||
<a target="_new" href='<?= $this->object->host_notes_url ?>'>{{HOST_ACTIONS_ICON}}</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->object->host_notes_url): ?>
|
||||
<a target="_new" href='<?= $this->object->host_notes_url ?>'>{{HOST_NOTES_ICON}}</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->object->perfdata): ?>
|
||||
<tr>
|
||||
<td>Performance Data</td>
|
||||
<td><?= $this->perfdata($this->object->perfdata); ?></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->render('show/components/status.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/downtime.phtml'); ?>
|
||||
|
||||
|
@ -1,126 +1,9 @@
|
||||
<?= $this->tabs->render($this); ?>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{SERVICE_ICON}} <h1>Service Status <?= $this->escape($this->object->service_description); ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<table>
|
||||
<tr>
|
||||
<?php if ($this->object->service_icon_image): ?>
|
||||
<td>
|
||||
<div>
|
||||
<img src="<?= $this->object->service_icon_image; ?>" alt="Host image" />
|
||||
</div>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<?php if (!$object->service_handled && $object->service_state > 0): ?>
|
||||
<td>
|
||||
<a href="#" title="Unhandled">
|
||||
<i>{{UNHANDLED_ICON}}</i>
|
||||
</a>
|
||||
<a href="#" title="Acknowledge">
|
||||
<i>{{ACKNOWLEDGE_COMMAND}}</i>
|
||||
</a>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<?php if ($object->service_acknowledged && !$object->service_in_downtime): ?>
|
||||
<td>
|
||||
<a href="#" title="Acknowledged">
|
||||
<i>{{ACKNOWLEDGED_ICON}}</i>
|
||||
</a>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<td>
|
||||
<strong><?= $this->util()->getServiceStateName($this->object->service_state); ?></strong>
|
||||
since <?= $this->timeSince($this->object->service_last_state_change); ?>
|
||||
</td>
|
||||
<td><a class="button" href="#">{{RECHECK_COMMAND_BUTTON}</a></td>
|
||||
</tr>
|
||||
<?php if ($this->object->service_action_url || $this->object->service_notes_url): ?>
|
||||
<tr>
|
||||
<td rowspan="2">
|
||||
<?php if ($this->object->service_action_url): ?>
|
||||
{{SERVICE_ACTIONS_ICON}}
|
||||
<a target="_new" href='<?= $this->object->service_notes_url ?>'>Host actions</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->object->service_notes_url): ?>
|
||||
{{SERVICE_NOTES_ICON}}
|
||||
<a target="_new" href='<?= $this->object->service_notes_url ?>'>Host notes</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{HOST_ICON}} <span><?= $this->escape($this->object->host_name); ?></span>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<table>
|
||||
<tr>
|
||||
<?php if ($this->object->host_icon_image): ?>
|
||||
<td>
|
||||
<div>
|
||||
<img src="<?= $this->object->host_icon_image; ?>" alt="Host image" />
|
||||
</div>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->object->host_address && $this->object->host_address !== $this->object->host_name): ?>
|
||||
<td>
|
||||
<strong>Host Address:</strong> <?= $this->escape($this->object->host_address); ?>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($this->object->host_alias) && $this->object->host_alias !== $this->object->host_name): ?>
|
||||
<td>
|
||||
<strong>Alias:</strong> <?= $this->object->host_alias; ?>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<td>
|
||||
<strong><?= $this->util()->getHostStateName($this->object->host_state); ?></strong>
|
||||
since <?= $this->timeSince($this->object->host_last_state_change); ?>
|
||||
<?php if ($this->object->host_acknowledged === '1'): ?>
|
||||
(Has been acknowledged)
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if ($this->object->host_action_url || $this->object->host_notes_url): ?>
|
||||
<tr>
|
||||
<td rowspan="2">
|
||||
<?php if ($this->object->host_action_url): ?>
|
||||
{{HOST_ACTIONS_ICON}}
|
||||
<a target="_new" href='<?= $this->object->host_notes_url ?>'>Host actions</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->object->host_notes_url): ?>
|
||||
{{HOST_NOTES_ICON}}
|
||||
<a target="_new" href='<?= $this->object->host_notes_url ?>'>Host notes</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?= $this->render('show/components/command.phtml') ?>
|
||||
|
||||
<?= $this->render('show/components/downtime.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/status.phtml'); ?>
|
||||
<?= $this->render('show/components/comments.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/properties.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/downtime.phtml'); ?>
|
||||
<?= $this->render('show/components/flags.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/customvars.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/servicegroups.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/contacts.phtml'); ?>
|
||||
|
||||
<?= $this->render('show/components/eventHistory.phtml'); ?>
|
||||
<?= $this->render('show/components/command.phtml') ?>
|
||||
|
@ -41,6 +41,8 @@ class HoststatusQuery extends AbstractQuery
|
||||
'host_last_time_up' => 'hs.last_time_up',
|
||||
'host_last_time_down' => 'hs.last_time_down',
|
||||
'host_last_time_unreachable' => 'hs.last_time_unreachable',
|
||||
'host_current_check_attempt' => 'hs.current_check_attempt',
|
||||
'host_max_check_attempts' => 'hs.max_check_attempts',
|
||||
|
||||
'host_severity' => 'CASE WHEN hs.current_state = 0
|
||||
THEN
|
||||
|
@ -49,7 +49,9 @@ class Controller extends ActionController
|
||||
'service_notes_url',
|
||||
'service_last_comment',
|
||||
'service_active_checks_enabled',
|
||||
'service_passive_checks_enabled'
|
||||
'service_passive_checks_enabled',
|
||||
'current_check_attempt' => 'service_current_check_attempt',
|
||||
'max_check_attempts' => 'service_max_check_attempts'
|
||||
);
|
||||
if ($params === null) {
|
||||
$query = HostAndServiceStatusView::fromRequest(
|
||||
|
@ -44,14 +44,16 @@ class Host extends AbstractObject
|
||||
'in_downtime' => 'host_in_downtime',
|
||||
'host_acknowledged',
|
||||
'host_last_state_change',
|
||||
'last_check' => 'host_last_check',
|
||||
'next_check' => 'host_next_check',
|
||||
'check_execution_time' => 'host_check_execution_time',
|
||||
'check_latency' => 'host_check_latency',
|
||||
'output' => 'host_output',
|
||||
'long_output' => 'host_long_output',
|
||||
'check_command' => 'host_check_command',
|
||||
'perfdata' => 'host_perfdata',
|
||||
'last_state_change' => 'host_last_state_change',
|
||||
'last_notification' => 'host_last_notification',
|
||||
'last_check' => 'host_last_check',
|
||||
'next_check' => 'host_next_check',
|
||||
'check_execution_time' => 'host_check_execution_time',
|
||||
'check_latency' => 'host_check_latency',
|
||||
'output' => 'host_output',
|
||||
'long_output' => 'host_long_output',
|
||||
'check_command' => 'host_check_command',
|
||||
'perfdata' => 'host_perfdata',
|
||||
'host_icon_image',
|
||||
'passive_checks_enabled' => 'host_passive_checks_enabled',
|
||||
'obsessing' => 'host_obsessing',
|
||||
@ -59,12 +61,16 @@ class Host extends AbstractObject
|
||||
'event_handler_enabled' => 'host_event_handler_enabled',
|
||||
'flap_detection_enabled' => 'host_flap_detection_enabled',
|
||||
'active_checks_enabled' => 'host_active_checks_enabled',
|
||||
'current_check_attempt' => 'host_current_check_attempt',
|
||||
'max_check_attempts' => 'host_max_check_attempts',
|
||||
'current_check_attempt' => 'host_current_check_attempt',
|
||||
'max_check_attempts' => 'host_max_check_attempts',
|
||||
'last_notification' => 'host_last_notification',
|
||||
'current_notification_number' => 'host_current_notification_number',
|
||||
'percent_state_change' => 'host_percent_state_change',
|
||||
'is_flapping' => 'host_is_flapping'
|
||||
'is_flapping' => 'host_is_flapping',
|
||||
'last_comment' => 'host_last_comment',
|
||||
'action_url' => 'host_action_url',
|
||||
'notes_url' => 'host_notes_url',
|
||||
'percent_state_change' => 'host_percent_state_change'
|
||||
))->where('host_name', $this->name1)->fetchRow();
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ class Service extends AbstractObject
|
||||
'check_command' => 'service_check_command',
|
||||
'perfdata' => 'service_perfdata',
|
||||
'current_check_attempt' => 'service_current_check_attempt',
|
||||
'max_check_attemt' => 'service_max_check_attempts',
|
||||
'max_check_attempts' => 'service_max_check_attempts',
|
||||
'state_type' => 'service_state_type',
|
||||
'passive_checks_enabled' => 'service_passive_checks_enabled',
|
||||
'last_state_change' => 'service_last_state_change',
|
||||
@ -74,7 +74,10 @@ class Service extends AbstractObject
|
||||
'notifications_enabled' => 'service_notifications_enabled',
|
||||
'event_handler_enabled' => 'service_event_handler_enabled',
|
||||
'flap_detection_enabled' => 'service_flap_detection_enabled',
|
||||
'active_checks_enabled' => 'service_active_checks_enabled'
|
||||
'active_checks_enabled' => 'service_active_checks_enabled',
|
||||
'last_comment' => 'service_last_comment',
|
||||
'action_url' => 'service_action_url',
|
||||
'notes_url' => 'service_notes_url'
|
||||
))
|
||||
->where('host_name', $this->name1)
|
||||
->where('service_description', $this->name2)
|
||||
|
@ -37,6 +37,8 @@ class HoststatusView extends AbstractView
|
||||
'host_last_time_up',
|
||||
'host_last_time_down',
|
||||
'host_last_time_unreachable',
|
||||
'host_current_check_attempt',
|
||||
'host_max_check_attempts',
|
||||
|
||||
// Services
|
||||
'services_cnt',
|
||||
|
264
public/css/icons.css
Normal file
@ -0,0 +1,264 @@
|
||||
.icinga-icon-blank {
|
||||
background: transparent;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-acknowledgement {
|
||||
background: transparent url("../img/icons/acknowledgement.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-comment {
|
||||
background: transparent url("../img/icons/comment.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-create {
|
||||
background: transparent url("../img/icons/create.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-dashboard {
|
||||
background: transparent url("../img/icons/dashboard.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-disabled {
|
||||
background: transparent url("../img/icons/disabled.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.icinga-icon-edit {
|
||||
background: transparent url("../img/icons/edit.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-error {
|
||||
background: transparent url("../img/icons/error.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-flapping {
|
||||
background: transparent url("../img/icons/flapping.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-in-downtime {
|
||||
background: transparent url("../img/icons/in_downtime.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-remove {
|
||||
background: transparent url("../img/icons/remove.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-save {
|
||||
background: transparent url("../img/icons/save.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-service {
|
||||
background: transparent url("../img/icons/service.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-submit {
|
||||
background: transparent url("../img/icons/submit.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-unhandled {
|
||||
background: transparent url("../img/icons/unhandled.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-user {
|
||||
background: transparent url("../img/icons/user.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-active-checks-disabled {
|
||||
background: transparent url("../img/icons/active_checks_disabled.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-active-passive-checks-disabled {
|
||||
background: transparent url("../img/icons/active_passive_checks_disabled.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-notification {
|
||||
background: transparent url("../img/icons/notification.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-notification-disabled {
|
||||
background: transparent url("../img/icons/notification_disabled.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-csv {
|
||||
background: transparent url("../img/icons/csv.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-pdf {
|
||||
background: transparent url("../img/icons/pdf.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-json {
|
||||
background: transparent url("../img/icons/json.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-downtime-start {
|
||||
background: transparent url("../img/icons/downtime_start.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-downtime-end {
|
||||
background: transparent url("../img/icons/downtime_end.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-hostgroup {
|
||||
background: transparent url("../img/icons/hostgroup.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-servicegroup {
|
||||
background: transparent url("../img/icons/servicegroup.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-host {
|
||||
background: transparent url("../img/icons/host.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-service {
|
||||
background: transparent url("../img/icons/service.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-success {
|
||||
background: transparent url("../img/icons/success.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-history {
|
||||
background: transparent url("../img/icons/history.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-reschedule {
|
||||
background: transparent url("../img/icons/reschedule.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-softstate {
|
||||
background: transparent url("../img/icons/softstate.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-next {
|
||||
background: transparent url("../img/icons/next.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-prev {
|
||||
background: transparent url("../img/icons/prev.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-refresh {
|
||||
background: transparent url("../img/icons/refresh.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-expand {
|
||||
background: transparent url("../img/icons/expand.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.icinga-icon-search {
|
||||
background: transparent url("../img/icons/search.png") center center no-repeat;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
body { padding-top: 70px; }
|
||||
@import url("icons.css");
|
||||
|
||||
body { padding-top: 51px; }
|
||||
|
||||
.load-indicator .mask {
|
||||
position: absolute;
|
||||
@ -21,3 +23,789 @@ body { padding-top: 70px; }
|
||||
z-index: 999;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.inline-image {
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: #c0c0c0 center center no-repeat;
|
||||
}
|
||||
|
||||
.small-row {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
display: block;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.icinga-logo {
|
||||
background: transparent url("../img/logo_icinga.png") center center no-repeat;
|
||||
width: 94px;
|
||||
height: 33px;
|
||||
display: block;
|
||||
text-indent: -999px;
|
||||
margin: 8px 0 0 8px;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Icinga Design
|
||||
========================================================================== */
|
||||
|
||||
html {
|
||||
font-family: sans-serif; /* 1 */
|
||||
-ms-text-size-adjust: 100%; /* 2 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
color: #262625;
|
||||
font-family: "Lucida Grande","Lucida Sans Unicode",Verdana,Helvetica,Arial,sans-serif;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.gap {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Links
|
||||
========================================================================== */
|
||||
|
||||
a {
|
||||
color: #049baf;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `outline` inconsistency between Chrome and other browsers.
|
||||
*/
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability when focused and also mouse hovered in all browsers.
|
||||
*/
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline: 0;
|
||||
color: #049baf;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Typography
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address variable `h1` font-size and margin within `section` and `article`
|
||||
* contexts in Firefox 4+, Safari 5, and Chrome.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
color: #262625;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #262625;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Tables
|
||||
========================================================================== */
|
||||
|
||||
|
||||
table, th, td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
padding: 8px 8px 10px 8px;
|
||||
border-bottom: 2px solid #ddd;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 8px 10px 8px 8px !important;
|
||||
border-bottom: 1px dotted #ddd !important;
|
||||
border-top: none;
|
||||
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
float: right !important;
|
||||
clear: right !important;
|
||||
|
||||
display: block;
|
||||
clear: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.badge-container {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.badge {
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
color: #ff3300;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
min-width: 10px;
|
||||
padding-bottom: 3px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 3px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #ff3300;
|
||||
|
||||
}
|
||||
|
||||
.badge a,
|
||||
.badge a:active,
|
||||
.badge a:hover,
|
||||
.badge:hover {
|
||||
color: #ff3300 !important;
|
||||
display: block !important;
|
||||
|
||||
}
|
||||
|
||||
.host-name {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.active {
|
||||
background-color: #f5f5f5;
|
||||
|
||||
}
|
||||
|
||||
.output-text {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Forms
|
||||
========================================================================== */
|
||||
|
||||
|
||||
.form-inline .form-group {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.form-group {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.input-sm {
|
||||
border-radius: 3px;
|
||||
font-size: 16px;
|
||||
|
||||
|
||||
padding: 5px;
|
||||
margin-right: 15px;
|
||||
|
||||
}
|
||||
.form-control {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #CCCCCC;
|
||||
border-radius: 4px;
|
||||
padding: 5px;
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
|
||||
color: #555555;
|
||||
display: block;
|
||||
|
||||
|
||||
|
||||
|
||||
vertical-align: middle;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
select.input-sm {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Pagination
|
||||
========================================================================== */
|
||||
|
||||
.pagination > .active > a,
|
||||
.pagination > .active > span,
|
||||
.pagination > .active > a:hover,
|
||||
.pagination > .active > span:hover,
|
||||
.pagination > .active > a:focus,
|
||||
.pagination > .active > span:focus {
|
||||
|
||||
background-color: #049baf !important;
|
||||
border-color: fuchsia !mportant;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.pagination-sm > li > a, .pagination-sm > li > span {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Status colors
|
||||
========================================================================== */
|
||||
|
||||
.status-up {
|
||||
background-color: #00cc33; /* green */
|
||||
}
|
||||
|
||||
.status-warning {
|
||||
background-color: #00cc33; /* xx */
|
||||
}
|
||||
|
||||
.status-critical {
|
||||
background-color: #ff3300; /* red */
|
||||
}
|
||||
|
||||
.status-unknown {
|
||||
background-color: #00cc33; /* xx */
|
||||
}
|
||||
|
||||
.status-pending {
|
||||
background-color: #00cc33; /* xx */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** Service status **/
|
||||
.tacheader-status-pending {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
|
||||
.tacheader-status-critical {
|
||||
background-color: #FF3300;
|
||||
}
|
||||
|
||||
.tacheader-status-ok {
|
||||
/** background-color: #00CC33; **/
|
||||
}
|
||||
|
||||
.tacheader-status-warning {
|
||||
background-color: #FFA500;
|
||||
}
|
||||
|
||||
.tacheader-status-unknown {
|
||||
background-color: #E066FF;
|
||||
}
|
||||
|
||||
/** Host status **/
|
||||
|
||||
.tacheader-status-unreachable {
|
||||
background-color: #E066FF;
|
||||
}
|
||||
|
||||
.tacheader-status-down {
|
||||
background-color: #FF3300;
|
||||
}
|
||||
|
||||
.tacheader-status-up {
|
||||
/** background-color: #00CC33; **/
|
||||
}
|
||||
|
||||
/* Borders for Detail Headers */
|
||||
.border-status-pending {
|
||||
border-left: 8px solid #c0c0c0;
|
||||
}
|
||||
|
||||
.border-status-critical {
|
||||
border-left: 8px solid #FF3300;
|
||||
}
|
||||
|
||||
.border-status-ok {
|
||||
border-left: 10px solid #00CC33;
|
||||
}
|
||||
|
||||
.border-status-warning {
|
||||
border-left: 10px solid #FFA500;
|
||||
}
|
||||
|
||||
.border-status-unknown {
|
||||
border-left: 10px solid #E066FF;
|
||||
}
|
||||
|
||||
/** Host status **/
|
||||
|
||||
.border-status-unreachable {
|
||||
border-left: 10px solid #E066FF;
|
||||
}
|
||||
|
||||
.border-status-down {
|
||||
border-left: 10px solid #FF3300;
|
||||
}
|
||||
|
||||
.border-status-up {
|
||||
border-left: 10px solid #00CC33;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Icons
|
||||
========================================================================== */
|
||||
|
||||
.icon-table {
|
||||
width: 16px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
background-position: 50% 0;
|
||||
}
|
||||
|
||||
.icon-header {
|
||||
background-position: 0 50%;
|
||||
padding-left: 25px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.icon-btn-small {
|
||||
background-position: 0 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.icon-flapping {
|
||||
background-image: url('../img/icons/flapping.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-comment {
|
||||
background-image: url('../img/icons/comment.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-unhandled {
|
||||
background-image: url('../img/icons/unhandled.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-host {
|
||||
background-image: url('../img/icons/host.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-acknowledgement {
|
||||
background-image: url('../img/icons/acknowledgement.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-remove {
|
||||
background-image: url('../img/icons/remove.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-submit {
|
||||
background-image: url('../img/icons/submit.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-create {
|
||||
background-image: url('../img/icons/create.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-dashboard {
|
||||
background-image: url('../img/icons/dashboard.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-disable {
|
||||
background-image: url('../img/icons/disable.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-edit {
|
||||
background-image: url('../img/icons/edit.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-error {
|
||||
background-image: url('../img/icons/error.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-downtime {
|
||||
background-image: url('../img/icons/in_downtime.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-save {
|
||||
background-image: url('../img/icons/save.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-service {
|
||||
background-image: url('../img/icons/service.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-user {
|
||||
background-image: url('../img/icons/user.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-reschedule {
|
||||
background-image: url('../img/icons/reschedule.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Details Panel
|
||||
========================================================================== */
|
||||
|
||||
.panel-heading {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 0px !important;
|
||||
padding-left: 5px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 5px;
|
||||
overflow: hidden;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.panel-hostname {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.separator {
|
||||
border-top: 2px solid #ddd;
|
||||
border-bottom: 0;
|
||||
margin: 0;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.panel-header-status {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.panel-row {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px dotted #ddd;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.panel-label {
|
||||
float: left;
|
||||
padding-right: 10px;
|
||||
width: 30%;
|
||||
clear: left;
|
||||
|
||||
}
|
||||
.panel-content {
|
||||
float: left;
|
||||
padding-right: 10px;
|
||||
display: inline-block;
|
||||
max-width: 40%;
|
||||
}
|
||||
|
||||
.panel-button {
|
||||
float: right;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.panel-body {
|
||||
margin-bottom: 45px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Buttons
|
||||
========================================================================== */
|
||||
|
||||
.button {
|
||||
text-align: center;
|
||||
padding: 3px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.btn-common {
|
||||
border-color: #ddd;
|
||||
color: #262625;
|
||||
background: rgb(255,255,255); /* Old browsers */
|
||||
background: -moz-linear-gradient(top, rgb(255,255,255) 1%, rgb(245,245,245) 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,rgb(255,255,255)), color-stop(100%,rgb(245,245,245))); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* W3C */
|
||||
}
|
||||
|
||||
.panel-row > a:hover,
|
||||
.btn-common:hover {
|
||||
border-color: #262625 !important;
|
||||
color: #262625 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
.btn-cta {
|
||||
border-color: #049BAF;
|
||||
color: #049BAF;
|
||||
background: rgb(255,255,255); /* Old browsers */
|
||||
background: -moz-linear-gradient(top, rgb(255,255,255) 1%, rgb(245,245,245) 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,rgb(255,255,255)), color-stop(100%,rgb(245,245,245))); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, rgb(255,255,255) 1%,rgb(245,245,245) 100%); /* W3C */
|
||||
}
|
||||
|
||||
|
||||
|
||||
.btn-small {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.btn-wide {
|
||||
width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.btn-half-left {
|
||||
float: left;
|
||||
width: 48%;
|
||||
}
|
||||
.btn-half-right {
|
||||
float: right;
|
||||
width: 48%;
|
||||
}
|
||||
|
||||
|
||||
.nav-stacked > li + li {
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
.nav-stacked {
|
||||
#background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
.icinga-subnavigation {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.nav-stacked > li {
|
||||
padding-left: 8px;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
border-bottom: 1px dotted #049baf;
|
||||
#border-right: 1px dotted #049baf;
|
||||
|
||||
}
|
||||
.nav-stacked > li:first-child {
|
||||
#border-top: 1px dotted #049baf;
|
||||
}
|
||||
|
||||
|
||||
.icinga-subnavigation > li {
|
||||
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px dotted #049baf;
|
||||
#border-right: 1px dotted #049baf;
|
||||
}
|
||||
|
||||
ul.icinga-subnavigation {
|
||||
|
||||
border-bottom: 1px dotted #049baf;
|
||||
margin-left: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.icinga-subnavigation > li:last-child {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 0;
|
||||
|
||||
}
|
||||
|
||||
.nav-stacked > li > a,
|
||||
.icinga-subnavigation > li > a {
|
||||
padding-left: 40px;
|
||||
padding-right: 3px;
|
||||
border-left: 6px solid #049baf;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.nav-stacked > li > a.nav-notification,
|
||||
.icinga-subnavigation > li > a.nav-notification {
|
||||
border-left: 6px solid red !important;
|
||||
}
|
||||
|
||||
.nav-stacked > li > a:hover,
|
||||
.icinga-subnavigation > li > a:focus {
|
||||
/* font-weight: bold;*/
|
||||
background-color: transparent; !important;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.nav-stacked > li:hover,
|
||||
.nav-stacked > li:focus,
|
||||
.icinga-subnavigation > li:hover,
|
||||
.icinga-subnavigation > li:focus {
|
||||
background-color: #fff;
|
||||
|
||||
}
|
||||
|
||||
.nav-stacked > li.active,
|
||||
.icinga-subnavigation > li.active {
|
||||
background-color: #fff;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.nav-icon-hosts {
|
||||
background-image: url('../img/icons/host_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
|
||||
.nav-icon-services {
|
||||
background-image: url('../img/icons/service_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-downtimes {
|
||||
background-image: url('../img/icons/in_downtime_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-notifications {
|
||||
background-image: url('../img/icons/notification_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 20px;
|
||||
}
|
||||
.nav-icon-comments {
|
||||
background-image: url('../img/icons/comment_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-dashboard {
|
||||
background-image: url('../img/icons/dashboard_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
.nav-icon-configuration {
|
||||
background-image: url('../img/icons/configuration_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
|
||||
|
||||
.subnav-icon-configuration {
|
||||
background-image: url('../img/icons/configuration_petrol.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 19px 50%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.badge-container-nav {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
padding-top: 0;
|
||||
margin-bottom: 5px;
|
||||
|
||||
}
|
||||
.badge-nav {
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
color: #ff3300;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
min-width: 10px;
|
||||
padding-bottom: 3px;
|
||||
padding-left: 7px;
|
||||
padding-right: 7px;
|
||||
padding-top: 3px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #ff3300;
|
||||
}
|
||||
|
||||
.badge-container-subnav {
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
padding-top: 0;
|
||||
padding-bottom;
|
||||
margin-left: 2px;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.badge-subnav {
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
color: #ff3300;
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
min-width: 10px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 2px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #ff3300;
|
||||
}
|
||||
|
||||
|
BIN
public/img/icons/acknowledgement.png
Normal file
After Width: | Height: | Size: 477 B |
BIN
public/img/icons/acknowledgement_petrol.png
Normal file
After Width: | Height: | Size: 492 B |
BIN
public/img/icons/active_checks_disabled.png
Normal file
After Width: | Height: | Size: 511 B |
BIN
public/img/icons/active_checks_disabled_petrol.png
Normal file
After Width: | Height: | Size: 513 B |
BIN
public/img/icons/active_passive_checks_disabled.png
Normal file
After Width: | Height: | Size: 537 B |
BIN
public/img/icons/active_passive_checks_disabled_petrol.png
Normal file
After Width: | Height: | Size: 546 B |
BIN
public/img/icons/comment.png
Normal file
After Width: | Height: | Size: 491 B |
BIN
public/img/icons/comment_petrol.png
Normal file
After Width: | Height: | Size: 502 B |
BIN
public/img/icons/configuration.png
Normal file
After Width: | Height: | Size: 647 B |
BIN
public/img/icons/configuration_petrol.png
Normal file
After Width: | Height: | Size: 645 B |
BIN
public/img/icons/create.png
Normal file
After Width: | Height: | Size: 475 B |
BIN
public/img/icons/create_petrol.png
Normal file
After Width: | Height: | Size: 482 B |
BIN
public/img/icons/csv.png
Normal file
After Width: | Height: | Size: 509 B |
BIN
public/img/icons/csv_petrol.png
Normal file
After Width: | Height: | Size: 511 B |
BIN
public/img/icons/dashboard.png
Normal file
After Width: | Height: | Size: 415 B |
BIN
public/img/icons/dashboard_petrol.png
Normal file
After Width: | Height: | Size: 420 B |
BIN
public/img/icons/disabled.png
Normal file
After Width: | Height: | Size: 535 B |
BIN
public/img/icons/disabled_petrol.png
Normal file
After Width: | Height: | Size: 525 B |
BIN
public/img/icons/down.png
Normal file
After Width: | Height: | Size: 492 B |
BIN
public/img/icons/down_petrol.png
Normal file
After Width: | Height: | Size: 505 B |
BIN
public/img/icons/downtime_end.png
Normal file
After Width: | Height: | Size: 550 B |
BIN
public/img/icons/downtime_end_petrol.png
Normal file
After Width: | Height: | Size: 561 B |
BIN
public/img/icons/downtime_start.png
Normal file
After Width: | Height: | Size: 524 B |
BIN
public/img/icons/downtime_start__petrol.png
Normal file
After Width: | Height: | Size: 529 B |
BIN
public/img/icons/edit.png
Normal file
After Width: | Height: | Size: 486 B |
BIN
public/img/icons/edit_petrol.png
Normal file
After Width: | Height: | Size: 493 B |
BIN
public/img/icons/error.png
Normal file
After Width: | Height: | Size: 530 B |
BIN
public/img/icons/error_petrol.png
Normal file
After Width: | Height: | Size: 535 B |
BIN
public/img/icons/expand.png
Normal file
After Width: | Height: | Size: 823 B |
BIN
public/img/icons/expand_petrol.png
Normal file
After Width: | Height: | Size: 779 B |
BIN
public/img/icons/flapping.png
Normal file
After Width: | Height: | Size: 629 B |
BIN
public/img/icons/flapping_petrol.png
Normal file
After Width: | Height: | Size: 636 B |
BIN
public/img/icons/history.png
Normal file
After Width: | Height: | Size: 516 B |
BIN
public/img/icons/history_petrol.png
Normal file
After Width: | Height: | Size: 520 B |
BIN
public/img/icons/host.png
Normal file
After Width: | Height: | Size: 500 B |
BIN
public/img/icons/host_petrol.png
Normal file
After Width: | Height: | Size: 489 B |
BIN
public/img/icons/hostgroup.png
Normal file
After Width: | Height: | Size: 541 B |
BIN
public/img/icons/hostgroup_petrol.png
Normal file
After Width: | Height: | Size: 554 B |
BIN
public/img/icons/in_downtime.png
Normal file
After Width: | Height: | Size: 490 B |
BIN
public/img/icons/in_downtime_petrol.png
Normal file
After Width: | Height: | Size: 497 B |
BIN
public/img/icons/json.png
Normal file
After Width: | Height: | Size: 517 B |
BIN
public/img/icons/json_petrol.png
Normal file
After Width: | Height: | Size: 525 B |
BIN
public/img/icons/logout.png
Normal file
After Width: | Height: | Size: 462 B |
BIN
public/img/icons/logout_petrol.png
Normal file
After Width: | Height: | Size: 470 B |
BIN
public/img/icons/next.png
Normal file
After Width: | Height: | Size: 509 B |
BIN
public/img/icons/next_petrol.png
Normal file
After Width: | Height: | Size: 513 B |