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.

Parameters:

  • page (Object)

    The page

Returns:

  • (String)

    The path or nil if the main locale is enabled



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