Sha256: c7070b9dc1fe177651c3e36b2e6edfaf71c4ecccd4522ead8605568cbcf53329

Contents?: true

Size: 1.68 KB

Versions: 2

Compression:

Stored size: 1.68 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 FileColumnHelpers.klass_has_file_column_fields?(self.model)
      
      self.model.send :extend, 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")
    
    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
brisk-bills-0.8.2 vendor/plugins/active_scaffold/lib/bridges/file_column/lib/as_file_column_bridge.rb
brisk-bills-0.8.1 vendor/plugins/active_scaffold/lib/bridges/file_column/lib/as_file_column_bridge.rb