From 30091317cbacc0a115ec0f77dcb56fcaf6df2dd8 Mon Sep 17 00:00:00 2001 From: Alessandro Palmeira + Caio C. Salgado Date: Wed, 18 Apr 2012 18:41:07 -0300 Subject: [PATCH] [Mezuro] Creating and editing ranges works with old nomenclature --- plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb | 37 ++++++++++++++++++++++++++++++++++--- plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb | 1 + plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb | 5 +++-- plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb | 1 + plugins/mezuro/views/mezuro_plugin_profile/new_range.rjs | 2 +- 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb index bc0e5e2..1f54390 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb @@ -76,21 +76,50 @@ class MezuroPluginProfileController < ProfileController Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end + def new_range @metric_name = params[:metric_name] @configuration_name = params[:configuration_name] + @range_beginning = params[:range_beginning] + + if(@range_beginning != nil) then + + metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new + metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, @metric_name) + + metric_configuration.ranges.each do |r| + @range = r if r.beginning == @range_beginning.to_f + end + end end def create_range @range = new_range_instance configuration_name = params[:configuration_name] metric_name = params[:metric_name] + beginning_id = params[:beginning_id] metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new metric_configuration = metric_configuration_client.metric_configuration(configuration_name, metric_name) - metric_configuration.add_range(@range) - metric_configuration_client.save(metric_configuration, configuration_name) + + if( beginning_id == "") then #When nothing is passed as beginning_id, this range is new + metric_configuration.add_range(@range) + metric_configuration_client.save(metric_configuration, configuration_name) + else #else, this is a range to edit + #First search range + index = 0 + metric_configuration.ranges.each do |r| + break if r.beginning == beginning_id.to_f + index = index + 1 + end + #Then edit and save + metric_configuration.ranges[index] = new_range_instance + Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_name) + end end +=begin + this commented lines and views/mezuro_plugin_profile/edit_range.html.erb should be removed + def edit_range @configuration_name = params[:configuration_name] @metric_name = params[:metric_name] @@ -115,11 +144,13 @@ class MezuroPluginProfileController < ProfileController break if r.beginning == range_beginning.to_f index = index + 1 end + #Here index points to the right range in metric_configuration.ranges[] metric_configuration.ranges[index] = new_range_instance Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end - +=end + def remove_metric_configuration configuration_name = params[:configuration_name] metric_name = params[:metric_name] diff --git a/plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb b/plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb index de1f71d..ed8f2ed 100644 --- a/plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb @@ -1,6 +1,7 @@ <% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_profile"}, :method => :get do |f| %> <%= hidden_field_tag :configuration_name, configuration_name %> <%= hidden_field_tag :metric_name, metric_name %> + <%= hidden_field_tag :beginning_id, range_beginning %> - + + diff --git a/plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb b/plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb index b39c8b8..1c7f47b 100644 --- a/plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb @@ -2,6 +2,7 @@ <%= hidden_field_tag :configuration_name, @configuration_name %> <%= hidden_field_tag :metric_name, @metric_name %> <%= hidden_field_tag :beginning_id, @range_beginning %> +
diff --git a/plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb b/plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb index b622a8d..cc5c099 100644 --- a/plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb @@ -12,6 +12,7 @@ <%=range.grade%> <%= link_to "Edit", :controller => "mezuro_plugin_profile", :action => "edit_range", :params => - {:configuration_name => params[:configuration_name], :metric_name => params[:metric_name], :range_beginning => range.beginning} %><%= link_to_remote "Edit", :url => {:action =>"new_range", :controller => "mezuro_plugin_profile", :configuration_name => params[:configuration_name], :metric_name => params[:metric_name], :range_beginning => range.beginning} %>
diff --git a/plugins/mezuro/views/mezuro_plugin_profile/new_range.rjs b/plugins/mezuro/views/mezuro_plugin_profile/new_range.rjs index 22cee93..bcdda62 100644 --- a/plugins/mezuro/views/mezuro_plugin_profile/new_range.rjs +++ b/plugins/mezuro/views/mezuro_plugin_profile/new_range.rjs @@ -1,2 +1,2 @@ -page.replace_html 'new_range', :partial => "new_range", :locals => {:metric_name => @metric_name, :configuration_name => @configuration_name} +page.replace_html 'new_range', :partial => "new_range", :locals => {:metric_name => @metric_name, :configuration_name => @configuration_name, :range_beginning => @range_beginning} page.visual_effect :toggle_slide, "new_range" -- libgit2 0.21.2