administrate-field-active_storage 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b058fa8ec0f06a6ed219895cd2c1556c3a0932b
4
- data.tar.gz: 04df4bed024e9b3105ae3e6684090bdf497f3092
3
+ metadata.gz: '09680d84898084c57e5074d113530d27fb7d7ae1'
4
+ data.tar.gz: 4da191e3ba06952160837bb122ad242e1cfc8ef9
5
5
  SHA512:
6
- metadata.gz: b7ed48e470ee5ac246d114e6c152732c4ff24eb7dc81c017477cee1f8f03d09af02cd6be15b1e3a87e9612957b58250cc2c0d974fb8fe9f5b08df2ff24900ebd
7
- data.tar.gz: c930ba8c28b28caae7ae888ec2b01c5c56c71e92c6b673aee459c0610f032d7c8078d7091f7ce5d1391637873ea50c8d4d8ee5143a76ec53599e3c90c44f63d6
6
+ metadata.gz: 1ab9acf4c492cf3c344fb96cd66d6eb800616269226761ccb1e1fc4981f9340b1615c8cb8fb5ee82bca8d1ce3b141937e35f3ea5a7669acd899045be426cc900
7
+ data.tar.gz: 43e86708e5ed5baba482887db772f51d30b6faee422d88d6ffea5e7648d25d37e0aa46594682eab9522dc6aa5d7817347e50fe7fa57bba86c53aa3e008f984f4
data/README.md CHANGED
@@ -87,6 +87,28 @@ class ModelDashboard < Administrate::BaseDashboard
87
87
  end
88
88
  ```
89
89
 
90
+ ### show_in_index
91
+ This will preview thumbnails in the index page and if you're using `has_many` it will show the first one as a thumbnail and a count of the total attached files
92
+ ```ruby
93
+ class ModelDashboard < Administrate::BaseDashboard
94
+ ATTRIBUTE_TYPES = {
95
+ attachments: Field::ActiveStorage.with_options({show_in_index: true}),
96
+ # ...
97
+ }
98
+ # ...
99
+ end
100
+ ```
101
+
102
+ ## show_preview_size
103
+ Supply the size of the image preview inside the show page check out the mini_magic documentation for resize
104
+ ```ruby
105
+ class ModelDashboard < Administrate::BaseDashboard
106
+ ATTRIBUTE_TYPES = {
107
+ attachments: Field::ActiveStorage.with_options({show_preview_size: '150x200>'}),
108
+ # ...
109
+ }
110
+ # ...
111
+ end
90
112
  ### direct_upload
91
113
  If you want to upload directly from the browser to the cloud you can use direct_upload
