From cbdf9006293da40516c4a25025a52f02fa7700e9 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 1 Feb 2009 15:48:56 +0000 Subject: [PATCH] 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 --- app/models/changeset.rb | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 759d240d..0824a980 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