2021-11-05 21:35:01 +00:00
|
|
|
@use "sass:math";
|
|
|
|
|
2020-01-31 20:52:52 +00:00
|
|
|
$size: 1.6rem;
|
2017-09-19 14:47:10 +00:00
|
|
|
|
|
|
|
.node-status-light {
|
2020-01-24 01:58:44 +00:00
|
|
|
display: inline-flex;
|
2017-09-19 14:47:10 +00:00
|
|
|
height: $size;
|
|
|
|
width: $size;
|
2021-11-05 21:35:01 +00:00
|
|
|
border-radius: math.div($size, 2);
|
2017-09-19 14:47:10 +00:00
|
|
|
vertical-align: middle;
|
2020-01-24 01:58:44 +00:00
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
2017-09-19 14:47:10 +00:00
|
|
|
|
2020-01-31 20:52:52 +00:00
|
|
|
// Compensate for the padding within the SVG
|
|
|
|
// (between the circle paths and the viewBox)
|
|
|
|
margin-left: -1px;
|
|
|
|
margin-right: -1px;
|
2017-09-19 14:47:10 +00:00
|
|
|
|
|
|
|
&.ready {
|
2020-01-31 20:52:52 +00:00
|
|
|
color: $primary;
|
2017-09-19 14:47:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
&.down {
|
2020-01-31 20:52:52 +00:00
|
|
|
color: $danger;
|
2017-09-19 14:47:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
&.initializing {
|
2020-01-31 20:52:52 +00:00
|
|
|
color: $grey-light;
|
2020-01-31 20:54:47 +00:00
|
|
|
|
|
|
|
.blinking {
|
|
|
|
animation: node-status-light-initializing 0.7s infinite alternate ease-in-out;
|
|
|
|
}
|
2017-09-19 14:47:10 +00:00
|
|
|
}
|
2018-05-29 17:27:24 +00:00
|
|
|
|
UI: Fix client sorting (#6817)
There are two changes here, and some caveats/commentary:
1. The “State“ table column was actually sorting only by status. The state was not an actual property, just something calculated in each client row, as a product of status, isEligible, and isDraining. This PR adds isDraining as a component of compositeState so it can be used for sorting.
2. The Sortable mixin declares dependent keys that cause the sort to be live-updating, but only if the members of the array change, such as if a new client is added, but not if any of the sortable properties change. This PR adds a SortableFactory function that generates a mixin whose listSorted computed property includes dependent keys for the sortable properties, so the table will live-update if any of the sortable properties change, not just the array members. There’s a warning if you use SortableFactory without dependent keys and via the original Sortable interface, so we can eventually migrate away from it.
2019-12-12 19:06:54 +00:00
|
|
|
&.ineligible,
|
|
|
|
&.draining {
|
2020-01-31 20:52:52 +00:00
|
|
|
color: $warning;
|
2018-05-29 17:27:24 +00:00
|
|
|
}
|
2020-01-24 01:58:44 +00:00
|
|
|
|
|
|
|
.icon {
|
2020-01-31 20:52:52 +00:00
|
|
|
width: $size;
|
|
|
|
height: $size;
|
2020-01-24 01:58:44 +00:00
|
|
|
}
|
2017-09-19 14:47:10 +00:00
|
|
|
}
|
2020-01-31 20:54:47 +00:00
|
|
|
|
|
|
|
@keyframes node-status-light-initializing {
|
|
|
|
0% {
|
|
|
|
opacity: 0.2;
|
|
|
|
}
|
|
|
|
|
|
|
|
100% {
|
|
|
|
opacity: 0.7;
|
|
|
|
}
|
|
|
|
}
|