From 367a5a676b02cbac94060c37045347bfb8c23f8e Mon Sep 17 00:00:00 2001 From: Kameron Kenny Date: Mon, 30 Dec 2024 16:24:07 -0500 Subject: [PATCH] Dark mode. --- Dockerfile | 2 + docker-compose.yml | 2 +- overlay/opt/nagios/share/index.php | 106 ++++ .../opt/nagios/share/stylesheets/avail.css | 35 ++ .../nagios/share/stylesheets/checksanity.css | 27 ++ overlay/opt/nagios/share/stylesheets/cmd.css | 24 + .../opt/nagios/share/stylesheets/common.css | 456 ++++++++++++++++++ .../opt/nagios/share/stylesheets/config.css | 11 + .../opt/nagios/share/stylesheets/extinfo.css | 84 ++++ .../nagios/share/stylesheets/histogram.css | 10 + .../share/stylesheets/histogramgraph.css | 137 ++++++ .../opt/nagios/share/stylesheets/history.css | 8 + .../nagios/share/stylesheets/jsonquery.css | 37 ++ .../share/stylesheets/map-directive.css | 106 ++++ overlay/opt/nagios/share/stylesheets/map.css | 34 ++ .../nagios/share/stylesheets/ministatus.css | 64 +++ .../nagios/share/stylesheets/nag_funcs.css | 71 +++ .../share/stylesheets/notifications.css | 31 ++ .../opt/nagios/share/stylesheets/outages.css | 15 + .../opt/nagios/share/stylesheets/showlog.css | 8 + .../opt/nagios/share/stylesheets/status.css | 91 ++++ .../nagios/share/stylesheets/statusmap.css | 14 + .../opt/nagios/share/stylesheets/summary.css | 30 ++ overlay/opt/nagios/share/stylesheets/tac.css | 79 +++ .../opt/nagios/share/stylesheets/trends.css | 8 + .../nagios/share/stylesheets/trendsgraph.css | 126 +++++ 26 files changed, 1615 insertions(+), 1 deletion(-) create mode 100644 overlay/opt/nagios/share/index.php create mode 100644 overlay/opt/nagios/share/stylesheets/avail.css create mode 100644 overlay/opt/nagios/share/stylesheets/checksanity.css create mode 100644 overlay/opt/nagios/share/stylesheets/cmd.css create mode 100644 overlay/opt/nagios/share/stylesheets/common.css create mode 100644 overlay/opt/nagios/share/stylesheets/config.css create mode 100644 overlay/opt/nagios/share/stylesheets/extinfo.css create mode 100644 overlay/opt/nagios/share/stylesheets/histogram.css create mode 100644 overlay/opt/nagios/share/stylesheets/histogramgraph.css create mode 100644 overlay/opt/nagios/share/stylesheets/history.css create mode 100644 overlay/opt/nagios/share/stylesheets/jsonquery.css create mode 100644 overlay/opt/nagios/share/stylesheets/map-directive.css create mode 100644 overlay/opt/nagios/share/stylesheets/map.css create mode 100644 overlay/opt/nagios/share/stylesheets/ministatus.css create mode 100644 overlay/opt/nagios/share/stylesheets/nag_funcs.css create mode 100644 overlay/opt/nagios/share/stylesheets/notifications.css create mode 100644 overlay/opt/nagios/share/stylesheets/outages.css create mode 100644 overlay/opt/nagios/share/stylesheets/showlog.css create mode 100644 overlay/opt/nagios/share/stylesheets/status.css create mode 100644 overlay/opt/nagios/share/stylesheets/statusmap.css create mode 100644 overlay/opt/nagios/share/stylesheets/summary.css create mode 100644 overlay/opt/nagios/share/stylesheets/tac.css create mode 100644 overlay/opt/nagios/share/stylesheets/trends.css create mode 100644 overlay/opt/nagios/share/stylesheets/trendsgraph.css 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: <?php echo $_SERVER['SERVER_NAME']; ?> + + + + + + + +
+
+ +
+
+ +
+
+ + + + 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; +}