Dark mode.

This commit is contained in:
Kameron Kenny 2024-12-30 16:24:07 -05:00
parent 03bd251c27
commit 367a5a676b
26 changed files with 1615 additions and 1 deletions

View File

@ -244,6 +244,8 @@ RUN pip install speedtest-cli
#COPY overlay/etc ${NAGIOS_HOME}/etc
COPY overlay/opt/nagios/libexec/* ${NAGIOS_HOME}/libexec/
COPY overlay/opt/nagios/share/stylesheets/* ${NAGIOS_HOME}/share/stylesheets/
COPY overlay/opt/nagios/share/index.php ${NAGIOS_HOME}/share/
#COPY overlay/usr ${NAGIOS_HOME}/usr
RUN cd /opt/nagios/etc/objects && \

View File

@ -12,7 +12,7 @@ services:
build:
dockerfile: Dockerfile
container_name: nagios
image: docker-registry1.in.thelinuxpro.net:5000/tlp/nagios:241230.0.10
image: docker-registry1.in.thelinuxpro.net:5000/tlp/nagios:241230.0.11
networks:
infra_dev_net:
ipv4_address: 10.99.23.36

View File

@ -0,0 +1,106 @@
<?php
// Allow specifying main window URL for permalinks, etc.
$url = 'main.php';
if ("no" == "yes" && isset($_GET['corewindow'])) {
// The default window url may have been overridden with a permalink...
// Parse the URL and remove permalink option from base.
$a = parse_url($_GET['corewindow']);
// Build the base url.
$url = htmlentities($a['path']).'?';
$url = (isset($a['host'])) ? $a['scheme'].'://'.$a['host'].$url : '/'.$url;
$query = isset($a['query']) ? $a['query'] : '';
$pairs = explode('&', $query);
foreach ($pairs as $pair) {
$v = explode('=', $pair);
if (is_array($v)) {
$key = urlencode($v[0]);
$val = urlencode(isset($v[1]) ? $v[1] : '');
$url .= "&$key=$val";
}
}
if (preg_match("/^http:\/\/|^https:\/\/|^\//", $url) != 1)
$url = "main.php";
}
$this_year = date("Y");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<title>Nagios: <?php echo $_SERVER['SERVER_NAME']; ?></title>
<link rel="shortcut icon" href="images/favicon.ico" type="image/ico">
<link rel='stylesheet' type='text/css' href='/nagios/stylesheets/common.css'>
<script LANGUAGE="javascript">
var n = Math.round(Math.random() * 10000000000);
document.cookie = "NagFormId=" + n.toString(16);
</script>
<style>
::-webkit-scrollbar { display: none; }
html {
scrollbar-width: none;
}
body {
margin: 0;
overflow: auto;
}
#container {
position: absolute;
display: inline-block;
width: 100%;
height: 100%;
}
div.column {
display: flex;
height: 100%;
min-height: -webkit-fill-available;
min-height: -moz-available;
overflow: auto;
}
div.left {
float: left;
min-width: 200px;
overflow: hidden;
border-right: 1px solid var(--color-background-darker);
}
div.right {
width: 100%
max-width: -webkit-fill-available;
max-width: -moz-available;
}
iframe {
border: none;
min-height: 100%;
height: -webkit-fill-available;
height: -moz-available;
}
div.right iframe {
width: -webkit-fill-available;
width: -moz-available;
}
</style>
</head>
<body>
<div id="container" class="">
<div class="column left" >
<iframe src="side.php" name="side"></iframe>
</div>
<div class="column right" >
<iframe src="<?php echo $url; ?>" name="main"></iframe>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,35 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.avail { }
.data { font-size: 9pt; }
.hostUP { background-color: var(--color-ok); padding: 0 4 0 4; }
.hostDOWN { background-color: var(--color-problem); padding: 0 4 0 4; }
.hostUNREACHABLE { background-color: var(--color-unknown); padding: 0 4 0 4; }
.serviceOK { background-color: var(--color-ok); padding: 0 4 0 4; }
.serviceWARNING { background-color: var(--color-warning); padding: 0 4 0 4; }
.serviceUNKNOWN { background-color: var(--color-unknown); padding: 0 4 0 4; }
.serviceCRITICAL { background-color: var(--color-problem); padding: 0 4 0 4; }
table.logEntries { font-size: 9pt; padding: 5 0 0 0; }
th.logEntries { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.logEntriesOdd { background-color: #e7e7e7; padding: 0 4 0 4; }
.logEntriesEven { background-color: #f4f2f2; padding: 0 4 0 4; }
.logEntriesOK { background-color: var(--color-ok); padding: 0 4 0 4; }
.logEntriesUNKNOWN { background-color: var(--color-unknown); padding: 0 4 0 4; }
.logEntriesWARNING { background-color: var(--color-warning); padding: 0 4 0 4; }
.logEntriesCRITICAL { background-color: var(--color-problem); padding: 0 4 0 4; }
.logEntriesUP { background-color: var(--color-ok); padding: 0 4 0 4; }
.logEntriesDOWN { background-color: var(--color-problem); padding: 0 4 0 4; }
.logEntriesUNREACHABLE { background-color: var(--color-unknown); padding: 0 4 0 4; }
.logEntriesINDETERMINATE { background-color: var(--color-unimportant); padding: 0 4 0 4; }
.infoMessage { font-size: 9pt; }

View File

@ -0,0 +1,27 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.extinfo { }
.Title { font-size: 12pt; text-align: center; font-weight: bold; }
.SectionTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.DynamicData { font-size: 10pt; padding: 2; }
.StaticData { font-size: 10pt; padding: 2; }
.TableHeader { font-size: 10pt; background-color: #d0d0d0; font-weight: bold; }
.Item { font-size: 10pt; background-color: #f4f2f2; font-weight: bold; }
.DataSource { font-size: 10pt; background-color: #f4f2f2; }
.Number { font-size: 10pt; background-color: #f4f2f2; }
.Value { font-size: 10pt; background-color: #f4f2f2; font-weight: bold; }
.ValueOk { font-size: 10pt; background-color: var(--color-ok); font-weight: bold; }
.ValueError { font-size: 10pt; background-color: var(--color-problem); font-weight: bold; }

View File

@ -0,0 +1,24 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.cmd { }
.cmdType { font-size: 12pt; font-weight: bold; color: var(--color-danger-red); padding-bottom: 40; }
.commandDescription { font-size: 9pt; background-color: --var(--color-background-darker); border: 1px solid var(--color-border-grey); margin: 4 0 0 0; padding: 4 4 4 4; }
.descriptionTitle { font-size: 11pt; font-weight: bold; }
.infoMessage {
font-size: 9pt;
background-color: var(--color-sunbeam-yellow);
border: 1px solid var(--color-border-grey);
color: var(--color-alt-text);
margin: 40 20% 0 20%;
padding: 5 5 5 5;
}
.infoMessage a, .infoMessage a:visited { color: var(--color-plasma-blue) !important; }
.optBox { font-size: 9pt; padding: 5 5 5 5; }
.optbox td { padding: 2 0 2 4; }
input[type="text"] { background-color: var(--color-cardboard-gray); }

View File

@ -0,0 +1,456 @@
/* exfoliation: a nagios makeover */
/* version: 0.7 */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
/* thanks to jacob.laack for nagiosneat */
/* thanks to nagios authors for a solid base */
/* these are reference colors for the color scheme:
color dark light border
OK: green 88d066 cce8cc 777777
WARNING: yellow ffff00 feffc1 777777
CRITICAL: red f88888 ffdddd 777777
PENDING: grey acacac fefefe 777777
UNKNOWN: orange ffbb55 ffddaa 777777
UNREACHABLE: orange ffbb55 ffddaa 777777
INDETERMINATE: purple ddccff 777777
PROBLEMS: blue aaccff 777777
ACK: aaaaaa
CUSTOM: 778899
important: blue 99aacc 777777
not important: blue aaccff 777777
table header: d0d0d0
odd rows: e7e7e7
even rows: f4f2f2
titles: 12pt
body: 10pt
table headings: 9pt
controls: 9pt
data in tables: 8pt or 9pt
*/
:root {
--color-paper-white: rgba(252, 252, 252, 1);
--color-cardboard-gray: rgba(239, 240, 241, 1);
--color-charcoal-gray: rgba(49, 54, 59, 1);
--color-shade-black: rgba(35, 38, 41, 1);
--color-border-grey: rgba(103, 107, 110, 1);
--color-medium-grey: #555;
--color-abyss-blue: rgba(41, 128, 185, 1);
--color-dark-blue: #1d14ff;
--color-coastal-fog: rgba(127, 140, 141, 1);
--color-alternate-gray: rgba(189, 195, 199, 1);
--color-hover-blue: rgba(61, 174, 233, 0.4);
--color-plasma-blue: rgba(61, 174, 233, 1);
--color-icon-red: rgba(218, 68, 83, 1);
--color-danger-red: rgba(237, 21, 21, 1);
--color-dark-red: #810000;
--color-beware-orange: rgba(246, 116, 0, 1);
--color-icon-yellow: rgba(253, 188, 75, 1);
--color-sunbeam-yellow: rgba(201, 206, 59, 1);
--color-sunset-yellow: #b2b600;
--color-verdant-green: rgba(17, 209, 22, 1);
--color-dark-green: #006a00;
--color-main-background: var(--color-charcoal-gray);
--color-background-dark: var(--color-main-background);
--color-background-darker: var(--color-shade-black);
--color-main-text: var(--color-cardboard-gray);
--color-alt-text: var(--color-shade-black);
--color-text-light: var(--color-main-text);
--color-primary: var(--color-plasma-blue);
--color-primary-light: var(--color-primary);
--color-primary-text: var(--color-paper-white);
--color-ok: var(--color-dark-green);
--color-pending: var(--color-plasma-blue);
--color-unknown: var(--color-beware-orange);
--color-warning: var(--color-sunset-yellow);
--color-problem: var(--color-danger-red);
--color-unimportant: var(--color-abyss-blue);
--color-custom: var(--color-abyss-blue);
}
/* Scrollbar Style */
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: var(--color-main-background);
}
::-webkit-scrollbar-thumb {
background: var(--color-primary);
}
body {
margin: 0em;
margin: 0.8em 0.8em 2em 0.8em;
color: var(--color-main-text);
background-color: var(--color-main-background);
font-family: arial, verdana, serif;
font-weight: normal;
font-size: 10pt;
}
table {
border: none;
margin: 0;
}
th, td {
border: none;
padding: 0 2px 0 2px;
}
form {
margin: 0;
padding: 0;
}
a img {
border: none;
}
a {
text-decoration: none;
color: var(--color-main-text);
}
a:hover {
text-decoration: underline;
color: var(--color-text-light);
}
a:active {
color: var(--color-text-light);
}
a:visited {
color: var(--color-main-text);
}
div.navbarlogo {
margin: 0 0 10px 0;
}
div.navsection {
margin: 5px 0 10px 0;
}
div.navsectiontitle {
font-size: 9pt;
font-weight: bold;
background-color: var(--color-background-darker);
padding: 4px;
}
div.navsectionlinks {
margin: 3px 0 0 0;
}
ul.navsectionlinks {
margin: 0;
padding: 0;
list-style: none;
}
ul.navsectionlinks li { }
ul.navsectionlinks li a {
font-weight: bold;
font-size: 9pt;
text-decoration: none;
padding: 0 0 0 15px;
/* background: transparent url(../images/greendot.gif) no-repeat scroll 0 0; */
}
ul.navsectionlinks li ul {
margin: 0px;
padding: 0 0 0 30px;
list-style: none;
}
ul.navsectionlinks li ul li { }
ul.navsectionlinks li a:hover {
/* background: transparent url(../images/orangedot.gif) no-repeat scroll 0 0; */
color: #8391cd;
}
ul.navsectionlinks li ul li a {
background: none;
padding: 0;
font-weight: normal;
}
ul.navsectionlinks li ul li a:hover {
background: none;
}
ul.navsectionlinks li ul li ul {
margin: 0px;
padding: 0 0 0 15px;
list-style: none;
}
div.navsectionheader {
padding: 0;
margin: 0;
}
div.navsectionheader ul {
margin: 0;
padding: 0;
list-style: none;
}
div.navsectionheader ul li {
font-size: 9pt;
font-weight: bold;
padding: 0 0 0 15px;
}
div.navsectionheader ul li ul li {
font-weight: normal;
}
.navbarsearch {
margin: 5px 0 0 0;
}
.navbarsearch fieldset {
border: none;
}
.navbarsearch fieldset legend {
font-size: 8pt;
}
.navbarsearch input {
font-size: 9pt;
}
#splashpage {
text-align: center;
}
#mainbrandsplash {
font-size: 12pt;
font-weight: bold;
margin: 0 0 35px 0;
}
#maincopy {
margin: 0 0 15px 0;
}
#currentversioninfo {
font-size: 12pt;
}
#currentversioninfo .product {
font-size: 14pt;
font-weight: bold;
}
#currentversioninfo .version {
font-size: 14pt;
font-weight: bold;
}
#currentversioninfo .releasedate {
font-size: 11pt;
margin: 5px 0 0 0;
}
#currentversioninfo .checkforupdates {
font-size: 11pt;
font-weight: bold;
}
#currentversioninfo .whatsnew {
font-size: 11pt;
font-weight: bold;
margin: 50px 0 0 0;
}
#updateversioninfo {
margin: 15px auto 35px auto;
width: 400px;
}
#updateversioninfo div.submessage {
clear: left;
}
.updatechecksdisabled {
background-color: #FF9F9F;
border: 1px solid red;
padding: 10px;
}
.updatechecksdisabled div.warningmessage {
font-weight: bold;
}
.updateavailable {
background-color: #9FD4FF;
border: 1px solid blue;
padding: 10px;
}
.updateavailable div.updatemessage {
font-size: 12pt;
font-weight: bold;
}
#splashpage #mainfooter {
clear: both;
font-size: 8pt;
padding-top: 35px;
margin: auto;
width: 800px;
}
#splashpage #mainfooter .disclaimer {
margin: auto;
}
#splashpage #mainfooter .logos {
margin: 15px 0 0 0;
}
table.infoBox { width: 100%; }
td.infoBox { font-size: 8pt; padding: 0 0 1em 0; white-space: nowrap; }
div.infoBoxTitle { font-size: 10pt; font-weight: bold; }
div.infoBoxBadProcStatus { font-size: 8pt; font-weight: bold; color: var(--color-danger-red); }
.linkBox { font-size: 8pt; padding: 1px; }
table.linkBox td { white-space: nowrap; }
.filter { font-size: 8pt; padding: 1px; }
.filterTitle { font-size: 9pt; font-weight: bold; }
.filterName { font-size: 8pt; text-align: right; font-weight: bold; }
.filterValue { font-size: 8pt; }
.errorDescription { font-size: 10pt; text-align: center; font-weight: bold; }
.errorMessage { font-size: 10pt; text-align: center; font-weight: bold; color: var(--color-danger-red); }
.warningMessage { font-size: 10pt; text-align: center; font-weight: bold; color: var(--color-danger-red); }
.statusTitle { text-align: center; font-weight: bold; font-size: 12pt; white-space: nowrap; }
.statusSort { font-size: 8pt; }
table.data { padding: 0; }
th.data { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; }
.dataOdd { font-size: 8pt; background-color: var(--color-medium-grey); padding: 0px 4px 0px 4px; }
.dataEven { font-size: 8pt; background-color: var(--color-charcoal-gray); padding: 0px 4px 0px 4px; }
.dataTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.dataSubTitle { font-size: 10pt; text-align: center; font-weight: bold; }
.optBox { font-size: 9pt; white-space: nowrap; padding: 2px 0px 0px 0px; }
.optBoxTitle { font-size: 10pt; font-weight: bold; text-align: center; }
.optBoxRequiredItem { font-size: 9pt; text-align: right; padding: 0px 5px 0px 5px; color: var(--color-plasma-blue); }
.optBoxItem { font-size: 9pt; text-align: right; padding: 0px 5px 0px 5px; }
.optBoxValue { font-size: 9pt; }
.optionBoxTitle { font-size: 10pt; text-align: center; font-weight: bold; }
.optionBox { font-size: 10pt; padding: 2px; }
.navBoxTitle { font-size: 10pt; font-weight: bold; white-space: nowrap; }
.navBoxItem { font-size: 8pt; }
.navBoxDate { font-size: 8pt; white-space: nowrap; }
.navBoxFile { font-size: 8pt; text-align: center; }
.helpfulHint { font-size: 8pt; font-style: italic; text-align: center; }
.logEntries { font-size: 8pt; white-space: nowrap; }
.dateTimeBreak { font-size: 9pt; font-weight: bold; }
.reportRange { font-size: 10pt; white-space: nowrap; }
.reportDuration { font-size: 8pt; white-space: nowrap; }
.reportTime { font-size: 8pt; white-space: nowrap; text-align: right; font-style: italic; }
.reportSelectTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.reportSelectSubTitle { font-size: 9pt; text-align: right; }
.reportSelectItem { font-size: 9pt; }
.reportSelectTip { font-size: 8pt; font-style: italic; }
.dateSelectTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.dateSelectSubTitle { font-size: 9pt; text-align: right; }
.dateSelectItem { font-size: 9pt; }
.popupText { font-size: 8pt; background-color: #eeeeaa; border: 1px solid #777777; padding: 10px 10px 10px 10px; }
.hostImportantProblem { font-size: 9pt; background-color: var(--color-problem); padding: 0px 5px 0px 5px; }
.hostUnimportantProblem { font-size: 9pt; background-color: var(--color-unimportant); padding: 0px 5px 0px 5px; }
.serviceImportantProblem { font-size: 9pt; background-color: var(--color-problem); padding: 0px 5px 0px 5px; }
.serviceUnimportantProblem { font-size: 9pt; color: var(--color-charcoal-gray); background-color: var(--color-unimportant); padding: 0px 5px 0px 5px; }
.outageImportantProblem { font-size: 9pt; background-color: var(--color-problem); padding: 0px 5px 0px 5px; }
.outageUnimportantProblem { font-size: 9pt; background-color: var(--color-unimportant); padding: 0px 5px 0px 5px; }
/* Some nagios configurations have side.html rather than side.php and define */
/* a slightly different set of nav elements. */
.NavBarTitle {
font-size: 9pt;
font-weight: bold;
margin: 5px 0 10px 0;
padding: 2px;
background-color: #efefef;
border: 1px solid #dddddd;
}
.NavBarItem {
font-size: 9pt;
font-weight: bold;
list-style: none;
text-decoration: none;
margin: 0;
padding: 0 0 0 0;
}
.NavBarSearchItem {
font-size: 9pt;
}
#splashboxes {
margin: auto;
width: 794px;
}
.splashbox {
padding: 5px;
margin: 5px;
border: 1px solid var(--color-alternate-gray);
float: left;
text-align: left;
height: 140px;
}
.splashbox h2 {
margin: 0;
font-size: 12pt;
}
.splashbox ul {
margin: 0;
padding: 5px 5px 5px 15px;
}
.splashbox ul li {
clear: both;
}
.splashbox-media {
margin: 5px;
}
.splashbox3-empty {
margin: 5px;
border: 1px solid var(--color-alternate-gray);
width: 238px;
height: 150px;
}
.splashbox3-full {
margin: 5px;
width: 240px;
height: 152px;
}
.splashbox-clear {
clear: both;
}
#splashbox1, #splashbox2, #splashbox4 {
width: 250px;
}
#splashbox3 {
float: left;
}
#splashbox5 {
width: 500px;
}

