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