GUI CSS: Removed snapin styles from py modules and added a _snapins.scss for the...
[check_mk.git] / web / htdocs / themes / classic / scss / _views.scss
blob50ae6a0fc718ead83f81f5a74512c94e9306a750
1 /*
2 +------------------------------------------------------------------+
3 |             ____ _               _        __  __ _  __           |
4 |            / ___| |__   ___  ___| | __   |  \/  | |/ /           |
5 |           | |   | '_ \ / _ \/ __| |/ /   | |\/| | ' /            |
6 |           | |___| | | |  __/ (__|   <    | |  | | . \            |
7 |            \____|_| |_|\___|\___|_|\_\___|_|  |_|_|\_\           |
8 |                                                                  |
9 | Copyright Mathias Kettner 2012             mk@mathias-kettner.de |
10 +------------------------------------------------------------------+
12 This file is part of Check_MK.
13 The official homepage is at http://mathias-kettner.de/check_mk.
15 check_mk is free software;  you can redistribute it and/or modify it
16 under the  terms of the  GNU General Public License  as published by
17 the Free Software Foundation in version 2.  check_mk is  distributed
18 in the hope that it will be useful, but WITHOUT ANY WARRANTY;  with-
19 out even the implied warranty of  MERCHANTABILITY  or  FITNESS FOR A
20 PARTICULAR PURPOSE. See the  GNU General Public License for more de-
21 ails.  You should have  received  a copy of the  GNU  General Public
22 License along with GNU Make; see the file  COPYING.  If  not,  write
23 to the Free Software Foundation, Inc., 51 Franklin St,  Fifth Floor,
24 Boston, MA 02110-1301 USA.
28 /* special background for embedded views */
29 body.main.dashlet {
30     background-image: none;
31     background: transparent;
32     padding: 0px;
35 body.main.dashlet div.warning {
36     margin: 0;
37     border-radius: 0;
38     box-shadow: 0;
41 /*-------------------------------------------------------------------------.
42 |  _____     _            ___      ___        _   _                        |
43 | |_   _|_ _| |__  ___   ( _ )    / _ \ _ __ | |_(_) ___  _ __  ___        |
44 |   | |/ _` | '_ \/ __|  / _ \/\ | | | | '_ \| __| |/ _ \| '_ \/ __|       |
45 |   | | (_| | |_) \__ \ | (_>  < | |_| | |_) | |_| | (_) | | | \__ \       |
46 |   |_|\__,_|_.__/|___/  \___/\/  \___/| .__/ \__|_|\___/|_| |_|___/       |
47 |                                      |_|                                 |
48 +--------------------------------------------------------------------------+
49 | The navi table contains the tab navigation above the content tables      |
50 | containing the buttons "filter", "commands", "display" and so on.        |
51 '-------------------------------------------------------------------------*/
53 table.filterform {
54     border-collapse: collapse;
55     padding: 0px;
56     border-style: none;
58 table.filterform td {
59     padding: 0px;
62 div.floatfilter {
63     margin: 0px 4px 3px 0px;
64     width: 310px;
65     height: 53px;
66     float: left;
67     border-width: 1px;
68     border-style: solid;
69     border-color: #acc #22404d #22414d #8ab;
70     box-shadow: 0.5px 0.5px 1px #444;
71     background-color: rgba(160, 181, 190, 0.6);
72     border-radius: 5px;
73     color: black;
76 body.main.screenshotmode div.floatfilter {
77     background-color: #5893af;
80 div.floatfilter input[type=text].neg {
81     width: 229px;
84 div.floatfilter.double {
85     height: 110px;
86     display: table-cell;
89 div.floatfilter input[type=text] {
90     width: 294px;
93 div.floatfilter .legend {
94     color: white;
95     margin-bottom: 1px;
96     width: 300px;
97     height: 17px;
98     background-color: rgba(255, 255, 255, 0.2);
99     padding: 3px 5px 0px 5px;
100     border-radius: 5px 5px 0px 0px;
103 div.floatfilter .content {
104     width: 311px;
105     height: 30px;
106     margin-top: 0px;
107     margin-left: 0px;
108     display: table-cell;
109     padding-left: 4px;
110     text-align: left;
111     padding-top: 5px;
113 div.floatfilter.double .content {
114     height: 82px;
116 div.floatfilter .content > select {
117     width: 300px;
120 div.floatfilter .content > select.neg,
121 div.floatfilter .content > select#opthost_group,
122 div.floatfilter .content > select#optservice_contact_group,
123 div.floatfilter .content > select#opthost_contact_group,
124 div.floatfilter .content > select#optservice_group {
125     width: 237px;
128 div.floatfilter .content .multigroup table {
129     margin-top: -6px;
132 div.floatfilter .content .multigroup select {
133     width: 148px;
134     height: 66px;
137 div.floatfilter .content .multigroup select.large {
138     width: 228px;
141 div.floatfilter .content .multigroup select.small {
142     width: 68px;
145 div.floatfilter .content .filtertime select {
146     width: 136px;
149 div.floatfilter.service_custom_variable input, div.floatfilter.host_custom_variable input,
150 div.floatfilter.service_custom_variable select, div.floatfilter.host_custom_variable select {
151     display: inline-block;
152     width: 45%;
155 div.floatfilter.service_custom_variable select, div.floatfilter.host_custom_variable select {
156     margin-right: 10px;
159 /* Improving styling of floatfilters that are contained in a ListOf() */
160 table.valuespec_listof.filter {
161     width: 300px;
162     border-spacing: 0px;
164 select.vlof_filter {
165     width: 312px;
167 table.valuespec_listof td.vlof_content.filter {
168     width: 1px;
169     border-style: none;
171 table.valuespec_listof td.vlof_buttons.filter {
172     width: 1px;
173     border-style: none;
174     vertical-align: top;
176 table.valuespec_listof td.vlof_buttons.filter img {
177     position: relative;
178     top: 2px;
179     left: -28px;
180     width: 16px;
181     height: 16px;
184 table.filtertime td {
185     vertical-align: middle;
188 div.optiondial {
189     cursor: pointer;
190     height: 20px;
191     position: relative;
192     top: 1px;
193     margin: 0px 0px 0px 0;
194     float: left;
195     background-repeat: no-repeat;
196     background-position: 1px -1px;
197     overflow: hidden;
198     box-shadow: 0px 0px 3px #123;
199     text-shadow: 0px 0.5px 0.5px #fff;
200     color: #222;
203 div.optiondial div {
204     width: 100%;
205     height: 100%;
206     padding-top: 3px;
207     position: relative;
208     top: 0px;
209     text-align: center;
213 div.optiondial.num_columns {
214     width: 21px;
215     margin-right: 6px;
217 div.optiondial.refresh {
218     width: 31px;
219     margin-left: -6px;
220     margin-right: 6px;
223 div.optiondial.num_columns { background-image: url("images/dial_num_columns.png"); }
224 div.optiondial.num_columns.off { background-image: url("images/dial_num_columns_off.png"); }
226 div.optiondial.refresh { background-image: url("images/dial_refresh.png"); }
227 div.optiondial.refresh.off { background-image: url("images/dial_refresh_off.png"); }
229 div.view_form {
230     margin-bottom: 10px;
233 /*-------------------------------------------------------------------------.
234 |                _                            _                            |
235 |               | |    __ _ _   _  ___  _   _| |_ ___                      |
236 |               | |   / _` | | | |/ _ \| | | | __/ __|                     |
237 |               | |__| (_| | |_| | (_) | |_| | |_\__ \                     |
238 |               |_____\__,_|\__, |\___/ \__,_|\__|___/                     |
239 |                           |___/                                          |
240 +--------------------------------------------------------------------------+
241 | Styles used by layouts of the views (plugins/views/layouts.py)           |
242 '-------------------------------------------------------------------------*/
245 td.fillup {
246     background-color: #eee;
248 td.groupheader {
249     margin: 0;
250     padding: 0;
253 table.data tr.data > td.gap,
254 table.data tr > td.last_col,
255 table.data tr > th.last_col {
256     border-right: 0;
259 td.gap, table.data .checkbox_hover.gap {
260     background-image: url("images/contentframe_background.jpg");
261     background-attachment: fixed;
262     background-repeat: repeat;
263     width: 5px;
266 /* boxed layout */
267 table.boxlayout {
268     border-spacing: 0px;
270 table.boxlayout td.boxcolumn {
271     padding-right: 20px;
275 /* tiled layout */
276 table.tiled td {
277     border-style: none;
280 .tile {
281     width: 180px;
282     border: 1px solid #000;
283     float: left;
284     border-radius: 0px;
285     margin-right: 6px;
286     margin-bottom: 6px;
287     box-shadow: 1px 1px 3px #000;
288     background-color: #ccc;
291 .tile img.icon {
292     width: 16px;
293     height: 16px;
296 .tile table {
297     height: 70px;
299 .tile td {
300     border-style: none;
301     font-size: 7pt;
303 .tile.sstate0, .tile.hhstate0 {
304     border-color: #0f0;
306 .tile.sstate1 {
307     border-color: #ff0;
308     background-color: #ff0;
310 .tile.sstate2, .tile.hhstate1 {
311     border-color: #f00;
312     background-color: #f88;
314 .tile.sstate3, .tile.hhstate2 {
315     border-color: #f80;
316     background-color: #fc8;
319 .tile table {
320     width: 100%;
322 .tile td.tl, .tile td.bl {
323     text-align: left;
325 .tile td.tr, .tile td.br {
326     text-align: right;
328 .tile td.center {
329     vertical-align: middle;
331 .tile td.center, .tile td.cont {
332     text-align: center;
334 .tile td.bl, .tile td.br {
335     vertical-align: bottom;
338 .tile td.bl, .tile td.br, .tile td.tl, .tile td.tr {
339     height: 20px;
343  LAYOUT: dataset
344  The dataset layout is used to display detailed information
345  about a single host/service on a page. e.g. the "host defails"
346  page uses thislayout
348 table.data.single {
349     margin-top: 5px;
350     border-spacing: 1px;
351     padding: 0;
352     border-collapse: collapse;
353     empty-cells: show;
356 table.data.single tr.data > td {
357     padding-bottom: 4px;
358     padding: 4px 5px 2px 5px;
359     text-align: left;
360     height: 16px;
361     line-height: 14px;
362     vertical-align: top;
365 table.data.single tr.data td.left {
366     width: 10%;
367     white-space: nowrap;
368     vertical-align: top;
369     padding-right: 20px;
372 table.data.matrix {
373     width: auto;
374     margin-bottom: 10px;
377 table.data.matrix tr.even0 td.left,
378 table.data.single tr.even0 td.left {
379     background-color: #bbb;
382 table.data.matrix tr.odd0 td.left,
383 table.data.single tr.odd0 td.left {
384     background-color: #ccc;
387 table.data.matrix tr.even0 td.matrixhead {
388     background-color: #888;
389     color: white;
392 table.data.matrix tr.odd0 td.matrixhead {
393     background-color: #999;
394     color: white;
397 table.data.matrix td.cell {
398     padding: 0px;
401 table.data.matrix td.cell table {
402     width: 100%;
403     padding: 0px;
406 table.data.matrix table.cell > tbody > tr > td {
407     padding: 0px;
408     border: 1px solid red;
411 table.data.matrix tr.matrixhead td.left a,
412 table.data.matrix tr.matrixhead td.left {
413     color: white;
416 .even0 .minority {
417     background-color: #cff;
419 .odd0 .minority {
420     background-color: #dff;
423 table.data.matrix tr.even0 td.left.minority {
424     background-color: #bdd;
426 table.data.matrix tr.odd0 td.left.minority {
427     background-color: #cee;
431 table.data.single td.gap {
432     background-color: transparent;
433     border-left-style: none;
434     border-right-style: none;
436 table.data.single td.age,
437 table.data.single td.number,
438 table.data.single td.count {
439     text-align: left;
442 table.data.single td.perfometer div.content {
443     width: 100%;
445 table.data.single td.perfometer div.glass {
446     width: 100%;
448 table.data.single td.perfometer div.title {
449     width: 100%;
452 /*-------------------------------------------------------------------------.
453 |              _____    _ _ _           _                                  |
454 |             | ____|__| (_) |_  __   _(_) _____      __                   |
455 |             |  _| / _` | | __| \ \ / / |/ _ \ \ /\ / /                   |
456 |             | |__| (_| | | |_   \ V /| |  __/\ V  V /                    |
457 |             |_____\__,_|_|\__|   \_/ |_|\___| \_/\_/                     |
458 |                                                                          |
459 +--------------------------------------------------------------------------+
460 | Styles used while editing a view in the view editor                      |
461 '-------------------------------------------------------------------------*/
463 div.clear {
464     clear: left;
467 input#try{
468     float:left;
472 /*-------------------------------------------------------------------------.
473 |       _     _     _            __         _                              |
474 |      | |   (_)___| |_    ___  / _| __   _(_) _____      _____            |
475 |      | |   | / __| __|  / _ \| |_  \ \ / / |/ _ \ \ /\ / / __|           |
476 |      | |___| \__ \ |_  | (_) |  _|  \ V /| |  __/\ V  V /\__ \           |
477 |      |_____|_|___/\__|  \___/|_|     \_/ |_|\___| \_/\_/ |___/           |
478 |                                                                          |
479 +--------------------------------------------------------------------------+
480 | The table with the list of all views                                     |
481 '-------------------------------------------------------------------------*/
483 table.views {
484     border-collapse: collapse;
485     empty-cells: show;
486     margin-bottom: 1ex;
489 table.views td, table.views th{
490     border: 1px solid #444;
491     padding: 2px 1ex;
494 table.views td {
495     height: 25px;
496     padding-top: 3px;
497     color: #fff;
500 table.views th {
501     background-color: #709aa5;
502     color: #fff;
505 table.views td.legend {
506     background-color: #8eaeb8;
507     color: #fff;
510 table.views td.content {
511     background-color: #9ebec8;
512     color: #fff;
515 table.views td.edit {
516     background-color: #6ab;
517     text-align: center;
520 table.views td.buttons {
521     padding: 3px;
522     vertical-align: middle;
523     background-color: #8EAEB8;
526 /* Availability */
527 table.data.availability {
528     width: 100%;
531 table.data.availability td.number {
532     width: 60px;
535 table.data.availability td.unused {
536     color: #888;
537     text-shadow: 1px 1px 0.5px #fff;
540 table.data.availability tr.summary {
541     background-color: #bbb;
543 table.data.availability tr.summary td {
544     border-top: 1px solid black;
545     font-weight: bold;
546     border-bottom-style: none;
547     padding-bottom: 1px;
548     padding-top: 1px;
552 table.data td.flapping, table.timeline td.flapping, div.avlegend.timeline div.state.flapping {
553     background-color: #f0f;
555 table.data td.downtime, table.timeline td.downtime, div.avlegend.timeline div.state.downtime {
556     background-color: #0af;
558 table.data td.hostdown, table.timeline td.hostdown, div.avlegend.timeline div.state.hostdown {
559     background-color: #048;
560     color: white;
562 table.data td.unmonitored, table.timeline td.unmonitored, div.avlegend.timeline div.state.unmonitored  {
563     background-color: #cacaca;
564     color: #888;
566 table.timeline td.ooservice, div.avlegend.timeline div.state.ooservice {
567     background-color: #cacaca;
568     background-image: url("images/ooservice.png");
569     background-repeat: repeat;
571 table.data.availability tr.odd0 td.number {
572     background-image: url("images/white_30percent.png");
573     background-repeat: repeat;
576 table.data.availability td.number.stats {
577     background-image: url("images/white_30percent.png");
580 table.data.availability tr.odd0 td.number.stats {
581     background-image: url("images/white_50percent.png");
585 div.floatfilter.rangespec table.valuespec_tuple {
586     width: 100%;
589 div.floatfilter.rangespec table.valuespec_tuple span.title {
590     position: relative;
591     top: 7px;
594 div#avoptions_on {
595     margin-right: 3px;
598 table.data tr.data > td.timeline {
599     width: 500px;
600     padding: 0px;
603 table.timeline {
604     height: 30px;
605     border-spacing: 0px;
606     border-collapse: collapse;
609 table.timeline.low {
610     height: 5px;
611     margin-top: -18px;
612     border-spacing: 0px;
613     border-collapse: collapse;
616 table.timeline.standalone {
617     box-shadow: 0px 0px 1px #ccf;
618     margin-bottom: 20px;
619     width: 800px;
622 table.timeline.inline {
623     border-style: none;
624     width: 500px;
626 table.timeline.inline {
627     border-style: none;
628     width: 500px;
629     box-shadow: 0px 0px 1px #555 inset;
632 table.timeline td {
633     padding: 0px;
634     border-style: none;
637 table.timeline td.hilite {
638     padding: 0px;
639     border-style: none;
640     background-color: #0091b6;
641     filter: brightness(80%);
644 table.timeline td.chaos {
645     background-color: #8844ff;
648 table.timeline.standalone td {
649     border: 1px solid #444;
652 div.timelinerange {
653     position: relative;
656 /* We render the small vertical lines in a way that only
657    the left border is visible but the thing is thick 5 pixels.
658    That makes hovering over it more easy. */
659 div.timelinerange div.timelinechoord {
660     position: absolute;
661     top: 0px;
662     width: 5px;
663     height: 30px;
664     border-style: none none none solid;
665     border-width: 0px 0px 0px 1px;
666     border-color: #666;
669 table.timelineevents {
670     width: 800px;
672 table.data.oddeven.timelineevents > tbody > tr.hilite {
673     background-color: #6ab;
674     color: white;
676 div.timelinerange {
677     width: 800px;
678     float: none;
680 div.timelinerange.inline {
681     width: 500px;
683 div.timelinerange div {
684     width: 300px;
685     float: left;
687 div.timelinerange div.until {
688     text-align: right;
689     float: right;
692 table.data.timewarp {
693     width: 800px;
694     margin-bottom: 20px;
697 div.avlegend {
698     background-color: rgba(255, 255, 255, 0.2);
699     padding: 5px 15px;
700     border-radius: 5px;
701     margin-top: 10px;
702     text-align: right;
704 div.avlegend h3 {
705     margin-top: 0px;
706     font-size: 13px;
707     color: black;
709 div.avlegend div {
710     display: inline-block;
711     width: 50px;
712     white-space: nowrap;
713     margin-right: 5px;
715 div.avlegend div.state {
716     text-align: center;
717     padding: 2px 0px;
718     font-size: 12px;
720 div.avlegend div:last-child {
721     margin-right: 0px;
723 div.avlegend.levels div.level {
724     margin-right: 15px;
725     color: black;
728 div.avlegend.timeline div.state {
729     width: 75px;
731 div.avlegend.timeline div.state.ooservice {
732     color: black;
736 /*--Inventory--------------------------------------------------------------.
737 |            ___                      _                                    |
738 |           |_ _|_ ____   _____ _ __ | |_ ___  _ __ _   _                  |
739 |            | || '_ \ \ / / _ \ '_ \| __/ _ \| '__| | | |                 |
740 |            | || | | \ V /  __/ | | | || (_) | |  | |_| |                 |
741 |           |___|_| |_|\_/ \___|_| |_|\__\___/|_|   \__, |                 |
742 |                                                   |___/                  |
743 +--------------------------------------------------------------------------+
744 | Styles for displaying HW/SW-Inventory data                               |
745 '-------------------------------------------------------------------------*/
747 td.invtree {
748     width: 100%;
751 td.invtree b.treeangle.title {
752     color: black;
753     font-weight: normal;
756 td.invtree ul.treeangle {
757     margin: 0px;
758     margin-bottom: 3px;
761 td.sla_spec table,
762 td.invtree table,
763 td.agent_config table {
764    border-collapse: collapse;
765    border: 0.5px solid black;
766    box-shadow: 0.5px 0.5px 1px #ccc;
767    margin-top: 3px;
770 td.invtree table td,
771 td.invtree table th,
772 table.data.single tr.data td.invtree table td,
773 table.data.single tr.data td.invtree table th
775     border: 1px solid #888;
776     padding: 1px 5px;
777     height: 14px;
780 /* Make td class of invtree more specific, when shown in single dataset mode */
781 /* td.data.single td.invtree td.number { */
782 table.data.single td.invtree td.number {
783     text-align: right;
787 td.invtree table th {
788     text-align: left;
791 td.invtree table td {
792     background-color: #fff;
795 td.invtree span.invold, span.invold table.data {
796     color: #ff0000;
799 td.invtree span.invnew, span.invnew table.data {
800     color: #00bf00;
803 /* Positioning of the link from an inventory dicttable to the matching multisite table */
804 div.invtablelink {
805     position: absolute;
806     top: -17px;
807     right: 1px;
811 td.if_state.if_state_up {
812     background-color: #00c020;
813     box-shadow: 0px 0px 3px #ccffcc inset;
816 td.if_state.if_state_down {
817     background-color: #bc5b4e;
818     box-shadow: 0px 0px 2px #000 inset;
821 td.if_state.if_state_other {
822     background-color: #c020c0;
823     box-shadow: 0px 0px 2px #000 inset;
826 td.if_state {
827     color: white;
828     box-shadow: 0.5px 0.5px 2px #000 inset;
829     text-align: center;
830     font-weight: bold;
831     width: 50px;
834 td.if_state.if_available {
835     color: black;
836     background-color: #80ff40;
839 td.if_state.if_not_available {
840     color: black;
841     background-color: #cccccc;
849 table.data.headerleft.sla th {
850     width: 130px;
851     text-align: left;
852     padding: 4px 5px;
855 table.data.headerleft.sla a {
856     color: white;
857     text-decoration: underline;
860 table.data.headerleft.sla th.sla_state {
861     width: 30px;
864 table.data.headerleft.sla th.sla_date,
865 table.data.headerleft.sla td.sla_date{
866     width: 120px;
867     padding-right: 4px;
870 table.data.headerleft.sla th.sla_duration{
871     text-align: left;
874 table.data.headerleft.sla td.sla_duration{
875     text-align: right;
876     padding-right: 4px;
879 table.data.headerleft.sla td.sla_output{
880     width: 70%;
881     padding-left: 4px;
884 table.data.headerleft.sla td {
885     padding: 0px;
888 table.data.headerleft.sla {
889     margin-bottom: 20px;
892 table.timeline.standalone.sla td {
893     border: 0px solid #444;
894     padding: 0px;
897 table.timeline.standalone.sla  {
898     margin-bottom: 5px;
901 table.timeline.standalone.sla.period  {
902     margin-bottom: 5px;
903     height: 10px;
906 table.timeline td.state0.even{
907     background-color: #0b3;
910 table.timeline td.state0.odd{
911     background-color: #092;
914 table.timeline td.state2.even{
915     background-color: #f00;
918 table.timeline td.state2.odd{
919     background-color: #900;
922 div.sla_details{
923     background-color: #73a1b4;
926 td.sla > div.foldable > b{
927     color: black;
930 h2.sla {
931     margin-bottom: 3px;
934 h3.sla {
935     margin-top: 3px;
938 table.data tr.sla_horizontal_line > td.sla_horizontal_line {
939     height: 1px;
942 table.data tr.sla_horizontal_line > td.sla_horizontal_line.black {
943     height: 1px;
944     border-bottom: 1px solid black;
948 table.timeline.sla td.sla_hilite,
949 table.data.oddeven > tbody > tr.sla_hilite {
950     padding: 0px;
951     border-style: none;
952     filter: brightness(70%);
955 table.timeline.sla td.sla_hilite.sla_error_hilite,
956 table.data.oddeven > tbody > tr.sla_hilite.sla_error_hilite {
957     padding: 0px;
958     border-style: none;
959     filter: brightness(50%);
962 div.timelinerange.sla {
963     width: auto;
964     float: none;
968 div#avoptions td.dictleft {
969     width: 99%;
972 div#avoptions td.dictright {
973     padding-right: 4px;