Sha256: d038c53a8d054f2965d744c6570cc63341275cc562f99a52da80ffc627f2d1e9

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

class Skyline::MediaFileObserver < ActiveRecord::Observer
  def after_save(media_file)
    index(media_file)
  end
  
  def index(media_file)
    return unless %w{pdf word excel powerpoint}.include?(media_file.file_type)
    indexer = Skyline::Indexer.instance
    solr_id = "#{media_file.class.name}-#{media_file.id}"
    
    fields = {"ext.literal.id" => solr_id,
              "ext.literal.title" => "#{media_file.title}", 
              "ext.literal.url" => "#{media_file.url}",
              "ext.literal.cat" => "#{media_file.class.name}",
              "ext.literal.documentdate" => media_file.date.present? ? media_file.date.to_time.utc.iso8601(3) : nil,
              "ext.literal.tags_multi" => media_file.tags.collect{|t| t.tag},
              "ext.literal.description_s" => media_file.description,
              "ext.literal.file_type_s"=>media_file.file_type,
              "ext.idx.attr" => "true",
              "ext.def.fl" => "body",
              "stream.file" => "#{media_file.file_path}"}
                
	  indexer.add_file_index(fields)
  end
  
  def after_destroy(media_file)
    indexer = Skyline::Indexer.instance
    solr_id = "#{media_file.class.name}-#{media_file.id}"
    
    indexer.remove_from_index(solr_id)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
skylinecms-3.0.8 app/observers/skyline/media_file_observer.rb
skylinecms-3.0.7 app/observers/skyline/media_file_observer.rb