[PATCH conductor] Error displayed after provider destroy fails

Imre Farkas ifarkas at redhat.com
Tue Dec 27 13:16:29 UTC 2011


On 12/19/2011 02:40 PM, Tomas Hrcka wrote:
> ---
>   src/app/controllers/providers_controller.rb |   13 ++++++++-----
>   src/config/locales/en.yml                   |    3 ++-
>   2 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/src/app/controllers/providers_controller.rb b/src/app/controllers/providers_controller.rb
> index 1d568f1..efd00b7 100644
> --- a/src/app/controllers/providers_controller.rb
> +++ b/src/app/controllers/providers_controller.rb
> @@ -20,7 +20,6 @@ class ProvidersController<  ApplicationController
>
>     def index
>       @params = params
> -
>       begin
>         @provider = Provider.find(session[:current_provider_id]) if session[:current_provider_id]
>       rescue ActiveRecord::RecordNotFound =>  exc
> @@ -32,7 +31,7 @@ class ProvidersController<  ApplicationController
>       respond_to do |format|
>         format.html do
>           if @providers.present?
> -          redirect_to edit_provider_path(@provider), :notice =>  flash[:notice]
> +          redirect_to edit_provider_path(@provider), :flash =>  { :notice =>  flash[:notice], :error =>  flash[:error] }

I would recommend using the flash.keep method here, making it a little 
bit more readable.

>           else
>             render :action =>  :index
>           end
> @@ -148,11 +147,15 @@ class ProvidersController<  ApplicationController
>     def destroy
>       provider = Provider.find(params[:id])
>       require_privilege(Privilege::MODIFY, provider)
> -    provider.destroy
> -    session[:current_provider_id] = nil
> +    if provider.destroy
> +      session[:current_provider_id] = nil
> +      flash[:notice] = t("providers.flash.notice.deleted")
> +    else
> +      flash[:error] = t("providers.flash.error.not_deleted", :errors =>  provider.errors)
> +    end
>
>       respond_to do |format|
> -      format.html { redirect_to providers_path, :notice =>  t("providers.index.deleted") }
> +      format.html { redirect_to providers_path }
>       end
>     end
>
> diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
> index 7189c5f..6d2d9d0 100644
> --- a/src/config/locales/en.yml
> +++ b/src/config/locales/en.yml
> @@ -886,7 +886,6 @@ en:
>         provider_type: Provider Type
>         x_deltacloud_driver: X-Deltacloud-Driver
>         x_deltacloud_provider: X-Deltacloud-Provider
> -      deleted: "Provider has been successfully deleted."
>         no_providers_available: No providers available. Please create one first.
>         create_new_provider: "Create New Provider"
>       new:
> @@ -913,9 +912,11 @@ en:
>           added: "Provider added."
>           updated: "Provider updated."
>           connected: "Successfully Connected to Provider"
> +        deleted: "Provider has been successfully deleted."
>         error:
>           not_added: "Cannot add the provider."
>           not_updated: "Cannot update the provider."
> +        not_deleted: "Provider was not deleted, because of errors %{errors}"
>         warning:
>           connect_failed: "Failed to connect to Provider!"
>       alerts:

ACK, just one inline note.



More information about the aeolus-devel mailing list