summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-02-01 15:48:56 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-02-01 15:48:56 +0000
commitcbdf9006293da40516c4a25025a52f02fa7700e9 (patch)
treecf3038e69f9aa4e93493c56f9cb2c74059601d08
parentc83b41611a3ac3e331c1ab339bd626c5f71e8504 (diff)
downloadredmine-cbdf9006293da40516c4a25025a52f02fa7700e9.tar.gz
redmine-cbdf9006293da40516c4a25025a52f02fa7700e9.zip
Do not repeat one-line commit logs on the activity view.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2346 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/changeset.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/app/models/changeset.rb b/app/models/changeset.rb
index 759d240df..0824a980e 100644
--- a/app/models/changeset.rb
+++ b/app/models/changeset.rb
@@ -23,8 +23,8 @@ class Changeset < ActiveRecord::Base
has_many :changes, :dependent => :delete_all
has_and_belongs_to_many :issues
- acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.revision}" + (o.comments.blank? ? '' : (': ' + o.comments))},
- :description => :comments,
+ acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.revision}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
+ :description => :long_comments,
:datetime => :committed_on,
:url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project_id, :rev => o.revision}}
@@ -122,6 +122,14 @@ class Changeset < ActiveRecord::Base
self.issues = referenced_issues.uniq
end
+ def short_comments
+ @short_comments || split_comments.first
+ end
+
+ def long_comments
+ @long_comments || split_comments.last
+ end
+
# Returns the previous changeset
def previous
@previous ||= Changeset.find(:first, :conditions => ['id < ? AND repository_id = ?', self.id, self.repository_id], :order => 'id DESC')
@@ -139,6 +147,12 @@ class Changeset < ActiveRecord::Base
private
+ def split_comments
+ comments =~ /\A(.+?)\r?\n(.*)$/m
+ @short_comments = $1 || comments
+ @long_comments = $2.to_s.strip
+ return @short_comments, @long_comments
+ end
def self.to_utf8(str)
return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii