rails-uploader 0.5.0 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b602b1677568ea5d878174c76224c6a61d431efdb93046f8bd3b897dbed63f55
4
- data.tar.gz: e2464535aa4a6f329bee939b98a32fba4193f472111bda3c669c5f8465d1ac62
3
+ metadata.gz: 566c841fcb9d098a1b256c3aff94e01950cdbb0ace03d1c657e8d9fa3c114314
4
+ data.tar.gz: 4ac9416e87c31176a81392e1a958fc90e65f3cc5c70d7faf72e37fdadcb21053
5
5
  SHA512:
6
- metadata.gz: 194158c8d9f7540ed210e11b3cb1b98ff346c35562b960365dba01113caea71b808363832b613a804bcd45b2df2f815506d8c74c25532011384dd027f38f9660
7
- data.tar.gz: d66527e6277747de70d148af352391998c83a75e08418e0a665c31130c1ea5117e06c2c039ce4b8fad73930e75fe5cfe45c77da72e509ee4da6fdb34ed72c5ee
6
+ metadata.gz: d535a4a9a2c9e40d24826c586f6ebf006934f3194f4600390e783659eadbe37955474b8430a1843ed8db6841afc13998cbaf46e2b935a88bc651fccf8806f33c
7
+ data.tar.gz: 1ddd6948b2fd9c202b1a1bfeb9ce491964823bd7a3b861a33f2ad34b7c7e09fd6b452c1b5da312344ccdc9f9de1c6b8f8e42c45a2bcd40489f872f4fedf2e322
data/README.md CHANGED
@@ -41,6 +41,23 @@ class Picture < Asset
41
41
  url(:thumb)
42
42
  end
43
43
  end
