diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
index cae2b1b..d8f587d 100644
--- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
+++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
@@ -2,43 +2,44 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
append_view_path File.join(File.dirname(__FILE__) + '/../../views')
- def new_range
- @content_id = params[:id]
- @metric_configuration_id = params[:metric_configuration_id]
+ def new
+ @content_id = params[:id].to_i
+ @metric_configuration_id = params[:metric_configuration_id].to_i
@reading_labels_and_ids = reading_labels_and_ids
end
- def edit_range
- @content_id = params[:id]
- @metric_configuration_id = params[:metric_configuration_id]
- ranges = Kalibro::Range.ranges_of params[:metric_configuration_id]
+ def edit
+ @content_id = params[:id].to_i
+ @metric_configuration_id = params[:metric_configuration_id].to_i
+ ranges = Kalibro::Range.ranges_of params[:metric_configuration_id].to_i
@range = (ranges.select { |range| range.id == params[:range_id].to_i }).first
@reading_labels_and_ids = reading_labels_and_ids
+ @selected_reading_label = @range.label
end
- def create_range
+ def create
metric_configuration_id = params[:metric_configuration_id].to_i
@range = Kalibro::Range.new params[:range]
@range.save metric_configuration_id
if !@range.errors.empty?
- @error = metric_configuration.errors[0].message
+ @error = @range.errors[0].message
end
end
- def update_range
+ def update
metric_configuration_id = params[:metric_configuration_id].to_i
@range = Kalibro::Range.new params[:range]
@range.save metric_configuration_id
if !@range.errors.empty?
- @error = metric_configuration.errors[0].message
+ @error = @range.errors[0].message
end
end
- def remove_range
- configuration_content_id = params[:id]
- metric_configuration_id = params[:metric_configuration_id]
+ def remove
+ configuration_content_id = params[:id].to_i
+ metric_configuration_id = params[:metric_configuration_id].to_i
compound = params[:compound]
- Kalibro::Range.new({:id => params[:range_id]}).destroy
+ Kalibro::Range.new({:id => params[:range_id].to_i}).destroy
if compound
redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}"
else
@@ -49,7 +50,7 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
private
def reading_labels_and_ids
- array = Kalibro::Reading.readings_of(params[:reading_group_id]).map { |reading| [reading.label, reading.id] }
+ array = Kalibro::Reading.readings_of(params[:reading_group_id].to_i).map { |reading| [reading.label, reading.id] }
array.sort { |x,y| x.first.downcase <=> y.first.downcase }
end
diff --git a/plugins/mezuro/lib/kalibro/metric_configuration.rb b/plugins/mezuro/lib/kalibro/metric_configuration.rb
index c1f0cec..6dd0ccd 100644
--- a/plugins/mezuro/lib/kalibro/metric_configuration.rb
+++ b/plugins/mezuro/lib/kalibro/metric_configuration.rb
@@ -28,8 +28,10 @@ class Kalibro::MetricConfiguration < Kalibro::Model
end
def self.metric_configurations_of(configuration_id)
- hash = request(:metric_configurations_of, {:configuration_id => configuration_id})
- hash[:metric_configuration].to_a.map { |metric_configuration| new metric_configuration }
+ response = request(:metric_configurations_of, {:configuration_id => configuration_id})[:metric_configuration]
+ response = [] if response.nil?
+ response = [response] if response.is_a?(Hash)
+ response.map { |metric_configuration| new metric_configuration }
end
private
diff --git a/plugins/mezuro/test/fixtures/range_fixtures.rb b/plugins/mezuro/test/fixtures/range_fixtures.rb
index cef675e..f57c51d 100644
--- a/plugins/mezuro/test/fixtures/range_fixtures.rb
+++ b/plugins/mezuro/test/fixtures/range_fixtures.rb
@@ -5,7 +5,11 @@ class RangeFixtures
end
def self.created_range
- Kalibro::Range.new :beginning => "19.5", :end => "INF", :reading_id => "1", :comments => "Test range 1"
+ Kalibro::Range.new created_range_hash
+ end
+
+ def self.created_range_hash
+ {:beginning => "19.5", :end => "INF", :reading_id => "1", :comments => "Test range 1"}
end
def self.range_hash
diff --git a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
index 553015c..914c428 100644
--- a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
+++ b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
@@ -4,6 +4,7 @@ require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures"
+require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_fixtures"
class MezuroPluginRangeControllerTest < ActionController::TestCase
@@ -13,85 +14,68 @@ class MezuroPluginRangeControllerTest < ActionController::TestCase
@response = ActionController::TestResponse.new
@profile = fast_create(Community)
- @metric = MetricFixtures.amloc
@metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
@metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
@configuration = ConfigurationFixtures.configuration
- Kalibro::Configuration.expects(:all_names).returns([])
- @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name)
- @content.expects(:send_kalibro_configuration_to_service).returns(nil)
+ @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name, :configuration_id => 42)
+ @content.expects(:send_configuration_to_service).returns(nil)
+ @content.expects(:validate_configuration_name).returns(true)
@content.stubs(:solr_save)
@content.save
- @range = RangeFixtures.range_excellent
- @range_hash = RangeFixtures.range_excellent_hash
+ @created_range = RangeFixtures.created_range
+ @range = RangeFixtures.range
+ @created_range_hash = RangeFixtures.created_range_hash
+ @range_hash = RangeFixtures.range_hash
+
+ @reading = ReadingFixtures.reading
end
- should 'test new range' do
- get :new_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
- assert_equal @content.id.to_s, assigns(:content_id)
- assert_equal @metric.name, assigns(:metric_name)
+ should 'set correct attributes to create a new range' do
+ Kalibro::Reading.expects(:readings_of).with(@metric_configuration.reading_group_id).returns([@reading])
+ get :new, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id
+ assert_equal @content.id, assigns(:content_id)
+ assert_equal @metric_configuration.id, assigns(:metric_configuration_id)
+ assert_equal [[@reading.label,@reading.id]], assigns(:reading_labels_and_ids)
assert_response 200
end
- should 'test edit range' do
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
- :configuration_name => @content.name,
- :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
- get :edit_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name, :beginning_id => @range.beginning
- assert_equal @content.id.to_s, assigns(:content_id)
- assert_equal @metric.name, assigns(:metric_name)
- assert_equal @range.beginning, assigns(:beginning_id)
- assert_equal @range.end, assigns(:range).end
+ should 'set correct attributes to edit a range' do
+ Kalibro::Reading.expects(:readings_of).with(@metric_configuration.reading_group_id).returns([@reading])
+ Kalibro::Range.expects(:ranges_of).with(@metric_configuration.id).returns([@range])
+ get :edit, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :range_id => @range.id, :reading_group_id => @metric_configuration.reading_group_id
+ assert_equal @content.id, assigns(:content_id)
+ assert_equal @metric_configuration.id, assigns(:metric_configuration_id)
+ assert_equal [[@reading.label,@reading.id]], assigns(:reading_labels_and_ids)
+ assert_equal @range, assigns(:range)
assert_response 200
end
should 'test create instance range' do
- metric_configuration = @metric_configuration
- metric_configuration.add_range(@range)
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
- :configuration_name => @content.name,
- :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
- :metric_configuration => metric_configuration.to_hash,
- :configuration_name => metric_configuration.configuration_name})
- get :create_range, :profile => @profile.identifier, :range => @range_hash, :id => @content.id, :metric_name => @metric.name
- assert_equal @content, assigns(:configuration_content)
- assert_equal @range.end, assigns(:range).end
+ Kalibro::Range.expects(:request).with(:save_range, {
+ :metric_configuration_id => @metric_configuration.id,
+ :range => @created_range.to_hash}).returns(:range_id => @range.id)
+ Kalibro::Reading.expects(:find).with(@created_range.reading_id).returns(@reading)
+ get :create, :range => @created_range_hash, :metric_configuration_id => @metric_configuration.id
+ assert_equal @range.id, assigns(:range).id
assert_response 200
end
should 'test update range' do
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
- :configuration_name => @content.name,
- :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
- :metric_configuration => @metric_configuration.to_hash,
- :configuration_name => @metric_configuration.configuration_name})
- get :update_range,
- :profile => @profile.identifier,
- :range => @range_hash,
- :id => @content.id,
- :metric_name => @metric.name,
- :beginning_id => @range.beginning
+ Kalibro::Range.expects(:request).with(:save_range, {
+ :metric_configuration_id => @metric_configuration.id,
+ :range => @range.to_hash}).returns(:range_id => @range.id)
+ Kalibro::Reading.expects(:find).with(@range.reading_id).returns(@reading)
+ get :update, :range => @range_hash, :metric_configuration_id => @metric_configuration.id
+ assert_equal @range.id, assigns(:range).id
assert_response 200
end
- should 'test remove range' do
- metric_configuration = @metric_configuration
- metric_configuration.ranges.delete_if { |range| range.beginning == @range.beginning.to_f }
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
- :configuration_name => @content.name,
- :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
- Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
- :metric_configuration => metric_configuration.to_hash,
- :configuration_name => metric_configuration.configuration_name})
- get :remove_range,
- :profile => @profile.identifier,
- :id => @content.id,
- :metric_name => @metric.name,
- :beginning_id => @range.beginning
+ should 'test remove range in native metric configuration' do
+ Kalibro::Range.expects(:new).with({:id => @range.id}).returns(@range)
+ @range.expects(:destroy).with().returns()
+ get :remove, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :range_id => @range.id, :compound => false
assert_response 302
end
end
diff --git a/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb b/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb
index ba059b2..fefd1a0 100644
--- a/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb
+++ b/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb
@@ -42,7 +42,7 @@
<% if owner %>
- <%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id} %>
+ <%= link_to_remote "New Range", :url => {:action =>"new", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id} %>
<% end %>
-
+
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_edit.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_edit.html.erb
new file mode 100644
index 0000000..8b02ace
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/_edit.html.erb
@@ -0,0 +1,4 @@
+<% remote_form_for :range, :url => {:action =>"update", :controller => "mezuro_plugin_range"}, :method => :get do |f| %>
+ <%= hidden_field_tag :beginning_id, @beginning_id %>
+ <%= render :partial => "form", :locals => {:f => f} %>
+<% end %>
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_edit_range.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_edit_range.html.erb
deleted file mode 100644
index 80221d8..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/_edit_range.html.erb
+++ /dev/null
@@ -1,4 +0,0 @@
-<% remote_form_for :range, :url => {:action =>"update_range", :controller => "mezuro_plugin_range"}, :method => :get do |f| %>
- <%= hidden_field_tag :beginning_id, @beginning_id %>
- <%= render :partial => "range_form", :locals => {:f => f} %>
-<% end %>
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_form.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_form.html.erb
new file mode 100644
index 0000000..8e7ff07
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/_form.html.erb
@@ -0,0 +1,35 @@
+<%= hidden_field_tag :id, @content_id %>
+<%= hidden_field_tag :metric_configuration_id, @metric_configuration_id %>
+
+<%= f.hidden_field :id %>
+
+ <%= required labelled_form_field _('Label'),
+ f.select(:reading_id, @reading_labels_and_ids, :selected => @selected_reading_label) %>
+
+
+
+ <%= f.label :beginning, "(*) Beginning:" %>
+ |
+
+ <%= required f.text_field :beginning, :id => "range_beginning" %> <%= link_to('-∞', 'javascript:void(0)', :onClick => "jQuery( '#range_beginning' ).val('-INF');") %>
+ |
+
+
+
+ <%= f.label :end, "(*) End:" %>
+ |
+
+ <%= required f.text_field(:end, :id => "range_end") %> <%= link_to('+∞', 'javascript:void(0)', :onClick => "jQuery( '#range_end' ).val('+INF');") %>
+ |
+
+
+
+ <%= f.label :comments, "(*) Comments:" %>
+ |
+
+ <%= required f.text_area :comments, :rows => 3 %>
+ |
+
+
+
+<%= f.submit "Save Range" %>
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_new.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_new.html.erb
new file mode 100644
index 0000000..1ae8d95
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/_new.html.erb
@@ -0,0 +1,3 @@
+<% remote_form_for :range, :url => {:action =>"create", :controller => "mezuro_plugin_range"}, :method => :get do |f| %>
+ <%= render :partial => "form", :locals => {:f => f} %>
+<% end %>
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_new_range.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_new_range.html.erb
deleted file mode 100644
index 2c3d554..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/_new_range.html.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-<% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_range"}, :method => :get do |f| %>
- <%= render :partial => "range_form", :locals => {:f => f} %>
-<% end %>
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_range.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_range.html.erb
index 7f99077..8994aec 100644
--- a/plugins/mezuro/views/mezuro_plugin_range/_range.html.erb
+++ b/plugins/mezuro/views/mezuro_plugin_range/_range.html.erb
@@ -13,9 +13,9 @@
|
<% if (not user.nil?) && user.id == @profile.id %>
- <%= link_to_remote "Edit", :url => {:action =>"edit_range", :controller => "mezuro_plugin_range", :id => params[:id], :metric_configuration_id => params[:metric_configuration_id], :range_id => range.id, :reading_group_id => reading_group_id} %>
+ | <%= link_to_remote "Edit", :url => {:action =>"edit", :controller => "mezuro_plugin_range", :id => params[:id], :metric_configuration_id => params[:metric_configuration_id], :range_id => range.id, :reading_group_id => reading_group_id} %>
|
- <%= link_to "Remove", :action =>"remove_range", :controller => "mezuro_plugin_range", :id => params[:id], :metric_configuration_id => params[:metric_configuration_id], :range_id => range.id, :compound => compound %>
+ | <%= link_to "Remove", :action =>"remove", :controller => "mezuro_plugin_range", :id => params[:id], :metric_configuration_id => params[:metric_configuration_id], :range_id => range.id, :compound => compound %>
|
<% else %>
|
diff --git a/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb
deleted file mode 100644
index ae44303..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb
+++ /dev/null
@@ -1,35 +0,0 @@
-<%= hidden_field_tag :id, @content_id %>
-<%= hidden_field_tag :metric_configuration_id, @metric_configuration_id %>
-
-<%= f.hidden_field :id %>
-
- <%= required labelled_form_field _('Label'),
- f.select(:reading_id, @reading_labels_and_ids) %>
-
-
-
- <%= f.label :beginning, "(*) Beginning:" %>
- |
-
- <%= required f.text_field :beginning, :id => "range_beginning" %> <%= link_to('-∞', 'javascript:void(0)', :onClick => "jQuery( '#range_beginning' ).val('-INF');") %>
- |
-
-
-
- <%= f.label :end, "(*) End:" %>
- |
-
- <%= required f.text_field(:end, :id => "range_end") %> <%= link_to('+∞', 'javascript:void(0)', :onClick => "jQuery( '#range_end' ).val('+INF');") %>
- |
-
-
-
- <%= f.label :comments, "(*) Comments:" %>
- |
-
- <%= required f.text_area :comments, :rows => 3 %>
- |
-
-
-
-<%= f.submit "Save Range" %>
diff --git a/plugins/mezuro/views/mezuro_plugin_range/create.rjs b/plugins/mezuro/views/mezuro_plugin_range/create.rjs
new file mode 100644
index 0000000..1df5f80
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/create.rjs
@@ -0,0 +1,6 @@
+if @error.nil?
+ page.visual_effect :toggle_slide, "form"
+ page.insert_html :bottom, "ranges", :partial => "range", :locals => {:range => @range}
+else
+ page.alert @error
+end
diff --git a/plugins/mezuro/views/mezuro_plugin_range/create_range.rjs b/plugins/mezuro/views/mezuro_plugin_range/create_range.rjs
deleted file mode 100644
index 73adfac..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/create_range.rjs
+++ /dev/null
@@ -1,6 +0,0 @@
-if @error.nil?
- page.visual_effect :toggle_slide, "range_form"
- page.insert_html :bottom, "ranges", :partial => "range", :locals => {:range => @range}
-else
- page.alert @error
-end
diff --git a/plugins/mezuro/views/mezuro_plugin_range/edit.rjs b/plugins/mezuro/views/mezuro_plugin_range/edit.rjs
new file mode 100644
index 0000000..db71861
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/edit.rjs
@@ -0,0 +1,3 @@
+page.replace_html 'form', :partial => "edit", :locals => {:range => @range}
+page.visual_effect :slide_down, "form"
+
diff --git a/plugins/mezuro/views/mezuro_plugin_range/edit_range.rjs b/plugins/mezuro/views/mezuro_plugin_range/edit_range.rjs
deleted file mode 100644
index 5ab796e..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/edit_range.rjs
+++ /dev/null
@@ -1,3 +0,0 @@
-page.replace_html 'range_form', :partial => "edit_range", :locals => {:range => @range}
-page.visual_effect :slide_down, "range_form"
-
diff --git a/plugins/mezuro/views/mezuro_plugin_range/new.rjs b/plugins/mezuro/views/mezuro_plugin_range/new.rjs
new file mode 100644
index 0000000..43bf549
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/new.rjs
@@ -0,0 +1,3 @@
+page.replace_html 'form', :partial => "new"
+page.visual_effect :slide_down, "form"
+
diff --git a/plugins/mezuro/views/mezuro_plugin_range/new_range.rjs b/plugins/mezuro/views/mezuro_plugin_range/new_range.rjs
deleted file mode 100644
index 2304740..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/new_range.rjs
+++ /dev/null
@@ -1,3 +0,0 @@
-page.replace_html 'range_form', :partial => "new_range"
-page.visual_effect :slide_down, "range_form"
-
diff --git a/plugins/mezuro/views/mezuro_plugin_range/update.rjs b/plugins/mezuro/views/mezuro_plugin_range/update.rjs
new file mode 100644
index 0000000..3000105
--- /dev/null
+++ b/plugins/mezuro/views/mezuro_plugin_range/update.rjs
@@ -0,0 +1,5 @@
+if @error.nil?
+ page.reload()
+else
+ page.alert @error
+end
diff --git a/plugins/mezuro/views/mezuro_plugin_range/update_range.rjs b/plugins/mezuro/views/mezuro_plugin_range/update_range.rjs
deleted file mode 100644
index 3000105..0000000
--- a/plugins/mezuro/views/mezuro_plugin_range/update_range.rjs
+++ /dev/null
@@ -1,5 +0,0 @@
-if @error.nil?
- page.reload()
-else
- page.alert @error
-end
--
libgit2 0.21.2