Sha256: b4c0af795ca2614cce62df44a2e645255a35c814ce758b4f42461c5354171bc3

Contents?: true

Size: 1.74 KB

Versions: 96

Compression:

Stored size: 1.74 KB

Contents

# 
# Works with acts_as_revisionable plugin
# 
module ActiveScaffold::Actions
  module Revision
    def self.included(base)
      base.before_filter :revision_authorized?, :only => :revision
    end

    def revision
      do_revision

      successful?
      respond_to do |type|
        type.html { render :action => 'revision', :layout => true }
        type.js { render :partial => 'revision', :layout => false }
        type.xml { render :xml => response_object.to_xml, :content_type => Mime::XML, :status => response_status }
        type.json { render :text => response_object.to_json, :content_type => Mime::JSON, :status => response_status }
        type.yaml { render :text => response_object.to_yaml, :content_type => Mime::YAML, :status => response_status }
      end
    end

    def next_revision
      @revision_number = params[:revision_number].to_i + 2 if params[:revision_number]
      revision
    end
    
    def previous_revision
      @revision_number = params[:revision_number].to_i - 2 if params[:revision_number]
      revision
    end
    
    protected

    # A simple method to retrieve and prepare a record for revisioning.
    # May be overridden to customize revision routine
    def do_revision
      @record = find_if_allowed(params[:id], :read)
      @current_revision_number = @record.current_revision_number
      @revision_number ||= @current_revision_number
      @rev_record_1 = @record.restore_revision(@revision_number) if @revision_number
      @rev_record_2 = @record.restore_revision(@revision_number - 1) if @revision_number > 1
    end

    # The default security delegates to ActiveRecordPermissions.
    # You may override the method to customize.
    def revision_authorized?
      authorized_for?(:action => :read)
    end
  end
end

Version data entries

96 entries across 96 versions & 1 rubygems

Version Path
six-updater-web-0.24.15 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.14 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.13 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.12 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.11 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.10 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.9 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.8 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.7 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.6 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.5 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.4 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.3 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.2 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.1 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.24.0 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.23.7 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.23.6 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.23.5 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb
six-updater-web-0.23.4 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/revision.rb