diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2010-04-11 15:18:49 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2010-04-11 15:18:49 +0000 |
commit | 2674c6116cade13556cea62bb6e38567fd34cf10 (patch) | |
tree | f118fd844e7b40b86aaafa92df36442c277375eb | |
parent | 5163904a3a8550c33257cadc2966378378a79776 (diff) | |
download | redmine-2674c6116cade13556cea62bb6e38567fd34cf10.tar.gz redmine-2674c6116cade13556cea62bb6e38567fd34cf10.zip |
Linkify folder names on revision view (#5164).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3659 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/helpers/repositories_helper.rb | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 0c2a44809..959628735 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -52,17 +52,19 @@ module RepositoriesHelper else change end - end.compact + end.compact tree = { } changes.each do |change| p = tree dirs = change.path.to_s.split('/').select {|d| !d.blank?} + path = '' dirs.each do |dir| + path += '/' + dir p[:s] ||= {} p = p[:s] - p[dir] ||= {} - p = p[dir] + p[path] ||= {} + p = p[path] end p[:c] = change end @@ -76,21 +78,26 @@ module RepositoriesHelper output = '' output << '<ul>' tree.keys.sort.each do |file| - s = !tree[file][:s].nil? - c = tree[file][:c] - style = 'change' - style << ' folder' if s - style << " change-#{c.action}" if c - - text = h(file) - unless c.nil? + text = File.basename(h(file)) + if s = tree[file][:s] + style << ' folder' + path_param = to_path_param(@repository.relative_path(file)) + text = link_to(text, :controller => 'repositories', + :action => 'show', + :id => @project, + :path => path_param, + :rev => @changeset.revision) + output << "<li class='#{style}'>#{text}</li>" + output << render_changes_tree(s) + elsif c = tree[file][:c] + style << " change-#{c.action}" path_param = to_path_param(@repository.relative_path(c.path)) text = link_to(text, :controller => 'repositories', :action => 'entry', :id => @project, :path => path_param, - :rev => @changeset.revision) unless s || c.action == 'D' + :rev => @changeset.revision) unless c.action == 'D' text << " - #{c.revision}" unless c.revision.blank? text << ' (' + link_to('diff', :controller => 'repositories', :action => 'diff', @@ -98,9 +105,8 @@ module RepositoriesHelper :path => path_param, :rev => @changeset.revision) + ') ' if c.action == 'M' text << ' ' + content_tag('span', c.from_path, :class => 'copied-from') unless c.from_path.blank? + output << "<li class='#{style}'>#{text}</li>" end - output << "<li class='#{style}'>#{text}</li>" - output << render_changes_tree(tree[file][:s]) if s end output << '</ul>' output |