Sha256: 06b403552f38146808a353e9995fc937c1aa1d8d3da528891347ce943cfd1260

Contents?: true

Size: 966 Bytes

Versions: 3

Compression:

Stored size: 966 Bytes

Contents

require_dependency Locomotive::Engine.root.join('app', 'models', 'locomotive', 'content_entry').to_s

Locomotive::ContentEntry.class_eval do
  include Locomotive::Search::Extension

  search_by :options_for_search

  def options_for_search
    store = [:search_type, :label, :_slug, :site_id, :content_type_slug]
    content_type.entries_custom_fields.where(searchable: true).map(&:name) << {
      store:  store,
      locale: proc { ::Mongoid::Fields::I18n.locale }
    }
  end

  def search_type
    self.content_type.name
  end

  def label
    self._label
  end

  def content_type_slug
    self.content_type.slug
  end

  def indexable_id
    if respond_to?(:site_id)
      "site_#{site_id}_#{content_type_slug}_#{id}"
    else
      "#{content_type_slug}_#{id}"
    end
  end

  alias_method :to_indexable_without_verbosity, :to_indexable

  def to_indexable(depth = 0)
    return self._label if depth > 0

    to_indexable_without_verbosity(depth)
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
locomotivecms-search-0.3.4 app/models/locomotive/content_entry.rb
locomotivecms-search-0.3.3 app/models/locomotive/content_entry.rb
locomotivecms-search-0.3.2 app/models/locomotive/content_entry.rb