Commit 76a10b5a064ad13baab929506df0f21caa6c7d8a

Authored by Alessandro Palmeira + João M. M. Silva
Committed by Rafael Manzo
1 parent f21dd0b7

[Mezuro] Adding compound metrics, with script Kalibro Error

plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb
@@ -13,6 +13,7 @@ class MezuroPluginMyprofileController < ProfileController @@ -13,6 +13,7 @@ class MezuroPluginMyprofileController < ProfileController
13 @collector_name = params[:collector_name] 13 @collector_name = params[:collector_name]
14 @collector = Kalibro::Client::BaseToolClient.new.base_tool(@collector_name) 14 @collector = Kalibro::Client::BaseToolClient.new.base_tool(@collector_name)
15 end 15 end
  16 +
16 def new_metric_configuration 17 def new_metric_configuration
17 metric_name = params[:metric_name] 18 metric_name = params[:metric_name]
18 collector_name = params[:collector_name] 19 collector_name = params[:collector_name]
@@ -20,12 +21,14 @@ class MezuroPluginMyprofileController < ProfileController @@ -20,12 +21,14 @@ class MezuroPluginMyprofileController < ProfileController
20 @metric = collector.supported_metrics.find {|metric| metric.name == metric_name} 21 @metric = collector.supported_metrics.find {|metric| metric.name == metric_name}
21 @configuration_name = params[:configuration_name] 22 @configuration_name = params[:configuration_name]
22 end 23 end
  24 +
23 def edit_metric_configuration 25 def edit_metric_configuration
24 metric_name = params[:metric_name] 26 metric_name = params[:metric_name]
25 @configuration_name = params[:configuration_name] 27 @configuration_name = params[:configuration_name]
26 @metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name) 28 @metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name)
27 @metric = @metric_configuration.metric 29 @metric = @metric_configuration.metric
28 end 30 end
  31 +
29 def create_metric_configuration 32 def create_metric_configuration
30 @configuration_name = params[:configuration_name] 33 @configuration_name = params[:configuration_name]
31 metric_configuration = new_metric_configuration_instance 34 metric_configuration = new_metric_configuration_instance
@@ -99,6 +102,19 @@ class MezuroPluginMyprofileController < ProfileController @@ -99,6 +102,19 @@ class MezuroPluginMyprofileController < ProfileController
99 redirect_to "/#{profile.identifier}/#{configuration_name.downcase.gsub(/\s/, '-')}" 102 redirect_to "/#{profile.identifier}/#{configuration_name.downcase.gsub(/\s/, '-')}"
100 end 103 end
101 104
  105 +
  106 + def new_compound_metric
  107 + @configuration_name = params[:configuration_name]
  108 + @metric_configurations = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_name).metric_configurations
  109 + end
  110 +
  111 + def create_compound_metric_configuration
  112 + @configuration_name = params[:configuration_name]
  113 + compound_metric_configuration = new_compound_metric_configuration_instance
  114 + # NOT WORKING # Kalibro::Client::MetricConfigurationClient.new.save(compound_metric_configuration, @configuration_name)
  115 + redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
  116 + end
  117 +
102 private 118 private
103 119
104 def new_metric_configuration_instance 120 def new_metric_configuration_instance
@@ -106,8 +122,8 @@ class MezuroPluginMyprofileController < ProfileController @@ -106,8 +122,8 @@ class MezuroPluginMyprofileController < ProfileController
106 metric_configuration.metric = Kalibro::Entities::NativeMetric.new 122 metric_configuration.metric = Kalibro::Entities::NativeMetric.new
107 assign_metric_configuration_instance (metric_configuration) 123 assign_metric_configuration_instance (metric_configuration)
108 end 124 end
109 -  
110 - def assign_metric_configuration_instance (metric_configuration) 125 +
  126 + def assign_metric_configuration_instance (metric_configuration)
