von-dashboard 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -7,7 +7,6 @@ Gemfile.lock
7
7
  InstalledFiles
8
8
  _yardoc
9
9
  coverage
10
- doc/
11
10
  lib/bundler/man
12
11
  pkg
13
12
  rdoc
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Von::Dashboard
2
2
 
3
- TODO: Write a gem description
3
+ Dashboard interface for Von https://github.com/blahed/von
4
+
5
+ [![screenshot](https://raw.github.com/bcaccinolo/von-dashboard/master/doc/screenshot.png)](#demo)
6
+
4
7
 
5
8
  ## Installation
6
9
 
@@ -18,7 +21,16 @@ Or install it yourself as:
18
21
 
19
22
  ## Usage
20
23
 
21
- TODO: Write usage instructions here
24
+ Add this rack application to your Rails routes:
25
+
26
+ ```ruby
27
+ mount Von::Dashboard::Web, :at => "von"
28
+ ```
29
+
30
+ You can now reach it from `HOSTNAME/von`.
31
+
32
+
33
+
22
34
 
23
35
  ## Contributing
24
36
 
Binary file
@@ -0,0 +1,48 @@
1
+ html, body, div, span, applet, object, iframe,
2
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3
+ a, abbr, acronym, address, big, cite, code,
4
+ del, dfn, em, font, img, ins, kbd, q, s, samp,
5
+ small, strike, strong, sub, sup, tt, var,
6
+ dl, dt, dd, ul, li,
7
+ form, label, legend,
8
+ table, caption, tbody, tfoot, thead, tr, th, td {
9
+ margin: 0;
10
+ padding: 0;
11
+ border: 0;
12
+ outline: 0;
13
+ font-weight: inherit;
14
+ font-style: normal;
15
+ font-size: 100%;
16
+ font-family: inherit;
17
+ }
18
+
19
+ :focus {
20
+ outline: 0;
21
+ }
22
+
23
+ body {
24
+ line-height: 1;
25
+ }
26
+
27
+ ul {
28
+ list-style: none;
29
+ }
30
+
31
+ table {
32
+ border-collapse: collapse;
33
+ border-spacing: 0;
34
+ }
35
+
36
+ caption, th, td {
37
+ text-align: left;
38
+ font-weight: normal;
39
+ }
40
+
41
+ blockquote:before, blockquote:after,
42
+ q:before, q:after {
43
+ content: "";
44
+ }
45
+
46
+ blockquote, q {
47
+ quotes: "" "";
48
+ }
@@ -0,0 +1,324 @@
1
+ html {
2
+ background: #efefef;
3
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
4
+ font-size: 13px;
5
+ }
6
+
7
+ body {
8
+ padding: 0 10px;
9
+ margin: 10px auto 0;
10
+ max-width:800px;
11
+ }
12
+
13
+ .header {
14
+ background: #ededed;
15
+ background: -webkit-gradient(linear, left top, left bottom,
16
+ color-stop(0%,#576a76),
17
+ color-stop(100%,#4d5256));
18
+ background: -moz-linear-gradient(top, #576076 0%, #414e58 100%);
19
+ background: -webkit-linear-gradient(top, #576a76 0%, #414e58 100%);
20
+ background: -o-linear-gradient(top, #576a76 0%, #414e58 100%);
21
+ background: -ms-linear-gradient(top, #576a76 0%, #414e58 100%);
22
+ background: linear-gradient(top, #576a76 0%, #414e58 100%);
23
+ border-bottom: 1px solid #fff;
24
+ -moz-border-radius-topleft: 5px;
25
+ -webkit-border-top-left-radius: 5px;
26
+ border-top-left-radius: 5px;
27
+ -moz-border-radius-topright: 5px;
28
+ -webkit-border-top-right-radius:5px;
29
+ border-top-right-radius: 5px;
30
+
31
+ overflow:hidden;
32
+ padding: 10px 5%;
33
+ text-shadow:0 1px 0 #000;
34
+ }
35
+
36
+ .header h1 {
37
+ color: #eee;
38
+ float:left;
39
+ font-size:1.2em;
40
+ font-weight:normal;
41
+ margin:2px 30px 0 0;
42
+ }
43
+
44
+ .header ul li {
45
+ display: inline;
46
+ }
47
+
48
+ .header ul li a {
49
+ color: #eee;
50
+ text-decoration: none;
51
+ margin-right: 10px;
52
+ display: inline-block;
53
+ padding: 4px 8px;
54
+ -moz-border-radius: 10px;
55
+ -webkit-border-radius:10px;
56
+ border-radius: 10px;
57
+
58
+ }
59
+
60
+ .header ul li a:hover {
61
+ background: rgba(255,255,255,0.1);
62
+ }
63
+
64
+ .header ul li a:active {
65
+ -moz-box-shadow: inset 0 1px 0 rgba(0,0,0,0.2);
66
+ -webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2);
67
+ box-shadow: inset 0 1px 0 rgba(0,0,0,0.2);
68
+ }
69
+
70
+ .header ul li.current a {
71
+ background: rgba(255,255,255,0.1);
72
+ -moz-box-shadow: inset 0 1px 0 rgba(0,0,0,0.2);
73
+ -webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2);
74
+ box-shadow: inset 0 1px 0 rgba(0,0,0,0.2);
75
+ color: #fff;
76
+ }
77
+
78
+ .header p.environment {
79
+ clear: both;
80
+ padding: 10px 0 0 0;
81
+ color: #BBB;
82
+ font-style: italic;
83
+ float: right;
84
+ }
85
+
86
+ #main {
87
+ padding: 10px 4%;
88
+ background: #f9f9f9;
89
+ border:1px solid #ccc;
90
+ border-top:none;
91
+ -moz-box-shadow: 0 3px 10px rgba(0,0,0,0.2);
92
+ -webkit-box-shadow:0 3px 10px rgba(0,0,0,0.2);
93
+ box-shadow: 0 3px 10px rgba(0,0,0,0.2);
94
+ overflow: hidden;
95
+ }
96
+
97
+ #main .logo {
98
+ float: right;
99
+ margin: 10px;
100
+ }
101
+
102
+ #main span.hl {
103
+ background: #efefef;
104
+ padding: 2px;
105
+ }
106
+
107
+ #main h1 {
108
+ margin: 10px 0;
109
+ font-size: 190%;
110
+ font-weight: bold;
111
+ color: #0080FF;
112
+ }
113
+
114
+ #main table {
115
+ width: 100%;
116
+ margin:0 0 10px;
117
+ }
118
+
119
+ #main table tr td, #main table tr th {
120
+ border-bottom: 1px solid #ccc;
121
+ padding: 6px;
122
+ }
123
+
124
+ #main table tr th {
125
+ background: #efefef;
126
+ color: #888;
127
+ font-size: 80%;
128
+ text-transform:uppercase;
129
+ }
130
+
131
+ #main table tr td.no-data {
132
+ text-align: center;
133
+ padding: 40px 0;
134
+ color: #999;
135
+ font-style: italic;
136
+ font-size: 130%;
137
+ }
138
+
139
+ #main a {
140
+ color: #111;
141
+ }
142
+
143
+ #main p {
144
+ margin: 5px 0;
145
+ }
146
+
147
+ #main p.intro {
148
+ margin-bottom: 15px;
149
+ font-size: 85%;
150
+ color: #999;
151
+ margin-top: 0;
152
+ line-height: 1.3;
153
+ }
154
+
155
+ #main h1.wi {
156
+ margin-bottom: 5px;
157
+ }
158
+
159
+ #main p.sub {
160
+ font-size: 95%;
161
+ color: #999;
162
+ }
163
+
164
+ .experiment {
165
+ background:#fff;
166
+ border: 1px solid #eee;
167
+ border-bottom:none;
168
+ margin:10px 0;
169
+ }
170
+
171
+ .experiment_with_goal {
172
+ margin: -32px 0 30px 0;
173
+ }
174
+
175
+ .experiment .experiment-header {
176
+ background: #f4f4f4;
177
+ background: -webkit-gradient(linear, left top, left bottom,
178
+ color-stop(0%,#f4f4f4),
179
+ color-stop(100%,#e0e0e0));
180
+ background: -moz-linear-gradient (top, #f4f4f4 0%, #e0e0e0 100%);
181
+ background: -webkit-linear-gradient(top, #f4f4f4 0%, #e0e0e0 100%);
182
+ background: -o-linear-gradient (top, #f4f4f4 0%, #e0e0e0 100%);
183
+ background: -ms-linear-gradient (top, #f4f4f4 0%, #e0e0e0 100%);
184
+ background: linear-gradient (top, #f4f4f4 0%, #e0e0e0 100%);
185
+ border-top:1px solid #fff;
186
+ overflow:hidden;
187
+ padding:0 10px;
188
+ }
189
+
190
+ .experiment .experiment-period {
191
+ background: #f9f9f9;
192
+ overflow:hidden;
193
+ padding:0 10px;
194
+ border-left: 3px solid #E0E0E0;
195
+ border-top:1px solid #fff;
196
+ }
197
+
198
+ .experiment h2 {
199
+ color:#888;
200
+ margin: 12px 0 12px 0;
201
+ font-size: 1em;
202
+ font-weight:bold;
203
+ float:left;
204
+ text-shadow:0 1px 0 rgba(255,255,255,0.8);
205
+ }
206
+
207
+ .experiment h2 .goal {
208
+ font-style: italic;
209
+ }
210
+
211
+ .experiment h2 .version {
212
+ font-style:italic;
213
+ font-size:0.8em;
214
+ color:#bbb;
215
+ font-weight:normal;
216
+ }
217
+
218
+ .experiment table em{
219
+ font-style:italic;
220
+ font-size:0.9em;
221
+ color:#bbb;
222
+ }
223
+
224
+ .experiment table .totals td {
225
+ background: #eee;
226
+ font-weight: bold;
227
+ }
228
+
229
+ #footer {
230
+ padding: 10px 5%;
231
+ color: #999;
232
+ font-size: 85%;
233
+ line-height: 1.5;
234
+ padding-top: 10px;
235
+ }
236
+
237
+ #footer p a {
238
+ color: #999;
239
+ }
240
+
241
+ .inline-controls {
242
+ float:right;
243
+ }
244
+
245
+ .inline-controls small {
246
+ color: #888;
247
+ font-size: 11px;
248
+ }
249
+
250
+ .inline-controls form {
251
+ display: inline-block;
252
+ font-size: 10px;
253
+ line-height: 38px;
254
+ }
255
+
256
+ .inline-controls input {
257
+ margin-left: 10px;
258
+ }
259
+
260
+ .worse, .better {
261
+ color: #773F3F;
262
+ font-size: 10px;
263
+ font-weight:bold;
264
+ }
265
+
266
+ .better {
267
+ color: #408C48;
268
+ }
269
+
270
+ a.button, button, input[type="submit"] {
271
+ padding: 4px 10px;
272
+ overflow: hidden;
273
+ background: #d8dae0;
274
+ -moz-box-shadow: 0 1px 0 rgba(0,0,0,0.5);
275
+ -webkit-box-shadow:0 1px 0 rgba(0,0,0,0.5);
276
+ box-shadow: 0 1px 0 rgba(0,0,0,0.5);
277
+ border:none;
278
+ -moz-border-radius: 30px;
279
+ -webkit-border-radius:30px;
280
+ border-radius: 30px;
281
+ color:#2e3035;
282
+ cursor: pointer;
283
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
284
+ text-decoration: none;
285
+ text-shadow:0 1px 0 rgba(255,255,255,0.8);
286
+ -moz-user-select: none;
287
+ -webkit-user-select:none;
288
+ user-select: none;
289
+ white-space: nowrap;
290
+ }
291
+ a.button:hover, button:hover, input[type="submit"]:hover,
292
+ a.button:focus, button:focus, input[type="submit"]:focus{
293
+ background:#bbbfc7;
294
+ }
295
+ a.button:active, button:active, input[type="submit"]:active{
296
+ -moz-box-shadow: inset 0 0 4px #484d57;
297
+ -webkit-box-shadow:inset 0 0 4px #484d57;
298
+ box-shadow: inset 0 0 4px #484d57;
299
+ position:relative;
300
+ top:1px;
301
+ }
302
+
303
+ a.button.red, button.red, input[type="submit"].red,
304
+ a.button.green, button.green, input[type="submit"].green {
305
+ color:#fff;
306
+ text-shadow:0 1px 0 rgba(0,0,0,0.4);
307
+ }
308
+
309
+ a.button.red, button.red, input[type="submit"].red {
310
+ background:#a56d6d;
311
+ }
312
+ a.button.red:hover, button.red:hover, input[type="submit"].red:hover,
313
+ a.button.red:focus, button.red:focus, input[type="submit"].red:focus {
314
+ background:#895C5C;
315
+ }
316
+ a.button.green, button.green, input[type="submit"].green {
317
+ background:#8daa92;
318
+ }
319
+ a.button.green:hover, button.green:hover, input[type="submit"].green:hover,
320
+ a.button.green:focus, button.green:focus, input[type="submit"].green:focus {
321
+ background:#768E7A;
322
+ }
323
+
324
+
@@ -1,5 +1,5 @@
1
1
  module Von
2
2
  module Dashboard
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -5,39 +5,49 @@
5
5
  %script{:type => "text/javascript", :src => "/von/js/jquery.js"}
6
6
  %script{:type => "text/javascript", :src => "/von/js/d3.v2.js" }
7
7
  %script{:type => "text/javascript", :src => "/von/js/rickshaw.js"}
8
+
9
+ %link{:href => "/von/css/reset.css", :rel => "stylesheet", :type => "text/css" }
10
+ %link{:href => "/von/css/style.css", :rel => "stylesheet", :type => "text/css" }
8
11
  %link{:href => "/von/css/rickshaw.css", :rel => "stylesheet", :type => "text/css" }
9
12
 
10
13
  %body
11
14
 
12
- %h1 Von Dashboard
15
+ .header
16
+ %h1 Von Dashboard
13
17
 
14
- - Von.config.currents.keys.each do |counter|
18
+ #main
15
19
 
16
- %h3= "Counter #{counter}"
20
+ - Von.config.currents.keys.each do |counter|
21
+ .experiment
22
+ .experiment-header
23
+ %h2= counter
17
24
 
18
- - Von.config.periods[counter].map(&:time_unit).each do |period|
25
+ - Von.config.periods[counter].map(&:time_unit).each do |period|
19
26
 
20
- %h3= "Period #{period}"
27
+ .experiment-period
28
+ %h2= "Per #{period}"
21
29
 
22
- - id = "chart_#{counter}_#{period}"
30
+ - id = "chart_#{counter}_#{period}"
23
31
 
24
- %div{id:id}
25
- :javascript
26
- $(document).ready(function() {
27
- var graph = new Rickshaw.Graph( {
28
- element: document.querySelector("##{id}"),
29
- width: 600,
30
- height: 200,
31
- series: [{
32
- color: 'steelblue',
33
- data: JSON.parse('#{Von.to_rickshaw(counter, period)}'),
34
- name: "#{period}"
35
- }]
36
- });
32
+ %div{id:id}
33
+ :javascript
34
+ $(document).ready(function() {
35
+ var graph = new Rickshaw.Graph( {
36
+ element: document.querySelector("##{id}"),
37
+ width: 600,
38
+ height: 200,
39
+ series: [{
40
+ color: 'steelblue',
41
+ data: JSON.parse('#{Von.to_rickshaw(counter, period)}'),
42
+ name: "#{period}"
43
+ }]
44
+ });
37
45
 
38
- new Rickshaw.Graph.Axis.Time( { graph: graph } );
39
- new Rickshaw.Graph.HoverDetail( { graph: graph } );
40
- graph.render();
46
+ new Rickshaw.Graph.Axis.Time( { graph: graph } );
47
+ new Rickshaw.Graph.HoverDetail( { graph: graph } );
48
+ graph.render();
41
49
 
42
- })
50
+ })
43
51
 
52
+ #footer
53
+ Powered by sinatra
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["benoit.caccinolo@gmail.com"]
11
11
  spec.description = "Von dashboard"
12
12
  spec.summary = "Von dashboard using Rickshaw"
13
- spec.homepage = ""
13
+ spec.homepage = "http://github.com/bcaccinolo/von-dashboard"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: von-dashboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-07 00:00:00.000000000 Z
12
+ date: 2013-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -103,8 +103,11 @@ files:
103
103
  - LICENSE.txt
104
104
  - README.md
105
105
  - Rakefile
106
+ - doc/screenshot.png
106
107
  - lib/von/dashboard.rb
108
+ - lib/von/dashboard/public/css/reset.css
107
109
  - lib/von/dashboard/public/css/rickshaw.css
110
+ - lib/von/dashboard/public/css/style.css
108
111
  - lib/von/dashboard/public/js/d3.js
109
112
  - lib/von/dashboard/public/js/d3.v2.js
110
113
  - lib/von/dashboard/public/js/jquery.js
@@ -113,7 +116,7 @@ files:
113
116
  - lib/von/dashboard/views/index.haml
114
117
  - lib/von/dashboard/web.rb
115
118
  - von-dashboard.gemspec
116
- homepage: ''
119
+ homepage: http://github.com/bcaccinolo/von-dashboard
117
120
  licenses:
118
121
  - MIT
119
122
  post_install_message:
@@ -128,7 +131,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
131
  version: '0'
129
132
  segments:
130
133
  - 0
131
- hash: -25013518142631303
134
+ hash: -3812906875981621539
132
135
  required_rubygems_version: !ruby/object:Gem::Requirement
133
136
  none: false
134
137
  requirements:
@@ -137,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
140
  version: '0'
138
141
  segments:
139
142
  - 0
140
- hash: -25013518142631303
143
+ hash: -3812906875981621539
141
144
  requirements: []
142
145
  rubyforge_project:
143
146
  rubygems_version: 1.8.25