lib/gollum/frontend/views/pages.rb in gollum-2.0.0 vs lib/gollum/frontend/views/pages.rb in gollum-2.1.0
- old
+ new
@@ -1,11 +1,59 @@
+require "pathname"
+
module Precious
module Views
class Pages < Layout
attr_reader :results, :ref
def title
"All pages in #{@ref}"
+ end
+
+ def breadcrumb
+ if @path
+ path = Pathname.new(@path)
+ breadcrumb = [%{<a href="#{@base_url}pages/">Home</a>}]
+ path.descend do |crumb|
+ title = crumb.basename
+
+ if title == path.basename
+ breadcrumb << title
+ else
+ breadcrumb << %{<a href="#{@base_url}pages/#{crumb}/">#{title}</a>}
+ end
+ end
+
+ breadcrumb.join(" / ")
+ else
+ "Home"
+ end
+ end
+
+ def files_folders
+ if has_results
+ folder_links = []
+
+ @results.map { |page|
+ page_path = page.path.sub(/^#{@path}\//,'')
+
+ if page_path.include?('/')
+ folder = page_path.split('/').first
+ folder_path = @path ? "#{@path}/#{folder}" : folder
+ folder_link = %{<li><a href="#{@base_url}pages/#{folder_path}/" class="folder">#{folder}</a></li>}
+
+ unless folder_links.include?(folder_link)
+ folder_links << folder_link
+
+ folder_link
+ end
+ elsif page_path != ".gitkeep"
+ %{<li><a href="#{@base_url}#{page.escaped_url_path}" class="file">#{page.name}</a></li>}
+ end
+ }.compact.join("\n")
+ else
+ ""
+ end
end
def has_results
!@results.empty?
end