View File

@ -0,0 +1,11 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.config { }
.reportSelectSubTitle { font-size: 9pt; text-align: left; }
.reportSelectItem { font-size: 9pt; }

View File

@ -0,0 +1,84 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.extinfo { }
.perfTypeTitle { font-size: 10pt; text-align: right; font-weight: bold; }
.stateInfoPanel { font-size: 9pt; }
.stateStatisticsPanel { }
.stateInfoTable1 { background-color: var(--color-background-darker); border: 1px solid var(--color-border-grey); }
.stateInfoTable2 { background-color: var(--color-background-darker); border: 1px solid var(--color-border-grey); }
.dataVar { font-size: 9pt; font-weight: bold; }
.dataVal { font-size: 9pt; }
/* FIXME: override the defaults until php/html is fixed */
/* .data { font-size: 10pt; font-weight: bold; } */
div.data { font-size: 10pt; font-weight: normal; }
.dataTitle { font-size: 10pt; font-weight: bold; padding-bottom: 5; }
.commandTitle { font-size: 10pt; text-align: center; font-weight: bold; padding-bottom: 5; }
TABLE.command { background-color: var(--color-background-darker); border: 1px solid var(--color-border-grey); }
.command { font-size: 9pt; }
.commandPanel td { padding: 1px 0 1px 4px }
.commentPanel { }
.commentTitle { font-size: 10pt; text-align: center; font-weight: bold;}
DIV.commentNav { font-size: 10pt; text-align: center; }
A.commentNav { font-size: 10pt; }
TABLE.comment { font-size: 10pt; background-color: var(--color-background-darker); color: var(--color-paper-white); padding: 2; }
TH.comment { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; }
.commentOdd { font-size: 9pt; background-color: var(--color-medium-grey); }
.commentEven { font-size: 9pt; background-color: var(--color-charcoal-gray); }
DIV.comment,A.comment { font-size: 10pt; text-align: center; }
.downtimeTitle { font-size: 12pt; text-align: center; font-weight: bold; }
DIV.downtimeNav { font-size: 10pt; text-align: center; }
A.downtimeNav { font-size: 10pt; }
TABLE.downtime { font-size: 10pt; background-color: var(--color-background-darker); padding: 2; }
TH.downtime { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; }
.downtimeOdd { font-size: 9pt; background-color: var(--color-medium-grey); }
.downtimeEven { font-size: 9pt; background-color: var(--color-charcoal-gray); }
.notflapping { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; float: left; }
.flapping { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; float: left; }
.notificationsENABLED { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; }
.notificationsDISABLED { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; }
.checksENABLED { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; }
.checksDISABLED { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; }
.eventhandlersENABLED { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; }
.eventhandlersDISABLED { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; }
.flapdetectionENABLED { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; }
.flapdetectionDISABLED { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; }
.downtimeACTIVE { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; float: left; }
.downtimeINACTIVE { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; float: left; }
.processOK { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; }
.processUNKNOWN { background-color: var(--color-unknown); border: 1px solid #777777; font-weight: bold; }
.processWARNING { background-color: var(--color-warning); border: 1px solid #777777; font-weight: bold; }
.processCRITICAL { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; }
.modeACTIVE { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; }
.modeSTANDBY { background-color: var(--color-warning); border: 1px solid #777777; font-weight: bold; }
.hostUP { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; float: left; }
.hostDOWN { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; float: left; }
.hostUNREACHABLE { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; float: left; }
.serviceOK { background-color: var(--color-ok); border: 1px solid #777777; font-weight: bold; float: left; }
.serviceWARNING { background-color: var(--color-warning); border: 1px solid #777777; font-weight: bold; float: left; }
.serviceUNKNOWN { background-color: var(--color-unknown); border: 1px solid #777777; font-weight: bold; float: left; }
.serviceCRITICAL { background-color: var(--color-problem); border: 1px solid #777777; font-weight: bold; float: left; }
.queueTitle { font-size: 12pt; text-align: center; font-weight: bold; }
TABLE.queue { font-size: 9pt; padding: 0; }
TH.queue { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.queueOdd { font-size: 9pt; background-color: var(--color-medium-grey); padding: 0 4 0 4; }
.queueEven { font-size: 9pt; background-color: var(--color-charcoal-gray); padding: 0 4 0 4; }
.queueENABLED { font-size: 9pt; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 4 0 4; }
.queueDISABLED { font-size: 9pt; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 4 0 4; }

View File

@ -0,0 +1,10 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.histogram { }
.helpfulHints { font-size: 10pt; font-style: italic; text-align: center; }

View File

@ -0,0 +1,137 @@
/* General text style */
text {
font-family: sans-serif;
font-size: 11px;
}
/* Colors for text representing states */
text.up {
fill: rgb(0, 128, 0);
}
text.down {
fill: rgb(255, 0, 0);
}
text.unreachable {
fill: rgb(128, 0, 0);
}
text.ok {
fill: rgb(0, 128, 0);
}
text.warning {
fill: rgb(176, 178, 20);
}
text.unknown {
fill: rgb(255, 100, 25);
}
text.critical {
fill: rgb(255, 0, 0);
}
/* Colors for text representing states */
path.up {
stroke: rgb(0, 128, 0);
}
path.down {
stroke: rgb(255, 0, 0);
}
path.unreachable {
stroke: rgb(128, 0, 0);
}
path.ok {
stroke: rgb(0, 128, 0);
}
path.warning {
stroke: rgb(176, 178, 20);
}
path.unknown {
stroke: rgb(255, 100, 25);
}
path.critical {
stroke: rgb(255, 0, 0);
}
/* Class to hide elements */
.hidden {
display: none;
}
/* Trend SVG style */
div#histogramsvg {
position: absolute;
z-index: 10;
left: 0;
top: 0;
}
/* Center header text */
g#header text,
g#yaxis-label text {
text-anchor: middle;
}
/* Anchor the y-axis text to the end of the text */
g#xaxis text,
g#yaxis text {
text-anchor: end;
}
/* Draw grid lines as dashed lines */
g#xaxis line,
g#yaxis line {
stroke-width: 1;
stroke: #c0c0c0;
stroke-dasharray: 2,4;
pointer-events: none;
}
/* Hide the axes path */
g#xaxis path,
g#yaxis path {
display: none;
}
/* Styles for data lines */
g#grid path {
fill: none;
stroke-width: 1;
}
/* Styles for grid spinner */
div#gridspinner {
position: absolute;
top: 74px;
left: 355px;
height: 50px;
width: 50px;
z-index: 40;
}
/* Styles for the summary table */
g.summary .label {
text-anchor: left;
}
g.summary .value {
text-anchor: end;
}
g.summary line {
stroke-width: 1;
stroke: black;
}
/* Styles for menu button */
div#menubutton {
position: absolute;
top: 5px;
left: 871px;
height: 25px;
width: 22px;
z-index: 40;
}
div#menubutton button {
padding: 0px;
border: none;
background-color: white;
}