92
114
  ```ruby
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "administrate-field-active_storage"
5
- gem.version = "0.1.6"
5
+ gem.version = "0.1.7"
6
6
  gem.authors = ["Hamad AlGhanim"]
7
7
  gem.email = ["hamadyalghanim@gmail.com"]
8
8
  gem.homepage = "https://github.com/Dreamersoul/administrate-field-active_storage"
@@ -14,10 +14,18 @@ By default, the attribute is rendered as an image tag.
14
14
 
15
15
  [1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Image
16
16
  %>
17
+ <style> <%# figure out a way to remove this %>
18
+ td img {
19
+ max-height: unset !important;
20
+ }
21
+ </style>
17
22
  <%
18
23
  attachments = Array(field.many? ? field.attachments : field.data)
19
24
  %>
20
25
  <% if field.attached? %>
26
+ <% if field.show_in_index? %>
27
+ <%= render partial: 'fields/active_storage/item', locals: { field: field, attachment: attachments[0], image_size: "250x250>" } %>
28
+ <% end %>
21
29
  <%= pluralize(attachments.count, 'Attached file') %>
22
30
  <% else %>
23
31
  0 Attached files
@@ -24,12 +24,13 @@ controlled via a boolean local variable.
24
24
  <%
25
25
  # By default we don't allow attachment removal
26
26
  removable = local_assigns.fetch(:removable, false)
27
+ image_size = local_assigns.fetch(:image_size, "1920x1080>")
27
28
  %>
28
29
 
29
30
  <% if attachment.image? and !field.url_only? %>
30
- <%= image_tag(field.url(attachment)) %>
31
+ <%= image_tag(field.variant(attachment, resize: image_size)) %>
31
32
  <% elsif attachment.video? and attachment.previewable? and !field.url_only? %> <%# if ffmpeg is installed %>
32
- <%= video_tag(field.url(attachment), poster: field.preview(attachment, resize: "1920x1080>"), controls: true, autobuffer: true, style: "width: 100%; height: auto;") %>
33
+ <%= video_tag(field.url(attachment), poster: field.preview(attachment, resize: image_size), controls: true, autobuffer: true, style: "width: 100%; height: auto;") %>
33
34
  <% elsif attachment.video? and !field.url_only? %>
34
35
  <%= video_tag(field.url(attachment), controls: true, autobuffer: true, style: "width: 100%; height: auto;") %>
35
36
  <% elsif attachment.audio? and !field.url_only? %>
@@ -20,6 +20,6 @@ This partial renders one or more attachments
20
20
 
21
21
  <% attachments.each do |attachment| %>
22
22
  <div class="attachments-listing">
23
- <%= render partial: 'fields/active_storage/item', locals: { field: field, attachment: attachment, removable: removable } %>
23
+ <%= render partial: 'fields/active_storage/item', locals: { field: field, attachment: attachment, removable: removable, image_size: field.show_preview_size } %>
24
24
  </div>
25
25
  <% end %>
@@ -61,6 +61,7 @@ end
61
61
  # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
62
62
  gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
63
63
 
64
+ gem 'mini_magick'
64
65
 
65
66
  gem "administrate"
66
67
  gem 'administrate-field-active_storage', :path => "../"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- administrate-field-active_storage (0.1.5)
4
+ administrate-field-active_storage (0.1.6)
5
5
  administrate (>= 0.2.0.rc1)
6
6
  rails (>= 5.2)
7
7
 
@@ -136,6 +136,7 @@ GEM
136
136
  mimemagic (~> 0.3.2)
137
137
  method_source (0.9.2)
138
138
  mimemagic (0.3.3)
139
+ mini_magick (4.9.3)
139
140
  mini_mime (1.0.1)
140
141
  mini_portile2 (2.4.0)
141
142
  minitest (5.11.3)
@@ -244,6 +245,7 @@ DEPENDENCIES
244
245
  coffee-rails (~> 4.2)
245
246
  jbuilder (~> 2.5)
246
247
  listen (>= 3.0.5, < 3.2)
248
+ mini_magick
247
249
  puma (~> 3.11)
248
250
  rails (~> 5.2.0)
249
251
  sass-rails (~> 5.0)
@@ -10,9 +10,9 @@ class UserDashboard < Administrate::BaseDashboard
10
10
  ATTRIBUTE_TYPES = {
11
11
  id: Field::Number,
12
12
  name: Field::String,
13
- avatars: Field::ActiveStorage.with_options({:destroy_path => :custom_active_record_remove_path}),
13
+ avatars: Field::ActiveStorage.with_options({:destroy_path => :custom_active_record_remove_path, :show_in_index => true}),
14
14
  created_at: Field::DateTime,
15
- updated_at: Field::DateTime,
15
+ updated_at: Field::DateTime
16
16
  }.freeze
17
17
 
18
18
  # COLLECTION_ATTRIBUTES
@@ -23,7 +23,7 @@ class UserDashboard < Administrate::BaseDashboard
23
23
  COLLECTION_ATTRIBUTES = [
24
24
  :id,
25
25
  :name,
26
- :avatars,
26
+ :avatars
27
27
  ].freeze
28
28
 
29
29
  # SHOW_PAGE_ATTRIBUTES
@@ -33,7 +33,7 @@ class UserDashboard < Administrate::BaseDashboard
33
33
  :name,
34
34
  :avatars,
35
35
  :created_at,
36
- :updated_at,
36
+ :updated_at
37
37
  ].freeze
38
38
 
39
39
  # FORM_ATTRIBUTES
@@ -41,7 +41,7 @@ class UserDashboard < Administrate::BaseDashboard
41
41
  # on the model's form (`new` and `edit`) pages.
42
42
  FORM_ATTRIBUTES = [
43
43
  :name,
44
- :avatars,
44
+ :avatars
45
45
  ].freeze
46
46
 
47
47
  # Overwrite this method to customize how users are displayed
@@ -1,5 +1,5 @@
1
- require "administrate/field/base"
2
- require "rails"
1
+ require 'administrate/field/base'
2
+ require 'rails'
3
3
 
4
4
  module Administrate
5
5
  module Field
@@ -15,9 +15,17 @@ module Administrate
15
15
  options.key?(:destroy_path)
16
16
  end
17
17
 
18
+ def show_in_index?
19
+ options.key?(:destroy_path)
20
+ end
21
+
22
+ def show_preview_size
23
+ options.fetch(:show_preview_size, "1080x1920>")
24
+ end
25
+
18
26
  def many?
19
27
  # find a way to use instance_of
20
- data.class.name == "ActiveStorage::Attached::Many"
28
+ data.class.name == 'ActiveStorage::Attached::Many'
21
29
  end
22
30
 
23
31
  def direct?
@@ -28,7 +36,7 @@ module Administrate
28
36
  # options.fetch(:destroy_path, false).present?
29
37
  # end
30
38
 
31
- # currently we are using Rails.application.routes.url_helpers
39
+ # currently we are using Rails.application.routes.url_helpers
32
40
  # without including the namespace because it runs into an
33
41
  # exception
34
42
 
@@ -38,10 +46,14 @@ module Administrate
38
46
  Rails.application.routes.url_helpers.rails_representation_path(attachment.preview(options), only_path: true)
39
47
  end
40
48
 
49
+ def variant(attachment, options)
50
+ Rails.application.routes.url_helpers.rails_representation_path(attachment.variant(combine_options: options), only_path: true)
51
+ end
52
+
41
53
  def url(attachment)
42
54
  Rails.application.routes.url_helpers.rails_blob_path(attachment, only_path: true)
43
55
  end
44
-
56
+
45
57
  def blob_url(attachment)
46
58
  Rails.application.routes.url_helpers.rails_blob_path(attachment, disposition: :attachment, only_path: true)
47
59
  end
@@ -52,7 +64,7 @@ module Administrate
52
64
  attachment_id = attachment.id
53
65
  Rails.application.routes.url_helpers.send(destroy_path_helper, {:record_id => record_id, :attachment_id => attachment_id})
54
66
  end
55
-
67
+
56
68
  delegate :attached?, to: :data
57
69
  delegate :attachments, to: :data
58
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: administrate-field-active_storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hamad AlGhanim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-12 00:00:00.000000000 Z
11
+ date: 2019-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: administrate