@@ -52,17 +52,19 module RepositoriesHelper | |||
|
52 | 52 | else |
|
53 | 53 | change |
|
54 | 54 | end |
|
55 |
|
|
|
55 | end.compact | |
|
56 | 56 | |
|
57 | 57 | tree = { } |
|
58 | 58 | changes.each do |change| |
|
59 | 59 | p = tree |
|
60 | 60 | dirs = change.path.to_s.split('/').select {|d| !d.blank?} |
|
61 | path = '' | |
|
61 | 62 | dirs.each do |dir| |
|
63 | path += '/' + dir | |
|
62 | 64 | p[:s] ||= {} |
|
63 | 65 | p = p[:s] |
|
64 |
p[ |
|
|
65 |
p = p[ |
|
|
66 | p[path] ||= {} | |
|
67 | p = p[path] | |
|
66 | 68 | end |
|
67 | 69 | p[:c] = change |
|
68 | 70 | end |
@@ -76,21 +78,26 module RepositoriesHelper | |||
|
76 | 78 | output = '' |
|
77 | 79 | output << '<ul>' |
|
78 | 80 | tree.keys.sort.each do |file| |
|
79 | s = !tree[file][:s].nil? | |
|
80 | c = tree[file][:c] | |
|
81 | ||
|
82 | 81 | style = 'change' |
|
83 | style << ' folder' if s | |
|
84 | style << " change-#{c.action}" if c | |
|
85 | ||
|
86 | text = h(file) | |
|
87 | unless c.nil? | |
|
82 | text = File.basename(h(file)) | |
|
83 | if s = tree[file][:s] | |
|
84 | style << ' folder' | |
|
85 | path_param = to_path_param(@repository.relative_path(file)) | |
|
86 | text = link_to(text, :controller => 'repositories', | |
|
87 | :action => 'show', | |
|
88 | :id => @project, | |
|
89 | :path => path_param, | |
|
90 | :rev => @changeset.revision) | |
|
91 | output << "<li class='#{style}'>#{text}</li>" | |
|
92 | output << render_changes_tree(s) | |
|
93 | elsif c = tree[file][:c] | |
|
94 | style << " change-#{c.action}" | |
|
88 | 95 | path_param = to_path_param(@repository.relative_path(c.path)) |
|
89 | 96 | text = link_to(text, :controller => 'repositories', |
|
90 | 97 | :action => 'entry', |
|
91 | 98 | :id => @project, |
|
92 | 99 | :path => path_param, |
|
93 |
:rev => @changeset.revision) unless |
|
|
100 | :rev => @changeset.revision) unless c.action == 'D' | |
|
94 | 101 | text << " - #{c.revision}" unless c.revision.blank? |
|
95 | 102 | text << ' (' + link_to('diff', :controller => 'repositories', |
|
96 | 103 | :action => 'diff', |
@@ -98,9 +105,8 module RepositoriesHelper | |||
|
98 | 105 | :path => path_param, |
|
99 | 106 | :rev => @changeset.revision) + ') ' if c.action == 'M' |
|
100 | 107 | text << ' ' + content_tag('span', c.from_path, :class => 'copied-from') unless c.from_path.blank? |
|
108 | output << "<li class='#{style}'>#{text}</li>" | |
|
101 | 109 | end |
|
102 | output << "<li class='#{style}'>#{text}</li>" | |
|
103 | output << render_changes_tree(tree[file][:s]) if s | |
|
104 | 110 | end |
|
105 | 111 | output << '</ul>' |
|
106 | 112 | output |
General Comments 0
You need to be logged in to leave comments.
Login now