View File

@ -0,0 +1,8 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.history { }

View File

@ -0,0 +1,37 @@
body, html {
margin: 0;
padding: 0;
}
#wrap {
width: 750px;
left: calc(50% - 375px);
background: #ddd;
position: absolute;
text-align: center;
}
#options {
width: 290px;
float: left;
background: #bbb;
padding-left: 5px;
padding-right: 5px;
text-align: left;
}
#results {
width: 440px;
float: right;
padding-left: 5px;
padding-right: 5px;
text-align: left;
}
#results p.error {
color: red;
}
.required {
color: red;
}

View File

@ -0,0 +1,106 @@
.hidden {
display: none;
}
/* Styles for the spinner div */
div#spinner {
position: absolute;
top: 0;
left: 0;
z-index: 40;
}
/* Styles for the map div */
div#mapsvg {
position: absolute;
border-style: solid;
border-color: #777777;
border-width: 1px;
width: 600px;
height: 600px;
}
/* Styles for map elements */
.link {
fill: none;
stroke: #cccccc;
stroke-width: 1.5px;
}
.node circle {
fill: #ffffff;
stroke: #cccccc;
stroke-width: 2px;
}
.node {
font-family: sans-serif;
}
/* Styles for state popups */
div#popup {
font-family: sans-serif;
font-size: 12px;
position: absolute;
width: auto;
height: auto;
padding: 3px;
border: 1px solid black;
background-color: var(--color-background-dark);
pointer-events: none;
}
div#popup td {
vertical-align: top;
}
div#popup .popup-label {
text-align: right;
}
div#popup .popup-value {
font-weight: bold;
}
/* Colors for text representing states */
.up {
color: rgb(0, 128, 0);
}
.down {
color: rgb(255, 0, 0);
}
.unreachable {
color: rgb(128, 0, 0);
}
.ok {
color: rgb(0, 128, 0);
}
.warning {
color: rgb(176, 178, 20);
}
.unknown {
color: rgb(255, 100, 25);
}
.critical {
color: rgb(255, 0, 0);
}
.pending {
color: #ccc;
}
/* Styles for labels in partition displays */
g.label {
pointer-events: none;
}
/* Styles for menu button */
div#menubutton {
position: absolute;
z-index: 40;
}
div#menubutton button {
padding: 0px;
border: none;
background-color: white;
}

