summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-11-04 11:20:21 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-11-04 11:20:21 +0000
commitd46e3a501e7bad4242d896de36f02c19b8781143 (patch)
tree85fb8a12da0ad944ede83fff3123954d960bf760
parentd4e47d5d649844aa2d29b79334946cf4765c8482 (diff)
downloadredmine-d46e3a501e7bad4242d896de36f02c19b8781143.tar.gz
redmine-d46e3a501e7bad4242d896de36f02c19b8781143.zip
Pretty URL for the repository browser (Cyril Mougel)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@880 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/repositories_controller.rb4
-rw-r--r--app/views/repositories/_revisions.rhtml3
-rw-r--r--config/routes.rb7
3 files changed, 10 insertions, 4 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 945cb2623..235754770 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -110,7 +110,7 @@ class RepositoriesController < ApplicationController
@cache_key = "repositories/diff/#{@repository.id}/" + Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}")
unless read_fragment(@cache_key)
- @diff = @repository.diff(@path, @rev, @rev_to, type)
+ @diff = @repository.diff(@path, @rev, @rev_to, @diff_type)
show_error and return unless @diff
end
end
@@ -145,7 +145,7 @@ private
@project = Project.find(params[:id])
@repository = @project.repository
render_404 and return false unless @repository
- @path = params[:path].squeeze('/') if params[:path]
+ @path = params[:path].join('/') unless params[:path].nil?
@path ||= ''
@rev = params[:rev].to_i if params[:rev]
rescue ActiveRecord::RecordNotFound
diff --git a/app/views/repositories/_revisions.rhtml b/app/views/repositories/_revisions.rhtml
index 1cdc45a35..c12488d33 100644
--- a/app/views/repositories/_revisions.rhtml
+++ b/app/views/repositories/_revisions.rhtml
@@ -1,4 +1,4 @@
-<% form_tag({:controller => 'repositories', :action => 'diff', :id => @project}, :method => :get) do %>
+<% form_tag({:controller => 'repositories', :action => 'diff', :id => @project, :path => path}, :method => :get) do %>
<table class="list">
<thead><tr>
<th>#</th>
@@ -24,6 +24,5 @@
<% end %>
</tbody>
</table>
-<%= hidden_field_tag 'path', path %>
<%= submit_tag(l(:label_view_diff), :class => 'small', :name => nil) if show_diff %>
<% end %>
diff --git a/config/routes.rb b/config/routes.rb
index 80fa58942..bb61b4c0f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -16,6 +16,13 @@ ActionController::Routing::Routes.draw do |map|
map.connect 'issues/:issue_id/relations/:action/:id', :controller => 'issue_relations'
map.connect 'projects/:project_id/boards/:action/:id', :controller => 'boards'
map.connect 'boards/:board_id/topics/:action/:id', :controller => 'messages'
+
+ map.with_options :controller => 'repositories' do |omap|
+ omap.repositories_show 'repositories/browse/:id/*path', :action => 'browse'
+ omap.repositories_changes 'repositories/changes/:id/*path', :action => 'changes'
+ omap.repositories_diff 'repositories/diff/:id/*path', :action => 'diff'
+ omap.repositories_entry 'repositories/entry/:id/*path', :action => 'entry'
+ end
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'