blob: 4a8a6f91eeeaaa15eb27e871ffa8401beed5c0f5 [file] [log] [blame]
Matteo Scandolofcdbed32016-02-08 16:55:44 -08001/* CONTAINER */
Matteo Scandolo70ac2162016-02-24 15:40:22 -08002#xosDiagnostic, [ui-view] {
Matteo Scandolod4ea8772016-03-01 15:20:29 -08003 min-height: 700px;
4 position: relative;
Matteo Scandolo70ac2162016-02-24 15:40:22 -08005}
6
7diagnostic-container .half-height {
Matteo Scandolofcdbed32016-02-08 16:55:44 -08008 position: relative;
9 height: 50%;
10}
11
Matteo Scandolo70ac2162016-02-24 15:40:22 -080012diagnostic-container .onethird-height {
Matteo Scandolo51031482016-02-17 13:54:11 -080013 position: relative;
14 height: 33%;
15}
16
Matteo Scandolo70ac2162016-02-24 15:40:22 -080017diagnostic-container .twothird-height {
Matteo Scandolo51031482016-02-17 13:54:11 -080018 position: relative;
19 height: 67%;
20}
21
Matteo Scandolo70ac2162016-02-24 15:40:22 -080022diagnostic-container .subscriber-select{
Matteo Scandolo9fe01af2016-02-09 16:01:49 -080023 max-width: 200px;
24 position: absolute;
25 top: 20px;
26 right: 20px;
27 z-index: 1;
28}
29
Matteo Scandolo6c6e5942016-03-02 10:59:46 -080030
31/* subscriber-status-modal */
32subscriber-status-modal .row + .row {
33 margin-top: 20px;
34}
35
Matteo Scandolo219b1a72016-02-09 11:19:22 -080036.half-height + .half-height {
37 border-top: 1px solid black;
38}
39
40service-topology,
41logic-topology {
Matteo Scandolo8a64fa42016-01-21 11:21:03 -080042 height: 100%;
43 width: 100%;
44 display: block;
Matteo Scandolo219b1a72016-02-09 11:19:22 -080045 position: absolute;
46 top: 0;
Matteo Scandolo8a64fa42016-01-21 11:21:03 -080047}
48
Matteo Scandoloe4779902016-02-09 11:37:11 -080049logic-topology .subscriber circle,
50logic-topology .device circle{
51 fill: #fff;
52 stroke: green;
53 stroke-width: 1px;
54}
55
Matteo Scandoloc49ff702016-02-17 15:11:33 -080056logic-topology > svg {
57 position: absolute;
58 top: 0;
59}
60
Matteo Scandoloc49ff702016-02-17 15:11:33 -080061/* CLOUDS */
62
Matteo Scandolo9fe01af2016-02-09 16:01:49 -080063logic-topology .network .cloud {
64 fill: #fff;
65 stroke: green;
66 stroke-width: 1px;
67}
68
Matteo Scandoloaf9402e2016-02-17 13:59:20 -080069/* RACK */
70logic-topology .node.rack > g > rect{
71 fill: #ccc;
72 stroke: steelblue;
73 stroke-width: 1px;
74}
75
76/* CP NODE */
77
78logic-topology .compute-node > rect{
Matteo Scandoload5b2282016-02-16 11:50:51 -080079 fill: #fff;
80 stroke: steelblue;
81 stroke-width: 1px;
82}
83
Matteo Scandoloaf9402e2016-02-17 13:59:20 -080084/* INSTANCE */
85
86logic-topology .instance > rect{
87 fill: #eee;
88 stroke: steelblue;
89 stroke-width: 1px;
90}
91
Matteo Scandolo79de20a2016-02-16 15:06:11 -080092logic-topology .node .instance.active rect{
93 fill: lightsteelblue;
94 stroke: steelblue;
95 stroke-width: 1px;
96}
97
Matteo Scandolo26d17e12016-02-23 13:47:14 -080098logic-topology .node .instance.active.good > rect{
99 fill: green;
100}
101
102logic-topology .node .instance.active.provisioning > rect{
103 fill: yellow;
104}
105
106logic-topology .node .instance.active.bad > rect{
107 fill: red;
108}
109
110/* INSTANCE STATS */
111
112logic-topology .node .instance .stats-container rect {
113 fill: white;
114}
115
116logic-topology .node .instance .stats-container text.name{
117 font-weight: bold;
118}
119
120logic-topology .node .instance .stats-container text.ip{
121 font-style: italic;
122 font-size: 10px;
123}
124
125/* CONTAINERS */
Matteo Scandolof0d6e692016-02-24 11:14:01 -0800126logic-topology .node .instance .stats-container .container rect {
Matteo Scandolo26d17e12016-02-23 13:47:14 -0800127 fill: #eee;
128 stroke: steelblue;
129 stroke-width: 1px;
130}
131
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800132/* LEGEND */
133
134.legend {
135 fill: #fff;
136 stroke: #ccc;
137 stroke-width: 1px;
138 position: relative;
139}
140
141.legend text {
142 stroke: #000;
143}
144
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800145.node {
146 cursor: pointer;
147}
148
Matteo Scandolo5bf04572016-01-25 17:36:08 -0800149.node circle,
150.node rect{
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800151 fill: #fff;
152 stroke: steelblue;
Matteo Scandolofcdbed32016-02-08 16:55:44 -0800153 stroke-width: 1px;
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800154}
155
Matteo Scandolof2c99012016-01-25 10:10:38 -0800156.node.subscriber circle,
Matteo Scandolo9fe01af2016-02-09 16:01:49 -0800157.node.subscriber rect,
158.node.router circle,
159.node.router rect {
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800160 stroke: #05ffcb;
Matteo Scandolof2c99012016-01-25 10:10:38 -0800161}
162
Matteo Scandolo5bf04572016-01-25 17:36:08 -0800163.node.slice rect {
Matteo Scandolo071ef462016-01-25 12:00:42 -0800164 stroke: #b01dff;
165}
166
Matteo Scandolo5bf04572016-01-25 17:36:08 -0800167.node.instance rect {
Matteo Scandoloc9ebd922016-01-28 12:02:57 -0800168 stroke: #ccc;
169}
170
171.node.instance rect.active {
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800172 stroke: #ff8b00;
Matteo Scandolo071ef462016-01-25 12:00:42 -0800173}
174
Matteo Scandolo6e8a75a2016-01-22 09:33:26 -0800175.node rect.slice-detail{
176 fill: #fff;
177 stroke: steelblue;
178 stroke-width: 3px;
179}
180
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800181.node text {
182 font: 12px sans-serif;
183}
184
Matteo Scandolo219b1a72016-02-09 11:19:22 -0800185.link, .device-link {
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800186 fill: none;
187 stroke: #ccc;
188 stroke-width: 2px;
Matteo Scandolo06f45d62016-01-21 15:38:06 -0800189}
190
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800191.link.slice {
Matteo Scandolo9ef3c842016-01-25 13:55:09 -0800192 stroke: rgba(157, 4, 183, 0.29);
193}
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800194.link.instance{
Matteo Scandoloc9ebd922016-01-28 12:02:57 -0800195 stroke: #ccc;
196}
197
198.link.instance.active{
Matteo Scandolo2c33a4c2016-01-25 16:24:42 -0800199 stroke: rgba(255, 138, 0, 0.65);
200}
Matteo Scandolo9ef3c842016-01-25 13:55:09 -0800201
Matteo Scandolo06f45d62016-01-21 15:38:06 -0800202.service-details{
203 width: 200px;
204 position: absolute;
205 top: 20px;
206 right: 20px;
Matteo Scandolo3501ccb2016-01-21 16:02:57 -0800207}
208
209/* when showing the thing */
210
211.animate.ng-hide-remove {
212 animation:0.5s bounceInRight ease;
213}
214
215/* when hiding the picture */
216.animate.ng-hide-add {
217 animation:0.5s bounceOutRight ease;
218}
219
Matteo Scandolo07246ca2016-02-22 09:16:46 -0800220/* LOADER */
221.loader {
222 font-size: 10px;
223 margin: 150px auto;
224 text-indent: -9999em;
225 width: 11em;
226 height: 11em;
227 border-radius: 50%;
228 background: #ffffff;
229 background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
230 background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
231 background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
232 background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
233 background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
234 position: relative;
235 animation: load3 1.4s infinite linear;
236 transform: translateZ(0);
237}
238.loader:before {
239 width: 50%;
240 height: 50%;
241 background: #105E9E;
242 border-radius: 100% 0 0 0;
243 position: absolute;
244 top: 0;
245 left: 0;
246 content: '';
247}
248.loader:after {
249 background: #fff;
250 width: 75%;
251 height: 75%;
252 border-radius: 50%;
253 content: '';
254 margin: auto;
255 position: absolute;
256 top: 0;
257 left: 0;
258 bottom: 0;
259 right: 0;
260}
261
262@keyframes load3 {
263 0% {
264 -webkit-transform: rotate(0deg);
265 transform: rotate(0deg);
266 }
267 100% {
268 -webkit-transform: rotate(360deg);
269 transform: rotate(360deg);
270 }
271}
272
Matteo Scandolo388795a2016-02-22 09:57:55 -0800273/* MODALS */
274
275.modal.fade.in {
276 display: block;
277}
278
Matteo Scandolo3501ccb2016-01-21 16:02:57 -0800279/* ANIMATIONS */
280
281@keyframes bounceInRight {
282 from, 60%, 75%, 90%, to {
283 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
284 }
285
286 from {
287 opacity: 0;
288 transform: translate3d(3000px, 0, 0);
289 }
290
291 60% {
292 opacity: 1;
293 transform: translate3d(-25px, 0, 0);
294 }
295
296 75% {
297 transform: translate3d(10px, 0, 0);
298 }
299
300 90% {
301 transform: translate3d(-5px, 0, 0);
302 }
303
304 to {
305 transform: none;
306 }
307}
308
Matteo Scandoloc49ff702016-02-17 15:11:33 -0800309@keyframes bounceOutRight {
310 20% {
311 opacity: 1;
312 transform: translate3d(-20px, 0, 0);
313 }
Matteo Scandolo3501ccb2016-01-21 16:02:57 -0800314
Matteo Scandoloc49ff702016-02-17 15:11:33 -0800315 to {
316 opacity: 0;
317 transform: translate3d(2000px, 0, 0);
318 }
Matteo Scandolo8a64fa42016-01-21 11:21:03 -0800319}