neofiles 2.0.2 → 2.1.1

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
- SHA1:
3
- metadata.gz: 270d63f7c55f16dd7bc9899c7fe4f0c0ced9fbd3
4
- data.tar.gz: af060e4083f09b0493566075f3ea34d6d17f225b
2
+ SHA256:
3
+ metadata.gz: c990b0639f2c8783d0c511266ecc7bc5df9eaff856f171c08b33648a372ba8c0
4
+ data.tar.gz: 77177e83d421a156bf2e62e67ee408df101d3db971ce41df8b5053fa6a91a2c5
5
5
  SHA512:
6
- metadata.gz: 4bca497d608747f6f563cf6421a816251157b9d4736ae88d021cd5f5718fcb7139288d2127e1cb328cf3045c06b5caf40634b83f79b088e7455496134de9b5a6
7
- data.tar.gz: 33a681aedf0cb58571f7cb97ca9fe90e3d51dc4e100adbd117d16f37640edca738f5ff75a30132d1fe0b5df36f6d49428028e18e0206488af3cf4cf67b8f814e
6
+ metadata.gz: c58b69ec97b11ef6957470b49e229c89af3c26c286bd9161daec5ee05e77d2067541de311dc09135be62b394f7772860868323f04e3b3d758bbbd81b18958d51
7
+ data.tar.gz: 3357f8319fa3db3df89ca947968c24a59cd74b1e4d03ea938b73369932617c6ab6881bb6c56ab90e68c3e1523bd73611ae4221dbde33084965fcecd4c8ec3604
data/README.md CHANGED
@@ -403,6 +403,17 @@ config.neofiles.image_max_crop_height = 2000 # users can request resizing only u
403
403
  config.neofiles.watermarker = ->(image, no_watermark: false, watermark_width:, watermark_height:) do
404
404
  ...
405
405
  end
