diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb index cb1f74527a12cd7552560693b91d1284525d50bc..a8540569462a69f400b03c6a260c393c74fe7c40 100644 --- a/app/controllers/commits_controller.rb +++ b/app/controllers/commits_controller.rb @@ -17,6 +17,7 @@ class CommitsController < ApplicationController @limit, @offset = (params[:limit] || 40), (params[:offset] || 0) @commits = @project.commits(@ref, params[:path], @limit, @offset) + @commits = CommitDecorator.decorate(@commits) respond_to do |format| format.html # index.html.erb diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index 1cb1d388465e86f225b1ecf777e68c2e1ca331a8..f9a1c1dd67df22269744931c730c746ff02fc6a5 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -143,5 +143,6 @@ class MergeRequestsController < ApplicationController # Get commits from repository # or from cache if already merged @commits = @merge_request.commits + @commits = CommitDecorator.decorate(@commits) end end diff --git a/app/controllers/refs_controller.rb b/app/controllers/refs_controller.rb index b610c9f34d4ef63fa577fc7a29583670722c328e..d180e708882648f044cda1eaa38dcd0f20d6c68c 100644 --- a/app/controllers/refs_controller.rb +++ b/app/controllers/refs_controller.rb @@ -51,7 +51,8 @@ class RefsController < ApplicationController @logs = contents.map do |content| file = params[:path] ? File.join(params[:path], content.name) : content.name last_commit = @project.commits(@commit.id, file, 1).last - { + last_commit = CommitDecorator.decorate(last_commit) + { :file_name => content.name, :commit => last_commit } diff --git a/app/decorators/commit_decorator.rb b/app/decorators/commit_decorator.rb index cc8fa97587b53edfd2fe4eba453cbf897a92c8b0..d9c880bee72e9757957b45e6af4a88cad98a6dfd 100644 --- a/app/decorators/commit_decorator.rb +++ b/app/decorators/commit_decorator.rb @@ -1,6 +1,10 @@ class CommitDecorator < ApplicationDecorator decorates :commit + def short_id(length = 10) + id.to_s[0..length] + end + # Returns the commits title. # # Usually, the commit title is the first line of the commit message. diff --git a/app/views/commits/_commit.html.haml b/app/views/commits/_commit.html.haml index 9f9502e30d4cc9fefb3515e5ce0c10ff32c39396..c77e22d9a96b4839454f9696e7a554f3cac5eb95 100644 --- a/app/views/commits/_commit.html.haml +++ b/app/views/commits/_commit.html.haml @@ -4,11 +4,11 @@ %strong= link_to "Browse Code ยป", tree_project_ref_path(@project, commit.id), :class => "right" = link_to project_commit_path(@project, :id => commit.id) do %p - %code.left= commit.id.to_s[0..10] + %code.left= commit.short_id %strong.cgray= commit.author_name – = image_tag gravatar_icon(commit.author_email), :class => "avatar", :width => 16 - %span.row_title= truncate(commit.safe_message, :length => 50) + %span.row_title= truncate(commit.title, :length => 50) %span.committed_ago = time_ago_in_words(commit.committed_date) diff --git a/app/views/commits/index.atom.builder b/app/views/commits/index.atom.builder index 2a352dac1b79927448582fe8eea35cf0490f56b2..86c9fc04e517ed0b66f179ba59c0f6e753888f63 100644 --- a/app/views/commits/index.atom.builder +++ b/app/views/commits/index.atom.builder @@ -10,14 +10,14 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear xml.entry do xml.id project_commit_url(@project, :id => commit.id) xml.link :href => project_commit_url(@project, :id => commit.id) - xml.title truncate(commit.safe_message, :length => 80) + xml.title truncate(commit.title, :length => 80) xml.updated commit.committed_date.strftime("%Y-%m-%dT%H:%M:%SZ") xml.media :thumbnail, :width => "40", :height => "40", :url => gravatar_icon(commit.author_email) xml.author do |author| xml.name commit.author_name xml.email commit.author_email end - xml.summary commit.safe_message + xml.summary commit.description end end end diff --git a/app/views/events/_commit.html.haml b/app/views/events/_commit.html.haml index 60112b508a8874e7944a0b505f5bdb99b73a4f9b..b26b8f0a50b5d421bf3af2df4fbafad0fe0394a3 100644 --- a/app/views/events/_commit.html.haml +++ b/app/views/events/_commit.html.haml @@ -1,9 +1,10 @@ +- commit = CommitDecorator.decorate(commit) %li.wll.commit = link_to project_commit_path(project, :id => commit.id) do %p - %code.left= commit.id.to_s[0..10] + %code.left= commit.short_id %strong.cgray= commit.author_name – = image_tag gravatar_icon(commit.author_email), :class => "avatar", :width => 16 - %span.row_title= truncate(commit.safe_message, :length => 50) rescue "--broken encoding" + %span.row_title= truncate(commit.title, :length => 50) rescue "--broken encoding" diff --git a/app/views/refs/_tree_commit.html.haml b/app/views/refs/_tree_commit.html.haml index 1f2524a4c3ad69f80d6d296a4295844d50fe0b69..7da8ae1c501a72362438ee496707131202f67525 100644 --- a/app/views/refs/_tree_commit.html.haml +++ b/app/views/refs/_tree_commit.html.haml @@ -1,3 +1,3 @@ - if tm %strong= link_to "[#{tm.user_name}]", project_team_member_path(@project, tm) -= link_to truncate(content_commit.safe_message, :length => tm ? 30 : 50), project_commit_path(@project, content_commit.id), :class => "tree-commit-link" += link_to truncate(content_commit.title, :length => tm ? 30 : 50), project_commit_path(@project, content_commit.id), :class => "tree-commit-link" diff --git a/app/views/refs/blame.html.haml b/app/views/refs/blame.html.haml index 6a86b91fe74ddfbf4194d2ad1d61ce29041694f8..0f0b6927157eb9a2f961fef6ba732624c133a10d 100644 --- a/app/views/refs/blame.html.haml +++ b/app/views/refs/blame.html.haml @@ -25,6 +25,7 @@ %table - @blame.each do |commit, lines| - commit = Commit.new(commit) + - commit = CommitDecorator.decorate(commit) %tr %td.author = image_tag gravatar_icon(commit.author_email, 16) @@ -32,8 +33,8 @@ %td.blame_commit   = link_to project_commit_path(@project, :id => commit.id) do - %code= commit.id.to_s[0..10] - %span.row_title= truncate(commit.safe_message, :length => 30) rescue "--broken encoding" + %code= commit.short_id + %span.row_title= truncate(commit.title, :length => 30) 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 4742b92bd74cdb71c105bd41527c869fe4d8c96c..3efe83ec1a0dc2a1e17374ba4f74f6b9652dff91 100644 --- a/app/views/repositories/_branch.html.haml +++ b/app/views/repositories/_branch.html.haml @@ -1,3 +1,5 @@ +- commit = Commit.new(branch.commit) +- commit = CommitDecorator.decorate(commit) %tr %td = link_to project_commits_path(@project, :ref => branch.name) do @@ -5,14 +7,14 @@ - if branch.name == @project.root_ref %span.label default %td - = link_to project_commit_path(@project, :id => branch.commit.id) do - %code= branch.commit.id.to_s[0..10] + = link_to project_commit_path(@project, :id => commit.id) do + %code= commit.short_id - = image_tag gravatar_icon(Commit.new(branch.commit).author_email), :class => "", :width => 16 - = truncate(Commit.new(branch.commit).safe_message, :length => 40) + = image_tag gravatar_icon(commit.author_email), :class => "", :width => 16 + = truncate(commit.title, :length => 40) %td %span.update-author.right - = time_ago_in_words(branch.commit.committed_date) + = time_ago_in_words(commit.committed_date) ago %td - if can? current_user, :download_code, @project diff --git a/app/views/repositories/_feed.html.haml b/app/views/repositories/_feed.html.haml index 0734327233e3eabb0dd44770eb356089ae55d28d..a9a1181974b7b6095159392aec0da4191db11999 100644 --- a/app/views/repositories/_feed.html.haml +++ b/app/views/repositories/_feed.html.haml @@ -1,4 +1,5 @@ - commit = update +- commit = CommitDecorator.new(commit) %tr %td = link_to project_commits_path(@project, :ref => commit.head.name) do @@ -10,9 +11,9 @@ %td %div = link_to project_commits_path(@project, commit.id) do - %code= commit.id.to_s[0..10] + %code= commit.short_id = image_tag gravatar_icon(commit.author_email), :class => "", :width => 16 - = truncate(commit.safe_message, :length => 40) + = truncate(commit.title, :length => 40) %td %span.right.cgray = time_ago_in_words(commit.committed_date) diff --git a/app/views/repositories/tags.html.haml b/app/views/repositories/tags.html.haml index 5e5cca31d8fe4b293fb168696a25d123a88fe251..d09c40e15a3feb68bf4b4c8ca74542067cfa167a 100644 --- a/app/views/repositories/tags.html.haml +++ b/app/views/repositories/tags.html.haml @@ -9,14 +9,15 @@ %th - @tags.each do |tag| - commit = Commit.new(tag.commit) + - commit = CommitDecorator.decorate(commit) %tr %td %strong= link_to tag.name, project_commits_path(@project, :ref => tag.name), :class => "" %td = link_to project_commit_path(@project, commit.id) do - %code= commit.id.to_s[0..10] + %code= commit.short_id = image_tag gravatar_icon(commit.author_email), :class => "", :width => 16 - = truncate(commit.safe_message, :length => 40) + = truncate(commit.title, :length => 40) %td %span.update-author.right = time_ago_in_words(commit.committed_date) diff --git a/spec/requests/commits_spec.rb b/spec/requests/commits_spec.rb index 00b69379848a0c853c9a5d7052edee22989915e7..0418697ea93d6695f09a84086e37271d1753d0ea 100644 --- a/spec/requests/commits_spec.rb +++ b/spec/requests/commits_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe "Commits" do let(:project) { Factory :project } - let!(:commit) { project.commit } + let!(:commit) { CommitDecorator.decorate(project.commit) } before do login_as :user project.add_access(@user, :read) @@ -22,8 +22,8 @@ describe "Commits" do end it "should list commits" do - page.should have_content(commit.message) - page.should have_content(commit.id.to_s[0..5]) + page.should have_content(commit.description) + page.should have_content(commit.short_id) end it "should render atom feed" do @@ -32,7 +32,7 @@ describe "Commits" do page.response_headers['Content-Type'].should have_content("application/atom+xml") page.body.should have_selector("title", :text => "Recent commits to #{project.name}") page.body.should have_selector("author email", :text => commit.author_email) - page.body.should have_selector("entry summary", :text => commit.message) + page.body.should have_selector("entry summary", :text => commit.description) end it "should render atom feed via private token" do @@ -42,7 +42,7 @@ describe "Commits" do page.response_headers['Content-Type'].should have_content("application/atom+xml") page.body.should have_selector("title", :text => "Recent commits to #{project.name}") page.body.should have_selector("author email", :text => commit.author_email) - page.body.should have_selector("entry summary", :text => commit.message) + page.body.should have_selector("entry summary", :text => commit.description) end end