diff --git a/Dockerfile b/Dockerfile
index a910f16..b8ee935 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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 && \
diff --git a/docker-compose.yml b/docker-compose.yml
index 95fafd9..3195214 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -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
diff --git a/overlay/opt/nagios/share/index.php b/overlay/opt/nagios/share/index.php
new file mode 100644
index 0000000..6ff4124
--- /dev/null
+++ b/overlay/opt/nagios/share/index.php
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ Nagios:
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/overlay/opt/nagios/share/stylesheets/avail.css b/overlay/opt/nagios/share/stylesheets/avail.css
new file mode 100644
index 0000000..f3f13d1
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/avail.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/checksanity.css b/overlay/opt/nagios/share/stylesheets/checksanity.css
new file mode 100644
index 0000000..d70f97f
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/checksanity.css
@@ -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; }
+
+
+
+
diff --git a/overlay/opt/nagios/share/stylesheets/cmd.css b/overlay/opt/nagios/share/stylesheets/cmd.css
new file mode 100644
index 0000000..d496beb
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/cmd.css
@@ -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); }
diff --git a/overlay/opt/nagios/share/stylesheets/common.css b/overlay/opt/nagios/share/stylesheets/common.css
new file mode 100644
index 0000000..de6aec5
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/common.css
@@ -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;
+}
diff --git a/overlay/opt/nagios/share/stylesheets/config.css b/overlay/opt/nagios/share/stylesheets/config.css
new file mode 100644
index 0000000..558d4fa
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/config.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/extinfo.css b/overlay/opt/nagios/share/stylesheets/extinfo.css
new file mode 100644
index 0000000..ae8d738
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/extinfo.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/histogram.css b/overlay/opt/nagios/share/stylesheets/histogram.css
new file mode 100644
index 0000000..9b147f6
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/histogram.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/histogramgraph.css b/overlay/opt/nagios/share/stylesheets/histogramgraph.css
new file mode 100644
index 0000000..ec3e61f
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/histogramgraph.css
@@ -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;
+}
diff --git a/overlay/opt/nagios/share/stylesheets/history.css b/overlay/opt/nagios/share/stylesheets/history.css
new file mode 100644
index 0000000..ed8dba3
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/history.css
@@ -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 { }
diff --git a/overlay/opt/nagios/share/stylesheets/jsonquery.css b/overlay/opt/nagios/share/stylesheets/jsonquery.css
new file mode 100644
index 0000000..98e9bb9
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/jsonquery.css
@@ -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;
+}
diff --git a/overlay/opt/nagios/share/stylesheets/map-directive.css b/overlay/opt/nagios/share/stylesheets/map-directive.css
new file mode 100644
index 0000000..d8e4d08
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/map-directive.css
@@ -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;
+}
diff --git a/overlay/opt/nagios/share/stylesheets/map.css b/overlay/opt/nagios/share/stylesheets/map.css
new file mode 100644
index 0000000..7da871b
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/map.css
@@ -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 {
+}
+
diff --git a/overlay/opt/nagios/share/stylesheets/ministatus.css b/overlay/opt/nagios/share/stylesheets/ministatus.css
new file mode 100644
index 0000000..669be9a
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/ministatus.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/nag_funcs.css b/overlay/opt/nagios/share/stylesheets/nag_funcs.css
new file mode 100644
index 0000000..29f4686
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/nag_funcs.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/notifications.css b/overlay/opt/nagios/share/stylesheets/notifications.css
new file mode 100644
index 0000000..9482a88
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/notifications.css
@@ -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; }
+
diff --git a/overlay/opt/nagios/share/stylesheets/outages.css b/overlay/opt/nagios/share/stylesheets/outages.css
new file mode 100644
index 0000000..4533e0d
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/outages.css
@@ -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; }
+
diff --git a/overlay/opt/nagios/share/stylesheets/showlog.css b/overlay/opt/nagios/share/stylesheets/showlog.css
new file mode 100644
index 0000000..ccbd242
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/showlog.css
@@ -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 { }
diff --git a/overlay/opt/nagios/share/stylesheets/status.css b/overlay/opt/nagios/share/stylesheets/status.css
new file mode 100644
index 0000000..408c403
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/status.css
@@ -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;}
diff --git a/overlay/opt/nagios/share/stylesheets/statusmap.css b/overlay/opt/nagios/share/stylesheets/statusmap.css
new file mode 100644
index 0000000..d41888f
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/statusmap.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/summary.css b/overlay/opt/nagios/share/stylesheets/summary.css
new file mode 100644
index 0000000..4c41297
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/summary.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/tac.css b/overlay/opt/nagios/share/stylesheets/tac.css
new file mode 100644
index 0000000..34d203e
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/tac.css
@@ -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; }
diff --git a/overlay/opt/nagios/share/stylesheets/trends.css b/overlay/opt/nagios/share/stylesheets/trends.css
new file mode 100644
index 0000000..6ca9d8b
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/trends.css
@@ -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 { }
diff --git a/overlay/opt/nagios/share/stylesheets/trendsgraph.css b/overlay/opt/nagios/share/stylesheets/trendsgraph.css
new file mode 100644
index 0000000..b9a9b1b
--- /dev/null
+++ b/overlay/opt/nagios/share/stylesheets/trendsgraph.css
@@ -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;
+}