From b389247c029b21f5e85abb5896d2cf22230c9cb1 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 17 Sep 2012 10:06:56 -0400 Subject: [PATCH] Use Commit#show instead of Commits#show to view a single commit --- app/controllers/commits_controller.rb | 38 +++++++++++++++++++------------------- app/roles/static_model.rb | 4 ++++ app/views/commit/show.html.haml | 10 ++++++++++ app/views/commits/_commit.html.haml | 7 +++---- app/views/commits/show.html.haml | 10 ---------- app/views/events/_commit.html.haml | 2 +- app/views/refs/blame.html.haml | 4 ++-- app/views/repositories/_branch.html.haml | 2 +- lib/gitlab/markdown.rb | 2 +- spec/requests/gitlab_flavored_markdown_spec.rb | 6 +++--- spec/routing/project_routing_spec.rb | 9 +++++++++ 11 files changed, 53 insertions(+), 41 deletions(-) create mode 100644 app/views/commit/show.html.haml delete mode 100644 app/views/commits/show.html.haml diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb index 1e7aec0..83404bd 100644 --- a/app/controllers/commits_controller.rb +++ b/app/controllers/commits_controller.rb @@ -26,25 +26,25 @@ class CommitsController < ApplicationController end end - def show - result = CommitLoad.new(project, current_user, params).execute - - @commit = result[:commit] - - if @commit - @suppress_diff = result[:suppress_diff] - @note = result[:note] - @line_notes = result[:line_notes] - @notes_count = result[:notes_count] - @comments_allowed = true - else - return git_not_found! - end - - if result[:status] == :huge_commit - render "huge_commit" and return - end - end + # def show + # result = CommitLoad.new(project, current_user, params).execute + + # @commit = result[:commit] + + # if @commit + # @suppress_diff = result[:suppress_diff] + # @note = result[:note] + # @line_notes = result[:line_notes] + # @notes_count = result[:notes_count] + # @comments_allowed = true + # else + # return git_not_found! + # end + + # if result[:status] == :huge_commit + # render "huge_commit" and return + # end + # end def compare result = Commit.compare(project, params[:from], params[:to]) diff --git a/app/roles/static_model.rb b/app/roles/static_model.rb index d26c8f4..d67af24 100644 --- a/app/roles/static_model.rb +++ b/app/roles/static_model.rb @@ -25,6 +25,10 @@ module StaticModel id end + def new_record? + false + end + def persisted? false end diff --git a/app/views/commit/show.html.haml b/app/views/commit/show.html.haml new file mode 100644 index 0000000..d12fff9 --- /dev/null +++ b/app/views/commit/show.html.haml @@ -0,0 +1,10 @@ += render "commits/commit_box" += render "commits/diffs", diffs: @commit.diffs += render "notes/notes_with_form", tid: @commit.id, tt: "commit" += render "notes/per_line_form" + + +:javascript + $(function(){ + PerLineNotes.init(); + }); diff --git a/app/views/commits/_commit.html.haml b/app/views/commits/_commit.html.haml index 61371d1..6abea76 100644 --- a/app/views/commits/_commit.html.haml +++ b/app/views/commits/_commit.html.haml @@ -1,16 +1,15 @@ %li.commit .browse_code_link_holder %p - %strong= link_to "Browse Code »", tree_project_ref_path(@project, commit.id), class: "right" + %strong= link_to "Browse Code »", tree_project_ref_path(@project, commit), class: "right" %p - = link_to commit.short_id(8), project_commit_path(@project, id: commit.id), class: "commit_short_id" + = link_to commit.short_id(8), project_commit_path(@project, commit), class: "commit_short_id" %strong.commit-author-name= commit.author_name %span.dash – = image_tag gravatar_icon(commit.author_email), class: "avatar", width: 16 - = link_to_gfm truncate(commit.title, length: 50), project_commit_path(@project, id: commit.id), class: "row_title" + = link_to_gfm truncate(commit.title, length: 50), project_commit_path(@project, commit.id), class: "row_title" %span.committed_ago = time_ago_in_words(commit.committed_date) ago   - diff --git a/app/views/commits/show.html.haml b/app/views/commits/show.html.haml deleted file mode 100644 index d12fff9..0000000 --- a/app/views/commits/show.html.haml +++ /dev/null @@ -1,10 +0,0 @@ -= render "commits/commit_box" -= render "commits/diffs", diffs: @commit.diffs -= render "notes/notes_with_form", tid: @commit.id, tt: "commit" -= render "notes/per_line_form" - - -:javascript - $(function(){ - PerLineNotes.init(); - }); diff --git a/app/views/events/_commit.html.haml b/app/views/events/_commit.html.haml index ed4f33c..ea417aa 100644 --- a/app/views/events/_commit.html.haml +++ b/app/views/events/_commit.html.haml @@ -1,7 +1,7 @@ - commit = CommitDecorator.decorate(commit) %li.commit %p - = link_to commit.short_id(8), project_commit_path(project, id: commit.id), class: "commit_short_id" + = link_to commit.short_id(8), project_commit_path(project, commit), class: "commit_short_id" %span= commit.author_name – = image_tag gravatar_icon(commit.author_email), class: "avatar", width: 16 diff --git a/app/views/refs/blame.html.haml b/app/views/refs/blame.html.haml index eb66f59..ba0fad5 100644 --- a/app/views/refs/blame.html.haml +++ b/app/views/refs/blame.html.haml @@ -32,8 +32,8 @@ = commit.author_name %td.blame_commit   - %code= link_to commit.short_id, project_commit_path(@project, id: commit.id) - = link_to_gfm truncate(commit.title, length: 30), project_commit_path(@project, id: commit.id), class: "row_title" rescue "--broken encoding" + %code= link_to commit.short_id, project_commit_path(@project, commit) + = link_to_gfm truncate(commit.title, length: 30), project_commit_path(@project, commit), class: "row_title" rescue "--broken encoding" %td.lines = preserve do %pre diff --git a/app/views/repositories/_branch.html.haml b/app/views/repositories/_branch.html.haml index 64a633b..80028a8 100644 --- a/app/views/repositories/_branch.html.haml +++ b/app/views/repositories/_branch.html.haml @@ -7,7 +7,7 @@ - if branch.name == @project.root_ref %span.label default %td - = link_to project_commit_path(@project, id: commit.id) do + = link_to project_commit_path(@project, commit) do %code= commit.short_id = image_tag gravatar_icon(commit.author_email), class: "", width: 16 diff --git a/lib/gitlab/markdown.rb b/lib/gitlab/markdown.rb index 9201003..9eb35b8 100644 --- a/lib/gitlab/markdown.rb +++ b/lib/gitlab/markdown.rb @@ -174,7 +174,7 @@ module Gitlab def reference_commit(identifier) if commit = @project.commit(identifier) - link_to(identifier, project_commit_path(@project, id: commit.id), html_options.merge(title: CommitDecorator.new(commit).link_title, class: "gfm gfm-commit #{html_options[:class]}")) + link_to(identifier, project_commit_path(@project, commit), html_options.merge(title: CommitDecorator.new(commit).link_title, class: "gfm gfm-commit #{html_options[:class]}")) end end end diff --git a/spec/requests/gitlab_flavored_markdown_spec.rb b/spec/requests/gitlab_flavored_markdown_spec.rb index 68d354b..807d17d 100644 --- a/spec/requests/gitlab_flavored_markdown_spec.rb +++ b/spec/requests/gitlab_flavored_markdown_spec.rb @@ -49,13 +49,13 @@ describe "Gitlab Flavored Markdown" do end it "should render title in commits#show" do - visit project_commit_path(project, id: commit.id) + visit project_commit_path(project, commit) page.should have_link("##{issue.id}") end it "should render description in commits#show" do - visit project_commit_path(project, id: commit.id) + visit project_commit_path(project, commit) page.should have_link("@#{fred.name}") end @@ -175,7 +175,7 @@ describe "Gitlab Flavored Markdown" do describe "for notes" do it "should render in commits#show", js: true do - visit project_commit_path(project, id: commit.id) + visit project_commit_path(project, commit) fill_in "note_note", with: "see ##{issue.id}" click_button "Add Comment" diff --git a/spec/routing/project_routing_spec.rb b/spec/routing/project_routing_spec.rb index d4ee5c3..9900a31 100644 --- a/spec/routing/project_routing_spec.rb +++ b/spec/routing/project_routing_spec.rb @@ -298,6 +298,14 @@ describe HooksController, "routing" do end end +# project_commit GET /:project_id/commit/:id(.:format) commit#show {:id=>/[[:alnum:]]{6,40}/, :project_id=>/[^\/]+/} +describe CommitController, "routing" do + it "to #show" do + get("/gitlabhq/commit/4246fb").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fb') + get("/gitlabhq/commit/4246fbd13872934f72a8fd0d6fb1317b47b59cb5").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fbd13872934f72a8fd0d6fb1317b47b59cb5') + end +end + # compare_project_commits GET /:project_id/commits/compare(.:format) commits#compare # patch_project_commit GET /:project_id/commits/:id/patch(.:format) commits#patch # project_commits GET /:project_id/commits(.:format) commits#index @@ -317,6 +325,7 @@ describe CommitsController, "routing" do end it_behaves_like "RESTful project resources" do + let(:actions) { [:index, :show] } let(:controller) { 'commits' } end end -- libgit2 0.21.2