Commit e60185699b0cd34fe3ae37db6db318478232c84b

Authored by Robert Speicher
1 parent b1be377f

Add 'breadcrumbs' helper for Commit breadcrumb links

Closes #1731
app/helpers/tree_helper.rb
... ... @@ -67,4 +67,29 @@ module TreeHelper
67 67 can?(current_user, :push_code, @project)
68 68 end
69 69 end
  70 +
  71 + # Breadcrumb links for a Project and, if applicable, a tree path
  72 + def breadcrumbs
  73 + return unless @project && @ref
  74 +
  75 + # Add the root project link and the arrow icon
  76 + crumbs = content_tag(:li) do
  77 + content_tag(:span, nil, class: 'arrow') +
  78 + link_to(@project.name, project_commits_path(@project, @ref))
  79 + end
  80 +
  81 + if @path
  82 + parts = @path.split('/')
  83 +
  84 + parts.each_with_index do |part, i|
  85 + crumbs += content_tag(:span, '/', class: 'divider')
  86 + crumbs += content_tag(:li) do
  87 + # The text is just the individual part, but the link needs all the parts before it
  88 + link_to part, project_commits_path(@project, tree_join(@ref, parts[0..i].join('/')))
  89 + end
  90 + end
  91 + end
  92 +
  93 + crumbs.html_safe
  94 + end
70 95 end
... ...
app/views/commits/show.html.haml
... ... @@ -2,14 +2,7 @@
2 2  
3 3 - if @path.present?
4 4 %ul.breadcrumb
5   - %li
6   - %span.arrow
7   - = link_to project_commits_path(@project) do
8   - = @project.name
9   - %span.divider
10   - \/
11   - %li
12   - %a{href: "#"}= @path.split("/").join(" / ")
  5 + = breadcrumbs
13 6  
14 7 %div{id: dom_id(@project)}
15 8 #commits_list= render "commits"
... ...