diff --git a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb index 47427c0..16f4939 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb @@ -13,6 +13,7 @@ class MezuroPluginMyprofileController < ProfileController @collector_name = params[:collector_name] @collector = Kalibro::Client::BaseToolClient.new.base_tool(@collector_name) end + def new_metric_configuration metric_name = params[:metric_name] collector_name = params[:collector_name] @@ -20,12 +21,14 @@ class MezuroPluginMyprofileController < ProfileController @metric = collector.supported_metrics.find {|metric| metric.name == metric_name} @configuration_name = params[:configuration_name] end + def edit_metric_configuration metric_name = params[:metric_name] @configuration_name = params[:configuration_name] @metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name) @metric = @metric_configuration.metric end + def create_metric_configuration @configuration_name = params[:configuration_name] metric_configuration = new_metric_configuration_instance @@ -99,6 +102,19 @@ class MezuroPluginMyprofileController < ProfileController redirect_to "/#{profile.identifier}/#{configuration_name.downcase.gsub(/\s/, '-')}" end + + def new_compound_metric + @configuration_name = params[:configuration_name] + @metric_configurations = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_name).metric_configurations + end + + def create_compound_metric_configuration + @configuration_name = params[:configuration_name] + compound_metric_configuration = new_compound_metric_configuration_instance + # NOT WORKING # Kalibro::Client::MetricConfigurationClient.new.save(compound_metric_configuration, @configuration_name) + redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" + end + private def new_metric_configuration_instance @@ -106,8 +122,8 @@ class MezuroPluginMyprofileController < ProfileController metric_configuration.metric = Kalibro::Entities::NativeMetric.new assign_metric_configuration_instance (metric_configuration) end - - def assign_metric_configuration_instance (metric_configuration) + + def assign_metric_configuration_instance (metric_configuration) metric_configuration.metric.name = params[:metric][:name] metric_configuration.metric.description = params[:description] metric_configuration.metric.origin = params[:metric][:origin] @@ -118,6 +134,23 @@ class MezuroPluginMyprofileController < ProfileController metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form] metric_configuration end + + def new_compound_metric_configuration_instance + metric_configuration = Kalibro::Entities::MetricConfiguration.new + metric_configuration.metric = Kalibro::Entities::CompoundMetric.new + assign_compound_metric_configuration_instance (metric_configuration) + end + + def assign_compound_metric_configuration_instance (metric_configuration) + metric_configuration.metric.name = params[:metric_configuration][:metric_name] + metric_configuration.metric.description = params[:metric_configuration][:description] + metric_configuration.metric.scope = params[:metric_configuration][:scope] + metric_configuration.metric.script = params[:metric_configuration][:script] + metric_configuration.code = params[:metric_configuration][:code] + metric_configuration.weight = params[:metric_configuration][:weight] + metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form] + metric_configuration + end def new_range_instance range = Kalibro::Entities::Range.new diff --git a/plugins/mezuro/views/content_viewer/show_configuration.rhtml b/plugins/mezuro/views/content_viewer/show_configuration.rhtml index 1002c41..77109ab 100644 --- a/plugins/mezuro/views/content_viewer/show_configuration.rhtml +++ b/plugins/mezuro/views/content_viewer/show_configuration.rhtml @@ -33,5 +33,5 @@ <%= link_to "Remove", :controller => "mezuro_plugin_myprofile", :action => "remove_metric_configuration", :params => {:configuration_name => @configuration.name, :metric_name => metric_configuration.metric.name} %> -<% end %> + <% end %> diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb index bfb7177..37faad8 100644 --- a/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb @@ -1,5 +1,8 @@

<%= @configuration_name%> Configuration

+<%= link_to "* New Compound Metric *", :controller => "mezuro_plugin_myprofile", :action => "new_compound_metric", :params => +{:configuration_name => @configuration_name} %> +
Base Tools:
<% @tool_names.base_tool_names.each do |collector_name| %> diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb new file mode 100644 index 0000000..2722e3f --- /dev/null +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb @@ -0,0 +1,54 @@ +

<%= @configuration_name %> Configuration

+ +<% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration", +:controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> + <%= hidden_field_tag :configuration_name, @configuration_name %> + +

+ <%= f.label :metric_name, "Metric Name:" %> + <%= f.text_field :metric_name %> +

+

+ <%= f.label :description, "Description:" %> + <%= f.text_field :description %> +

+

+ <%= f.label :scope, "scope" %> + <%= f.select :scope, [["Class", "CLASS"]] %> +

+

+ <%= f.label :code, "Code:" %> + <%= f.text_field :code %> +

+

+ <%= f.label :aggregation_form, "Aggregation:" %> + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"], + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %> +

+

+ <%= f.label :weight, "Weight:" %> + <%= f.text_field :weight %> +

+

+ <%= f.label :script, "Script:" %> + <%= f.text_area :script %> +

+ +

+ <%= f.submit "Add" %> +

+ +<% end %> + +
+ + + + + <% @metric_configurations.each do |metric_configuration| %> + + + + + <% end %> +
Metric Name
Metric Code
<%= metric_configuration.metric.name %><%= metric_configuration.code %>
-- libgit2 0.21.2