app/controllers/admin/pages_controller.rb in radiant-1.0.0.rc2 vs app/controllers/admin/pages_controller.rb in radiant-1.0.0.rc3
- old
+ new
@@ -1,8 +1,14 @@
class Admin::PagesController < Admin::ResourceController
before_filter :initialize_meta_rows_and_buttons, :only => [:new, :edit, :create, :update]
before_filter :count_deleted_pages, :only => [:destroy]
+
+ class PreviewStop < ActiveRecord::Rollback
+ def message
+ 'Changes not saved!'
+ end
+ end
responses do |r|
r.plural.js do
@level = params[:level].to_i
@template_name = 'index'
@@ -23,11 +29,11 @@
response_for :new
end
def preview
render_preview
- rescue => exception
+ rescue PreviewStop => exception
render :text => exception.message unless @performed_render
end
private
def assign_page_attributes
@@ -57,14 +63,18 @@
else
page = page_class.new(params[:page])
page.published_at = page.updated_at = page.created_at = Time.now
page.parent = Page.find($1) if request.referer =~ %r{/admin/pages/(\d+)/children/new}
end
- page.process(request,response)
- @performed_render = true
- raise 'Changes not saved!'
+ process_with_exception(page)
end
end
+ end
+
+ def process_with_exception(page)
+ page.process(request, response)
+ @performed_render = true
+ raise PreviewStop
end
def count_deleted_pages
@count = model.children.count + 1
end