thalassa-aqueduct
Version:
Dynamic haproxy load balancer and configuration. Part of Thalassa
519 lines (444 loc) • 8.87 kB
CSS
/********************************** BEGIN TEMP CSS */
.entry {
float: left;
min-width: 560px;
margin-right: 10px;
margin-bottom: 10px;
border: 4px solid #eee;
clear: left;
}
.entry:nth-child(even) {
margin-right: 0;
clear: none;
}
@media (max-width: 1200px) {
.entry {
width: 100%;
min-width: 600px;
max-width: 1000px;
}
}
table.dashboard > tbody > tr.success > td {
background: #fff;
}
table.dashboard th {
text-align: left;
background: #eee;
}
table.dashboard td {
text-align: center;
}
table.dashboard tbody>tr>th {
border: none;
}
table.dashboard th h2 {
font-size: 24px;
font-weight: 200;
margin: 0;
padding-bottom: 5px;
}
table.dashboard th .id {
font-size: 14px;
font-weight: 500;
}
table.dashboard th .favorite-icon {
position: relative;
float: right;
margin-right: 10px;
margin-top: -45px;
font-size: 20px;
cursor: pointer;
}
table.dashboard td.status-label div {
margin-top: -9px;
margin-left: -9px;
padding: 5px;
color: #fff;
font-weight: 200;
}
table.dashboard .name {
font-size: 20px;
font-weight: 500;
}
table.dashboard .little-graph {
display: inline-block;
vertical-align: middle;
}
table.dashboard .big-block {
display: inline-block;
vertical-align: middle;
min-width: 130px;
}
table.dashboard .big-number {
line-height: 110%;
font-size: 34px;
font-weight: 100;
}
table.dashboard .big-number-label {
font-size: 12px;
font-weight: 400;
color: #333;
}
table.dashboard td.servers {
padding-top: 13px;
}
.favorite-true {
color: #999 ;
transform: rotate(45deg);
-ms-transform: rotate(45deg); /* IE 9 */
-webkit-transform: rotate(45deg); /* Safari and Chrome */
}
.favorite-false {
color: #999 ;
}
.pool-detail {
width: 100%;
margin-top: -30px;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
background: #eee;
}
.pool-detail .pool-heading {
background: #eee;
padding: 10px;
border-bottom: 1px solid #ccc;
}
.pool-detail .pool-heading h2 {
margin: 0;
font-size: 35px;
font-weight: 200;
}
.pool-detail .pool-heading span {
font-size: 16px;
font-weight: 200;
color: #333;
}
.pool-detail .frontends {
float: left;
width: 50%;
background: #fff;
border-left: none;
}
.pool-detail .backends {
float: left;
width: 50%;
background: #fff;
border-left: 1px solid #ccc;
}
.pool-detail h3 {
display: block;
margin: 0;
padding: 20px;
background: #ddd;
font-size: 20px;
background: #ddd;
border-bottom: 1px solid #ccc;
}
.pool-detail .pool-info {
padding-bottom: 20px;
border-bottom: 1px solid #ccc;
}
.pool-detail .pool-info .status-label {
display: inline-block;
vertical-align: middle;
margin-right: 20px;
padding: 10px;
font-size: 24px;
font-weight: 100 ;
letter-spacing: 1px;
color: #fff;
font-weight: bold;
}
.pool-detail .pool-info h4 {
display: inline-block;
vertical-align: middle;
margin: 0;
font-size: 24px;
font-weight: 800;
max-width: 380px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.pool-detail .pool-info .version {
display: inline-block;
margin: 15px 15px 0 0;
}
.pool-detail .pool-info .time-series-wrapper {
margin: 20px 10px 10px 10px;
}
.pool-detail .pool-info .donut {
margin-left: 5px;
}
.pool-detail .pool-info h5 {
font-weight: 800;
}
.pool-detail .pool-info ul,
.pool-detail .pool-info .members {
padding: 0 10px;
}
.pool-detail .pool-info .members > div {
padding: 5px 0;
border-top: 1px solid #ddd;
}
.pool-detail .pool-info .members > div:last-child {
border-bottom: 1px solid #ddd;
}
/********************************** END TEMP CSS */
#view-container {
margin-top: 80px;
}
.connection-status {
position: absolute;
width: 1.25em;
height: 1.25em;
top: 15px;
left: 10px;
display: inline-block;
text-align: center;
border-radius: 1.25em;
line-height: normal;
}
.connection-status span {
font-size: 8px;
color: #ddd;
}
.connection-status-connected {
background-color: #00CD00;
}
.connection-status-disconnected {
background-color: #CD0000;
}
.connection-status-connecting {
background-color: #FF7F00;
}
.favorite-true {
color: red;
}
.favorite-false {
color: gray;
}
div.proxy-detail .favorite-true,
div.proxy-detail .favorite-false,
div.favorites .favorite-true,
div.favorites .favorite-false {
position: absolute;
right: 0.25em;
top: 0.25em;
font-size: 2em;
}
.proxy-list li a {
font-weight: bold;
font-size: 1.2em;
margin-right: 0.5em;
}
.proxy-list .favorite-true,
.proxy-list .favorite-false {
font-size: 1.2em;
margin-right: 0.5em;
}
.service-list,
.activity-list {
list-style: none;
}
.service-list li,
.activity-list li {
margin-top: 5px;
}
.activity-list small {
color: gray;
}
.label-online {
background-color: #5cb85c;
}
.label-offline {
background-color: #d9534f;
}
.label-started {
background-color: #f0ad4e;
}
.label-haproxyRestarted {
background-color: #f0ad4e;
}
.label-haproxyConfigChanged {
background-color: #428bca;
}
.time-series-label {
opacity: 0.8;
font-size: 0.9em;
}
.time-series-wrapper {
position: relative;
}
.panel.favorites,
.panel.proxy-detail {
margin-right: 15px;
float: left;
}
.panel.proxy-detail .panel-heading h3,
.panel.proxy-detail .panel-heading span,
.panel.favorites .panel-heading h3,
.panel.favorites .panel-heading span {
padding-right:30px;
}
.panel.proxy-detail .frontends,
.panel.proxy-detail .backends{
float: left;
padding-right: 20px;
}
.panel.favorites .frontends,
.panel.favorites .backends {
float: left;
padding-right: 10px;
}
.panel-heading a {
color: #428bca;
}
.inline {
display: inline;
}
/* ticks */
.rickshaw_graph .x_tick {
position: absolute;
top: 0;
bottom: 0;
width: 0px;
border-left: 1px dotted rgba(0, 0, 0, 0.2);
pointer-events: none;
}
.rickshaw_graph .x_tick .title {
position: absolute;
font-size: 12px;
font-family: Arial, sans-serif;
opacity: 0.5;
white-space: nowrap;
margin-left: 3px;
bottom: 1px;
}
/* annotations */
.rickshaw_annotation_timeline {
height: 1px;
border-top: 1px solid #e0e0e0;
margin-top: 10px;
position: relative;
}
.rickshaw_annotation_timeline .annotation {
position: absolute;
height: 6px;
width: 6px;
margin-left: -2px;
top: -3px;
border-radius: 5px;
background-color: rgba(0, 0, 0, 0.25);
}
.rickshaw_graph .annotation_line {
position: absolute;
top: 0;
bottom: -6px;
width: 0px;
border-left: 2px solid rgba(0, 0, 0, 0.3);
display: none;
}
.rickshaw_graph .annotation_line.active {
display: block;
}
.rickshaw_graph .annotation_range {
background: rgba(0, 0, 0, 0.1);
display: none;
position: absolute;
top: 0;
bottom: -6px;
}
.rickshaw_graph .annotation_range.active {
display: block;
}
.rickshaw_graph .annotation_range.active.offscreen {
display: none;
}
.rickshaw_annotation_timeline .annotation .content {
background: white;
color: black;
opacity: 0.9;
padding: 5px 5px;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
border-radius: 3px;
position: relative;
z-index: 20;
font-size: 12px;
padding: 6px 8px 8px;
top: 18px;
left: -11px;
width: 160px;
display: none;
cursor: pointer;
}
.rickshaw_annotation_timeline .annotation .content:before {
content: "\25b2";
position: absolute;
top: -11px;
color: white;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8);
}
.rickshaw_annotation_timeline .annotation.active,
.rickshaw_annotation_timeline .annotation:hover {
background-color: rgba(0, 0, 0, 0.8);
cursor: none;
}
.rickshaw_annotation_timeline .annotation .content:hover {
z-index: 50;
}
.rickshaw_annotation_timeline .annotation.active .content {
display: block;
}
.rickshaw_annotation_timeline .annotation:hover .content {
display: block;
z-index: 50;
}
.rickshaw_graph .y_axis,
.rickshaw_graph .x_axis_d3 {
fill: none;
}
.rickshaw_graph .y_ticks .tick,
.rickshaw_graph .x_ticks_d3 .tick {
stroke: rgba(0, 0, 0, 0.16);
stroke-width: 2px;
shape-rendering: crisp-edges;
pointer-events: none;
}
.rickshaw_graph .y_grid .tick,
.rickshaw_graph .x_grid_d3 .tick {
z-index: -1;
stroke: rgba(0, 0, 0, 0.20);
stroke-width: 1px;
stroke-dasharray: 1 1;
}
.rickshaw_graph .y_grid path,
.rickshaw_graph .x_grid_d3 path {
fill: none;
stroke: none;
}
.rickshaw_graph .y_ticks path,
.rickshaw_graph .x_ticks_d3 path {
fill: none;
stroke: #808080;
}
.rickshaw_graph .y_ticks text,
.rickshaw_graph .x_ticks_d3 text {
opacity: 0.5;
font-size: 12px;
pointer-events: none;
}
.rickshaw_graph .x_tick.glow .title,
.rickshaw_graph .y_ticks.glow text {
fill: black;
color: black;
text-shadow:
-1px 1px 0 rgba(255, 255, 255, 0.1),
1px -1px 0 rgba(255, 255, 255, 0.1),
1px 1px 0 rgba(255, 255, 255, 0.1),
0px 1px 0 rgba(255, 255, 255, 0.1),
0px -1px 0 rgba(255, 255, 255, 0.1),
1px 0px 0 rgba(255, 255, 255, 0.1),
-1px 0px 0 rgba(255, 255, 255, 0.1),
-1px -1px 0 rgba(255, 255, 255, 0.1);
}