conjur-asset-ui-beta 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +7 -0
  2. data/.git-hooks/pre_commit/trailing_whitespace.rb +26 -0
  3. data/.gitignore +23 -0
  4. data/.project +18 -0
  5. data/CHANGELOG.md +14 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +72 -0
  9. data/Rakefile +76 -0
  10. data/TODO.md +31 -0
  11. data/app/.csscomb.json +304 -0
  12. data/app/.jshintrc +46 -0
  13. data/app/build/css/bootstrap.css +6906 -0
  14. data/app/build/fonts/glyphicons-halflings-regular.eot +0 -0
  15. data/app/build/fonts/glyphicons-halflings-regular.svg +288 -0
  16. data/app/build/fonts/glyphicons-halflings-regular.ttf +0 -0
  17. data/app/build/fonts/glyphicons-halflings-regular.woff +0 -0
  18. data/app/build/fonts/glyphicons-halflings-regular.woff2 +0 -0
  19. data/app/build/images/conjur-logo.svg +26 -0
  20. data/app/build/images/icon-client-pc.svg +12 -0
  21. data/app/build/images/icon-environment.png +0 -0
  22. data/app/build/images/icon-person.svg +12 -0
  23. data/app/build/images/icon-policy.png +0 -0
  24. data/app/build/images/icon-resource.png +0 -0
  25. data/app/build/images/icon-service-dots.svg +13 -0
  26. data/app/build/images/icon-variable.png +0 -0
  27. data/app/build/index.html +26 -0
  28. data/app/build/js/app.js +78070 -0
  29. data/app/build/js/pace.js +2 -0
  30. data/app/config/preprocessor.js +9 -0
  31. data/app/config/webpack.js +84 -0
  32. data/app/gulpfile.js +144 -0
  33. data/app/package.json +83 -0
  34. data/app/src/actions.js +493 -0
  35. data/app/src/app.js +76 -0
  36. data/app/src/clients/audit.js +54 -0
  37. data/app/src/clients/generic.js +87 -0
  38. data/app/src/clients/layer_members.js +36 -0
  39. data/app/src/clients/list.js +82 -0
  40. data/app/src/clients/members.js +37 -0
  41. data/app/src/clients/search.js +19 -0
  42. data/app/src/components/app/__tests__/app-test.js +22 -0
  43. data/app/src/components/app/app.js +66 -0
  44. data/app/src/components/audit/__tests__/table_header-test.js +40 -0
  45. data/app/src/components/audit/box.js +11 -0
  46. data/app/src/components/audit/constants.js +7 -0
  47. data/app/src/components/audit/entry.js +107 -0
  48. data/app/src/components/audit/fields_mixin.js +13 -0
  49. data/app/src/components/audit/humanize_event.js +216 -0
  50. data/app/src/components/audit/table.js +100 -0
  51. data/app/src/components/audit/table_header.js +38 -0
  52. data/app/src/components/audit/timestamp.js +30 -0
  53. data/app/src/components/chart/chart.js +539 -0
  54. data/app/src/components/chart/chart_helper_mixin.js +79 -0
  55. data/app/src/components/custom/list.js +5 -0
  56. data/app/src/components/custom/view.js +71 -0
  57. data/app/src/components/dashboard/activity.js +113 -0
  58. data/app/src/components/dashboard/dashboard.js +47 -0
  59. data/app/src/components/flash/flash.js +17 -0
  60. data/app/src/components/generic/__tests__/time-test.js +43 -0
  61. data/app/src/components/generic/annotations.js +41 -0
  62. data/app/src/components/generic/breadcrumbs.js +59 -0
  63. data/app/src/components/generic/foldable_audit_section.js +252 -0
  64. data/app/src/components/generic/list.js +144 -0
  65. data/app/src/components/generic/list_factory.js +42 -0
  66. data/app/src/components/generic/resource_link.js +65 -0
  67. data/app/src/components/generic/role_link.js +65 -0
  68. data/app/src/components/generic/tab_mixin.js +148 -0
  69. data/app/src/components/generic/time.js +34 -0
  70. data/app/src/components/group/list.js +5 -0
  71. data/app/src/components/group/view.js +137 -0
  72. data/app/src/components/host/activity.js +93 -0
  73. data/app/src/components/host/details.js +30 -0
  74. data/app/src/components/host/host_link.js +20 -0
  75. data/app/src/components/host/list.js +5 -0
  76. data/app/src/components/host/view.js +113 -0
  77. data/app/src/components/layer/list.js +5 -0
  78. data/app/src/components/layer/view.js +180 -0
  79. data/app/src/components/navbar/__tests__/navbar-test.js +21 -0
  80. data/app/src/components/navbar/nav_search_form.js +41 -0
  81. data/app/src/components/navbar/navbar.js +71 -0
  82. data/app/src/components/owned_resources/owned_resources.js +86 -0
  83. data/app/src/components/owned_resources/owned_resources_box.js +106 -0
  84. data/app/src/components/permissions/permissions.js +143 -0
  85. data/app/src/components/permissions/permissions_table.js +104 -0
  86. data/app/src/components/policy/list.js +5 -0
  87. data/app/src/components/policy/view.js +98 -0
  88. data/app/src/components/refresh/refresh.js +30 -0
  89. data/app/src/components/refresh/refresh.less +15 -0
  90. data/app/src/components/search/group.js +45 -0
  91. data/app/src/components/search/group_heading.js +50 -0
  92. data/app/src/components/search/group_title.js +38 -0
  93. data/app/src/components/search/result_item.js +57 -0
  94. data/app/src/components/search/search.js +103 -0
  95. data/app/src/components/user/activity.js +92 -0
  96. data/app/src/components/user/details.js +30 -0
  97. data/app/src/components/user/list.js +5 -0
  98. data/app/src/components/user/pubkeys.js +116 -0
  99. data/app/src/components/user/pubkeys.less +56 -0
  100. data/app/src/components/user/view.js +123 -0
  101. data/app/src/components/variable/activity.js +83 -0
  102. data/app/src/components/variable/details.js +48 -0
  103. data/app/src/components/variable/fetchers.js +83 -0
  104. data/app/src/components/variable/list.js +5 -0
  105. data/app/src/components/variable/updaters.js +83 -0
  106. data/app/src/components/variable/view.js +105 -0
  107. data/app/src/constants.js +35 -0
  108. data/app/src/images/conjur-logo.svg +26 -0
  109. data/app/src/images/icon-client-pc.svg +12 -0
  110. data/app/src/images/icon-environment.png +0 -0
  111. data/app/src/images/icon-person.svg +12 -0
  112. data/app/src/images/icon-policy.png +0 -0
  113. data/app/src/images/icon-resource.png +0 -0
  114. data/app/src/images/icon-service-dots.svg +13 -0
  115. data/app/src/images/icon-variable.png +0 -0
  116. data/app/src/pages/index.html +26 -0
  117. data/app/src/routes.js +57 -0
  118. data/app/src/stores/app_store.js +29 -0
  119. data/app/src/stores/audit_store.js +77 -0
  120. data/app/src/stores/group_store.js +105 -0
  121. data/app/src/stores/host_store.js +98 -0
  122. data/app/src/stores/layer_store.js +115 -0
  123. data/app/src/stores/policy_store.js +89 -0
  124. data/app/src/stores/resources_store.js +118 -0
  125. data/app/src/stores/route_store.js +24 -0
  126. data/app/src/stores/search_store.js +73 -0
  127. data/app/src/stores/user_store.js +111 -0
  128. data/app/src/stores/variable_store.js +94 -0
  129. data/app/src/styles/bootstrap.less +56 -0
  130. data/app/src/styles/styles.less +634 -0
  131. data/app/src/utils.js +43 -0
  132. data/app/src/vendor/pace.js +2 -0
  133. data/conjur-asset-ui.gemspec +36 -0
  134. data/features/navigation_bar.feature +31 -0
  135. data/features/step_definitions/custom_step.rb +32 -0
  136. data/features/support/env.rb +38 -0
  137. data/features/support/hooks.rb +30 -0
  138. data/features/support/world.rb +17 -0
  139. data/lib/conjur-asset-ui-version.rb +7 -0
  140. data/lib/conjur-asset-ui.rb +7 -0
  141. data/lib/conjur/command/ui.rb +54 -0
  142. data/lib/conjur/webserver/api_proxy.rb +94 -0
  143. data/lib/conjur/webserver/authorize.rb +28 -0
  144. data/lib/conjur/webserver/conjur_info.rb +33 -0
  145. data/lib/conjur/webserver/home.rb +42 -0
  146. data/lib/conjur/webserver/login.rb +57 -0
  147. data/lib/conjur/webserver/renderer.rb +34 -0
  148. data/lib/conjur/webserver/server.rb +130 -0
  149. data/public/js/views/roleGraph.js +91 -0
  150. metadata +373 -0
