Chris@1516: Chris@1516: <% if defined?(container) && container && container.saved_attachments %> Chris@1516: <% container.saved_attachments.each_with_index do |attachment, i| %> Chris@1516: Chris@1516: <%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename') + Chris@1516: text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 255, :placeholder => l(:label_optional_description), :class => 'description') + Chris@1516: link_to(' '.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') %> Chris@1516: <%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %> Chris@1516: Chris@1516: <% end %> Chris@1516: <% end %> Chris@1516: Chris@1516: Chris@1516: <%= file_field_tag 'attachments[dummy][file]', Chris@1516: :id => nil, Chris@1516: :class => 'file_selector', Chris@1516: :multiple => true, Chris@1516: :data => { Chris@1516: :max_file_size => Setting.attachment_max_size.to_i.kilobytes, Chris@1516: :max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)), Chris@1516: :max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i, Chris@1516: :upload_path => uploads_path(:format => 'js'), Chris@1516: :description_placeholder => l(:label_optional_description) Chris@1516: } %> Chris@1516: (<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>) Chris@1516: Chris@1516: <%= javascript_tag do %> Chris@1516: $('input.file_selector').on('change', function(){addInputFiles(this);}); Chris@1516: <% end %> Chris@1516: Chris@1516: <% content_for :header_tags do %> Chris@1516: <%= javascript_include_tag 'attachments' %> Chris@1516: <% end %>