@@ -14,7 +14,7 @@ def fetch
14
14
when "totalgraph" then
15
15
r [ "data" ] = calculate_totalgraph ( params [ :hours ] )
16
16
when "streamgraph" then
17
- r [ "data" ] = calculate_streamgraph ( params [ :stream_id ] , params [ :hours ] )
17
+ r [ "data" ] = calculate_streamgraph ( params [ :stream_ids ] , params [ :hours ] )
18
18
end
19
19
end
20
20
@@ -130,36 +130,49 @@ def calculate_totalgraph(hours = 12)
130
130
end
131
131
end
132
132
133
- def calculate_streamgraph ( stream_id , hours = 12 )
134
- stream = Stream . find ( stream_id )
133
+ def calculate_streamgraph ( stream_ids , hours = 12 )
134
+ streams = Array . new
135
+ stream_ids . split ( ',' ) . each do |id |
136
+ stream = Stream . find ( id )
137
+ next if stream . streamrules . blank?
138
+
139
+ streams << stream
140
+ end
135
141
136
- return Array . new if stream . streamrules . blank?
142
+ return Array . new if streams . blank?
137
143
138
- data = Array . new
139
- data2 = Array . new
140
- Message . stream_counts_of_last_minutes ( stream . id , hours . to_i *60 ) . collect do |c |
141
- data << [ ( c [ :minute ] . to_i +Time . now . utc_offset ) *1000 , c [ :count ] ]
142
- data2 << [ ( c [ :minute ] . to_i +Time . now . utc_offset ) *1000 , c [ :count ] +rand ( 50 ) ]
144
+ rows = Array . new
145
+ streams . each do |stream |
146
+ data = Array . new
147
+ Message . stream_counts_of_last_minutes ( stream . id , hours . to_i *60 ) . collect do |c |
148
+ data << [ ( c [ :minute ] . to_i +Time . now . utc_offset ) *1000 , c [ :count ] ]
149
+ end
150
+ rows << data
143
151
end
144
152
145
153
ret = Array . new
146
154
147
- ret << {
148
- "color" => "#000" ,
149
- "shadowSize" => 0 ,
150
- "data" => data2 ,
151
- "points" => { "show" => false } ,
152
- "lines" => { "show" => true , "fill" => false }
153
- }
155
+ i = 0
156
+ rows . each do |row |
157
+ if i == 0
158
+ color = "#fd0c99"
159
+ filling = true
160
+ shadow = true
161
+ else
162
+ color = "#000"
163
+ filling = false
164
+ shadow = false
165
+ end
166
+ ret << {
167
+ "color" => color ,
168
+ "shadowSize" => shadow ,
169
+ "data" => row ,
170
+ "points" => { "show" => false } ,
171
+ "lines" => { "show" => true , "fill" => filling }
172
+ }
173
+ i += 1
174
+ end
154
175
155
- ret << {
156
- "color" => "#fd0c99" ,
157
- "shadowSize" => 10 ,
158
- "data" => data ,
159
- "points" => { "show" => false } ,
160
- "lines" => { "show" => true , "fill" => false }
161
- }
162
-
163
176
return ret
164
177
end
165
178
0 commit comments