View File

@ -0,0 +1,34 @@
/* Styles for the body as whole */
body {
margin: 0;
}
/* Styles for the map header div */
div#header-container {
position: absolute;
top: 1px;
left: 1px;
width: 320px;
z-index: 30;
}
/* Container for the map svg */
div#map-container {
position: absolute;
width: 100%;
height: 100%;
background-color: var(--color-cardboard-gray);
}
/* Class to remove shadow from bootstrap buttons */
.btn-noshadow:focus,
.btn-noshadow:active {
outline: none;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
}
g.node {
}

View File

@ -0,0 +1,64 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.status { }
TABLE.status { font-size: 9pt; padding: 2; }
TH.status { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
DIV.status { font-size: 10pt; text-align: center; }
.statusOdd { font-size: 9pt; background-color: #e7e7e7; }
.statusEven { font-size: 9pt; background-color: #f4f2f2; }
.statusPENDING { font-size: 9pt; background-color: var(--color-pending); }
.statusOK { font-size: 9pt; background-color: var(--color-ok); }
.statusRECOVERY { font-size: 9pt; background-color: var(--color-ok); }
.statusUNKNOWN { font-size: 9pt; background-color: var(--color-unknown); }
.statusWARNING { font-size: 9pt; background-color: var(--color-warning); }
.statusCRITICAL { font-size: 9pt; background-color: var(--color-problem); }
.statusHOSTPENDING { font-size: 9pt; background-color: var(--color-pending); }
.statusHOSTUP { font-size: 9pt; background-color: var(--color-ok); }
.statusHOSTDOWN { font-size: 9pt; background-color: var(--color-problem); }
.statusHOSTUNREACHABLE { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGUNKNOWN { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGWARNING { font-size: 9pt; background-color: var(--color-warning); }
.statusBGCRITICAL { font-size: 9pt; background-color: var(--color-problem); }
.statusBGDOWN { font-size: 9pt; background-color: var(--color-problem); }
.statusBGUNREACHABLE { font-size: 9pt; background-color: var(--color-unknown); }
DIV.serviceTotals { font-size: 10pt; text-align: center; font-weight: bold; }
TABLE.serviceTotals { font-size: 10pt; font-weight: bold; }
TH.serviceTotals,A.serviceTotals { font-size: 9pt; }
TD.serviceTotals { font-size: 9pt; text-align: center; background-color: #e0e0e0; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsOK { font-size: 9pt; text-align: center; background-color: var(--color-ok); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsWARNING { font-size: 9pt; text-align: center; background-color: var(--color-warning); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsUNKNOWN { font-size: 9pt; text-align: center; background-color: var(--color-unknown); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsCRITICAL { font-size: 9pt; text-align: center; background-color: var(--color-problem); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPENDING { font-size: 9pt; text-align: center; background-color: var(--color-pending); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPROBLEMS { font-size: 9pt; text-align: center; background-color: var(--color-unimportant); border: 1px solid #777777; padding: 2 4 2 4; }
DIV.hostTotals { font-size: 10pt; text-align: center; font-weight: bold; }
TABLE.hostTotals { font-size: 10pt; font-weight: bold; }
TH.hostTotals,A.hostTotals { font-size: 9pt; }
TD.hostTotals { font-size: 9pt; text-align: center; background-color: #e4e4e4; }
.hostTotalsUP { font-size: 9pt; text-align: center; background-color: var(--color-ok); }
.hostTotalsDOWN { font-size: 9pt; text-align: center; background-color: var(--color-problem); }
.hostTotalsUNREACHABLE { font-size: 9pt; text-align: center; background-color: var(--color-unknown); }
.hostTotalsPENDING { font-size: 9pt; text-align: center; background-color: var(--color-pending); }
.hostTotalsPROBLEMS { font-size: 9pt; text-align: center; background-color: var(--color-unimportant); }
.miniStatusPENDING { font-size: 9pt; background-color: var(--color-pending); text-align: center; }
.miniStatusOK { font-size: 9pt; background-color: var(--color-ok); text-align: center; }
.miniStatusUNKNOWN { font-size: 9pt; background-color: var(--color-unknown); text-align: center; }
.miniStatusWARNING { font-size: 9pt; background-color: var(--color-warning); text-align: center; }
.miniStatusCRITICAL { font-size: 9pt; background-color: var(--color-problem); text-align: center; }
.miniStatusUP { font-size: 9pt; background-color: var(--color-ok); text-align: center; }
.miniStatusDOWN { font-size: 9pt; background-color: var(--color-problem); text-align: center; }
.miniStatusUNREACHABLE { font-size: 9pt; background-color: var(--color-unknown); text-align: center; }

View File

@ -0,0 +1,71 @@
/* vidbox */
div.vidboxContainer { position: fixed; background: transparent; z-index: 100; }
div.vidbox_ul { left:10px; top: 10px }
div.vidbox_ur { right: 10px; top:10px; }
div.vidbox_ll { left:10px; bottom:10px; }
div.vidbox_lr { right:10px; bottom:10px; }
.vidboxTab {
border: 1px solid black;
height: 20px;
width: 130px;
font: bold italic 15px serif;
position: fixed;
z-index: 110;
text-align: center;
background: #660000;
color: #f0f0f0;
cursor: pointer;
border-top-left-radius: 20px;
border-top-right-radius: 20px;
}
.vidboxTabClose {
/* height:9px; */
width:12px;
border:1px solid white;
font: bold 13px sans-serif;
line-height: 10px;
margin: 3px 0 0 10px;
vertical-align: top;
padding-bottom: 3px;
display: none;
}
.vidboxTab_ul { left: -55px; top:70px;
border-radius: 20px 20px 0px 0px;
transform:rotate(90deg);
height: 30px; line-height: 25px !important;
}
.vidboxTab_ur { right:-55px; top:70px;
border-radius: 20px 20px 0px 0px;
transform:rotate(270deg);
height: 30px; line-height: 25px !important;
}
.vidboxTab_ll { left:-55px; bottom:70px;
border-radius: 20px 20px 0px 0px;
transform:rotate(90deg);
height: 30px; line-height: 25px !important;
}
.vidboxTab_lr { right:-55px; bottom:70px;
border-radius: 20px 20px 0px 0px;
transform:rotate(270deg);
height: 30px; line-height: 25px !important;
}
.vidboxFrame {
background-color:#303030;
color:white;
border: 1px solid black;
display:none;
text-align: center;
}
.vidboxCancel {
float:right;
cursor: pointer;
padding:5px 20px 0 0;
color: #ccccff;
}
.vidFrame { width:600px; }
.vidboxIframe { margin-top:10px; }
.textFrame { margin: 10px; }
.textFrame a:link, .textFrame a:visited { color: #ccccff; }
.textFrame a:hover, .textFrame a:active { text-decoration: underline; color: #eeeeff; }

View File

@ -0,0 +1,31 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.notifications { }
TABLE.notifications { padding: 0; margin: 0; }
TH.notifications { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.notificationsOdd { font-size: 8pt; background-color: #e7e7e7; padding: 0 4 0 4; }
.notificationsEven { font-size: 8pt; background-color: #f4f2f2; padding: 0 4 0 4; }
/* these are dark colors */
.notificationsOK { background-color: var(--color-ok); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsUNKNOWN { background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsWARNING { background-color: var(--color-warning); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsCRITICAL { background-color: var(--color-problem); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsACKNOWLEDGEMENT { background-color: var(--color-alternate-gray); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsCUSTOM { background-color: var(--color-custom); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsDOWNTIME { background-color: var(--color-unimportant); border: 1px solid #777777; padding: 0 4 0 4; }
/* these are dark colors */
.notificationsHOSTUP { background-color: var(--color-ok); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTDOWN { background-color: var(--color-problem); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTUNREACHABLE { background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTACKNOWLEDGEMENT { background-color: var(--color-alternate-gray); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTCUSTOM { background-color: var(--color-custom); border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTDOWNTIME { background-color: var(--color-unimportant); border: 1px solid #777777; padding: 0 4 0 4; }

View File

@ -0,0 +1,15 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.outages { }
.itemTotalsTitle { font-size: 8pt; text-align: center; }
.hostUP { background-color: var(--color-ok); font-weight: bold; }
.hostDOWN { background-color: var(--color-problem); font-weight: bold; }
.hostUNREACHABLE { background-color: var(--color-unknown); font-weight: bold; }

View File

@ -0,0 +1,8 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.showlog { }

View File

@ -0,0 +1,91 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.status { }
.itemTotalsTitle { font-size: 8pt; font-style: italic; clear:both;}
table.status { font-size: 9pt; padding: 0 0 10 0; }
table.statuss td, table.statuss td a { color: var(--color-alt-text) }
th.status { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
div.status { font-size: 10pt; text-align: center; }
.statusOdd { font-size: 9pt; background-color: var(--color-medium-grey); line-height: 150%; padding: 0 4 0 4; }
.statusEven { font-size: 9pt; background-color: var(--charcoal-gray); line-height: 150%; padding: 0 4 0 4; }
.statusOdd, .statusOdd a, .statusEven, .statusEven a { color: var(--color-main-text); }
.statusPENDING { font-size: 9pt; background-color: var(--color-pending); border: 1px solid #777777; padding: 0 5 0 5; }
.statusOK { font-size: 9pt; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 5 0 5; }
.statusRECOVERY { font-size: 9pt; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 5 0 5; }
.statusUNKNOWN { font-size: 9pt; background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 5 0 5; }
.statusWARNING { font-size: 9pt; background-color: var(--color-warning); border: 1px solid #777777; padding: 0 5 0 5; }
.statusCRITICAL { font-size: 9pt; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 5 0 5; }
.statusCRITICALACK { font-size: 9pt; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 5 0 5; }
.statusHOSTPENDING { font-size: 9pt; background-color: var(--color-pending); line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUP { font-size: 9pt; background-color: var(--color-ok); line-height: 150%; padding: 0 4 0 4; }
.statusHOSTDOWN { font-size: 9pt; background-color: var(--color-problem); line-height: 150%; padding: 0 4 0 4; }
.statusHOSTDOWNACK { font-size: 9pt; background-color: var(--color-problem); line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUNREACHABLE { font-size: 9pt; background-color: var(--color-unknown); line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUNREACHABLEACK { font-size: 9pt; background-color: var(--color-unknown); line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUNREACHABLESCHED { font-size: 9pt; background-color: var(--color-unknown); line-height: 150%; padding: 0 4 0 4; }
.statusBGUNKNOWN { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGUNKNOWNACK { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGUNKNOWNSCHED { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGWARNING { font-size: 9pt; background-color: var(--color-warning); }
.statusBGWARNINGACK { font-size: 9pt; background-color: var(--color-warning); }
.statusBGWARNINGSCHED { font-size: 9pt; background-color: var(--color-warning); }
.statusBGCRITICAL { font-size: 9pt; background-color: var(--color-problem); }
.statusBGCRITICALACK { font-size: 9pt; background-color: var(--color-problem); }
.statusBGCRITICALSCHED { font-size: 9pt; background-color: var(--color-problem); }
.statusBGDOWN { font-size: 9pt; background-color: var(--color-problem); }
.statusBGDOWNACK { font-size: 9pt; background-color: var(--color-problem); }
.statusBGDOWNSCHED { font-size: 9pt; background-color: var(--color-problem); }
.statusBGUNREACHABLE { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGUNREACHABLEACK { font-size: 9pt; background-color: var(--color-unknown); }
.statusBGUNREACHABLESCHED { font-size: 9pt; background-color: var(--color-unknown); }
div.serviceTotals { font-size: 10pt; text-align: center; font-weight: bold; }
table.serviceTotals { font-size: 10pt; font-weight: bold; }
th.serviceTotals,a.serviceTotals { font-size: 8pt; }
td.serviceTotals { font-size: 9pt; text-align: center; background-color: var(--color-plasma-blue); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsOK { font-size: 9pt; text-align: center; background-color: var(--color-ok); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsWARNING { font-size: 9pt; text-align: center; background-color: var(--color-warning); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsUNKNOWN { font-size: 9pt; text-align: center; background-color: var(--color-unknown); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsCRITICAL { font-size: 9pt; text-align: center; background-color: var(--color-problem); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPENDING { font-size: 9pt; text-align: center; background-color: var(--color-pending); border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPROBLEMS { font-size: 9pt; text-align: center; background-color: var(--color-unimportant); border: 1px solid #777777; padding: 2 4 2 4; }
div.hostTotals { font-size: 10pt; text-align: center; font-weight: bold; }
table.hostTotals { font-size: 10pt; font-weight: bold; }
th.hostTotals,a.hostTotals { font-size: 8pt; }
td.hostTotals { font-size: 9pt; text-align: center; background-color: var(--color-plasma-blue); border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsUP { font-size: 9pt; text-align: center; background-color: var(--color-ok); border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsDOWN { font-size: 9pt; text-align: center; background-color: var(--color-problem); border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsUNREACHABLE { font-size: 9pt; text-align: center; background-color: var(--color-unknown); border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsPENDING { font-size: 9pt; text-align: center; background-color: var(--color-pending); border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsPROBLEMS { font-size: 9pt; text-align: center; background-color: var(--color-unimportant); border: 1px solid #777777; padding: 2 4 2 4; }
.miniStatusPENDING { font-size: 9pt; text-align: center; background-color: var(--color-pending); border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusOK { font-size: 9pt; text-align: center; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusUNKNOWN { font-size: 9pt; text-align: center; background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusWARNING { font-size: 9pt; text-align: center; background-color: var(--color-warning); border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusCRITICAL { font-size: 9pt; text-align: center; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusUP { font-size: 9pt; text-align: center; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 5 0 5;}
.miniStatusDOWN { font-size: 9pt; text-align: center; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusUNREACHABLE { font-size: 9pt; text-align: center; background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 5 0 5; }
/* page number styles, added 2/01/2012 -MG */
#top_page_numbers { float:right;}
#result_limit { display:inline;}
.pagenumber { display: block; float:left; border: 1px solid var(--color-alternate-gray); padding: 0 2px 0 2px; margin: 1px;text-align:center; height:15px; }
a.pagenumber:hover { background-color: #EFEFEF;text-decoration:none;}
.current_page { color: #AAA; }
#inner_numbers { clear:right;}
#pagelimit,#bottom_page_numbers { font-size:8pt;}

View File

@ -0,0 +1,14 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.statusmap { }
.imageInfo { font-size: 8pt; font-weight: bold; text-align: center; }
.zoomTitle { font-size: 8pt; font-weight: bold; }
.popupText { font-size: 8pt; background-color: #eeeeaa; border: 1px solid #777777; padding: 0 5 0 5; }

View File

@ -0,0 +1,30 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.summary { }
/* override to match filter table style */
.optBoxItem { font-size: 8pt; font-weight: bold; }
.optBoxValue { font-size: 8pt; }
/* override to match query info style */
.dataSubTitle { font-size: 8pt; text-align: center; font-weight: normal; }
/* override so we get a bit of whitespace */
table.data { padding-top: 15; }
.reportDataOdd { font-size: 9pt; background-color: #e7e7e7; padding: 0 4 0 4; }
.reportDataEven { font-size: 9pt; background-color: #f4f2f2; padding: 0 4 0 4; }
.hostUP { font-size: 9pt; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 4 0 4; }
.hostDOWN { font-size: 9pt; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 4 0 4; }
.hostUNREACHABLE { font-size: 9pt; background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 4 0 4; }
.serviceOK { font-size: 9pt; background-color: var(--color-ok); border: 1px solid #777777; padding: 0 4 0 4; }
.serviceWARNING { font-size: 9pt; background-color: var(--color-warning); border: 1px solid #777777; padding: 0 4 0 4; }
.serviceUNKNOWN { font-size: 9pt; background-color: var(--color-unknown); border: 1px solid #777777; padding: 0 4 0 4; }
.serviceCRITICAL { font-size: 9pt; background-color: var(--color-problem); border: 1px solid #777777; padding: 0 4 0 4; }

View File

@ -0,0 +1,79 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.tac { font-size: 10pt; }
table.tac { width: 85% !important; }
table.tac table { width: 90% !important; }
table.tac table td { padding: 4px; }
table.tac table td a { }
.title { font-weight: bold; }
.titleItem { font-size: 8pt; font-weight: bold; }
td.perfTitle { font-size: 10pt; font-weight: bold; background-color: var(--color-background-darker); padding: 4px; }
.perfBox { background-color: var(--color-background-dark); padding: 2px;}
.perfItem { font-size: 8pt; font-weight: bold; }
.perfValue { font-size: 8pt; }
.healthTitle { font-weight: bold; font-size: 10pt; background-color: var(--color-background-darker); padding: 4px; }
.healthBox { }
.healthItem { font-size: 10pt; font-weight: bold; }
.healthBar { background-color: grey; padding: 2 4 2 4; }
.outageTitle { font-weight: bold; background-color: var(--color-background-darker); padding: 4px; }
.outageHeader { font-weight: bold; border-bottom: 1px solid var(--color-alternate-gray); }
.hostTitle { font-weight: bold; background-color: var(--color-background-darker); padding: 4px; }
td.hostHeader { font-weight: bold; border-bottom: 1px solid var(--color-alternate-gray); }
.serviceTitle { font-weight: bold; background-color: var(--color-background-darker); padding: 4px; }
td.serviceHeader { font-weight: bold; border-bottom: 1px solid var(--color-alternate-gray); }
.featureTitle { font-weight: bold; background-color: var(--color-background-darker); padding: 4px; }
td.featureHeader { font-weight: bold; border-bottom: 1px solid var(--color-alternate-gray); }
.featureEnabled { text-align: center; background-color: #ccffcc; }
.featureDisabled { text-align: center; background-color: #ffcccc; }
.featureEnabledFlapDetection { text-align: center; font-weight: bold; }
.featureDisabledFlapDetection { text-align: center; font-weight: bold; }
.featureItemEnabledServiceFlapDetection { font-size: 8pt; background-color: var(--color-ok); }
.featureItemDisabledServiceFlapDetection { font-size: 8pt; background-color: var(--color-problem); }
.featureItemEnabledHostFlapDetection { font-size: 8pt; background-color: var(--color-ok); }
.featureItemDisabledHostFlapDetection { font-size: 8pt; background-color: var(--color-problem); }
.featureItemServicesNotFlapping { font-size: 8pt; background-color: var(--color-ok); }
.featureItemServicesFlapping { font-size: 8pt; background-color: var(--color-problem); }
.featureItemHostsNotFlapping { font-size: 8pt; background-color: var(--color-ok); }
.featureItemHostsFlapping { font-size: 8pt; background-color: var(--color-problem); }
.featureEnabledNotifications { text-align: center; font-weight: bold; }
.featureDisabledNotifications { text-align: center; font-weight: bold; }
.featureItemEnabledServiceNotifications { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledServiceNotifications { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }
.featureItemEnabledHostNotifications { font-size: 8pt; background-color: var(--color-ok) border: 1px solid #777777; }
.featureItemDisabledHostNotifications { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }
.featureEnabledHandlers { text-align: center; font-weight: bold; }
.featureDisabledHandlers { text-align: center; font-weight: bold; }
.featureItemEnabledServiceHandlers { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledServiceHandlers { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }
.featureItemEnabledHostHandlers { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledHostHandlers { font-size: 8pt; background-color: var(--color-problem); }
.featureEnabledActiveChecks { text-align: center; font-weight: bold; }
.featureDisabledActiveChecks { text-align: center; font-weight: bold; }
.featureItemEnabledActiveServiceChecks { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledActiveServiceChecks { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }
.featureItemEnabledActiveHostChecks { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledActiveHostChecks { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }
.featureEnabledPassiveChecks { text-align: center; font-weight: bold; }
.featureDisabledPassiveChecks { text-align: center; font-weight: bold; }
.featureItemEnabledPassiveServiceChecks { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledPassiveServiceChecks { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }
.featureItemEnabledPassiveHostChecks { font-size: 8pt; background-color: var(--color-ok); border: 1px solid #777777; }
.featureItemDisabledPassiveHostChecks { font-size: 8pt; background-color: var(--color-problem); border: 1px solid #777777; }

View File

@ -0,0 +1,8 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.trends { }

View File

@ -0,0 +1,126 @@
/* General text style */
text {
font-family: sans-serif;
font-size: 11px;
}
/* Colors for text representing states */
text.Up {
fill: rgb(0, 128, 0);
}
text.Down {
fill: rgb(255, 0, 0);
}
text.Unreachable {
fill: rgb(128, 0, 0);
}
text.Ok {
fill: rgb(0, 128, 0);
}
text.Warning {
fill: rgb(176, 178, 20);
}
text.Unknown {
fill: rgb(255, 100, 25);
}
text.Critical {
fill: rgb(255, 0, 0);
}
text.Indeterminate {
fill: rgb(0, 0, 0);
}
/* Class to hide elements */
.hidden {
display: none;
}
/* Trend SVG style */
div#trendsvg {
position: absolute;
z-index: 10;
left: 0;
top: 0;
}
/* Center header text */
g#header text {
text-anchor: middle;
}
/* Anchor the y-axis text to the end of the text */
text.yaxis {
text-anchor: end;
}
/* Draw grid lines as dashed lines */
line.vLine,
line.hLine {
stroke-width: 1;
stroke: black;
stroke-dasharray: 2,2;
pointer-events: none;
}
/* Styles for state popups */
div#popup {
font-family: sans-serif;
font-size: 11px;
position: absolute;
width: auto;
height: auto;
padding: 3px;
border: 1px solid black;
background-color: #ffffcc;
pointer-events: none;
z-index: 20;
}
div#popup #popup-state {
font-weight: bold;
text-decoration: underline;
}
div#popup .field-name {
font-weight: bold;
}
div#popup #popup-start,
div#popup #popup-end,
div#popup #popup-duration,
div#popup #popup-info {
font-style: italic;
}
/* Styles for grid spinner */
div#gridspinner {
position: absolute;
top: 74px;
left: 355px;
height: 50px;
width: 50px;
z-index: 40;
}
/* Styles for availability spinner */
div#availabilityspinner {
position: absolute;
top: 74px;
left: 735px;
height: 50px;
width: 50px;
z-index: 40;
}
/* Styles for menu button */
div#menubutton {
position: absolute;
top: 5px;
left: 871px;
height: 25px;
width: 22px;
z-index: 40;
}
div#menubutton button {
padding: 0px;
border: none;
background-color: white;
}