Module: Locomotive::PagesHelper
- Defined in:
- app/helpers/locomotive/pages_helper.rb
Instance Method Summary collapse
- #add_children_to_options(page, list) ⇒ Object
- #css_for_page(page) ⇒ Object
- #options_for_page_cache_strategy ⇒ Object
- #options_for_page_redirect_type ⇒ Object
- #options_for_page_response_type ⇒ Object
- #options_for_target_klass_name ⇒ Object
-
#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.
- #page_response_type_to_string(page) ⇒ Object
- #page_toggler(page) ⇒ Object
- #parent_pages_options ⇒ Object
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 (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| (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_strategy ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'app/helpers/locomotive/pages_helper.rb', line 48 def [ [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_type ⇒ Object
68 69 70 71 72 73 |
# File 'app/helpers/locomotive/pages_helper.rb', line 68 def [ [t('.redirect_type.permanent'), 301], [t('.redirect_type.temporary'), 302] ] end |
#options_for_page_response_type ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'app/helpers/locomotive/pages_helper.rb', line 59 def [ ['HTML', 'text/html'], ['RSS', 'application/rss+xml'], ['XML', 'text/xml'], ['JSON', 'application/json'] ] end |
#options_for_target_klass_name ⇒ Object
41 42 43 44 45 46 |
# File 'app/helpers/locomotive/pages_helper.rb', line 41 def 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) .detect { |t| t.last == page.response_type }.try(:first) || '—' 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 = ["folder-#{page._id}"] != 'none' ? 'icon-caret-down' : 'icon-caret-right' content_tag :i, '', :class => "#{icon_class} toggler", :data => { :open => 'icon-caret-down', :closed => 'icon-caret-right' } end |
#parent_pages_options ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'app/helpers/locomotive/pages_helper.rb', line 21 def roots = current_site.pages.roots.where(:slug.ne => '404').and(:_id.ne => @page.id) [].tap do |list| roots.each do |page| list = (page, list) end end end |