diff options
author | Robert Speicher <rspeicher@gmail.com> | 2012-11-01 17:58:13 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2012-11-01 17:58:13 -0400 |
commit | e60185699b0cd34fe3ae37db6db318478232c84b (patch) | |
tree | 74f20706aa728164b70ca9fc3079eefd215c3d8a | |
parent | b1be377fb0b5e76fc1b0d78700eb3e714b66f1c2 (diff) | |
download | gitlab-ce-e60185699b0cd34fe3ae37db6db318478232c84b.tar.gz |
Add 'breadcrumbs' helper for Commit breadcrumb links
Closes #1731
-rw-r--r-- | app/helpers/tree_helper.rb | 25 | ||||
-rw-r--r-- | app/views/commits/show.html.haml | 9 |
2 files changed, 26 insertions, 8 deletions
diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb index 4fe87a25554..0f2b695e0ad 100644 --- a/app/helpers/tree_helper.rb +++ b/app/helpers/tree_helper.rb @@ -67,4 +67,29 @@ module TreeHelper can?(current_user, :push_code, @project) end end + + # Breadcrumb links for a Project and, if applicable, a tree path + def breadcrumbs + return unless @project && @ref + + # Add the root project link and the arrow icon + crumbs = content_tag(:li) do + content_tag(:span, nil, class: 'arrow') + + link_to(@project.name, project_commits_path(@project, @ref)) + end + + if @path + parts = @path.split('/') + + parts.each_with_index do |part, i| + crumbs += content_tag(:span, '/', class: 'divider') + crumbs += content_tag(:li) do + # The text is just the individual part, but the link needs all the parts before it + link_to part, project_commits_path(@project, tree_join(@ref, parts[0..i].join('/'))) + end + end + end + + crumbs.html_safe + end end diff --git a/app/views/commits/show.html.haml b/app/views/commits/show.html.haml index ac0636382f5..9451a038df0 100644 --- a/app/views/commits/show.html.haml +++ b/app/views/commits/show.html.haml @@ -2,14 +2,7 @@ - if @path.present? %ul.breadcrumb - %li - %span.arrow - = link_to project_commits_path(@project) do - = @project.name - %span.divider - \/ - %li - %a{href: "#"}= @path.split("/").join(" / ") + = breadcrumbs %div{id: dom_id(@project)} #commits_list= render "commits" |