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> | ... | ... |