Flatten the directory hierarchy while there is only one directory descendant
This commit is contained in:
parent
ac1584249c
commit
021cff67f3
2 changed files with 12 additions and 1 deletions
|
@ -113,6 +113,16 @@ module TreeHelper
|
|||
tree_join(@ref, file)
|
||||
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
|
||||
"Leave edit mode?\nAll unsaved changes will be lost."
|
||||
end
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
%td.tree-item-file-name
|
||||
= tree_icon(type)
|
||||
%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
|
||||
= render 'spinner'
|
||||
%td.hidden-xs.tree_commit
|
||||
|
|
Loading…
Reference in a new issue