module Documentation module ViewHelpers # # Path to edit a page in the manager UI # def documentation_edit_page_path(page) "#{::Documentation::Engine.mounted_path}/edit/#{page.full_permalink}" end # # Path to view a page in the manager UI # def documentation_page_path(page) "#{::Documentation::Engine.mounted_path}/#{page.try(:full_permalink)}" end # # Return a breadcrumb for the given page # def documentation_breadcrumb_for(page, options = {}) options[:root_link] = options[:root_link].nil? ? t('documentation.helpers.documentation_breadcrumb_for.default_root_link') : options[:root_link] options[:class] ||= 'breadcrumb' String.new.tap do |s| s << "" end.html_safe end # # Return a default navigation tree for the given page # def documentation_navigation_tree_for(page) String.new.tap do |s| s << "" end.html_safe end # # Return appropriate content for a given page # def documentation_content_for(page) # Get the content content = page.compiled_content.to_s # Insert navigation content.gsub!("

{{nav}}

") do children = page.children children = children.select { |c| documentation_authorizer.can_view_page?(c) } items = children.map { |c| "
  • #{c.title}
  • " }.join "" end # Set the document root as appropriate content.gsub!("{{docRoot}}", documentation_doc_root) # Return HTML safe content content.html_safe end # # Return the documentation document root # 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 # # Return the documentation authorizer # def documentation_authorizer @documentation_authorizer ||= Documentation.config.authorizer.new(controller) end # # Return summary information for search results # 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 # # Return the search results # def documentation_search_results(result, options = {}) options[:class] ||= 'searchResults' String.new.tap do |s| s << "" end.html_safe end # # Return search pagination links # def documentation_search_pagination(result, options = {}) 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 => [options[:link_class], options[: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 => [options[:link_class], options[:next_link_class]].compact.join(' ')) end end.html_safe end end end