Feature 9867 Allow file upload in comment and add to issue history
git-svn-id: http://redmine.rubyforge.org/svn/trunk@425 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
f3a1b4e38c
commit
3f87f3c47a
|
@ -86,6 +86,15 @@ class IssuesController < ApplicationController
|
|||
journal = @issue.init_journal(self.logged_in_user, params[:notes])
|
||||
@issue.status = @new_status
|
||||
if @issue.update_attributes(params[:issue])
|
||||
# Save attachments
|
||||
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 Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
|
||||
redirect_to :action => 'show', :id => @issue
|
||||
|
@ -106,17 +115,28 @@ class IssuesController < ApplicationController
|
|||
def add_attachment
|
||||
# Save the attachments
|
||||
@attachments = []
|
||||
journal = @issue.init_journal(self.logged_in_user)
|
||||
params[:attachments].each { |file|
|
||||
next unless file.size > 0
|
||||
a = Attachment.create(:container => @issue, :file => file, :author => logged_in_user)
|
||||
@attachments << a unless a.new_record?
|
||||
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
|
||||
journal.save if journal.details.any?
|
||||
Mailer.deliver_attachments_add(@attachments) if !@attachments.empty? and Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
|
||||
redirect_to :action => 'show', :id => @issue
|
||||
end
|
||||
|
||||
def destroy_attachment
|
||||
@issue.attachments.find(params[:attachment_id]).destroy
|
||||
a = @issue.attachments.find(params[:attachment_id])
|
||||
a.destroy
|
||||
journal = @issue.init_journal(self.logged_in_user)
|
||||
journal.details << JournalDetail.new(:property => 'attachment',
|
||||
:prop_key => a.id,
|
||||
:old_value => a.filename)
|
||||
journal.save
|
||||
redirect_to :action => 'show', :id => @issue
|
||||
end
|
||||
|
||||
|
|
|
@ -48,6 +48,8 @@ module IssuesHelper
|
|||
value = format_value(detail.value, custom_field.field_format) if detail.value
|
||||
old_value = format_value(detail.old_value, custom_field.field_format) if detail.old_value
|
||||
end
|
||||
when 'attachment'
|
||||
label = l(:label_attachment)
|
||||
end
|
||||
|
||||
label ||= detail.prop_key
|
||||
|
@ -62,13 +64,23 @@ module IssuesHelper
|
|||
end
|
||||
|
||||
if detail.value and !detail.value.to_s.empty?
|
||||
if old_value
|
||||
label + " " + l(:text_journal_changed, old_value, value)
|
||||
else
|
||||
label + " " + l(:text_journal_set_to, value)
|
||||
case detail.property
|
||||
when 'attr', 'cf'
|
||||
if old_value
|
||||
label + " " + l(:text_journal_changed, old_value, value)
|
||||
else
|
||||
label + " " + l(:text_journal_set_to, value)
|
||||
end
|
||||
when 'attachment'
|
||||
"#{label} #{value} #{l(:label_added)}"
|
||||
end
|
||||
else
|
||||
label + " " + l(:text_journal_deleted) + " (#{old_value})"
|
||||
case detail.property
|
||||
when 'attr', 'cf'
|
||||
label + " " + l(:text_journal_deleted) + " (#{old_value})"
|
||||
when 'attachment'
|
||||
"#{label} #{old_value} #{l(:label_deleted)}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<h2><%=l(:label_issue)%> #<%= @issue.id %>: <%=h @issue.subject %></h2>
|
||||
|
||||
<%= error_messages_for 'issue' %>
|
||||
<% form_tag({:action => 'change_status', :id => @issue}, :class => "tabular") do %>
|
||||
<% form_tag({:action => 'change_status', :id => @issue}, :multipart => true, :class => "tabular") do %>
|
||||
|
||||
<%= hidden_field_tag 'confirm', 1 %>
|
||||
<%= hidden_field_tag 'new_status_id', @new_status.id %>
|
||||
|
@ -30,6 +30,12 @@
|
|||
<p><label for="notes"><%= l(:field_notes) %></label>
|
||||
<%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %></p>
|
||||
|
||||
<% if authorize_for('issues', 'add_attachment') %>
|
||||
<p id="attachments_p"><label><%=l(:label_attachment_new)%>
|
||||
<%= image_to_function "add.png", "addFileField();return false" %></label>
|
||||
<%= file_field_tag 'attachments[]', :size => 30 %> <em>(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)</em></p>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
<%= hidden_field 'issue', 'lock_version' %>
|
||||
|
|
Loading…
Reference in New Issue