[PATCH] RM#3634 Ensure that all error messages (i.e. flash messages on the top of the page) are user understandable

Tomáš Hrčka thrcka at redhat.com
Mon Aug 13 11:09:55 UTC 2012


---
 src/app/controllers/deployments_controller.rb |  7 +++----
 src/app/controllers/images_controller.rb      | 10 ++++++++--
 src/config/locales/en.yml                     |  4 ++++
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/app/controllers/deployments_controller.rb b/src/app/controllers/deployments_controller.rb
index d9ec800..e7692eb 100644
--- a/src/app/controllers/deployments_controller.rb
+++ b/src/app/controllers/deployments_controller.rb
@@ -155,9 +155,7 @@ class DeploymentsController < ApplicationController
       if @deployment.create_and_launch(current_session, current_user)
         format.html do
           flash[:notice] = t "deployments.flash.notice.launched"
-          if @deployment.errors.present?
-            flash[:error] = @deployment.errors.full_messages
-          end
+          flash[:error] = @deployment.errors.full_messages if @deployment.errors.present?
           redirect_to deployment_path(@deployment)
         end
         format.js { render :partial => 'properties' }
@@ -172,6 +170,7 @@ class DeploymentsController < ApplicationController
         # TODO: put deployment's errors into flash or display inside page?
         format.html do
           flash.now[:warning] = t "deployments.flash.warning.failed_to_launch"
+          flash.now[:error] = @deployment.errors.full_messages if @deployment.errors.present?
           render :action => 'overview'
         end
         format.js { render :partial => 'overview' }
@@ -264,7 +263,7 @@ class DeploymentsController < ApplicationController
         flash[:error] = t('deployments.flash.error.not_deleted', :list => deployment.name, :count => 1)
       end
     else
-      flash[:error] = t('deployments.flash.error.not_deleted', :list => deployment.name, :count => 1)
+      flash[:error] = t('deployments.flash.error.not_deleted_perms', :list => deployment.name, :count => 1)
     end
     respond_to do |format|
       format.js do
diff --git a/src/app/controllers/images_controller.rb b/src/app/controllers/images_controller.rb
index c3ca98c..e180613 100644
--- a/src/app/controllers/images_controller.rb
+++ b/src/app/controllers/images_controller.rb
@@ -213,7 +213,14 @@ class ImagesController < ApplicationController
   def edit_xml
     @environment = PoolFamily.find(params[:environment])
     check_permissions
-    @name = params[:name]
+    @accounts = @environment.provider_accounts.enabled.
+        list_for_user(current_session, current_user, Privilege::USE)
+    if params[:name] == ""
+      flash.now[:error] = t('images.flash.error.no_name')
+      render :new and return
+    else
+      @name = params[:name]
+    end
 
     if params.has_key? :image_url
       url = params[:image_url]
@@ -281,7 +288,6 @@ class ImagesController < ApplicationController
     if params.has_key? :back
       render :edit_xml and return
     end
-
     errors = TemplateXML.validate(@xml)
     if errors.any?
       flash.now[:error] = errors
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index 9ae82e4..e3586fa 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -395,6 +395,9 @@ en:
         not_deleted:
           one: "The deployment %{list} could not be deleted."
           other: "The deployments %{list} could not be deleted."
+        not_deleted_perms:
+          one: "Insufficient permissions to delete deployment %{list}!"
+          other: "Insufficient permissions to delete deployments %{list}!"
         none_selected: "You must select one or more deployments."
         not_updated:
           one: "The deployment %{list} could not be updated."
@@ -943,6 +946,7 @@ en:
         not_found: Image not found
       error:
         invalid_url: Could not load the provided URL
+        no_name: You must specify name
         no_file: You must specify the template XML file
         no_template: "The image doesn't have a template because it's been imported."
         no_provider_accounts: "Images cannot be built, as there are no enabled Provider Accounts associated to this Environment."
-- 
1.7.11.2




More information about the aeolus-devel mailing list