Class: ActiveadminSelleoCms::Section

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
ContentTranslation
Defined in:
app/models/activeadmin_selleo_cms/section.rb

Defined Under Namespace

Classes: Translation

Instance Method Summary collapse

Methods included from ContentTranslation

#create_missing_translations, included, #initialize_missing_translations, #translated_attribute

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args) ⇒ Object



91
92
93
94
95
96
97
# File 'app/models/activeadmin_selleo_cms/section.rb', line 91

def method_missing(sym, *args)
  if layout_section and layout_section.respond_to? sym
    layout_section.send(sym)
  else
    super
  end
end

Instance Method Details

#attachmentObject



39
40
41
# File 'app/models/activeadmin_selleo_cms/section.rb', line 39

def attachment
  current_translation.attachment
end

#attachmentsObject



43
44
45
# File 'app/models/activeadmin_selleo_cms/section.rb', line 43

def attachments
  current_translation.attachments
end

#current_translationObject



31
32
33
# File 'app/models/activeadmin_selleo_cms/section.rb', line 31

def current_translation
  translations.with_locales(I18n.fallbacks[I18n.locale]).first
end

#imageObject



35
36
37
# File 'app/models/activeadmin_selleo_cms/section.rb', line 35

def image
  current_translation.image
end

#imagesObject



47
48
49
# File 'app/models/activeadmin_selleo_cms/section.rb', line 47

def images
  current_translation.images
end

#layout_sectionObject



87
88
89
# File 'app/models/activeadmin_selleo_cms/section.rb', line 87

def layout_section
  @layout_section ||= layout ? layout.find_section(name) : nil
end


51
52
53
# File 'app/models/activeadmin_selleo_cms/section.rb', line 51

def related_items
  current_translation.related_items
end

#render(editing = false) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'app/models/activeadmin_selleo_cms/section.rb', line 55

def render(editing=false)
  doc = Nokogiri::HTML(body.to_s)

  unless editing
    av = ActionView::Base.new
    av.instance_eval do
      def protect_against_forgery?
        false
      end
    end

    doc.css('form[data-form-id]').each do |form_tag|
      if form = Form.find_by_id(form_tag.attributes["data-form-id"].to_s)
        form_tag.replace av.render(:file => File.join(ActiveadminSelleoCms::Engine.root, 'app/views/forms/_form'), :layout => nil, :locals => { :form => form })
      end
    end
  end

  doc.to_s.html_safe
end

#to_sObject



76
77
78
79
80
81
82
83
84
85
# File 'app/models/activeadmin_selleo_cms/section.rb', line 76

def to_s
  section_definition = sectionable.layout.find_section(name) if sectionable and sectionable.respond_to? :layout
  if section_definition
    if section_definition.text?
      render
    elsif section_definition.image?
      image ? image.url : ""
    end
  end
end

#toolbarObject



23
24
25
26
27
28
29
# File 'app/models/activeadmin_selleo_cms/section.rb', line 23

def toolbar
  case name
    when /blurb\./ then "Easy"
    when /help\./ then "Lite"
    else "Easy"
  end
end