111 metric_configuration.metric.name = params[:metric][:name] 127 metric_configuration.metric.name = params[:metric][:name]
112 metric_configuration.metric.description = params[:description] 128 metric_configuration.metric.description = params[:description]
113 metric_configuration.metric.origin = params[:metric][:origin] 129 metric_configuration.metric.origin = params[:metric][:origin]
@@ -118,6 +134,23 @@ class MezuroPluginMyprofileController < ProfileController @@ -118,6 +134,23 @@ class MezuroPluginMyprofileController < ProfileController
118 metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form] 134 metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form]
119 metric_configuration 135 metric_configuration
120 end 136 end
  137 +
  138 + def new_compound_metric_configuration_instance
  139 + metric_configuration = Kalibro::Entities::MetricConfiguration.new
  140 + metric_configuration.metric = Kalibro::Entities::CompoundMetric.new
  141 + assign_compound_metric_configuration_instance (metric_configuration)
  142 + end
  143 +
  144 + def assign_compound_metric_configuration_instance (metric_configuration)
  145 + metric_configuration.metric.name = params[:metric_configuration][:metric_name]
  146 + metric_configuration.metric.description = params[:metric_configuration][:description]
  147 + metric_configuration.metric.scope = params[:metric_configuration][:scope]
  148 + metric_configuration.metric.script = params[:metric_configuration][:script]
  149 + metric_configuration.code = params[:metric_configuration][:code]
  150 + metric_configuration.weight = params[:metric_configuration][:weight]
  151 + metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form]
  152 + metric_configuration
  153 + end
121 154
122 def new_range_instance 155 def new_range_instance
123 range = Kalibro::Entities::Range.new 156 range = Kalibro::Entities::Range.new
plugins/mezuro/views/content_viewer/show_configuration.rhtml
@@ -33,5 +33,5 @@ @@ -33,5 +33,5 @@
33 <td><%= link_to "Remove", :controller => "mezuro_plugin_myprofile", :action => "remove_metric_configuration", :params => 33 <td><%= link_to "Remove", :controller => "mezuro_plugin_myprofile", :action => "remove_metric_configuration", :params =>
34 {:configuration_name => @configuration.name, :metric_name => metric_configuration.metric.name} %></td> 34 {:configuration_name => @configuration.name, :metric_name => metric_configuration.metric.name} %></td>
35 </tr> 35 </tr>
36 -<% end %> 36 + <% end %>
37 </table> 37 </table>
plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb
1 <h2><%= @configuration_name%> Configuration</h2> 1 <h2><%= @configuration_name%> Configuration</h2>
2 2
  3 +<%= link_to "* New Compound Metric *", :controller => "mezuro_plugin_myprofile", :action => "new_compound_metric", :params =>
  4 +{:configuration_name => @configuration_name} %>
  5 +
3 <h5>Base Tools:</h5> 6 <h5>Base Tools:</h5>
4 <table id="project_info"> 7 <table id="project_info">
5 <% @tool_names.base_tool_names.each do |collector_name| %> 8 <% @tool_names.base_tool_names.each do |collector_name| %>
plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb 0 → 100644
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +<h2><%= @configuration_name %> Configuration</h2>
  2 +
  3 +<% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration",
  4 +:controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>
  5 + <%= hidden_field_tag :configuration_name, @configuration_name %>
  6 +
  7 + <p>
  8 + <%= f.label :metric_name, "Metric Name:" %>
  9 + <%= f.text_field :metric_name %>
  10 + </p>
  11 + <p>
  12 + <%= f.label :description, "Description:" %>
  13 + <%= f.text_field :description %>
  14 + </p>
  15 + <p>
  16 + <%= f.label :scope, "scope" %>
  17 + <%= f.select :scope, [["Class", "CLASS"]] %>
  18 + </p>
  19 + <p>
  20 + <%= f.label :code, "Code:" %>
  21 + <%= f.text_field :code %>
  22 + </p>
  23 + <p>
  24 + <%= f.label :aggregation_form, "Aggregation:" %>
  25 + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],
  26 + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>
  27 + </p>
  28 + <p>
  29 + <%= f.label :weight, "Weight:" %>
  30 + <%= f.text_field :weight %>
  31 + </p>
  32 + <p>
  33 + <%= f.label :script, "Script:" %>
  34 + <%= f.text_area :script %>
  35 + </p>
  36 +
  37 + <p>
  38 + <%= f.submit "Add" %>
  39 + </p>
  40 +
  41 +<% end %>
  42 +
  43 +<table>
  44 + <tr class="titles">
  45 + <td><h5>Metric Name</h5></td>
  46 + <td><h5>Metric Code</h5></td>
  47 + </tr>
  48 + <% @metric_configurations.each do |metric_configuration| %>
  49 + <tr class="metric">
  50 + <td><%= metric_configuration.metric.name %></td>
  51 + <td><%= metric_configuration.code %></td>
  52 + </tr>
  53 + <% end %>
  54 +</table>