@@ -0,0 +1,56 @@
1
+ // =============================================================================
2
+ // Bootstrap CSS + Custom styles and overrides
3
+ // =============================================================================
4
+
5
+ // Core variables and mixins
6
+ @import "../../node_modules/bootstrap/less/variables.less";
7
+ @import "../../node_modules/bootstrap/less/mixins.less";
8
+
9
+ // Reset and dependencies
10
+ @import "../../node_modules/bootstrap/less/normalize.less";
11
+ @import "../../node_modules/bootstrap/less/print.less";
12
+ @import "../../node_modules/bootstrap/less/glyphicons.less";
13
+
14
+ // Core CSS
15
+ @import "../../node_modules/bootstrap/less/scaffolding.less";
16
+ @import "../../node_modules/bootstrap/less/type.less";
17
+ @import "../../node_modules/bootstrap/less/code.less";
18
+ @import "../../node_modules/bootstrap/less/grid.less";
19
+ @import "../../node_modules/bootstrap/less/tables.less";
20
+ @import "../../node_modules/bootstrap/less/forms.less";
21
+ @import "../../node_modules/bootstrap/less/buttons.less";
22
+
23
+ // Components
24
+ @import "../../node_modules/bootstrap/less/component-animations.less";
25
+ @import "../../node_modules/bootstrap/less/dropdowns.less";
26
+ @import "../../node_modules/bootstrap/less/button-groups.less";
27
+ @import "../../node_modules/bootstrap/less/input-groups.less";
28
+ @import "../../node_modules/bootstrap/less/navs.less";
29
+ @import "../../node_modules/bootstrap/less/navbar.less";
30
+ @import "../../node_modules/bootstrap/less/breadcrumbs.less";
31
+ @import "../../node_modules/bootstrap/less/pagination.less";
32
+ @import "../../node_modules/bootstrap/less/pager.less";
33
+ @import "../../node_modules/bootstrap/less/labels.less";
34
+ @import "../../node_modules/bootstrap/less/badges.less";
35
+ @import "../../node_modules/bootstrap/less/jumbotron.less";
36
+ @import "../../node_modules/bootstrap/less/thumbnails.less";
37
+ @import "../../node_modules/bootstrap/less/alerts.less";
38
+ @import "../../node_modules/bootstrap/less/progress-bars.less";
39
+ @import "../../node_modules/bootstrap/less/media.less";
40
+ @import "../../node_modules/bootstrap/less/list-group.less";
41
+ @import "../../node_modules/bootstrap/less/panels.less";
42
+ @import "../../node_modules/bootstrap/less/responsive-embed.less";
43
+ @import "../../node_modules/bootstrap/less/wells.less";
44
+ @import "../../node_modules/bootstrap/less/close.less";
45
+
46
+ // Components w/ JavaScript
47
+ @import "../../node_modules/bootstrap/less/modals.less";
48
+ @import "../../node_modules/bootstrap/less/tooltip.less";
49
+ @import "../../node_modules/bootstrap/less/popovers.less";
50
+ @import "../../node_modules/bootstrap/less/carousel.less";
51
+
52
+ // Utility classes
53
+ @import "../../node_modules/bootstrap/less/utilities.less";
54
+ @import "../../node_modules/bootstrap/less/responsive-utilities.less";
55
+
56
+ @import "styles.less";
@@ -0,0 +1,634 @@
1
+ h1,
2
+ h2,
3
+ h3,
4
+ h4,
5
+ h5,
6
+ h6,
7
+ .h1,
8
+ .h2,
9
+ .h3,
10
+ .h4,
11
+ .h5,
12
+ .h6 {
13
+ font-family: Lato, sans-serif;
14
+ }
15
+
16
+ .timestamp {
17
+ white-space: nowrap;
18
+ }
19
+
20
+ .auditBox {
21
+ max-height: 350px;
22
+ overflow-y: scroll;
23
+ time {
24
+ float: right;
25
+ margin-right: 0.5em;
26
+ }
27
+ }
28
+
29
+
30
+ .navbar-brand {
31
+ background-image: url('/images/conjur-logo.svg');
32
+ background-size: cover;
33
+ background-repeat: no-repeat;
34
+ width: 137px;
35
+ margin-left: -9px !important;
36
+ text-indent: 100%;
37
+ white-space: nowrap;
38
+ overflow: hidden;
39
+ }
40
+
41
+ #bottom {
42
+ margin-top: 25px;
43
+ }
44
+
45
+ thead {
46
+ border-bottom: #999999 thin solid;
47
+ }
48
+
49
+ th {
50
+ text-transform: capitalize;
51
+ }
52
+
53
+ th, td {
54
+ padding: 3pt 8pt;
55
+ }
56
+
57
+ caption {
58
+ color: #6d6d6d;
59
+ font-size: 1.6em;
60
+ margin-bottom: 0.6em;
61
+ letter-spacing: 0.2em;
62
+ text-transform: lowercase;
63
+ }
64
+
65
+ h2 {
66
+ font-size: 26px;
67
+ }
68
+
69
+ .no-icon {
70
+ background-image: none !important;
71
+ background-size: 0 !important;
72
+ background-position: default !important;
73
+ }
74
+
75
+ .group-icon(@size, @x-offset: 0.2em, @y-offset: 0.07em) {
76
+ background-image: url('/images/icon-person.svg'), url('/images/icon-person.svg');
77
+ background-repeat: no-repeat;
78
+ background-size: @size;
79
+ background-position: (-0.2 * @size + @x-offset) (-0.1 * @size + @y-offset), (0.2 * @size + @x-offset) (0.1 * @size + @y-offset);
80
+ }
81
+
82
+ .layer-icon(@size, @x-offset: 0.2em, @y-offset: 0.07em) {
83
+ background-image: url('/images/icon-client-pc.svg'), url('/images/icon-client-pc.svg');
84
+ background-repeat: no-repeat;
85
+ background-size: @size;
86
+ background-position: (-0.2 * @size + @x-offset) (-0.1 * @size + @y-offset), (0.2 * @size + @x-offset) (0.1 * @size + @y-offset);
87
+ }
88
+
89
+ .environment-icon(@size, @x-offset: 0.2em, @y-offset: 0.07em) {
90
+ background-image: url('/images/icon-key.svg'), url('/images/icon-key.svg');
91
+ background-repeat: no-repeat;
92
+ background-size: @size;
93
+ background-position: (-0.2 * @size + @x-offset) (-0.1 * @size + @y-offset), (0.2 * @size + @x-offset) (0.1 * @size + @y-offset);
94
+ }
95
+
96
+ .group h2, .groupsList tbody tr td.id {
97
+ .group-icon(2em);
98
+ padding-left: 2.5em;
99
+ }
100
+
101
+ .group h2 {
102
+ padding: 0.5em 2.5em;
103
+ }
104
+
105
+ dd {
106
+ /* top left bottom (I always forget that) */
107
+ // margin: 0.3em 1.4em 1em;
108
+ }
109
+
110
+ .group {
111
+ ul {
112
+ padding-left: 0em;
113
+ }
114
+
115
+ li {
116
+ display: block;
117
+ }
118
+ }
119
+
120
+ dl.propertyList {
121
+ dt {
122
+ display: inline;
123
+ margin-left: 6px;
124
+ font-size: 14px;
125
+ }
126
+
127
+ dd {
128
+ display: inline;
129
+ margin-left: 6px;
130
+ font-size: 14px;
131
+ }
132
+ }
133
+
134
+ .namespaceList {
135
+ float: right;
136
+
137
+ h2, div {
138
+ font-size: 1em;
139
+ display: inline;
140
+ margin: 0.5em;
141
+ color: #2d2d2d;
142
+ }
143
+
144
+ select {
145
+ background: white;
146
+ border: #ddd solid thin;
147
+ border-radius: 0.5em;
148
+ color: #2d2d2d;
149
+ }
150
+ }
151
+
152
+ .role-link-padding {
153
+ padding-left: 1.7em;
154
+ }
155
+
156
+ .asset-link-icon(@icon, @size: 1.6em) {
157
+ .role-link-padding;
158
+
159
+ background-image: url(@icon);
160
+ background-size: @size;
161
+ background-repeat: no-repeat;
162
+ }
163
+
164
+ .variable.resource-link {
165
+ .asset-link-icon('/images/icon-variable.png', 0.8em);
166
+ }
167
+
168
+ .environment.resource-link {
169
+ .asset-link-icon('/images/icon-environment.png', 1.1em);
170
+ }
171
+
172
+ .environment-variables.resource-link {
173
+ .asset-link-icon('/images/icon-environment.png', 1.1em);
174
+ }
175
+
176
+ .host.role-link, .host.resource-link {
177
+ .asset-link-icon('/images/icon-client-pc.svg');
178
+ background-position-y: -0.1em;
179
+ }
180
+
181
+ .policy.role-link, .policy.resource-link {
182
+ .asset-link-icon('/images/icon-policy.png', 1.4em);
183
+ background-position-y: -0.1em;
184
+ }
185
+
186
+ .abstract.resource-link {
187
+ .asset-link-icon('/images/icon-resource.png',1.4em);
188
+ background-position-y: -0.1em;
189
+ }
190
+
191
+ .user.role-link, .user.resource-link {
192
+ .asset-link-icon('/images/icon-person.svg');
193
+ background-position-y: -0.2em;
194
+ }
195
+
196
+ .group.role-link, .group.resource-link {
197
+ .role-link-padding;
198
+ .group-icon(1.2em);
199
+ }
200
+
201
+ .layer.role-link, .layer.resource-link {
202
+ .role-link-padding;
203
+ .layer-icon(1.2em);
204
+ }
205
+
206
+ .auditBox {
207
+ th.when {
208
+ width: 129px;
209
+ }
210
+ }
211
+
212
+ .search-button {
213
+ margin-left: 0.5em;
214
+ }
215
+
216
+
217
+ .dashboard {
218
+ #dashboard-search {
219
+ margin: 4em auto;
220
+ }
221
+
222
+ .owned ul {
223
+ margin: 0;
224
+ padding: 0;
225
+ }
226
+
227
+ .owned .hide-all { display: none; }
228
+
229
+ .owned li {
230
+ list-style-type: none;
231
+ padding: 3pt 8pt;
232
+ }
233
+ }
234
+
235
+ .dashboard form.search, #searchResults form.search {
236
+ margin: 0px auto;
237
+ width: 300px;
238
+ }
239
+
240
+ .search-group {
241
+ .panel-heading {
242
+ a:after {
243
+ font-family: 'Glyphicons Halflings';
244
+ content: "\e114";
245
+ float: right;
246
+ color: grey;
247
+ }
248
+
249
+ a.collapsed:after {
250
+ content: "\e080";
251
+ }
252
+ }
253
+ }
254
+
255
+ .search-results {
256
+ .item {
257
+ h4 {
258
+ margin-bottom: 4px;
259
+ }
260
+
261
+ .details {
262
+ font-size: 12px;
263
+ }
264
+
265
+ .comment {
266
+ font-size: 14px;
267
+ }
268
+ }
269
+ }
270
+
271
+ .searchResults .toc-item {
272
+ display: inline-block;
273
+ margin: 5px;
274
+ }
275
+
276
+ .searchResults h3 {
277
+ margin: 5px 0 0 4px;
278
+ }
279
+
280
+ .list-group-item-noborder {
281
+ border: 0;
282
+ }
283
+
284
+ // Conjur color palette.
285
+ //
286
+ // Styleguide 2.0.
287
+ @turquoise: #00b49d;
288
+ @light-blue: #99b8c7;
289
+ @dark-blue: #49585f;
290
+
291
+ // Highlight color: a bright color to bring attention to changes and interaction possibilities.
292
+ //
293
+ // Styleguide 2.1.
294
+ @highlight-color: @turquoise;
295
+
296
+ // Content color: a basic content color.
297
+ //
298
+ // Styleguide 2.2.
299
+ @content-color: darken(@light-blue, 80%);
300
+
301
+ // Background color: a dark color to serve as ambient background.
302
+ //
303
+ // Styleguide 2.3.
304
+ @background-color: lighten(@dark-blue, 90%);
305
+
306
+ // Basic body settings.
307
+ //
308
+ // Styleguide 1.0.
309
+ body {
310
+ font-family: Lato, sans-serif;
311
+ background: @background-color;
312
+ color: @content-color;
313
+ font-size: 12pt;
314
+
315
+ a {
316
+ color: darken(@highlight-color, 5%);
317
+
318
+ &:hover {
319
+ color: darken(@highlight-color, 10%);
320
+ }
321
+ }
322
+
323
+ h2 {
324
+ letter-spacing: 0.1em;
325
+ margin-top: 0;
326
+ font-weight: 300;
327
+ }
328
+
329
+ h3 {
330
+ margin: 1em 0 1em;
331
+ letter-spacing: 0.01em;
332
+ font-weight: 300;
333
+ }
334
+ }
335
+
336
+ dl {
337
+ dt {
338
+ font-weight: 300;
339
+ }
340
+
341
+ dd {
342
+ margin: 0 0 5px 0;
343
+ }
344
+ }
345
+
346
+ .dl-horizontal {
347
+ dt {
348
+ width: 100px !important;
349
+ }
350
+
351
+ dd {
352
+ margin-left: 120px !important;
353
+ }
354
+ }
355
+
356
+ // Section describing permissions held by a particular role.
357
+ //
358
+ // .loading - Indicates that the section has not loaded yet.
359
+ //
360
+ // Styleguide 1.1.
361
+ section.permissions {
362
+ }
363
+
364
+ // The topmost content container.
365
+ //
366
+ // Styleguide 1.2.
367
+ #content {
368
+ margin: 0 3em;
369
+ min-height: 500px;
370
+ }
371
+
372
+ // Search results.
373
+ //
374
+ // Styleguide 1.3.
375
+ .search-results {
376
+ color: darken(@content-color, 30%);
377
+
378
+ a {
379
+ color: darken(@highlight-color, 50%);
380
+ }
381
+ }
382
+
383
+ // Pacer: a loading progress and activity indicator.
384
+ //
385
+ // @pace-color - Color of the progress bar.
386
+ //
387
+ // Styleguide 3.
388
+ @pace-color: @highlight-color;
389
+
390
+ .pace {
391
+ -webkit-pointer-events: none;
392
+ pointer-events: none;
393
+ -webkit-user-select: none;
394
+ -moz-user-select: none;
395
+ user-select: none;
396
+ }
397
+
398
+ .pace-inactive {
399
+ display: none;
400
+ }
401
+
402
+ .pace .pace-progress {
403
+ background: @pace-color;
404
+ position: fixed;
405
+ z-index: 2000;
406
+ top: 0;
407
+ right: 100%;
408
+ width: 100%;
409
+ height: 2px;
410
+ }
411
+
412
+ .pace .pace-progress-inner {
413
+ display: block;
414
+ position: absolute;
415
+ right: 0px;
416
+ width: 100px;
417
+ height: 100%;
418
+ box-shadow: 0 0 10px @pace-color, 0 0 5px @pace-color;
419
+ opacity: 1.0;
420
+ -webkit-transform: rotate(3deg) translate(0px, -4px);
421
+ -moz-transform: rotate(3deg) translate(0px, -4px);
422
+ -ms-transform: rotate(3deg) translate(0px, -4px);
423
+ -o-transform: rotate(3deg) translate(0px, -4px);
424
+ transform: rotate(3deg) translate(0px, -4px);
425
+ }
426
+
427
+ .pace .pace-activity {
428
+ background-image: url('/images/icon-service-dots.svg');
429
+ background-size: contain;
430
+ background-repeat: no-repeat;
431
+ background-position: right center;
432
+ display: block;
433
+ position: fixed;
434
+ z-index: 2000;
435
+ top: 5px;
436
+ right: 5px;
437
+ width: 70px;
438
+ height: 70px;
439
+ -webkit-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
440
+ -moz-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
441
+ -ms-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
442
+ -o-animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
443
+ animation: pace-pulse 1s alternate infinite none cubic-bezier(1, 0, 0.73, 1);
444
+ }
445
+
446
+ @-webkit-keyframes pace-pulse {
447
+ 0% { -webkit-transform: scale(1); }
448
+ 100% { -webkit-transform: scale(0.8); }
449
+ }
450
+
451
+ @keyframes pace-pulse {
452
+ 0% { transform: scale(1); }
453
+ 100% { transform: scale(0.8); }
454
+ }
455
+
456
+ .header {
457
+ font-size: 12px;
458
+ padding-left: 10px;
459
+ }
460
+
461
+ .tab-pane {
462
+ padding-top: 5px;
463
+ }
464
+
465
+ .b-dashboard-activity__graph {
466
+ height: 300px;
467
+ }
468
+
469
+ /* ---------------------------------- */
470
+ /* -Variables------------------------ */
471
+
472
+ .b-breadcrumb {
473
+
474
+ }
475
+
476
+ .b-breadcrumb__extra {
477
+ color: gray;
478
+ font-size: 12px;
479
+ padding-left: 10px;
480
+ }
481
+
482
+ .b-breadcrumb__extra:before {
483
+ content: "" !important;
484
+ }
485
+
486
+ .b-breadcrumbs .breadcrumb>li+li:before {
487
+ content: "\2794";
488
+ }
489
+
490
+ .b-breadcrumbs {
491
+
492
+ }
493
+
494
+ .b-variable-activity {
495
+
496
+ }
497
+
498
+ .b-variable-activity__graph {
499
+ height: 300px;
500
+ }
501
+
502
+ .b-variable-updaters {
503
+ border-right: 1px solid #eee;
504
+ }
505
+
506
+ .b-variable-fetchers {
507
+
508
+ }
509
+
510
+ .b-variable-details {
511
+ border-right: 1px solid #eee;
512
+ }
513
+
514
+ /* * * * */
515
+
516
+ .b-audit-section {
517
+
518
+ }
519
+
520
+ .b-audit-section__list {
521
+
522
+ }
523
+
524
+ .b-audit-section__item {
525
+
526
+ }
527
+
528
+ .b-audit-section__toggle {
529
+
530
+ }
531
+
532
+ /* * * * */
533
+
534
+ .revealer {
535
+ cursor: pointer;
536
+ }
537
+
538
+ .b-user-activity {
539
+
540
+ }
541
+
542
+ .b-user-activity__graph {
543
+ height: 300px;
544
+ }
545
+
546
+ .b-host-activity {
547
+
548
+ }
549
+
550
+ .b-host-activity__graph {
551
+ height: 300px;
552
+ }
553
+
554
+
555
+ /* ------------------------------------------------ */
556
+ /* Chart */
557
+
558
+ .b-chart {
559
+ height: 100%;
560
+ }
561
+
562
+ /* Line Chart */
563
+
564
+ .d3-line-chart {
565
+ font: 10px sans-serif;
566
+ }
567
+
568
+ .d3-line-chart__inner {
569
+
570
+ }
571
+
572
+ /* Axises */
573
+
574
+ .d3-axis {
575
+
576
+ }
577
+
578
+ .d3-axis__x line,
579
+ .d3-axis__x path {
580
+ fill: none;
581
+ stroke: #000;
582
+ shape-rendering: crispEdges;
583
+ }
584
+
585
+ .d3-axis__y line,
586
+ .d3-axis__y path {
587
+ fill: none;
588
+ stroke: #000;
589
+ shape-rendering: crispEdges;
590
+ }
591
+
592
+ /* Legend */
593
+
594
+ .d3-legend {
595
+
596
+ }
597
+
598
+ .d3-legend__item {
599
+
600
+ }
601
+
602
+ .d3-legend__item:hover {
603
+ cursor: pointer;
604
+ }
605
+
606
+ /* Graph */
607
+
608
+ .d3-graph {
609
+
610
+ }
611
+
612
+ .d3-graph__line {
613
+
614
+ }
615
+
616
+ .d3-graph__line path {
617
+ fill: none;
618
+ stroke: steelblue;
619
+ stroke-width: 1.5px;
620
+ }
621
+
622
+ .d3-graph__focus {
623
+
624
+ }
625
+
626
+ .d3-graph__focus circle {
627
+ fill: none;
628
+ stroke: steelblue;
629
+ }
630
+
631
+ .d3-graph__overlay {
632
+ fill: none;
633
+ pointer-events: all;
634
+ }