Commit 70dac10aa6114eb1559b7860c6f8c03ddd1f48f3

Authored by Alessandro Palmeira + João M. M. da Silva
Committed by João M. M. da Silva
1 parent 2b575ca8

sending correct save metric configuration request

plugins/mezuro/lib/kalibro/client/configuration_client.rb
... ... @@ -4,7 +4,7 @@ class Kalibro::Client::ConfigurationClient
4 4 configuration = Kalibro::Entities::Configuration.new
5 5 configuration.name = configuration_content.name
6 6 configuration.description = configuration_content.description
7   - configuration.metric_ids = configuration_content.metric_ids
  7 + configuration.create_metric_configurations(configuration_content.metrics)
8 8 new.save(configuration)
9 9 end
10 10  
... ...
plugins/mezuro/lib/kalibro/entities/configuration.rb
1 1 class Kalibro::Entities::Configuration < Kalibro::Entities::Entity
2 2  
3   - attr_accessor :name, :description, :metric_configuration, :metric_ids
  3 + attr_accessor :name, :description, :metric_configuration
4 4  
5 5 def metric_configuration=(value)
6 6 @metric_configuration = to_entity_array(value, Kalibro::Entities::MetricConfiguration)
... ... @@ -14,4 +14,19 @@ class Kalibro::Entities::Configuration &lt; Kalibro::Entities::Entity
14 14 @metric_configuration = metric_configurations
15 15 end
16 16  
  17 + def create_metric_configurations(metrics)
  18 + @metric_configurations = []
  19 + metrics.each do |metric|
  20 + @metric_configurations << create_metric_configuration(metric)
  21 + end
  22 + end
  23 +
  24 + def create_metric_configuration(metric)
  25 + splitted_metric = metric.split(/:/)
  26 + origin = splitted_metric[0]
  27 + name = splitted_metric[1]
  28 + metric = Kalibro::Entities::NativeMetric.new_with_origin_and_name(origin, name)
  29 + Kalibro::Entities::MetricConfiguration.new_with_metric_and_code(metric, name)
  30 + end
  31 +
17 32 end
... ...
plugins/mezuro/lib/kalibro/entities/metric_configuration.rb
... ... @@ -2,6 +2,14 @@ class Kalibro::Entities::MetricConfiguration &lt; Kalibro::Entities::Entity
2 2  
3 3 attr_accessor :metric, :code, :weight, :aggregation_form, :range
4 4  
  5 +
  6 + def self.new_with_metric_and_code(metric, code)
  7 + configuration = new
  8 + configuration.metric = metric
  9 + configuration.code = code
  10 + configuration
  11 + end
  12 +
5 13 def metric=(value)
6 14 if value.kind_of?(Hash)
7 15 @metric = to_entity(value, Kalibro::Entities::CompoundMetric) if value.has_key?(:script)
... ... @@ -23,4 +31,4 @@ class Kalibro::Entities::MetricConfiguration &lt; Kalibro::Entities::Entity
23 31 @range = ranges
24 32 end
25 33  
26   -end
27 34 \ No newline at end of file
  35 +end
... ...
plugins/mezuro/lib/kalibro/entities/native_metric.rb
... ... @@ -10,4 +10,11 @@ class Kalibro::Entities::NativeMetric &lt; Kalibro::Entities::Metric
10 10 @language = languages
11 11 end
12 12  
13   -end
14 13 \ No newline at end of file
  14 + def self.new_with_origin_and_name(origin, name)
  15 + metric = new
  16 + metric.name = name
  17 + metric.origin = origin
  18 + metric
  19 + end
  20 +
  21 +end
... ...
plugins/mezuro/lib/mezuro_plugin/configuration_content.rb
... ... @@ -8,7 +8,7 @@ class MezuroPlugin::ConfigurationContent &lt; Article
8 8 'Sets of thresholds to interpret metrics'
9 9 end
10 10  
11   - settings_items :description
  11 + settings_items :description, :metrics
12 12  
13 13 include ActionView::Helpers::TagHelper
14 14 def to_html(options = {})
... ...
plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb
... ... @@ -26,12 +26,13 @@ end
26 26 <table>
27 27 <%
28 28 @collector = @tool_names.base_tool(collector_name)
29   - @collector.supported_metrics.each do |metric| %>
30   -
  29 + @collector.supported_metrics.each do |metric|
  30 +
  31 + metric_id = collector_name + ":" + metric.name %>
31 32 <tr class="metric" title="<%= metric.description %>">
32 33 <td>
33   - <%= check_box_tag collector_name + ":" + metric.name, collector_name + ":" + metric.name, true %>
34   - <%= label_tag metric.name %>
  34 + <%= check_box_tag "article[metrics][]", metric_id, true, {:id => metric_id.gsub(/[\/ ]/, '_')} %>
  35 + <%= label_tag metric_id, metric.name %>
35 36 </td>
36 37 </tr>
37 38  
... ...