Commit 3574826920eb958c5e59e86bb79b0773c187abfb

Authored by Robert Speicher
1 parent 169f16fb

Use Commits#show instead of Commits#index

Takes tree-ish + path as ID
app/controllers/commits_controller.rb
... ... @@ -4,18 +4,19 @@ class CommitsController < ApplicationController
4 4 before_filter :project
5 5 layout "project"
6 6  
  7 + include ExtractsPath
  8 +
7 9 # Authorize
8 10 before_filter :add_project_abilities
9 11 before_filter :authorize_read_project!
10 12 before_filter :authorize_code_access!
11 13 before_filter :require_non_empty_project
12   - before_filter :load_refs, only: :index # load @branch, @tag & @ref
13 14  
14   - def index
15   - @repo = project.repo
  15 + def show
  16 + @repo = @project.repo
16 17 @limit, @offset = (params[:limit] || 40), (params[:offset] || 0)
17 18  
18   - @commits = @project.commits(@ref, params[:path], @limit, @offset)
  19 + @commits = @project.commits(@ref, @path, @limit, @offset)
19 20 @commits = CommitDecorator.decorate(@commits)
20 21  
21 22 respond_to do |format|
... ... @@ -25,26 +26,6 @@ class CommitsController < ApplicationController
25 26 end
26 27 end
27 28  
28   - # def show
29   - # result = CommitLoad.new(project, current_user, params).execute
30   -
31   - # @commit = result[:commit]
32   -
33   - # if @commit
34   - # @suppress_diff = result[:suppress_diff]
35   - # @note = result[:note]
36   - # @line_notes = result[:line_notes]
37   - # @notes_count = result[:notes_count]
38   - # @comments_allowed = true
39   - # else
40   - # return git_not_found!
41   - # end
42   -
43   - # if result[:status] == :huge_commit
44   - # render "huge_commit" and return
45   - # end
46   - # end
47   -
48 29 def patch
49 30 @commit = project.commit(params[:id])
50 31  
... ... @@ -55,11 +36,4 @@ class CommitsController < ApplicationController
55 36 filename: "#{@commit.id}.patch"
56 37 )
57 38 end
58   -
59   - protected
60   -
61   - def load_refs
62   - @ref ||= params[:ref].presence || params[:branch].presence || params[:tag].presence
63   - @ref ||= @ref || @project.try(:default_branch) || 'master'
64   - end
65 39 end
... ...
app/views/commits/index.atom.builder
... ... @@ -1,23 +0,0 @@
1   -xml.instruct!
2   -xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do
3   - xml.title "Recent commits to #{@project.name}:#{@ref}"
4   - xml.link :href => project_commits_url(@project, :atom, :ref => @ref), :rel => "self", :type => "application/atom+xml"
5   - xml.link :href => project_commits_url(@project), :rel => "alternate", :type => "text/html"
6   - xml.id project_commits_url(@project)
7   - xml.updated @commits.first.committed_date.strftime("%Y-%m-%dT%H:%M:%SZ") if @commits.any?
8   -
9   - @commits.each do |commit|
10   - xml.entry do
11   - xml.id project_commit_url(@project, :id => commit.id)
12   - xml.link :href => project_commit_url(@project, :id => commit.id)
13   - xml.title truncate(commit.title, :length => 80)
14   - xml.updated commit.committed_date.strftime("%Y-%m-%dT%H:%M:%SZ")
15   - xml.media :thumbnail, :width => "40", :height => "40", :url => gravatar_icon(commit.author_email)
16   - xml.author do |author|
17   - xml.name commit.author_name
18   - xml.email commit.author_email
19   - end
20   - xml.summary gfm(commit.description)
21   - end
22   - end
23   -end
app/views/commits/index.html.haml
... ... @@ -1,24 +0,0 @@
1   -= render "head"
2   -
3   -- if params[:path]
4   - %ul.breadcrumb
5   - %li
6   - %span.arrow
7   - = link_to project_commits_path(@project) do
8   - = @project.name
9   - %span.divider
10   - \/
11   - %li
12   - %a{href: "#"}= params[:path].split("/").join(" / ")
13   -
14   -%div{id: dom_id(@project)}
15   - #commits_list= render "commits"
16   -.clear
17   -.loading{ style: "display:none;"}
18   -
19   -- if @commits.count == @limit
20   - :javascript
21   - $(function(){
22   - CommitsList.init("#{@ref}", #{@limit});
23   - });
24   -
app/views/commits/index.js.haml
... ... @@ -1,3 +0,0 @@
1   -:plain
2   - CommitsList.append(#{@commits.count}, "#{escape_javascript(render(partial: 'commits/commits'))}");
3   -
app/views/commits/show.atom.builder 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +xml.instruct!
  2 +xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do
  3 + xml.title "Recent commits to #{@project.name}:#{@ref}"
  4 + xml.link :href => project_commits_url(@project, :atom, :ref => @ref), :rel => "self", :type => "application/atom+xml"
  5 + xml.link :href => project_commits_url(@project), :rel => "alternate", :type => "text/html"
  6 + xml.id project_commits_url(@project)
  7 + xml.updated @commits.first.committed_date.strftime("%Y-%m-%dT%H:%M:%SZ") if @commits.any?
  8 +
  9 + @commits.each do |commit|
  10 + xml.entry do
  11 + xml.id project_commit_url(@project, :id => commit.id)
  12 + xml.link :href => project_commit_url(@project, :id => commit.id)
  13 + xml.title truncate(commit.title, :length => 80)
  14 + xml.updated commit.committed_date.strftime("%Y-%m-%dT%H:%M:%SZ")
  15 + xml.media :thumbnail, :width => "40", :height => "40", :url => gravatar_icon(commit.author_email)
  16 + xml.author do |author|
  17 + xml.name commit.author_name
  18 + xml.email commit.author_email
  19 + end
  20 + xml.summary gfm(commit.description)
  21 + end
  22 + end
  23 +end
... ...
app/views/commits/show.html.haml 0 → 100644
... ... @@ -0,0 +1,24 @@
  1 += render "head"
  2 +
  3 +- if params[:path]
  4 + %ul.breadcrumb
  5 + %li
  6 + %span.arrow
  7 + = link_to project_commits_path(@project) do
  8 + = @project.name
  9 + %span.divider
  10 + \/
  11 + %li
  12 + %a{href: "#"}= params[:path].split("/").join(" / ")
  13 +
  14 +%div{id: dom_id(@project)}
  15 + #commits_list= render "commits"
  16 +.clear
  17 +.loading{ style: "display:none;"}
  18 +
  19 +- if @commits.count == @limit
  20 + :javascript
  21 + $(function(){
  22 + CommitsList.init("#{@ref}", #{@limit});
  23 + });
  24 +
... ...
app/views/commits/show.js.haml 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +:plain
  2 + CommitsList.append(#{@commits.count}, "#{escape_javascript(render(partial: 'commits/commits'))}");
  3 +
... ...
app/views/layouts/_project_menu.html.haml
... ... @@ -8,7 +8,7 @@
8 8 = link_to project_tree_path(@project, @project.root_ref) do
9 9 Files
10 10 %li{class: commit_tab_class}
11   - = link_to "Commits", project_commits_path(@project)
  11 + = link_to "Commits", project_history_path(@project, @project.root_ref)
12 12  
13 13 %li{class: tab_class(:network)}
14 14 = link_to "Network", graph_project_path(@project)
... ...
config/routes.rb
... ... @@ -159,13 +159,20 @@ Gitlab::Application.routes.draw do
159 159 end
160 160 end
161 161  
162   - resources :commit, only: [:show], constraints: {id: /[[:alnum:]]{6,40}/}
  162 + # XXX: WIP
  163 + resources :commit, only: [:show], constraints: {id: /[[:alnum:]]{6,40}/}
  164 + resources :commits, only: [:show], constraints: {id: /.+/}, as: 'history'
  165 + resources :blame, only: [:show], constraints: {id: /.+/}
  166 + resources :blob, only: [:show], constraints: {id: /.+/}
  167 + # resources :raw, only: [:show], constraints: {id: /.+/}
  168 + resources :tree, only: [:show], constraints: {id: /.+/}
  169 + match "/compare/:from...:to" => "compare#show", as: "compare", constraints: {from: /.+/, to: /.+/}
163 170  
164   - resources :commits, only: [:index, :show] do
165   - member do
166   - get :patch
167   - end
168   - end
  171 + # resources :commits, only: [:show], as: 'history' do
  172 + # member do
  173 + # get :patch
  174 + # end
  175 + # end
169 176  
170 177 resources :team, controller: 'team_members', only: [:index]
171 178 resources :team_members
... ... @@ -184,13 +191,6 @@ Gitlab::Application.routes.draw do
184 191 post :preview
185 192 end
186 193 end
187   -
188   - # XXX: WIP
189   - resources :blame, only: [:show], constraints: {id: /.+/}
190   - resources :blob, only: [:show], constraints: {id: /.+/}
191   - # resources :raw, only: [:show], constraints: {id: /.+/}
192   - resources :tree, only: [:show], constraints: {id: /.+/}
193   - match "/compare/:from...:to" => "compare#show", as: "compare", constraints: {from: /.+/, to: /.+/}
194 194 end
195 195  
196 196 root to: "dashboard#index"
... ...