blob: 19d64a7a8a570ea6ea9981232c683ab115c42991 [file] [log] [blame]
Matteo Scandoloda19dff2016-02-08 16:55:44 -08001/* CONTAINER */
Matteo Scandolo16763e92016-02-24 15:40:22 -08002#xosDiagnostic, [ui-view] {
Matteo Scandoloa03110c2016-03-01 15:20:29 -08003 min-height: 700px;
4 position: relative;
Matteo Scandolo16763e92016-02-24 15:40:22 -08005}
6
7diagnostic-container .half-height {
Matteo Scandoloda19dff2016-02-08 16:55:44 -08008 position: relative;
9 height: 50%;
10}
11
Matteo Scandolo16763e92016-02-24 15:40:22 -080012diagnostic-container .onethird-height {
Matteo Scandoloba2d63d2016-02-17 13:54:11 -080013 position: relative;
14 height: 33%;
Matteo Scandolobd663742016-03-07 16:07:13 -080015 border-bottom: 1px solid #999;
Matteo Scandoloba2d63d2016-02-17 13:54:11 -080016}
17
Matteo Scandolo16763e92016-02-24 15:40:22 -080018diagnostic-container .twothird-height {
Matteo Scandoloba2d63d2016-02-17 13:54:11 -080019 position: relative;
20 height: 67%;
21}
22
Matteo Scandolo16763e92016-02-24 15:40:22 -080023diagnostic-container .subscriber-select{
Matteo Scandolo38ba3312016-02-09 16:01:49 -080024 max-width: 200px;
25 position: absolute;
26 top: 20px;
27 right: 20px;
28 z-index: 1;
29}
30
Matteo Scandolobd663742016-03-07 16:07:13 -080031diagnostic-container .onethird-height .well,
32diagnostic-container .twothird-height .well {
33 font-weight: bold;
34 max-width: 165px;
35 text-align: center;
36 margin-top: 15px;
37 background: #eee;
38 border-color: steelblue;
39 padding: 10px;
40}
41
Matteo Scandolod1b3bf52016-03-07 16:42:03 -080042diagnostic-container .onethird-height .well.pull-right{
43 position: absolute;
44 right: 0px;
45 top: -15px;
46 cursor: pointer;
47 z-index: 200;
48}
49
Matteo Scandolo5fc82c32016-03-02 10:59:46 -080050
51/* subscriber-status-modal */
52subscriber-status-modal .row + .row {
53 margin-top: 20px;
54}
55
Matteo Scandoloeeb9c082016-02-09 11:19:22 -080056.half-height + .half-height {
57 border-top: 1px solid black;
58}
59
60service-topology,
61logic-topology {
Matteo Scandolobe9b13d2016-01-21 11:21:03 -080062 height: 100%;
63 width: 100%;
64 display: block;
Matteo Scandoloeeb9c082016-02-09 11:19:22 -080065 position: absolute;
66 top: 0;
Matteo Scandolobe9b13d2016-01-21 11:21:03 -080067}
68
Matteo Scandolob373a102016-02-09 11:37:11 -080069logic-topology .subscriber circle,
70logic-topology .device circle{
71 fill: #fff;
72 stroke: green;
73 stroke-width: 1px;
74}
75
Matteo Scandoloc303fd02016-02-17 15:11:33 -080076logic-topology > svg {
77 position: absolute;
78 top: 0;
79}
80
Matteo Scandoloc303fd02016-02-17 15:11:33 -080081/* CLOUDS */
82
Matteo Scandolo38ba3312016-02-09 16:01:49 -080083logic-topology .network .cloud {
84 fill: #fff;
85 stroke: green;
86 stroke-width: 1px;
87}
88
Matteo Scandolo3b507bc2016-02-17 13:59:20 -080089/* RACK */
90logic-topology .node.rack > g > rect{
91 fill: #ccc;
92 stroke: steelblue;
93 stroke-width: 1px;
94}
95
96/* CP NODE */
97
98logic-topology .compute-node > rect{
Matteo Scandolob785b572016-02-16 11:50:51 -080099 fill: #fff;
100 stroke: steelblue;
101 stroke-width: 1px;
102}
103
Matteo Scandolo3b507bc2016-02-17 13:59:20 -0800104/* INSTANCE */
105
106logic-topology .instance > rect{
107 fill: #eee;
108 stroke: steelblue;
109 stroke-width: 1px;
110}
111
Matteo Scandoloedd3d6f2016-02-16 15:06:11 -0800112logic-topology .node .instance.active rect{
113 fill: lightsteelblue;
114 stroke: steelblue;
115 stroke-width: 1px;
116}
117
Matteo Scandolo06afdfe2016-02-23 13:47:14 -0800118logic-topology .node .instance.active.good > rect{
119 fill: green;
120}
121
122logic-topology .node .instance.active.provisioning > rect{
123 fill: yellow;
124}
125
126logic-topology .node .instance.active.bad > rect{
127 fill: red;
128}
129
130/* INSTANCE STATS */
131
132logic-topology .node .instance .stats-container rect {
133 fill: white;
134}
135
136logic-topology .node .instance .stats-container text.name{
137 font-weight: bold;
138}
139
140logic-topology .node .instance .stats-container text.ip{
141 font-style: italic;
142 font-size: 10px;
143}
144
145/* CONTAINERS */
Matteo Scandolo653c5092016-02-24 11:14:01 -0800146logic-topology .node .instance .stats-container .container rect {
Matteo Scandolo06afdfe2016-02-23 13:47:14 -0800147 fill: #eee;
148 stroke: steelblue;
149 stroke-width: 1px;
150}
151
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800152/* LEGEND */
153
154.legend {
155 fill: #fff;
156 stroke: #ccc;
157 stroke-width: 1px;
158 position: relative;
159}
160
161.legend text {
162 stroke: #000;
163}
164
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800165.node {
166 cursor: pointer;
167}
168
Matteo Scandoloc86b4c12016-01-25 17:36:08 -0800169.node circle,
170.node rect{
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800171 fill: #fff;
172 stroke: steelblue;
Matteo Scandoloda19dff2016-02-08 16:55:44 -0800173 stroke-width: 1px;
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800174}
175
Matteo Scandolofb46f5b2016-01-25 10:10:38 -0800176.node.subscriber circle,
Matteo Scandolo38ba3312016-02-09 16:01:49 -0800177.node.subscriber rect,
178.node.router circle,
179.node.router rect {
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800180 stroke: #05ffcb;
Matteo Scandolofb46f5b2016-01-25 10:10:38 -0800181}
182
Matteo Scandoloc86b4c12016-01-25 17:36:08 -0800183.node.slice rect {
Matteo Scandolo4889f5a2016-01-25 12:00:42 -0800184 stroke: #b01dff;
185}
186
Matteo Scandoloc86b4c12016-01-25 17:36:08 -0800187.node.instance rect {
Matteo Scandolo998e4652016-01-28 12:02:57 -0800188 stroke: #ccc;
189}
190
191.node.instance rect.active {
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800192 stroke: #ff8b00;
Matteo Scandolo4889f5a2016-01-25 12:00:42 -0800193}
194
Matteo Scandolo793e1dd2016-01-22 09:33:26 -0800195.node rect.slice-detail{
196 fill: #fff;
197 stroke: steelblue;
198 stroke-width: 3px;
199}
200
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800201.node text {
202 font: 12px sans-serif;
203}
204
Matteo Scandolobd663742016-03-07 16:07:13 -0800205.node text.small {
206 font-size: 10px;
207}
208
Matteo Scandoloeeb9c082016-02-09 11:19:22 -0800209.link, .device-link {
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800210 fill: none;
211 stroke: #ccc;
212 stroke-width: 2px;
Matteo Scandolo68236262016-01-21 15:38:06 -0800213}
214
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800215.link.slice {
Matteo Scandolo39f49472016-01-25 13:55:09 -0800216 stroke: rgba(157, 4, 183, 0.29);
217}
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800218.link.instance{
Matteo Scandolo998e4652016-01-28 12:02:57 -0800219 stroke: #ccc;
220}
221
222.link.instance.active{
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800223 stroke: rgba(255, 138, 0, 0.65);
224}
Matteo Scandolo39f49472016-01-25 13:55:09 -0800225
Matteo Scandolo68236262016-01-21 15:38:06 -0800226.service-details{
227 width: 200px;
228 position: absolute;
229 top: 20px;
230 right: 20px;
Matteo Scandolo53a02262016-01-21 16:02:57 -0800231}
232
233/* when showing the thing */
234
235.animate.ng-hide-remove {
236 animation:0.5s bounceInRight ease;
237}
238
239/* when hiding the picture */
240.animate.ng-hide-add {
241 animation:0.5s bounceOutRight ease;
242}
243
Matteo Scandolo17dc11d2016-02-22 09:16:46 -0800244/* LOADER */
245.loader {
246 font-size: 10px;
247 margin: 150px auto;
248 text-indent: -9999em;
249 width: 11em;
250 height: 11em;
251 border-radius: 50%;
252 background: #ffffff;
253 background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
254 background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
255 background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
256 background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
257 background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
258 position: relative;
259 animation: load3 1.4s infinite linear;
260 transform: translateZ(0);
261}
262.loader:before {
263 width: 50%;
264 height: 50%;
265 background: #105E9E;
266 border-radius: 100% 0 0 0;
267 position: absolute;
268 top: 0;
269 left: 0;
270 content: '';
271}
272.loader:after {
273 background: #fff;
274 width: 75%;
275 height: 75%;
276 border-radius: 50%;
277 content: '';
278 margin: auto;
279 position: absolute;
280 top: 0;
281 left: 0;
282 bottom: 0;
283 right: 0;
284}
285
286@keyframes load3 {
287 0% {
288 -webkit-transform: rotate(0deg);
289 transform: rotate(0deg);
290 }
291 100% {
292 -webkit-transform: rotate(360deg);
293 transform: rotate(360deg);
294 }
295}
296
Matteo Scandolocc8fa152016-02-22 09:57:55 -0800297/* MODALS */
298
299.modal.fade.in {
300 display: block;
301}
302
Matteo Scandolo53a02262016-01-21 16:02:57 -0800303/* ANIMATIONS */
304
305@keyframes bounceInRight {
306 from, 60%, 75%, 90%, to {
307 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
308 }
309
310 from {
311 opacity: 0;
312 transform: translate3d(3000px, 0, 0);
313 }
314
315 60% {
316 opacity: 1;
317 transform: translate3d(-25px, 0, 0);
318 }
319
320 75% {
321 transform: translate3d(10px, 0, 0);
322 }
323
324 90% {
325 transform: translate3d(-5px, 0, 0);
326 }
327
328 to {
329 transform: none;
330 }
331}
332
Matteo Scandoloc303fd02016-02-17 15:11:33 -0800333@keyframes bounceOutRight {
334 20% {
335 opacity: 1;
336 transform: translate3d(-20px, 0, 0);
337 }
Matteo Scandolo53a02262016-01-21 16:02:57 -0800338
Matteo Scandoloc303fd02016-02-17 15:11:33 -0800339 to {
340 opacity: 0;
341 transform: translate3d(2000px, 0, 0);
342 }
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800343}