diff --git a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb index fba9b0e..b577697 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb @@ -2,11 +2,17 @@ class MezuroPluginMyprofileController < ProfileController append_view_path File.join(File.dirname(__FILE__) + '/../views') - + rescue_from Exception do |exception| + message = URI.escape(CGI.escape(exception.message),'.') + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}" + end + + def error_page + end + def choose_base_tool @configuration_content = profile.articles.find(params[:id]) @base_tools = Kalibro::BaseTool.all_names - @base_tools = [] if @base_tools.first.is_a? Exception end def choose_metric @@ -15,17 +21,17 @@ class MezuroPluginMyprofileController < ProfileController base_tool = Kalibro::BaseTool.find_by_name(@base_tool) @supported_metrics = base_tool.nil? ? [] : base_tool.supported_metrics end - + def new_metric_configuration @configuration_content = profile.articles.find(params[:id]) @metric = Kalibro::BaseTool.find_by_name(params[:base_tool]).metric params[:metric_name] end - + def new_compound_metric_configuration @configuration_content = profile.articles.find(params[:id]) @metric_configurations = @configuration_content.metric_configurations end - + def edit_metric_configuration @configuration_content = profile.articles.find(params[:id]) @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name]) diff --git a/plugins/mezuro/lib/kalibro/base_tool.rb b/plugins/mezuro/lib/kalibro/base_tool.rb index 98e4c48..a57e16e 100644 --- a/plugins/mezuro/lib/kalibro/base_tool.rb +++ b/plugins/mezuro/lib/kalibro/base_tool.rb @@ -3,19 +3,11 @@ class Kalibro::BaseTool < Kalibro::Model attr_accessor :name, :description, :supported_metric def self.all_names - begin - request("BaseTool", :get_base_tool_names)[:base_tool_name].to_a - rescue Exception => exception - [exception] - end + request("BaseTool", :get_base_tool_names)[:base_tool_name].to_a end def self.find_by_name(base_tool_name) - begin - new request("BaseTool", :get_base_tool, {:base_tool_name => base_tool_name})[:base_tool] - rescue Exception - nil - end + new request("BaseTool", :get_base_tool, {:base_tool_name => base_tool_name})[:base_tool] end def supported_metric=(value) diff --git a/plugins/mezuro/lib/kalibro/configuration.rb b/plugins/mezuro/lib/kalibro/configuration.rb index 720c014..2b72369 100644 --- a/plugins/mezuro/lib/kalibro/configuration.rb +++ b/plugins/mezuro/lib/kalibro/configuration.rb @@ -21,7 +21,7 @@ class Kalibro::Configuration < Kalibro::Model def self.find_by_name(configuration_name) begin new request("Configuration", :get_configuration, {:configuration_name => configuration_name})[:configuration] - rescue Exception => error + rescue Exception nil end end diff --git a/plugins/mezuro/lib/kalibro/model.rb b/plugins/mezuro/lib/kalibro/model.rb index e2f94b1..b48ebc1 100644 --- a/plugins/mezuro/lib/kalibro/model.rb +++ b/plugins/mezuro/lib/kalibro/model.rb @@ -60,11 +60,11 @@ class Kalibro::Model end def destroy - # begin + begin self.class.request(destroy_endpoint, destroy_action, destroy_params) - #rescue Exception => exception - # add_error exception - #end + rescue Exception => exception + add_error exception + end end protected diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/error_page.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/error_page.html.erb new file mode 100644 index 0000000..8d9f941 --- /dev/null +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/error_page.html.erb @@ -0,0 +1,3 @@ +