diff --git a/app/models/issue.rb b/app/models/issue.rb index 90fdacbd..09bfcf83 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -39,7 +39,15 @@ class Issue < ActiveRecord::Base acts_as_watchable acts_as_journalized :event_title => Proc.new {|o| "#{o.tracker.name} ##{o.journaled_id} (#{o.status}): #{o.subject}"}, - :event_type => Proc.new {|o| 'issue' + (o.closed? ? ' closed' : '')} + :event_type => Proc.new {|o| + t = 'issue' + if o.changes.empty? + t << '-note' unless o.initial? + else + t << (IssueStatus.find_by_id(o.new_value_for(:status_id)).try(:is_closed?) ? '-closed' : '-edit') + end + t }, + :except => [:description] register_on_journal_formatter(:id, 'parent_id') register_on_journal_formatter(:named_association, 'project_id', 'status_id', 'tracker_id', 'assigned_to_id', diff --git a/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb b/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb index 72f6b2bd..7a3b7b45 100644 --- a/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb +++ b/vendor/plugins/acts_as_journalized/lib/acts_as_journalized.rb @@ -172,6 +172,7 @@ module Redmine :anchor => ("note-#{journal.anchor}" unless journal.initial?) } end end + options[:type] ||= self.name.underscore.dasherize # Make sure the name of the journalized model and not the name of the journal is used for events { :description => :notes, :author => :user }.reverse_merge options end end