diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..8d48ace --- /dev/null +++ b/Gemfile @@ -0,0 +1 @@ +gem 'render_parent', '~> 0.1.0' diff --git a/app/views/attachments/_form.html.erb b/app/views/attachments/_form.html.erb index a5683f3..32c55d3 100644 --- a/app/views/attachments/_form.html.erb +++ b/app/views/attachments/_form.html.erb @@ -6,7 +6,7 @@ <% locals[:saved_attachments] = saved_attachments if defined?(saved_attachments) %> <% locals[:filedrop] = filedrop if defined?(filedrop) %> -<%= render :file => File.join(Rails.root, 'app/views/attachments/_form.html.erb'), :locals => locals %> +<%= render :parent, {:locals => locals} %> <% content_for :header_tags do %> <% maxFileUploads = Setting.plugin_that_attachments_limit['attachments_limit'].to_i %> diff --git a/assets/javascripts/attachments.js b/assets/javascripts/attachments.js index 532257a..0b1a472 100644 --- a/assets/javascripts/attachments.js +++ b/assets/javascripts/attachments.js @@ -7,7 +7,7 @@ function addFile(inputEl, file, eagerUpload) { var attachmentId = addFile.nextAttachmentId++; var fileSpan = $('', { id: 'attachments_' + attachmentId }); var param = $(inputEl).data('param'); - if (!param) { param = 'attachments'; } + if (!param) { param = 'attachments'}; fileSpan.append( $('', { type: 'text', 'class': 'icon icon-attachment filename readonly', name: param +'[' + attachmentId + '][filename]', readonly: 'readonly' }).val(file.name), @@ -31,3 +31,25 @@ function addFile(inputEl, file, eagerUpload) { } addFile.nextAttachmentId = 1; + +function uploadAndAttachFiles(files, inputEl) { + + var maxFileSize = $(inputEl).data('max-file-size'); + var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); + + var sizeExceeded = false; + var filesLength = $(inputEl).closest('.attachments_form').find('.attachments_fields').children().length + files.length + $.each(files, function() { + if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {sizeExceeded=true;} + }); + if (sizeExceeded) { + window.alert(maxFileSizeExceeded); + } else { + $.each(files, function() {addFile(inputEl, this, true);}); + } + + if (filesLength > ($(inputEl).attr('multiple') == 'multiple' ? window.maxFileUploads : 1)) { + window.alert($(inputEl).data('max-number-of-files-message')); + } + return sizeExceeded; +} \ No newline at end of file diff --git a/init.rb b/init.rb index 27272e3..adc8c8d 100644 --- a/init.rb +++ b/init.rb @@ -8,7 +8,8 @@ author_url 'http://www.andriylesyuk.com/' description 'Allows to configure how many attachments can be uploaded at once.' url 'https://github.com/thatcompany/that_attachments_limit' - version '0.0.1' + version '0.0.2' settings :default => { 'attachments_limit' => 10 }, :partial => 'settings/attachments_limit' end +