Sha256: a9f66e7a8a8b99b5dcb8f985a09a54dac5740637a2c92b82156b3b1fe11e6660

Contents?: true

Size: 1.79 KB

Versions: 2

Compression:

Stored size: 1.79 KB

Contents

ActiveScaffold::DataStructures::Column.class_eval do
  attr_accessor :file_column_display
end

module ActiveScaffold::Config
  class Core < Base
    attr_accessor :file_column_fields
    def initialize_with_file_column(model_id)
      initialize_without_file_column(model_id)
      
      return unless ActiveScaffold::Bridges::FileColumn::FileColumnHelpers.klass_has_file_column_fields?(self.model)
      
      self.model.send :extend, ActiveScaffold::Bridges::FileColumn::FileColumnHelpers
      
      # include the "delete" helpers for use with active scaffold, unless they are already included
      self.model.generate_delete_helpers
      
      # switch on multipart
      self.update.multipart = true
      self.create.multipart = true
      
      self.model.file_column_fields.each{ |field|
        configure_file_column_field(field)
      }
    end
    
    alias_method_chain :initialize, :file_column unless self.instance_methods.include?("initialize_without_file_column".send(::ActiveScaffold::METHOD_CONVERSION))
    
    def configure_file_column_field(field)
      # set list_ui first because it gets its default value from form_ui
      self.columns[field].list_ui ||= self.model.field_has_image_version?(field, "thumb") ? :thumbnail : :download_link_with_filename
      self.columns[field].form_ui ||= :file_column
      
      # these 2 parameters are necessary helper attributes for the file column that must be allowed to be set to the model by active scaffold.
      self.columns[field].params.add "#{field}_temp", "delete_#{field}"
      
      # set null to false so active_scaffold wont set it to null
      # delete_file_column will take care of deleting a file or not.
      self.model.columns_hash[field.to_s].instance_variable_set("@null", false)
      
    rescue
      false
    end
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_scaffold-3.3.0 lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb
active_scaffold-3.2.20 lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb