diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-02-01 15:48:56 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-02-01 15:48:56 +0000 |
commit | cbdf9006293da40516c4a25025a52f02fa7700e9 (patch) | |
tree | cf3038e69f9aa4e93493c56f9cb2c74059601d08 | |
parent | c83b41611a3ac3e331c1ab339bd626c5f71e8504 (diff) | |
download | redmine-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.rb | 18 |
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 |