blob: 90f1c50ed453a301136465f7c0327f6f45f1bf43 [file] [log] [blame]
Matteo Scandolofcdbed32016-02-08 16:55:44 -08001/* CONTAINER */
Matteo Scandolo70ac2162016-02-24 15:40:22 -08002#xosDiagnostic, [ui-view] {
Matteo Scandolo2df79302016-02-29 16:27:58 -08003 height: 100%;
Matteo Scandolod4ea8772016-03-01 15:20:29 -08004 min-height: 700px;
5 position: relative;
Matteo Scandolo70ac2162016-02-24 15:40:22 -08006}
7
Matteo Scandolo35d1c3a2016-03-08 17:01:17 -08008diagnostic-container .form-control.small-padding{
9 padding: 6px;
Matteo Scandolo70ac2162016-02-24 15:40:22 -080010}
11
12diagnostic-container .half-height {
Matteo Scandolofcdbed32016-02-08 16:55:44 -080013 position: relative;
14 height: 50%;
15}
16
Matteo Scandolo70ac2162016-02-24 15:40:22 -080017diagnostic-container .onethird-height {
Matteo Scandolo51031482016-02-17 13:54:11 -080018 position: relative;
19 height: 33%;
Matteo Scandolo19acf7c2016-03-07 16:07:13 -080020 border-bottom: 1px solid #999;
Matteo Scandolo51031482016-02-17 13:54:11 -080021}
22
Matteo Scandolo70ac2162016-02-24 15:40:22 -080023diagnostic-container .twothird-height {
Matteo Scandolo51031482016-02-17 13:54:11 -080024 position: relative;
25 height: 67%;
26}
27
Matteo Scandolo70ac2162016-02-24 15:40:22 -080028diagnostic-container .subscriber-select{
Matteo Scandolo9fe01af2016-02-09 16:01:49 -080029 max-width: 200px;
30 position: absolute;
31 top: 20px;
32 right: 20px;
33 z-index: 1;
34}
35
Matteo Scandolo19acf7c2016-03-07 16:07:13 -080036diagnostic-container .onethird-height .well,
37diagnostic-container .twothird-height .well {
38 font-weight: bold;
39 max-width: 165px;
40 text-align: center;
41 margin-top: 15px;
42 background: #eee;
43 border-color: steelblue;
44 padding: 10px;
45}
46
Matteo Scandolo3a176a22016-03-07 16:42:03 -080047diagnostic-container .onethird-height .well.pull-right{
48 position: absolute;
49 right: 0px;
50 top: -15px;
51 cursor: pointer;
52 z-index: 200;
53}
54
Matteo Scandolo6c6e5942016-03-02 10:59:46 -080055
56/* subscriber-status-modal */
57subscriber-status-modal .row + .row {
58 margin-top: 20px;
59}
60
Matteo Scandolo219b1a72016-02-09 11:19:22 -080061.half-height + .half-height {
62 border-top: 1px solid black;
63}
64
65service-topology,
66logic-topology {
Matteo Scandolo8a64fa42016-01-21 11:21:03 -080067 height: 100%;
68 width: 100%;
69 display: block;
Matteo Scandolo219b1a72016-02-09 11:19:22 -080070 position: absolute;
71 top: 0;
Matteo Scandolo8a64fa42016-01-21 11:21:03 -080072}
73
Matteo Scandoloe4779902016-02-09 11:37:11 -080074logic-topology .subscriber circle,
75logic-topology .device circle{
76 fill: #fff;
77 stroke: green;
78 stroke-width: 1px;
79}
80
Matteo Scandoloc49ff702016-02-17 15:11:33 -080081logic-topology > svg {
82 position: absolute;
83 top: 0;
84}
85
Matteo Scandoloc49ff702016-02-17 15:11:33 -080086/* CLOUDS */
87
Matteo Scandolo9fe01af2016-02-09 16:01:49 -080088logic-topology .network .cloud {
89 fill: #fff;
90 stroke: green;
91 stroke-width: 1px;
92}
93
Matteo Scandoloaf9402e2016-02-17 13:59:20 -080094/* RACK */
95logic-topology .node.rack > g > rect{
96 fill: #ccc;
97 stroke: steelblue;
98 stroke-width: 1px;
99}
100
101/* CP NODE */
102
103logic-topology .compute-node > rect{
Matteo Scandoload5b2282016-02-16 11:50:51 -0800104 fill: #fff;
105 stroke: steelblue;
106 stroke-width: 1px;
107}
108
Matteo Scandolof81130f2016-03-11 11:16:58 -0800109logic-topology .compute-node > text{
110 font-size: 16px;
111}
112
Matteo Scandoloaf9402e2016-02-17 13:59:20 -0800113/* INSTANCE */
114
115logic-topology .instance > rect{
116 fill: #eee;
117 stroke: steelblue;
118 stroke-width: 1px;
119}
120
Matteo Scandolo79de20a2016-02-16 15:06:11 -0800121logic-topology .node .instance.active rect{
122 fill: lightsteelblue;
123 stroke: steelblue;
124 stroke-width: 1px;
125}
126
Matteo Scandolo26d17e12016-02-23 13:47:14 -0800127logic-topology .node .instance.active.good > rect{
128 fill: green;
129}
130
131logic-topology .node .instance.active.provisioning > rect{
132 fill: yellow;
133}
134
135logic-topology .node .instance.active.bad > rect{
136 fill: red;
137}
138
139/* INSTANCE STATS */
140
141logic-topology .node .instance .stats-container rect {
142 fill: white;
143}
144
145logic-topology .node .instance .stats-container text.name{
146 font-weight: bold;
147}
148
149logic-topology .node .instance .stats-container text.ip{
150 font-style: italic;
151 font-size: 10px;
152}
153
154/* CONTAINERS */
Matteo Scandolof0d6e692016-02-24 11:14:01 -0800155logic-topology .node .instance .stats-container .container rect {
Matteo Scandolo26d17e12016-02-23 13:47:14 -0800156 fill: #eee;
157 stroke: steelblue;
158 stroke-width: 1px;
159}
160
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800161/* LEGEND */
162
163.legend {
164 fill: #fff;
165 stroke: #ccc;
166 stroke-width: 1px;
167 position: relative;
168}
169
170.legend text {
171 stroke: #000;
172}
173
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800174.node {
175 cursor: pointer;
176}
177
Matteo Scandolo5bf04572016-01-25 17:36:08 -0800178.node circle,
179.node rect{
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800180 fill: #fff;
181 stroke: steelblue;
Matteo Scandolofcdbed32016-02-08 16:55:44 -0800182 stroke-width: 1px;
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800183}
184
Matteo Scandolof2c99012016-01-25 10:10:38 -0800185.node.subscriber circle,
Matteo Scandolo9fe01af2016-02-09 16:01:49 -0800186.node.subscriber rect,
187.node.router circle,
188.node.router rect {
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800189 stroke: #05ffcb;
Matteo Scandolof2c99012016-01-25 10:10:38 -0800190}
191
Matteo Scandolo5bf04572016-01-25 17:36:08 -0800192.node.slice rect {
Matteo Scandolo071ef462016-01-25 12:00:42 -0800193 stroke: #b01dff;
194}
195
Matteo Scandolo5bf04572016-01-25 17:36:08 -0800196.node.instance rect {
Matteo Scandoloc9ebd922016-01-28 12:02:57 -0800197 stroke: #ccc;
198}
199
200.node.instance rect.active {
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800201 stroke: #ff8b00;
Matteo Scandolo071ef462016-01-25 12:00:42 -0800202}
203
Matteo Scandolo6e8a75a2016-01-22 09:33:26 -0800204.node rect.slice-detail{
205 fill: #fff;
206 stroke: steelblue;
207 stroke-width: 3px;
208}
209
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800210.node text {
Matteo Scandolof81130f2016-03-11 11:16:58 -0800211 font: 18px sans-serif;
212}
213
214.node .instance text {
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800215 font: 12px sans-serif;
216}
217
Matteo Scandolo19acf7c2016-03-07 16:07:13 -0800218.node text.small {
219 font-size: 10px;
220}
221
Matteo Scandolo219b1a72016-02-09 11:19:22 -0800222.link, .device-link {
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800223 fill: none;
224 stroke: #ccc;
225 stroke-width: 2px;
Matteo Scandolo06f45d62016-01-21 15:38:06 -0800226}
227
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800228.link.slice {
Matteo Scandolo9ef3c842016-01-25 13:55:09 -0800229 stroke: rgba(157, 4, 183, 0.29);
230}
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800231.link.instance{
Matteo Scandoloc9ebd922016-01-28 12:02:57 -0800232 stroke: #ccc;
233}
234
235.link.instance.active{
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800236 stroke: rgba(255, 138, 0, 0.65);
237}
Matteo Scandolo9ef3c842016-01-25 13:55:09 -0800238
Matteo Scandolo06f45d62016-01-21 15:38:06 -0800239.service-details{
240 width: 200px;
241 position: absolute;
242 top: 20px;
243 right: 20px;
Matteo Scandolo3501ccb2016-01-21 16:02:57 -0800244}
245
246/* when showing the thing */
247
248.animate.ng-hide-remove {
249 animation:0.5s bounceInRight ease;
250}
251
252/* when hiding the picture */
253.animate.ng-hide-add {
254 animation:0.5s bounceOutRight ease;
255}
256
Matteo Scandolo07246ca2016-02-22 09:16:46 -0800257/* LOADER */
258.loader {
259 font-size: 10px;
260 margin: 150px auto;
261 text-indent: -9999em;
262 width: 11em;
263 height: 11em;
264 border-radius: 50%;
265 background: #ffffff;
266 background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
267 background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
268 background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
269 background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
270 background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
271 position: relative;
272 animation: load3 1.4s infinite linear;
273 transform: translateZ(0);
274}
275.loader:before {
276 width: 50%;
277 height: 50%;
278 background: #105E9E;
279 border-radius: 100% 0 0 0;
280 position: absolute;
281 top: 0;
282 left: 0;
283 content: '';
284}
285.loader:after {
286 background: #fff;
287 width: 75%;
288 height: 75%;
289 border-radius: 50%;
290 content: '';
291 margin: auto;
292 position: absolute;
293 top: 0;
294 left: 0;
295 bottom: 0;
296 right: 0;
297}
298
299@keyframes load3 {
300 0% {
301 -webkit-transform: rotate(0deg);
302 transform: rotate(0deg);
303 }
304 100% {
305 -webkit-transform: rotate(360deg);
306 transform: rotate(360deg);
307 }
308}
309
Matteo Scandolo388795a2016-02-22 09:57:55 -0800310/* MODALS */
311
312.modal.fade.in {
313 display: block;
314}
315
Matteo Scandolo3501ccb2016-01-21 16:02:57 -0800316/* ANIMATIONS */
317
318@keyframes bounceInRight {
319 from, 60%, 75%, 90%, to {
320 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
321 }
322
323 from {
324 opacity: 0;
325 transform: translate3d(3000px, 0, 0);
326 }
327
328 60% {
329 opacity: 1;
330 transform: translate3d(-25px, 0, 0);
331 }
332
333 75% {
334 transform: translate3d(10px, 0, 0);
335 }
336
337 90% {
338 transform: translate3d(-5px, 0, 0);
339 }
340
341 to {
342 transform: none;
343 }
344}
345
Matteo Scandoloc49ff702016-02-17 15:11:33 -0800346@keyframes bounceOutRight {
347 20% {
348 opacity: 1;
349 transform: translate3d(-20px, 0, 0);
350 }
Matteo Scandolo3501ccb2016-01-21 16:02:57 -0800351
Matteo Scandoloc49ff702016-02-17 15:11:33 -0800352 to {
353 opacity: 0;
354 transform: translate3d(2000px, 0, 0);
355 }
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800356}