44
+
45
+ class PictureUploader < CarrierWave::Uploader::Base
46
+ include CarrierWave::MiniMagick
47
+
48
+ # Choose what kind of storage to use for this uploader:
49
+ storage :file
50
+
51
+ EXTENSION_WHITELIST = %w[jpg jpeg gif png].freeze
52
+
53
+ version :thumb do
54
+ process resize_to_fill: [100, 100]
55
+ end
56
+
57
+ def extension_whitelist
58
+ EXTENSION_WHITELIST
59
+ end
60
+ end
44
61
  ```
45
62
 
46
63
  For example user has one picture:
data/Rakefile CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require 'rdoc/task'
3
4
  require 'bundler/gem_tasks'
4
5
  require 'rspec/core/rake_task'
@@ -69,12 +69,6 @@ module Uploader
69
69
  end
70
70
  end
71
71
 
72
- def render_json(hash_or_object, status = 200)
73
- self.status = status
74
- self.content_type = request.format
75
- self.response_body = hash_or_object.to_json(root: false)
76
- end
77
-
78
72
  def asset_params
79
73
  ActionController::Parameters.new(params).require(:asset).permit(:data)
80
74
  end
@@ -1,6 +1,7 @@
1
1
  <%= content_tag(:div, id: field.id, class: 'uploader-dnd-area', data: { tpml: field.klass.to_s, exists: field.exists? }) do -%>
2
2
  <%= hidden_field(field.object_name, :fileupload_guid, object: field.object) if field.object.new_record? %>
3
3
 
4
+ <p class='uploader-errors'></p>
4
5
  <div class="uploader-files"></div>
5
6
 
6
7
  <div class="uploader-dnd-hints">
@@ -1,13 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_support/concern'
4
+ require_relative 'json_rendering'
4
5
 
5
6
  module Uploader
6
7
  module Authorization
7
8
  extend ActiveSupport::Concern
8
9
 
9
10
  included do
10
- include ActiveSupport::Rescuable
11
+ include JsonRendering
12
+ include ActionController::Rescue
11
13
 
12
14
  rescue_from Uploader::AccessDenied, with: :dispatch_uploader_access_denied
13
15
  end
@@ -44,7 +46,7 @@ module Uploader
44
46
  end
45
47
 
46
48
  def dispatch_uploader_access_denied(exception)
47
- render json: { message: exception.message }, status: 403
49
+ render_json({ message: exception.message }, 403)
48
50
  end
49
51
 
50
52
  def current_uploader_user
@@ -76,12 +76,21 @@ module Uploader
76
76
  @input_html ||= { multiple: multiple?, class: 'uploader' }.merge(input_html_options)
77
77
  @input_html[:data] ||= {}
78
78
  @input_html[:data][:url] ||= attachments_path(singular: !multiple?)
79
+ @input_html[:accept] ||= extract_extension_whitelist
79
80
  @input_html
80
81
  end
81
82
 
82
83
  def input_html_options
83
84
  @options.reject { |key, _value| RESERVED_OPTIONS_KEYS.include?(key.to_s) }
84
85
  end
86
+
87
+ def extract_extension_whitelist
88
+ return unless klass.respond_to?(:uploaders)
89
+ return unless klass.uploaders[:data].try(:const_defined?, :EXTENSION_WHITELIST)
90
+
91
+ exts = klass.uploaders[:data]::EXTENSION_WHITELIST
92
+ ".#{exts.join(', .')}" if exts.any?
93
+ end
85
94
  end
86
95
  end
87
96
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Uploader
4
+ module JsonRendering
5
+ def render_json(hash_or_object, status = 200)
6
+ self.status = status
7
+ self.content_type = request.format
8
+ self.response_body = hash_or_object.to_json(root: false)
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uploader
4
- VERSION = '0.5.0'.freeze
4
+ VERSION = '0.5.4'
5
5
  end
@@ -1,7 +1,6 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  class PictureUploader < CarrierWave::Uploader::Base
4
-
5
4
  # Include RMagick or MiniMagick support:
6
5
  # include CarrierWave::RMagick
7
6
  include CarrierWave::MiniMagick
@@ -51,5 +50,4 @@ class PictureUploader < CarrierWave::Uploader::Base
51
50
  # def filename
52
51
  # "something.jpg" if original_filename
53
52
  # end
54
-
55
53
  end
@@ -173,6 +173,7 @@
173
173
  deferred;
174
174
  var options = that.options;
175
175
  if (options.singular) { options.filesContainer.html(data.context || '') };
176
+ options.dropZone.find('.uploader-errors').text('');
176
177
  if (data.context) {
177
178
  data.context.each(function (index) {
178
179
  var file = files[index] ||
@@ -220,6 +221,9 @@
220
221
  $(this).data('fileupload'),
221
222
  template,
222
223
  deferred;
224
+ try { var errors = data._response.jqXHR.responseJSON.files[0].error || ''}
225
+ catch (e) { var errors = '' }
226
+ that.options.dropZone.find('.uploader-errors').text(errors);
223
227
  if (data.context) {
224
228
  data.context.each(function (index) {
225
229
  if (data.errorThrown !== 'abort') {
@@ -239,6 +243,7 @@
239
243
  that._trigger('failed', e, data);
240
244
  that._trigger('finished', e, data);
241
245
  deferred.resolve();
246
+ data.context.remove();
242
247
  }
243
248
  );
244
249
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-uploader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Galeta
@@ -9,10 +9,10 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-11-17 00:00:00.000000000 Z
12
+ date: 2022-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: sqlite3
15
+ name: carrierwave
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
@@ -26,7 +26,7 @@ dependencies:
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
- name: carrierwave
29
+ name: mongoid
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
@@ -40,7 +40,7 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: mongoid
43
+ name: sqlite3
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
@@ -93,6 +93,7 @@ files:
93
93
  - lib/uploader/hooks/active_record.rb
94
94
  - lib/uploader/hooks/formtastic.rb
95
95
  - lib/uploader/hooks/simple_form.rb
96
+ - lib/uploader/json_rendering.rb
96
97
  - lib/uploader/upload_request.rb
97
98
  - lib/uploader/version.rb
98
99
  - spec/dummy/README.rdoc