module PopulateMe::DocumentMixins::AdminAdapter

Public Class Methods

included(base) click to toggle source
# File lib/populate_me/document_mixins/admin_adapter.rb, line 61
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

admin_image_url() click to toggle source
# File lib/populate_me/document_mixins/admin_adapter.rb, line 9
def admin_image_url
  thefield = self.class.admin_image_field
  return nil if thefield.nil?
  self.attachment(thefield).url(:populate_me_thumb)
end
to_admin_form(o={}) click to toggle source
# File lib/populate_me/document_mixins/admin_adapter.rb, line 35
def to_admin_form o={}
  o[:input_name_prefix] ||= 'data'
  class_item = {
    type: :hidden,
    input_name: "#{o[:input_name_prefix]}[_class]",
    input_value: self.class.name,
  }
  self.class.complete_field_options :_class, class_item
  items = self.class.fields.inject([class_item]) do |out,(k,item)|
    if item[:form_field] and self.field_applicable?(k)
      out << outcast(k, item, o)
    end
    out
  end
  page_title = self.new? ? "New #{self.class.to_s_short}" : self.to_s
  # page_title << " (#{self.polymorphic_type})" if self.class.polymorphic?
  {
    template: "template#{'_nested' if o[:nested]}_form",
    page_title: page_title,
    admin_url: self.to_admin_url,
    is_new: self.new?,
    polymorphic_type: self.class.polymorphic? ? self.polymorphic_type : nil,
    fields: items
  }
end
to_admin_list_item(o={}) click to toggle source
# File lib/populate_me/document_mixins/admin_adapter.rb, line 15
def to_admin_list_item o={}
  {
    class_name: self.class.name,
    id: self.id.to_s,
    admin_url: to_admin_url,
    title: WebUtils.truncate(to_s, 60),
    image_url: admin_image_url,
    local_menu: self.class.relationships.inject([]) do |out,(k,v)|
      if not v[:hidden] and self.relationship_applicable?(k)
        out << {
          title: "#{v[:label]}",
          href: "#{o[:request].script_name}/list/#{WebUtils.dasherize_class_name(v[:class_name])}?filter[#{v[:foreign_key]}]=#{self.id}",
          new_page: false 
        }
      end
      out
    end
  }
end
to_admin_url() click to toggle source
# File lib/populate_me/document_mixins/admin_adapter.rb, line 5
def to_admin_url
  "#{WebUtils.dasherize_class_name(self.class.name)}/#{id}".sub(/\/$/,'')
end