Commit 021cff67 authored by marmis85's avatar marmis85

Flatten the directory hierarchy while there is only one directory descendant

parent ac158424
...@@ -113,6 +113,16 @@ module TreeHelper ...@@ -113,6 +113,16 @@ module TreeHelper
tree_join(@ref, file) tree_join(@ref, file)
end end
# returns the relative path of the first subdir that doesn't have only one directory descendand
def flatten_tree(tree)
subtree = Gitlab::Git::Tree.where(@repository, @commit.id, tree.path)
if subtree.count == 1 && subtree.first.dir?
return tree_join(tree.name, flatten_tree(subtree.first))
else
return tree.name
end
end
def leave_edit_message def leave_edit_message
"Leave edit mode?\nAll unsaved changes will be lost." "Leave edit mode?\nAll unsaved changes will be lost."
end end
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
%td.tree-item-file-name %td.tree-item-file-name
= tree_icon(type) = tree_icon(type)
%span.str-truncated %span.str-truncated
= link_to tree_item.name, project_tree_path(@project, tree_join(@id || @commit.id, tree_item.name)) - path = flatten_tree(tree_item)
= link_to path, project_tree_path(@project, tree_join(@id || @commit.id, path))
%td.tree_time_ago.cgray %td.tree_time_ago.cgray
= render 'spinner' = render 'spinner'
%td.hidden-xs.tree_commit %td.hidden-xs.tree_commit
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment