blob: 07fe951f076085c84a207bdc202d0e4b0d3097d2 [file] [log] [blame]
Matteo Scandolo1df21732016-03-29 14:06:13 -07001/* CONTAINER */
2#xosDiagnostic, [ui-view] {
Matteo Scandolo195dde92016-07-25 16:43:16 -07003 height: 100%;
Matteo Scandolo1df21732016-03-29 14:06:13 -07004 min-height: 700px;
5 position: relative; }
6
7diagnostic-container .form-control.small-padding {
8 padding: 6px; }
9
10diagnostic-container .half-height {
11 position: relative;
12 height: 50%; }
13
14diagnostic-container .onethird-height {
15 position: relative;
16 height: 33%;
17 border-bottom: 1px solid #999; }
18
19diagnostic-container .twothird-height {
20 position: relative;
21 height: 67%; }
22
23diagnostic-container .subscriber-select {
24 max-width: 200px;
25 position: absolute;
26 top: 20px;
27 right: 20px;
28 z-index: 1; }
29
30diagnostic-container .onethird-height .well,
31diagnostic-container .twothird-height .well {
32 font-weight: bold;
33 max-width: 165px;
34 text-align: center;
35 margin-top: 15px;
36 background: #eee;
37 border-color: steelblue;
38 padding: 10px; }
39
40diagnostic-container .onethird-height .well.pull-right {
41 position: absolute;
42 right: 0px;
43 top: -15px;
44 cursor: pointer;
45 z-index: 200; }
46
47/* subscriber-status-modal */
48subscriber-status-modal .row + .row {
49 margin-top: 20px; }
50
51.half-height + .half-height {
52 border-top: 1px solid black; }
53
54service-topology,
55logic-topology {
56 height: 100%;
57 width: 100%;
58 display: block;
59 position: absolute;
60 top: 0; }
61
62logic-topology .subscriber circle,
63logic-topology .device circle {
64 fill: #fff;
65 stroke: green;
66 stroke-width: 1px; }
67
68logic-topology > svg {
69 position: absolute;
70 top: 0; }
71
72/* CLOUDS */
73logic-topology .network .cloud {
74 fill: #fff;
75 stroke: green;
76 stroke-width: 1px; }
77
78/* RACK */
79logic-topology .node.rack > g > rect {
80 fill: #ccc;
81 stroke: steelblue;
82 stroke-width: 1px; }
83
84/* CP NODE */
85logic-topology .compute-node > rect {
86 fill: #fff;
87 stroke: steelblue;
88 stroke-width: 1px; }
89
90logic-topology .compute-node > text {
91 font-size: 16px; }
92
93/* INSTANCE */
94logic-topology .instance > rect {
95 fill: #eee;
96 stroke: steelblue;
97 stroke-width: 1px; }
98
99logic-topology .node .instance.active rect {
100 fill: lightsteelblue;
101 stroke: steelblue;
102 stroke-width: 1px; }
103
104logic-topology .node .instance.active.good > rect {
105 fill: green; }
106
107logic-topology .node .instance.active.provisioning > rect {
108 fill: yellow; }
109
110logic-topology .node .instance.active.bad > rect {
111 fill: red; }
112
113/* INSTANCE STATS */
114logic-topology .node .instance .stats-container rect {
115 fill: white; }
116
117logic-topology .node .instance .stats-container text.name {
118 font-weight: bold; }
119
120logic-topology .node .instance .stats-container text.ip {
121 font-style: italic;
122 font-size: 10px; }
123
124/* CONTAINERS */
125logic-topology .node .instance .stats-container .container rect {
126 fill: #eee;
127 stroke: steelblue;
128 stroke-width: 1px; }
129
130/* LEGEND */
131.legend {
132 fill: #fff;
133 stroke: #ccc;
134 stroke-width: 1px;
135 position: relative; }
136
137.legend text {
138 stroke: #000; }
139
140.node {
141 cursor: pointer; }
142
143.node circle,
144.node rect {
145 fill: #fff;
146 stroke: steelblue;
147 stroke-width: 1px; }
148
149.node.subscriber circle,
150.node.subscriber rect,
151.node.router circle,
152.node.router rect {
153 stroke: #05ffcb; }
154
155.node.slice rect {
156 stroke: #b01dff; }
157
158.node.instance rect {
159 stroke: #ccc; }
160
161.node.instance rect.active {
162 stroke: #ff8b00; }
163
164.node rect.slice-detail {
165 fill: #fff;
166 stroke: steelblue;
167 stroke-width: 3px; }
168
169.node text {
170 font: 18px sans-serif; }
171
172.node .instance text {
173 font: 12px sans-serif; }
174
175.node text.small {
176 font-size: 10px; }
177
178.link, .device-link {
179 fill: none;
180 stroke: #ccc;
181 stroke-width: 2px; }
182
183.link.slice {
184 stroke: rgba(157, 4, 183, 0.29); }
185
186.link.instance {
187 stroke: #ccc; }
188
189.link.instance.active {
190 stroke: rgba(255, 138, 0, 0.65); }
191
192.service-details {
193 width: 200px;
194 position: absolute;
195 top: 20px;
196 right: 20px; }
197
198/* when showing the thing */
199.animate.ng-hide-remove {
200 animation: 0.5s bounceInRight ease; }
201
202/* when hiding the picture */
203.animate.ng-hide-add {
204 animation: 0.5s bounceOutRight ease; }
205
206/* LOADER */
207.loader {
208 font-size: 10px;
209 margin: 150px auto;
210 text-indent: -9999em;
211 width: 11em;
212 height: 11em;
213 border-radius: 50%;
214 background: #ffffff;
215 background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
216 background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
217 background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
218 background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
219 background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
220 position: relative;
221 animation: load3 1.4s infinite linear;
222 transform: translateZ(0); }
223
224.loader:before {
225 width: 50%;
226 height: 50%;
227 background: #105E9E;
228 border-radius: 100% 0 0 0;
229 position: absolute;
230 top: 0;
231 left: 0;
232 content: ''; }
233
234.loader:after {
235 background: #fff;
236 width: 75%;
237 height: 75%;
238 border-radius: 50%;
239 content: '';
240 margin: auto;
241 position: absolute;
242 top: 0;
243 left: 0;
244 bottom: 0;
245 right: 0; }
246
247@keyframes load3 {
248 0% {
249 -webkit-transform: rotate(0deg);
250 transform: rotate(0deg); }
251 100% {
252 -webkit-transform: rotate(360deg);
253 transform: rotate(360deg); } }
254
255/* MODALS */
256.modal.fade.in {
257 display: block; }
258
259/* ANIMATIONS */
260@keyframes bounceInRight {
261 from, 60%, 75%, 90%, to {
262 animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
263 from {
264 opacity: 0;
265 transform: translate3d(3000px, 0, 0); }
266 60% {
267 opacity: 1;
268 transform: translate3d(-25px, 0, 0); }
269 75% {
270 transform: translate3d(10px, 0, 0); }
271 90% {
272 transform: translate3d(-5px, 0, 0); }
273 to {
274 transform: none; } }
275
276@keyframes bounceOutRight {
277 20% {
278 opacity: 1;
279 transform: translate3d(-20px, 0, 0); }
280 to {
281 opacity: 0;
282 transform: translate3d(2000px, 0, 0); } }