406
+
407
+ # picture when added is displayed on the right or left
408
+ # also affects the order of displaying pictures
409
+ config.neofiles.album_append_create_side = :left
410
+
411
+ # Amazon S3 settings
412
+ config.neofiles.amazon_s3_region = 'us-east'
413
+ config.neofiles.amazon_s3_api = 'KEY_ID'
414
+ config.neofiles.amazon_s3_secret = 'KEY_SECRET'
415
+ config.neofiles.amazon_s3_bucket = 'neofiles_prod'
416
+ config.neofiles.amazon_s3_endpoint = 'https://some-s3-provider.com' # optional
406
417
  ```
407
418
 
408
419
  Roadmap, TODOs
@@ -107,7 +107,8 @@ class Neofiles::AdminController < ApplicationController
107
107
 
108
108
  result = []
109
109
  file_objects.each_with_index do |file, i|
110
- result << file_compact(data.merge(id: file.id, widget_id: "#{data[:widget_id]}_ap_#{i}", append_create: i == file_objects.count - 1 && !old_file && data[:append_create] == '1' ? '1' : '0'))
110
+ append_create_position = Rails.application.config.neofiles.album_append_create_side == :left ? i == 0 : i == file_objects.count - 1
111
+ result << file_compact(data.merge(id: file.id, widget_id: "#{data[:widget_id]}_ap_#{i}", append_create: append_create_position && !old_file && data[:append_create] == '1' ? '1' : '0'))
111
112
  end
112
113
 
113
114
  if result.empty?
@@ -2,6 +2,7 @@
2
2
  # If you want to work with amazon s3 you need set values for the following parameters in your config file
3
3
  # amazon_s3_region - the AWS region to connect to. The region is used to construct the client endpoint.
4
4
  # amazon_s3_api, amazon_s3_secret - used to set credentials statically
5
+ # amazon_s3_endpoint - change if using another S3-compatible provider
5
6
  # bucket_name - storage name in amazon_s3. Bucket must have a name that conforms to the naming requirements for non-US Standard regions.
6
7
  # http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-s3-bucket-naming-requirements.html
7
8
  # File will be named as id of the Neofiles::File object
@@ -81,15 +82,23 @@ class Neofiles::DataStore::AmazonS3
81
82
  end
82
83
 
83
84
  def client
84
- @client ||= Aws::S3::Client.new(
85
- region: Rails.application.config.neofiles.amazon_s3_region,
86
- credentials: Aws::Credentials.new(
87
- Rails.application.config.neofiles.amazon_s3_api,
88
- Rails.application.config.neofiles.amazon_s3_secret
89
- )
90
- )
85
+ @client ||= Aws::S3::Client.new(client_params)
91
86
  rescue Aws::S3::Errors::ServiceError
92
87
  nil
93
88
  end
94
89
 
90
+ def client_params
91
+ {
92
+ region: Rails.application.config.neofiles.amazon_s3_region,
93
+ credentials: Aws::Credentials.new(
94
+ Rails.application.config.neofiles.amazon_s3_api,
95
+ Rails.application.config.neofiles.amazon_s3_secret
96
+ )
97
+ }.tap do |result|
98
+ if Rails.application.config.neofiles.amazon_s3_endpoint
99
+ result[:endpoint] = Rails.application.config.neofiles.amazon_s3_endpoint
100
+ end
101
+ end
102
+ end
103
+
95
104
  end
@@ -2,6 +2,11 @@
2
2
  - desc = file.try(:description).try(:to_s).try!(:strip).try!(:truncate, 15).presence
3
3
  - empty_desc = t 'neofiles.views.no_description'
4
4
 
5
+ - if Rails.application.config.neofiles.album_append_create_side == :left
6
+ - if append_create and file
7
+ = render partial: 'file_compact', locals: {file: nil, input_name: input_name, widget_id: widget_id + '_ap', clean_remove: clean_remove, append_create: true, error: nil, disabled: disabled, multiple: multiple, with_desc: with_desc, no_wm: no_wm}
8
+
9
+
5
10
  - classes = []
6
11
  - classes << 'neofiles-image-compact-empty' unless file
7
12
  - classes << 'neofiles-image-compact-with-description' if file && with_desc
@@ -53,11 +58,11 @@
53
58
  - popover_template = capture do
54
59
  .popover.neofiles-image-compact-description-popover(role="tooltip")
55
60
  .arrow
56
- %h3.popover-title
57
- .popover-content
61
+ %h3.popover-title.popover-header
62
+ .popover-content.popover-body
58
63
 
59
64
  .neofiles-image-compact-description
60
- %a.neofiles-image-compact-description-handle(href="#" data-empty=empty_desc data-toggle="popover" data-trigger="click" data-placement="bottom" data-html="true" data-animation="false" data-title="#{t 'neofiles.views.description'}" data-content=description_form data-template=popover_template){class: ('neofiles-image-compact-description-empty' unless desc)}= desc || empty_desc
65
+ %a.neofiles-image-compact-description-handle(href="#" data-empty=empty_desc data-toggle="popover" data-trigger="click" data-placement="bottom" data-html="true" data-animation="false" data-title="#{t 'neofiles.views.description'}" data-content="#{description_form}" data-template="#{popover_template}" data-container="##{widget_id}"){class: ('neofiles-image-compact-description-empty' unless desc)}= desc || empty_desc
61
66
 
62
67
  %span.neofiles-image-compact-upload-icon
63
68
  %i.icon-upload.glyphicon.glyphicon-upload
@@ -82,6 +87,7 @@
82
87
  $("##{widget_id}").image();
83
88
  });
84
89
 
85
- - if append_create and file
86
- = render partial: 'file_compact', locals: {file: nil, input_name: input_name, widget_id: widget_id + '_ap', clean_remove: clean_remove, append_create: true, error: nil, disabled: disabled, multiple: multiple, with_desc: with_desc, no_wm: no_wm}
90
+ - if Rails.application.config.neofiles.album_append_create_side == :right
91
+ - if append_create && file
92
+ = render partial: 'file_compact', locals: {file: nil, input_name: input_name, widget_id: widget_id + '_ap', clean_remove: clean_remove, append_create: true, error: nil, disabled: disabled, multiple: multiple, with_desc: with_desc, no_wm: no_wm}
87
93
 
@@ -16,6 +16,8 @@ module Neofiles
16
16
  config.neofiles.image_max_crop_width = 2000 # users can request resizing only up to this width
17
17
  config.neofiles.image_max_crop_height = 2000 # users can request resizing only up to this height
18
18
 
19
+ config.neofiles.album_append_create_side = :right # picture when added is displayed on the right
20
+
19
21
  # default storage
20
22
  config.neofiles.write_data_stores = 'mongo'
21
23
  config.neofiles.read_data_stores = 'mongo'
@@ -1,3 +1,3 @@
1
1
  module Neofiles
2
- VERSION = '2.0.2'
2
+ VERSION = '2.1.1'
3
3
  end
data/lib/neofiles.rb CHANGED
@@ -57,6 +57,19 @@ module Neofiles
57
57
  # image fits into requested dimensions, no resizing will occur
58
58
  return image_file_width, image_file_height if image_file_width <= width && image_file_height <= height
59
59
 
60
+ in_aspect = 1.0 * image_file_width / image_file_height
61
+ out_aspect = 1.0 * width / height
62
+
63
+ if in_aspect > out_aspect
64
+ # If image is more "flat", the output width will always be equal to the requested width,
65
+ # and the output height will be less than the requested height
66
+ height = nil
67
+ else
68
+ # If input image is more "stretched" vertically or its aspect ratio is equal to output aspect ratio,
69
+ # the output height will be equal to the requested height, and the output width will be less than or equal to the requested width
70
+ width = nil
71
+ end
72
+
60
73
  AspectRatio.resize(image_file_width, image_file_height, width, height).map(&:to_i)
61
74
 
62
75
  rescue
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neofiles
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konanykhin Ilya
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-18 00:00:00.000000000 Z
11
+ date: 2021-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -155,7 +155,7 @@ homepage: http://neoweb.kz
155
155
  licenses:
156
156
  - MIT
157
157
  metadata: {}
158
- post_install_message:
158
+ post_install_message:
159
159
  rdoc_options: []
160
160
  require_paths:
161
161
  - lib
@@ -170,9 +170,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  - !ruby/object:Gem::Version
171
171
  version: '0'
172
172
  requirements: []
173
- rubyforge_project:
174
- rubygems_version: 2.6.12
175
- signing_key:
173
+ rubygems_version: 3.0.9
174
+ signing_key:
176
175
  specification_version: 4
177
176
  summary: Serves and manages files & images.
178
177
  test_files: []