Commit f54ae5f3656f7adab6a06421a0dc29fc281f0e25
Committed by
Rafael Manzo
1 parent
0980581e
Exists in
colab
and in
4 other branches
Chart generated using ajax.
pending: tests for module_result_controller; find a way to send the all the data required to generate chart using just one json parameter; configurate the highchart to show gridlines.
Showing
3 changed files
with
41 additions
and
23 deletions
Show diff stats
app/assets/javascripts/graphics.js
1 | -function chart_of_the_historic_of_metric (container_id, metric_name, module_name, date_list, metric_values_list) | |
1 | +function chart_of_the_historic_of_metric (json_params, dinamic_values) | |
2 | 2 | { |
3 | - date_list = date_list.split(','); | |
4 | - metric_values_list = metric_values_list.split(','); | |
5 | - for(var i = 0; i < metric_values_list.length; i++) { | |
6 | - metric_values_list[i] = parseInt(metric_values_list[i]); | |
7 | - } | |
8 | - $('#tr_container_' + container_id).hide(); | |
3 | + container_id = json_params['container_id']; | |
4 | + metric_name = json_params['metric_name']; | |
5 | + module_name = json_params['module_name']; | |
6 | + dates = dinamic_values['dates']; | |
7 | + metric_values = dinamic_values['values']; | |
9 | 8 | |
9 | + $('#tr_container_' + container_id).hide(); | |
10 | 10 | $(function () { |
11 | 11 | $('#container_'+container_id).highcharts({ |
12 | + chart: { | |
13 | + marginBottom: 80 | |
14 | + }, | |
12 | 15 | title: { |
13 | 16 | text: metric_name, |
14 | 17 | x: -20 //center |
... | ... | @@ -18,27 +21,26 @@ function chart_of_the_historic_of_metric (container_id, metric_name, module_name |
18 | 21 | x: -20 |
19 | 22 | }, |
20 | 23 | xAxis: { |
21 | - categories: date_list | |
24 | + categories: dates | |
22 | 25 | }, |
23 | 26 | yAxis: { |
24 | 27 | title: { |
25 | 28 | text: 'Value' |
26 | 29 | }, |
27 | - plotLines: [{ | |
28 | - value: 0, | |
29 | - width: 1, | |
30 | - color: '#808080' | |
31 | - }] | |
30 | + labels: { | |
31 | + align: 'left', | |
32 | + x: 0, | |
33 | + y: -2 | |
32 | 34 | }, |
33 | - legend: { | |
34 | - layout: 'vertical', | |
35 | - align: 'right', | |
36 | - verticalAlign: 'middle', | |
37 | - borderWidth: 0 | |
35 | + plotLines: [{ | |
36 | + value: 0, | |
37 | + width: 1, | |
38 | + color: '#808080' | |
39 | + }] | |
38 | 40 | }, |
39 | 41 | series: [{ |
40 | 42 | name: 'Metric value', |
41 | - data: metric_values_list | |
43 | + data: metric_values | |
42 | 44 | }] |
43 | 45 | }); |
44 | 46 | }); | ... | ... |
app/controllers/modules_controller.rb
... | ... | @@ -3,7 +3,15 @@ class ModulesController < ApplicationController |
3 | 3 | |
4 | 4 | # GET /modules/metric_history |
5 | 5 | def metric_history |
6 | - render :json => {mk: "monkey"}.to_json | |
6 | + module_result = ModuleResult.new({ id: params[:module_id] }) | |
7 | + metric_history = module_result.metric_history(params[:metric_name]) # pending: sort this hash. | |
8 | + dates = Array.new | |
9 | + values = Array.new | |
10 | + metric_history.keys.each do |date| | |
11 | + dates.push date | |
12 | + values.push metric_history[date] | |
13 | + end | |
14 | + render :json => {dates: dates, values: values}.to_json | |
7 | 15 | end |
8 | 16 | |
9 | 17 | end |
10 | 18 | \ No newline at end of file | ... | ... |
app/views/repositories/_metric_result.html.erb
1 | 1 | <% metric_configuration_snapshot = metric_result.metric_configuration_snapshot %> |
2 | 2 | <% unless metric_configuration_snapshot.range_snapshot.nil? %> |
3 | - <% range_snapshot = find_range_snapshot(metric_result) %> | |
3 | + <% range_snapshot = find_range_snapshot(metric_result) | |
4 | + metric_name = metric_configuration_snapshot.metric.name | |
5 | + %> | |
4 | 6 | <tr> |
5 | - <td><%= link_to metric_configuration_snapshot.metric.name, "#metric_#{module_result.id}", | |
6 | - onclick: "$.get('/modules/metric_history', function( data ) { alert( data['mk'] ); });", | |
7 | + <td><%= link_to metric_name, "#metric_#{module_result.id}", | |
8 | + onclick: "$.get('/modules/metric_history', | |
9 | + { metric_name: \"#{metric_name}\", | |
10 | + module_id: \"#{module_result.id}\"} | |
11 | + ).done(function( data ) { | |
12 | + json_params = JSON.parse('{\"container_id\": \"#{metric_result.id}\", \"metric_name\": \"#{metric_name}\", \"module_name\": \"#{module_result.module.name}\"}'); | |
13 | + chart_of_the_historic_of_metric (json_params, data); | |
14 | + });", | |
7 | 15 | id: "metric_#{module_result.id}", |
8 | 16 | remote: true %></td> |
9 | 17 | <td><%= format_grade(metric_result.value) %></td> | ... | ... |