From: Jan Provaznik <[email protected]>

* html_error_page chose layout by @layout, but @layout is nil when error
  occurs (for example in controller) and then popup-error.rhtml template
  is used (this template should be used for ajax-requests, shouldn't be?)
  -> request.xhr? is used instead of @layout
* when @layout was set, html_error_page set only layout and not template, so
  error wasn't displayed
  -> added simple layout/error.rhtml
* passing of title and errmsg is now done with :locals, passing
  with @title and @errmsg doesn't work, if TemplateError occurs (for example
  use of undefined variable in template)
---
 src/app/controllers/application_controller.rb |   10 +++++-----
 src/app/views/layouts/error.rhtml             |    4 ++++
 src/app/views/layouts/popup-error.rhtml       |    4 ++--
 3 files changed, 11 insertions(+), 7 deletions(-)
 create mode 100644 src/app/views/layouts/error.rhtml

diff --git a/src/app/controllers/application_controller.rb 
b/src/app/controllers/application_controller.rb
index a563d57..0bc3ca7 100644
--- a/src/app/controllers/application_controller.rb
+++ b/src/app/controllers/application_controller.rb
@@ -111,12 +111,12 @@ class ApplicationController < ActionController::Base
   end
 
   def html_error_page(title, msg)
-    @title = title
-    @errmsg = msg
-    if @layout
-      render :layout => 'aggregator'
+    if request.xhr?
+      render :template => 'layouts/popup-error', :layout => 'popup',
+             :locals => {:title => title, :errmsg => msg}
     else
-      render :template => 'layouts/popup-error', :layout => 'popup'
+      render :template => 'layouts/error', :layout => 'aggregator',
+             :locals => {:title => title, :errmsg => msg}
     end
   end
 
diff --git a/src/app/views/layouts/error.rhtml 
b/src/app/views/layouts/error.rhtml
new file mode 100644
index 0000000..094c13a
--- /dev/null
+++ b/src/app/views/layouts/error.rhtml
@@ -0,0 +1,4 @@
+<%- content_for :title do -%>
+  <%= title %>
+<%- end -%>
+<%= errmsg  %>
diff --git a/src/app/views/layouts/popup-error.rhtml 
b/src/app/views/layouts/popup-error.rhtml
index 8e58a31..094c13a 100644
--- a/src/app/views/layouts/popup-error.rhtml
+++ b/src/app/views/layouts/popup-error.rhtml
@@ -1,4 +1,4 @@
 <%- content_for :title do -%>
-  <%= @title %>
+  <%= title %>
 <%- end -%>
-<%= @errmsg  %>
+<%= errmsg  %>
-- 
1.7.0.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to