Commit 30091317cbacc0a115ec0f77dcb56fcaf6df2dd8

Authored by Alessandro Palmeira + Caio C. Salgado
Committed by Paulo Meireles
1 parent fbc6eb37

[Mezuro] Creating and editing ranges works with old nomenclature

plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
... ... @@ -76,21 +76,50 @@ class MezuroPluginProfileController < ProfileController
76 76 Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name)
77 77 redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
78 78 end
  79 +
79 80 def new_range
80 81 @metric_name = params[:metric_name]
81 82 @configuration_name = params[:configuration_name]
  83 + @range_beginning = params[:range_beginning]
  84 +
  85 + if(@range_beginning != nil) then
  86 +
  87 + metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
  88 + metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, @metric_name)
  89 +
  90 + metric_configuration.ranges.each do |r|
  91 + @range = r if r.beginning == @range_beginning.to_f
  92 + end
  93 + end
82 94 end
83 95  
84 96 def create_range
85 97 @range = new_range_instance
86 98 configuration_name = params[:configuration_name]
87 99 metric_name = params[:metric_name]
  100 + beginning_id = params[:beginning_id]
88 101 metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
89 102 metric_configuration = metric_configuration_client.metric_configuration(configuration_name, metric_name)
90   - metric_configuration.add_range(@range)
91   - metric_configuration_client.save(metric_configuration, configuration_name)
  103 +
  104 + if( beginning_id == "") then #When nothing is passed as beginning_id, this range is new
  105 + metric_configuration.add_range(@range)
  106 + metric_configuration_client.save(metric_configuration, configuration_name)
  107 + else #else, this is a range to edit
  108 + #First search range
  109 + index = 0
  110 + metric_configuration.ranges.each do |r|
  111 + break if r.beginning == beginning_id.to_f
  112 + index = index + 1
  113 + end
  114 + #Then edit and save
  115 + metric_configuration.ranges[index] = new_range_instance
  116 + Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_name)
  117 + end
92 118 end
93 119  
  120 +=begin
  121 + this commented lines and views/mezuro_plugin_profile/edit_range.html.erb should be removed
  122 +
94 123 def edit_range
95 124 @configuration_name = params[:configuration_name]
96 125 @metric_name = params[:metric_name]
... ... @@ -115,11 +144,13 @@ class MezuroPluginProfileController < ProfileController
115 144 break if r.beginning == range_beginning.to_f
116 145 index = index + 1
117 146 end
  147 + #Here index points to the right range in metric_configuration.ranges[]
118 148 metric_configuration.ranges[index] = new_range_instance
119 149 Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name)
120 150 redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
121 151 end
122   -
  152 +=end
  153 +
123 154 def remove_metric_configuration
124 155 configuration_name = params[:configuration_name]
125 156 metric_name = params[:metric_name]
... ...
plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb
1 1 <% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_profile"}, :method => :get do |f| %>
2 2 <%= hidden_field_tag :configuration_name, configuration_name %>
3 3 <%= hidden_field_tag :metric_name, metric_name %>
  4 + <%= hidden_field_tag :beginning_id, range_beginning %>
4 5 <table>
5 6 <tr>
6 7 <td>
... ...
plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb
... ... @@ -12,6 +12,7 @@
12 12 <%=range.grade%>
13 13 </td>
14 14 <td bgcolor="#<%= range.color[2..-1] %>"></td>
15   - <td><%= link_to "Edit", :controller => "mezuro_plugin_profile", :action => "edit_range", :params =>
16   - {:configuration_name => params[:configuration_name], :metric_name => params[:metric_name], :range_beginning => range.beginning} %></td>
  15 + <!-- <td><%= link_to "Edit", :controller => "mezuro_plugin_profile", :action => "edit_range", :params =>
  16 + {:configuration_name => params[:configuration_name], :metric_name => params[:metric_name], :range_beginning => range.beginning} %></td> -->
  17 + <td><%= 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} %></td>
17 18 </tr>
... ...
plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb
... ... @@ -2,6 +2,7 @@
2 2 <%= hidden_field_tag :configuration_name, @configuration_name %>
3 3 <%= hidden_field_tag :metric_name, @metric_name %>
4 4 <%= hidden_field_tag :beginning_id, @range_beginning %>
  5 + <!-- beginning_id and range_beginning occurs because the field may be changed and we still need and identificator to the desired range -->
5 6 <table>
6 7 <tr>
7 8 <td>
... ...
plugins/mezuro/views/mezuro_plugin_profile/new_range.rjs
1   -page.replace_html 'new_range', :partial => "new_range", :locals => {:metric_name => @metric_name, :configuration_name => @configuration_name}
  1 +page.replace_html 'new_range', :partial => "new_range", :locals => {:metric_name => @metric_name, :configuration_name => @configuration_name, :range_beginning => @range_beginning}
2 2 page.visual_effect :toggle_slide, "new_range"
... ...