diff --git a/plugins/mezuro/lib/kalibro/client/configuration_client.rb b/plugins/mezuro/lib/kalibro/client/configuration_client.rb index 59cdb52..59cd11e 100644 --- a/plugins/mezuro/lib/kalibro/client/configuration_client.rb +++ b/plugins/mezuro/lib/kalibro/client/configuration_client.rb @@ -4,7 +4,7 @@ class Kalibro::Client::ConfigurationClient configuration = Kalibro::Entities::Configuration.new configuration.name = configuration_content.name configuration.description = configuration_content.description - configuration.metric_ids = configuration_content.metric_ids + configuration.create_metric_configurations(configuration_content.metrics) new.save(configuration) end diff --git a/plugins/mezuro/lib/kalibro/entities/configuration.rb b/plugins/mezuro/lib/kalibro/entities/configuration.rb index fb49e92..925246e 100644 --- a/plugins/mezuro/lib/kalibro/entities/configuration.rb +++ b/plugins/mezuro/lib/kalibro/entities/configuration.rb @@ -1,6 +1,6 @@ class Kalibro::Entities::Configuration < Kalibro::Entities::Entity - attr_accessor :name, :description, :metric_configuration, :metric_ids + attr_accessor :name, :description, :metric_configuration def metric_configuration=(value) @metric_configuration = to_entity_array(value, Kalibro::Entities::MetricConfiguration) @@ -14,4 +14,19 @@ class Kalibro::Entities::Configuration < Kalibro::Entities::Entity @metric_configuration = metric_configurations end + def create_metric_configurations(metrics) + @metric_configurations = [] + metrics.each do |metric| + @metric_configurations << create_metric_configuration(metric) + end + end + + def create_metric_configuration(metric) + splitted_metric = metric.split(/:/) + origin = splitted_metric[0] + name = splitted_metric[1] + metric = Kalibro::Entities::NativeMetric.new_with_origin_and_name(origin, name) + Kalibro::Entities::MetricConfiguration.new_with_metric_and_code(metric, name) + end + end diff --git a/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb b/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb index 944e101..a14114a 100644 --- a/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb +++ b/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb @@ -2,6 +2,14 @@ class Kalibro::Entities::MetricConfiguration < Kalibro::Entities::Entity attr_accessor :metric, :code, :weight, :aggregation_form, :range + + def self.new_with_metric_and_code(metric, code) + configuration = new + configuration.metric = metric + configuration.code = code + configuration + end + def metric=(value) if value.kind_of?(Hash) @metric = to_entity(value, Kalibro::Entities::CompoundMetric) if value.has_key?(:script) @@ -23,4 +31,4 @@ class Kalibro::Entities::MetricConfiguration < Kalibro::Entities::Entity @range = ranges end -end \ No newline at end of file +end diff --git a/plugins/mezuro/lib/kalibro/entities/native_metric.rb b/plugins/mezuro/lib/kalibro/entities/native_metric.rb index 7bb95a0..3f41dc7 100644 --- a/plugins/mezuro/lib/kalibro/entities/native_metric.rb +++ b/plugins/mezuro/lib/kalibro/entities/native_metric.rb @@ -10,4 +10,11 @@ class Kalibro::Entities::NativeMetric < Kalibro::Entities::Metric @language = languages end -end \ No newline at end of file + def self.new_with_origin_and_name(origin, name) + metric = new + metric.name = name + metric.origin = origin + metric + end + +end diff --git a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb index c42bed3..6d40368 100644 --- a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb @@ -8,7 +8,7 @@ class MezuroPlugin::ConfigurationContent < Article 'Sets of thresholds to interpret metrics' end - settings_items :description + settings_items :description, :metrics include ActionView::Helpers::TagHelper def to_html(options = {}) diff --git a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb index 97a0ad0..59682cb 100644 --- a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb +++ b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb @@ -26,12 +26,13 @@ end <% @collector = @tool_names.base_tool(collector_name) - @collector.supported_metrics.each do |metric| %> - + @collector.supported_metrics.each do |metric| + + metric_id = collector_name + ":" + metric.name %> -- libgit2 0.21.2
- <%= check_box_tag collector_name + ":" + metric.name, collector_name + ":" + metric.name, true %> - <%= label_tag metric.name %> + <%= check_box_tag "article[metrics][]", metric_id, true, {:id => metric_id.gsub(/[\/ ]/, '_')} %> + <%= label_tag metric_id, metric.name %>