Commit 30091317cbacc0a115ec0f77dcb56fcaf6df2dd8
Committed by
Paulo Meireles
1 parent
fbc6eb37
Exists in
master
and in
29 other branches
[Mezuro] Creating and editing ranges works with old nomenclature
Showing
5 changed files
with
40 additions
and
6 deletions
Show diff stats
plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
| @@ -76,21 +76,50 @@ class MezuroPluginProfileController < ProfileController | @@ -76,21 +76,50 @@ class MezuroPluginProfileController < ProfileController | ||
| 76 | Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) | 76 | Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) |
| 77 | redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" | 77 | redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" |
| 78 | end | 78 | end |
| 79 | + | ||
| 79 | def new_range | 80 | def new_range |
| 80 | @metric_name = params[:metric_name] | 81 | @metric_name = params[:metric_name] |
| 81 | @configuration_name = params[:configuration_name] | 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 | end | 94 | end |
| 83 | 95 | ||
| 84 | def create_range | 96 | def create_range |
| 85 | @range = new_range_instance | 97 | @range = new_range_instance |
| 86 | configuration_name = params[:configuration_name] | 98 | configuration_name = params[:configuration_name] |
| 87 | metric_name = params[:metric_name] | 99 | metric_name = params[:metric_name] |
| 100 | + beginning_id = params[:beginning_id] | ||
| 88 | metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new | 101 | metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new |
| 89 | metric_configuration = metric_configuration_client.metric_configuration(configuration_name, metric_name) | 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 | end | 118 | end |
| 93 | 119 | ||
| 120 | +=begin | ||
| 121 | + this commented lines and views/mezuro_plugin_profile/edit_range.html.erb should be removed | ||
| 122 | + | ||
| 94 | def edit_range | 123 | def edit_range |
| 95 | @configuration_name = params[:configuration_name] | 124 | @configuration_name = params[:configuration_name] |
| 96 | @metric_name = params[:metric_name] | 125 | @metric_name = params[:metric_name] |
| @@ -115,11 +144,13 @@ class MezuroPluginProfileController < ProfileController | @@ -115,11 +144,13 @@ class MezuroPluginProfileController < ProfileController | ||
| 115 | break if r.beginning == range_beginning.to_f | 144 | break if r.beginning == range_beginning.to_f |
| 116 | index = index + 1 | 145 | index = index + 1 |
| 117 | end | 146 | end |
| 147 | + #Here index points to the right range in metric_configuration.ranges[] | ||
| 118 | metric_configuration.ranges[index] = new_range_instance | 148 | metric_configuration.ranges[index] = new_range_instance |
| 119 | Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) | 149 | Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) |
| 120 | redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" | 150 | redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" |
| 121 | end | 151 | end |
| 122 | - | 152 | +=end |
| 153 | + | ||
| 123 | def remove_metric_configuration | 154 | def remove_metric_configuration |
| 124 | configuration_name = params[:configuration_name] | 155 | configuration_name = params[:configuration_name] |
| 125 | metric_name = params[:metric_name] | 156 | metric_name = params[:metric_name] |
plugins/mezuro/views/mezuro_plugin_profile/_new_range.html.erb
| 1 | <% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_profile"}, :method => :get do |f| %> | 1 | <% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_profile"}, :method => :get do |f| %> |
| 2 | <%= hidden_field_tag :configuration_name, configuration_name %> | 2 | <%= hidden_field_tag :configuration_name, configuration_name %> |
| 3 | <%= hidden_field_tag :metric_name, metric_name %> | 3 | <%= hidden_field_tag :metric_name, metric_name %> |
| 4 | + <%= hidden_field_tag :beginning_id, range_beginning %> | ||
| 4 | <table> | 5 | <table> |
| 5 | <tr> | 6 | <tr> |
| 6 | <td> | 7 | <td> |
plugins/mezuro/views/mezuro_plugin_profile/_range.html.erb
| @@ -12,6 +12,7 @@ | @@ -12,6 +12,7 @@ | ||
| 12 | <%=range.grade%> | 12 | <%=range.grade%> |
| 13 | </td> | 13 | </td> |
| 14 | <td bgcolor="#<%= range.color[2..-1] %>"></td> | 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 | </tr> | 18 | </tr> |
plugins/mezuro/views/mezuro_plugin_profile/edit_range.html.erb
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | <%= hidden_field_tag :configuration_name, @configuration_name %> | 2 | <%= hidden_field_tag :configuration_name, @configuration_name %> |
| 3 | <%= hidden_field_tag :metric_name, @metric_name %> | 3 | <%= hidden_field_tag :metric_name, @metric_name %> |
| 4 | <%= hidden_field_tag :beginning_id, @range_beginning %> | 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 | <table> | 6 | <table> |
| 6 | <tr> | 7 | <tr> |
| 7 | <td> | 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 | page.visual_effect :toggle_slide, "new_range" | 2 | page.visual_effect :toggle_slide, "new_range" |