diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-10-19 19:09:47 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-10-19 19:09:47 +0000 |
commit | 0e4e0a795a7259a096fbbecbf12dcd16d99de0e9 (patch) | |
tree | b05ee0e72482c51b939aca1c6f978dc10455da27 | |
parent | ecfc40629f1e9e266b190f54da264f31b153cdb3 (diff) | |
download | redmine-0e4e0a795a7259a096fbbecbf12dcd16d99de0e9.tar.gz redmine-0e4e0a795a7259a096fbbecbf12dcd16d99de0e9.zip |
Fixed: unable to add a file to an issue without entering a note.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@853 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/controllers/issues_controller.rb | 28 | ||||
-rw-r--r-- | app/models/issue.rb | 4 | ||||
-rw-r--r-- | app/models/journal.rb | 5 |
3 files changed, 21 insertions, 16 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index fc35d8d8a..bad778e67 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -94,21 +94,19 @@ class IssuesController < ApplicationController end def add_note - unless params[:notes].empty? - journal = @issue.init_journal(self.logged_in_user, params[:notes]) - if @issue.save - params[:attachments].each { |file| - next unless file.size > 0 - a = Attachment.create(:container => @issue, :file => file, :author => logged_in_user) - journal.details << JournalDetail.new(:property => 'attachment', - :prop_key => a.id, - :value => a.filename) unless a.new_record? - } if params[:attachments] and params[:attachments].is_a? Array - flash[:notice] = l(:notice_successful_update) - Mailer.deliver_issue_edit(journal) if Setting.notified_events.include?('issue_updated') - redirect_to :action => 'show', :id => @issue - return - end + journal = @issue.init_journal(User.current, params[:notes]) + params[:attachments].each { |file| + next unless file.size > 0 + a = Attachment.create(:container => @issue, :file => file, :author => logged_in_user) + journal.details << JournalDetail.new(:property => 'attachment', + :prop_key => a.id, + :value => a.filename) unless a.new_record? + } if params[:attachments] and params[:attachments].is_a? Array + if journal.save + flash[:notice] = l(:notice_successful_update) + Mailer.deliver_issue_edit(journal) if Setting.notified_events.include?('issue_updated') + redirect_to :action => 'show', :id => @issue + return end show end diff --git a/app/models/issue.rb b/app/models/issue.rb index 7730cfd7a..026ce1211 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -98,8 +98,10 @@ class Issue < ActiveRecord::Base :old_value => @custom_values_before_change[c.custom_field_id], :value => c.value) } - @current_journal.save unless @current_journal.details.empty? and @current_journal.notes.empty? + @current_journal.save end + # Save the issue even if the journal is not saved (because empty) + true end def after_save diff --git a/app/models/journal.rb b/app/models/journal.rb index 6e7632e73..a68988a7b 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -28,4 +28,9 @@ class Journal < ActiveRecord::Base :include => :issue, :project_key => "#{Issue.table_name}.project_id", :date_column => "#{Issue.table_name}.created_on" + + def save + # Do not save an empty journal + (details.empty? && notes.blank?) ? false : super + end end |