Module: Locomotive::PagesHelper

Defined in:
app/helpers/locomotive/pages_helper.rb

Instance Method Summary collapse

Instance Method Details

#add_children_to_options(page, list) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'app/helpers/locomotive/pages_helper.rb', line 31

def add_children_to_options(page, list)
  return list if page.parent_ids.include?(@page.id) || page == @page

  offset = '- ' * (page.depth || 0) * 2

  list << ["#{offset}#{page.title}", page.id]
  page.children.each { |child| add_children_to_options(child, list) }
  list
end

#css_for_page(page) ⇒ Object



4
5
6
7
8
9
# File 'app/helpers/locomotive/pages_helper.rb', line 4

def css_for_page(page)
  %w(index not_found templatized redirect unpublished).inject([]) do |memo, state|
    memo << state.dasherize if page.send(:"#{state}?")
    memo
  end.join(' ')
end

#options_for_page_cache_strategyObject



48
49
50
51
52
53
54
55
56
57
# File 'app/helpers/locomotive/pages_helper.rb', line 48

def options_for_page_cache_strategy
  [
    [t('.cache_strategy.none'), 'none'],
    [t('.cache_strategy.simple'), 'simple'],
    [t('.cache_strategy.hour'), 1.hour.to_s],
    [t('.cache_strategy.day'), 1.day.to_s],
    [t('.cache_strategy.week'), 1.week.to_s],
    [t('.cache_strategy.month'), 1.month.to_s]
  ]
end

#options_for_page_redirect_typeObject



68
69
70
71
72
73
# File 'app/helpers/locomotive/pages_helper.rb', line 68

def options_for_page_redirect_type
  [
    [t('.redirect_type.permanent'), 301],
    [t('.redirect_type.temporary'), 302]
  ]
end

#options_for_page_response_typeObject



59
60
61
62
63
64
65
66
# File 'app/helpers/locomotive/pages_helper.rb', line 59

def options_for_page_response_type
  [
    ['HTML', 'text/html'],
    ['RSS', 'application/rss+xml'],
    ['XML', 'text/xml'],
    ['JSON', 'application/json']
  ]
end

#options_for_target_klass_nameObject



41
42
43
44
45
46
# File 'app/helpers/locomotive/pages_helper.rb', line 41

def options_for_target_klass_name
  base_models = current_site.content_types.map do |type|
    [type.name.humanize, type.klass_with_custom_fields(:entries)]
  end
  base_models + Locomotive.config.models_for_templatization.map { |name| [name.underscore.humanize, name] }
end

#page_main_template_path(page) ⇒ String

Give the path to the template of the page for the main locale ONLY IF the user does not already edit the page in the main locale.



86
87
88
89
90
91
92
# File 'app/helpers/locomotive/pages_helper.rb', line 86

def page_main_template_path(page)
  if not_the_default_current_locale?
    page_path(page, content_locale: current_site.default_locale, format: :json)
  else
    nil
  end
end

#page_response_type_to_string(page) ⇒ Object



75
76
77
# File 'app/helpers/locomotive/pages_helper.rb', line 75

def page_response_type_to_string(page)
  options_for_page_response_type.detect { |t| t.last == page.response_type }.try(:first) || '&mdash;'
end

#page_toggler(page) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'app/helpers/locomotive/pages_helper.rb', line 11

def page_toggler(page)
  icon_class = cookies["folder-#{page._id}"] != 'none' ? 'icon-caret-down' : 'icon-caret-right'
   :i, '',
    class:  "#{icon_class} toggler",
    data:   {
      open:   'icon-caret-down',
      closed: 'icon-caret-right'
    }
end

#parent_pages_optionsObject



21
22
23
24
25
26
27
28
29
# File 'app/helpers/locomotive/pages_helper.rb', line 21

def parent_pages_options
  roots = current_site.pages.roots.where(:slug.ne => '404').and(:_id.ne => @page.id)

  [].tap do |list|
    roots.each do |page|
      list = add_children_to_options(page, list)
    end
  end
end