Jiri Suchomel napsal(a):
> ref: refs/heads/master
> commit fbd826698582334e4b1e360ba91f09e50f54e933
> Author: Jiri Suchomel <[email protected]>
> Date:   Fri Oct 2 11:47:49 2009 +0200
> 
>     catch administrator module error
> ---
>  .../app/controllers/administrator_controller.rb    |    6 ++++++
>  .../views/shared/backendexception_trap.html.erb    |    2 +-
>  webclient/lib/error_constructor.rb                 |    5 ++++-
>  3 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git 
> a/plugins/administrator/app/controllers/administrator_controller.rb 
> b/plugins/administrator/app/controllers/administrator_controller.rb
> index 6d63764..39b7720 100644
> --- a/plugins/administrator/app/controllers/administrator_controller.rb
> +++ b/plugins/administrator/app/controllers/administrator_controller.rb
> @@ -61,6 +61,12 @@ class AdministratorController < ApplicationController
>        response = @administrator.save
>        rescue ActiveResource::ClientError => e
>          flash[:error] = YaST::ServiceResource.error(e)
> +     logger.warn e.inspect
> +      # handle backend exception here, not by generic handler:
> +      rescue ActiveResource::ServerError => e
> +     error = Hash.from_xml e.response.body
> +     logger.warn error.inspect
> +        flash[:error] = _("Error while savig administrator settings: 
> #{error["error"]["output"]}")

Hi, this has same problem as I say yesterday to mzugec. This is good but
you don't expect any other exception which could backend raise like
permission problems.
So I suggest same as in network
if error["error"] && error["error"]["type"] == ADMINISTRATOR_ERROR
flash[:error] = _("Error while savig administrator settings:
#{error["error"]["output"]}")
else
        raise e #don't handle exception which is not related to setting
administrator
end

JFYI typo in saving

>      end
>  
>      if params.has_key? "commit"
> diff --git a/webclient/app/views/shared/backendexception_trap.html.erb 
> b/webclient/app/views/shared/backendexception_trap.html.erb
> index 1fa97b6..6e643bf 100644
> --- a/webclient/app/views/shared/backendexception_trap.html.erb
> +++ b/webclient/app/views/shared/backendexception_trap.html.erb
> @@ -1,7 +1,7 @@
>  
>  <h1><%= _("This is embarrasing....") %></h1>
>  
> -<p><%= _("Problem occur on target machine.") %></p>
> +<p><%= _("Problem occured on target machine.") %></p>
>  
>  <h3><%= _("Problem:") %></h3>
>  
> diff --git a/webclient/lib/error_constructor.rb 
> b/webclient/lib/error_constructor.rb
> index 0876f58..5504b70 100644
> --- a/webclient/lib/error_constructor.rb
> +++ b/webclient/lib/error_constructor.rb
> @@ -19,7 +19,10 @@ module ErrorConstructor
>        if error["output"]=="NOSERVERS" #special value indicates that there is 
> no predefined ntp server
>          problem = _("There is no predefined ntp server at 
> /etc/sysconfig/network/config - NETCONFIG_NTP_STATIC_SERVERS")
>        end
> -      return _("Error occure during ntp synchronization: #{problem}")
> +      return _("Error occured during ntp synchronization: #{problem}")
> +    when "ADMINISTRATOR_ERROR"
> +      problem = error["output"]
> +      return _("Error while savig administrator settings: #{problem}")
>      else
>        RAILS_DEFAULT_LOGGER.warn "Untranslated message for exception 
> #{error["type"]}"
>        return error["description"]

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to