Module: Documentation::ViewHelpers
- Included in:
- ApplicationHelper
- Defined in:
- lib/documentation/view_helpers.rb
Instance Method Summary collapse
-
#documentation_authorizer ⇒ Object
Return the documentation authorizer.
-
#documentation_breadcrumb_for(page, options = {}) ⇒ Object
Return a breadcrumb for the given page.
-
#documentation_content_for(page) ⇒ Object
Return appropriate content for a given page.
-
#documentation_doc_root ⇒ Object
Return the documentation document root.
-
#documentation_edit_page_path(page) ⇒ Object
Path to edit a page in the manager UI.
-
#documentation_navigation_tree_for(page, options = {}) ⇒ Object
Return a default navigation tree for the given page.
-
#documentation_page_path(page) ⇒ Object
Path to view a page in the manager UI.
-
#documentation_search_pagination(result, options = {}) ⇒ Object
Return search pagination links.
-
#documentation_search_results(result, options = {}) ⇒ Object
Return the search results.
-
#documentation_search_summary(result) ⇒ Object
Return summary information for search results.
Instance Method Details
#documentation_authorizer ⇒ Object
Return the documentation authorizer
131 132 133 |
# File 'lib/documentation/view_helpers.rb', line 131 def @documentation_authorizer ||= Documentation.config..new(controller) end |
#documentation_breadcrumb_for(page, options = {}) ⇒ Object
Return a breadcrumb for the given page
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/documentation/view_helpers.rb', line 21 def (page, = {}) [:root_link] = [:root_link].nil? ? t('documentation.helpers.documentation_breadcrumb_for.default_root_link') : [:root_link] [:class] ||= 'breadcrumb' String.new.tap do |s| s << "<nav class='#{[:class]}'><ul>" if [:root_link] s << "<li><a href='#{documentation_doc_root.blank? ? '/' : documentation_doc_root}'>#{[:root_link]}</a></li>" end if page.is_a?(::Documentation::Page) page..each do |child| s << "<li><a href='#{documentation_doc_root}/#{child.full_permalink}'>#{child.title}</a></li>" end end s << "</ul></nav>" end.html_safe end |
#documentation_content_for(page) ⇒ Object
Return appropriate content for a given page
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/documentation/view_helpers.rb', line 96 def documentation_content_for(page) # Get the content content = page.compiled_content.to_s # Insert navigation content.gsub!("<p class=''>{{nav}}</p>") do children = page.children children = children.select { |c| .can_view_page?(c) } items = children.map { |c| "<li><a href='#{documentation_doc_root}/#{c.full_permalink}'>#{c.title}</a></li>" }.join "<ul class='pages'>#{items}</ul>" end # Set the document root as appropriate content.gsub!("{{docRoot}}", documentation_doc_root) # Return HTML safe content content.html_safe end |
#documentation_doc_root ⇒ Object
Return the documentation document root
118 119 120 121 122 123 124 125 126 |
# File 'lib/documentation/view_helpers.rb', line 118 def documentation_doc_root @documentation_doc_root ||= begin if controller.is_a?(Documentation::ApplicationController) ::Documentation::Engine.mounted_path.to_s.sub(/\/$/, '') else ::Documentation.config.preview_path_prefix.to_s.sub(/\/$/, '') end end end |
#documentation_edit_page_path(page) ⇒ Object
Path to edit a page in the manager UI
7 8 9 |
# File 'lib/documentation/view_helpers.rb', line 7 def documentation_edit_page_path(page) "#{::Documentation::Engine.mounted_path}/edit/#{page.full_permalink}" end |
#documentation_navigation_tree_for(page, options = {}) ⇒ Object
Return a default navigation tree for the given page
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/documentation/view_helpers.rb', line 45 def (page, = {}) active_page_type = nil items = String.new.tap do |s| if page.is_a?(::Documentation::Page) pages = page..select { |p,c| .can_view_page?(p) } pages.each do |p, children| s << "<li>" s << "<a #{page == p ? "class='active'" : ''} href='#{documentation_doc_root}/#{p.full_permalink}'>#{p.title}</a>" active_page_type = :root if page == p unless children.empty? s << "<ul>" children.select { |c| .can_view_page?(c) }.each do |p| s << "<li><a #{page == p ? "class='active'" : ''} href='#{documentation_doc_root}/#{p.full_permalink}'>#{p.title}</a></li>" active_page_type = :child if page == p end s << "</ul>" end s << "</li>" end else ::Documentation::Page.roots.select { |p| .can_view_page?(p) }.each do |page| s << "<li><a href='#{documentation_doc_root}/#{page.full_permalink}'>#{page.title}</a></li>" end end end String.new.tap do |output| output << "<ul>" if [:include_back] && page..size > 1 if active_page_type == :root && page.has_children? back_page = page.[-2] elsif active_page_type == :child && !page.has_children? back_page = page.[-3] else back_page = nil end if back_page output << "<li class='back'><a href='#{documentation_doc_root}/#{back_page.full_permalink}'>← Back to #{back_page.title}</a></li>" end end output << items output << "</ul>" end.html_safe end |
#documentation_page_path(page) ⇒ Object
Path to view a page in the manager UI
14 15 16 |
# File 'lib/documentation/view_helpers.rb', line 14 def documentation_page_path(page) "#{::Documentation::Engine.mounted_path}/#{page.try(:full_permalink)}" end |
#documentation_search_pagination(result, options = {}) ⇒ Object
Return search pagination links
167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'lib/documentation/view_helpers.rb', line 167 def documentation_search_pagination(result, = {}) String.new.tap do |s| unless result.first_page? querystring = {:query => result.query, :page => result.page - 1}.to_query s << link_to(t('documentation.helpers.documentation_search_pagination.previous'), "#{documentation_doc_root}/search?#{querystring}", :class => [[:link_class], [:previous_link_class]].compact.join(' ')) end unless result.last_page? querystring = {:query => result.query, :page => result.page + 1}.to_query s << link_to(t('documentation.helpers.documentation_search_pagination.next'), "#{documentation_doc_root}/search?#{querystring}", :class => [[:link_class], [:next_link_class]].compact.join(' ')) end end.html_safe end |
#documentation_search_results(result, options = {}) ⇒ Object
Return the search results
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/documentation/view_helpers.rb', line 145 def documentation_search_results(result, = {}) [:class] ||= 'searchResults' String.new.tap do |s| s << "<ul class='#{[:class]}'>" result.results.each do |page| s << "<li>" s << "<h4><a href='#{documentation_doc_root}/#{page.full_permalink}'>#{page.title}</a></h4>" unless page.parents.empty? s << "<p class='in'>#{t('documentation.helpers.documentation_search_results.in')} " s << page.parents.map { |c| link_to(h(c.title), "#{documentation_doc_root}/#{c.full_permalink}")}.join(" ⇒ ").html_safe s << "</p>" end s << "<p class='excerpt'>#{result.excerpt_for(page)}</p>" s << "</li>" end s << "</ul>" end.html_safe end |
#documentation_search_summary(result) ⇒ Object
Return summary information for search results
138 139 140 |
# File 'lib/documentation/view_helpers.rb', line 138 def documentation_search_summary(result) t('documentation.helpers.documentation_search_summary.text', :total_results => result.total_results, :start_result => result.start_result_number, :end_result => result.end_result_number, :query => result.query) end |