bootstrap_widgets 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bootstrap_widgets/version.rb +1 -1
- data/lib/widgets/graph_widget.rb +6 -2
- data/lib/widgets/widget.rb +17 -1
- data/vendor/assets/javascripts/bootstrap_widgets.js.coffee +21 -9
- data/vendor/assets/stylesheets/bootstrap_widgets.css.scss +43 -17
- data/vendor/assets/stylesheets/morris.min.css +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6976493224d556fbe0cf68ed6c580f7a6fa9b9ab
|
4
|
+
data.tar.gz: d5c841209b7ad24d904f89e6b7bb40ca007744e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 510a54bd2d22f2f076e777776c2619eee127603ce5ddb9282b1c2423d70c5d3afa1483de857d5203f9cfeec3b7359bc48da10095f3ed55edd1eabacd543631a1
|
7
|
+
data.tar.gz: 3a6e87a837abc05ebacbc881a071822e6ce628fe54e94db5ee74f5c5fd53fb473f049fbdc783fe24fbc150716402b81418c22260726ca62c1d229d554f2b79e1
|
data/lib/widgets/graph_widget.rb
CHANGED
@@ -11,8 +11,12 @@ class GraphWidget < Widget
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.graph(data={}, title, graph, labels, opts)
|
14
|
-
|
15
|
-
|
14
|
+
json_data = json_data(data)
|
15
|
+
link_data = link_data(data)
|
16
|
+
extra_classes = link_data.size > 0 ? "clickable_graph" : ""
|
17
|
+
|
18
|
+
output = "<div id='#{graph}-#{title.parameterize}' class='graph #{extra_classes}'></div>"
|
19
|
+
output << "<script>#{graph}(#{json_data},#{labels},'#{title.parameterize}',#{opts.to_json}, #{link_data.to_json.html_safe})</script>"
|
16
20
|
output
|
17
21
|
end
|
18
22
|
|
data/lib/widgets/widget.rb
CHANGED
@@ -37,8 +37,24 @@ protected
|
|
37
37
|
|
38
38
|
def self.json_data(data={})
|
39
39
|
jsdata = []
|
40
|
-
data.each
|
40
|
+
data.each do |key, value|
|
41
|
+
if value.is_a? Hash
|
42
|
+
jsdata << { label: "#{key}", value: value[:data] }
|
43
|
+
else
|
44
|
+
jsdata << { label: "#{key}", value: value }
|
45
|
+
end
|
46
|
+
end
|
41
47
|
jsdata.to_json.html_safe
|
42
48
|
end
|
43
49
|
|
50
|
+
def self.link_data(data={})
|
51
|
+
jsdata = []
|
52
|
+
data.each do |key, value|
|
53
|
+
if value.is_a? Hash
|
54
|
+
jsdata << value[:link]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
jsdata.compact
|
58
|
+
end
|
59
|
+
|
44
60
|
end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
window.graphs = []
|
8
8
|
|
9
|
-
window.bar_graph = (json_data, labels, title, opts) ->
|
9
|
+
window.bar_graph = (json_data, labels, title, opts, links=[]) ->
|
10
10
|
options = $.extend({},opts,{
|
11
11
|
element: 'bar_graph-' + title,
|
12
12
|
data: json_data,
|
@@ -17,9 +17,13 @@ window.bar_graph = (json_data, labels, title, opts) ->
|
|
17
17
|
resize: true
|
18
18
|
})
|
19
19
|
graph = new Morris.Bar options
|
20
|
+
graph.links = links
|
21
|
+
graph.on "click", (data) ->
|
22
|
+
if graph.links[data]
|
23
|
+
window.location = graph.links[data]
|
20
24
|
window.graphs.push graph
|
21
25
|
|
22
|
-
window.line_graph = (json_data, labels, title, opts) ->
|
26
|
+
window.line_graph = (json_data, labels, title, opts, links=[]) ->
|
23
27
|
options = $.extend({},opts,{
|
24
28
|
element: 'line_graph-' + title,
|
25
29
|
parseTime: false,
|
@@ -30,9 +34,13 @@ window.line_graph = (json_data, labels, title, opts) ->
|
|
30
34
|
resize: true
|
31
35
|
})
|
32
36
|
graph = new Morris.Line options
|
37
|
+
graph.links = links
|
38
|
+
graph.on "click", (data) ->
|
39
|
+
if graph.links[data]
|
40
|
+
window.location = graph.links[data]
|
33
41
|
window.graphs.push graph
|
34
42
|
|
35
|
-
window.area_graph = (json_data, labels, title, opts) ->
|
43
|
+
window.area_graph = (json_data, labels, title, opts, links=[]) ->
|
36
44
|
options = $.extend({},opts,{
|
37
45
|
element: 'area_graph-' + title,
|
38
46
|
parseTime: false,
|
@@ -43,9 +51,12 @@ window.area_graph = (json_data, labels, title, opts) ->
|
|
43
51
|
resize: true
|
44
52
|
})
|
45
53
|
graph = new Morris.Area options
|
54
|
+
graph.on "click", (data) ->
|
55
|
+
if graph.links[data]
|
56
|
+
window.location = graph.links[data]
|
46
57
|
window.graphs.push graph
|
47
58
|
|
48
|
-
window.donut_graph = (json_data, labels, title, opts) ->
|
59
|
+
window.donut_graph = (json_data, labels, title, opts, links=[]) ->
|
49
60
|
options = $.extend({},opts,{
|
50
61
|
element: 'donut_graph-' + title,
|
51
62
|
parseTime: false,
|
@@ -53,6 +64,10 @@ window.donut_graph = (json_data, labels, title, opts) ->
|
|
53
64
|
resize: true
|
54
65
|
})
|
55
66
|
graph = new Morris.Donut options
|
67
|
+
graph.links = links
|
68
|
+
graph.on "click", (data) ->
|
69
|
+
if graph.links[data]
|
70
|
+
window.location = graph.links[data]
|
56
71
|
window.graphs.push graph
|
57
72
|
|
58
73
|
# ===== REDRAWING/RESIZING ====
|
@@ -71,12 +86,9 @@ window.redraw = (idx) ->
|
|
71
86
|
$(window).resize ->
|
72
87
|
if window.graphs.length > 0
|
73
88
|
$('.loading-view').show()
|
74
|
-
|
75
|
-
waitForFinalEvent (->
|
76
|
-
resize()
|
77
|
-
), 250, "bootstrap-widgets.resize.redrawing"
|
78
|
-
else
|
89
|
+
waitForFinalEvent (->
|
79
90
|
resize()
|
91
|
+
), 250, "bootstrap-widgets.resize.redrawing"
|
80
92
|
|
81
93
|
$(document).on "ready page:change", ->
|
82
94
|
if $('.masonry').length
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
//= require morris.min
|
2
|
+
|
3
|
+
$break-small-dpi: 2.0;
|
2
4
|
|
3
5
|
/**** LOADING ****/
|
4
6
|
.loading-view {
|
@@ -67,17 +69,23 @@ $break-small:1024px;
|
|
67
69
|
width: 40%;
|
68
70
|
float: left;
|
69
71
|
text-align: right;
|
70
|
-
@media screen and (
|
71
|
-
|
72
|
-
|
72
|
+
@media only screen and (min--moz-device-pixel-ratio: $break-small-dpi),
|
73
|
+
(-o-min-device-pixel-ratio: $break-small-dpi),
|
74
|
+
(-webkit-min-device-pixel-ratio: $break-small-dpi),
|
75
|
+
(min-device-pixel-ratio: $break-small-dpi) {
|
76
|
+
font-size: 13px;
|
77
|
+
}
|
73
78
|
}
|
74
79
|
.right-text {
|
75
80
|
width: 60%;
|
76
81
|
float: left;
|
77
82
|
text-align: center;
|
78
|
-
@media screen and (
|
79
|
-
|
80
|
-
|
83
|
+
@media only screen and (min--moz-device-pixel-ratio: $break-small-dpi),
|
84
|
+
(-o-min-device-pixel-ratio: $break-small-dpi),
|
85
|
+
(-webkit-min-device-pixel-ratio: $break-small-dpi),
|
86
|
+
(min-device-pixel-ratio: $break-small-dpi) {
|
87
|
+
font-size: 13px;
|
88
|
+
}
|
81
89
|
}
|
82
90
|
}
|
83
91
|
}
|
@@ -152,21 +160,27 @@ $break-small:1024px;
|
|
152
160
|
line-height: 31px;
|
153
161
|
margin-top: 20px;
|
154
162
|
margin-bottom: 10px;
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
163
|
+
@media only screen and (min--moz-device-pixel-ratio: $break-small-dpi),
|
164
|
+
(-o-min-device-pixel-ratio: $break-small-dpi),
|
165
|
+
(-webkit-min-device-pixel-ratio: $break-small-dpi),
|
166
|
+
(min-device-pixel-ratio: $break-small-dpi) {
|
167
|
+
line-height: 18px;
|
168
|
+
font-size: 20px;
|
169
|
+
float:right;
|
170
|
+
margin-top:-50px;
|
171
|
+
}
|
161
172
|
}
|
162
173
|
.desc {
|
163
174
|
font-size: 30px;
|
164
175
|
font-weight: 100;
|
165
176
|
color: rgba(255, 255, 255, 0.5);
|
166
|
-
@media screen and (
|
167
|
-
|
168
|
-
|
169
|
-
|
177
|
+
@media only screen and (min--moz-device-pixel-ratio: $break-small-dpi),
|
178
|
+
(-o-min-device-pixel-ratio: $break-small-dpi),
|
179
|
+
(-webkit-min-device-pixel-ratio: $break-small-dpi),
|
180
|
+
(min-device-pixel-ratio: $break-small-dpi) {
|
181
|
+
font-size: 24px;
|
182
|
+
float: right;
|
183
|
+
}
|
170
184
|
}
|
171
185
|
.desc, .number {
|
172
186
|
text-align: right;
|
@@ -187,3 +201,15 @@ $break-small:1024px;
|
|
187
201
|
text-align: right;
|
188
202
|
}
|
189
203
|
}
|
204
|
+
|
205
|
+
/***** GRAPH SPECIFIC *******/
|
206
|
+
|
207
|
+
.clickable_graph > svg > path,
|
208
|
+
.clickable_graph > svg > rect,
|
209
|
+
.clickable_graph > .morris-hover {
|
210
|
+
cursor: pointer;
|
211
|
+
}
|
212
|
+
|
213
|
+
.clickable_graph > .morris-hover:hover {
|
214
|
+
background: #fff;
|
215
|
+
}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}
|
2
|
+
.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap_widgets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Nadeau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -200,6 +200,7 @@ files:
|
|
200
200
|
- vendor/assets/javascripts/morris.min.js
|
201
201
|
- vendor/assets/javascripts/raphael.min.js
|
202
202
|
- vendor/assets/stylesheets/bootstrap_widgets.css.scss
|
203
|
+
- vendor/assets/stylesheets/morris.min.css
|
203
204
|
homepage: http://github.com/jules2689/bootstrap_widgets
|
204
205
|
licenses:
|
205
206
|
- MIT
|