summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-10-19 19:09:47 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-10-19 19:09:47 +0000
commit0e4e0a795a7259a096fbbecbf12dcd16d99de0e9 (patch)
treeb05ee0e72482c51b939aca1c6f978dc10455da27
parentecfc40629f1e9e266b190f54da264f31b153cdb3 (diff)
downloadredmine-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.rb28
-rw-r--r--app/models/issue.rb4
-rw-r--r--app/models/journal.rb5
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