viniBaxter-field-active_storage 300.0.2 → 300.0.4
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 +4 -4
- data/app/views/fields/active_storage/_form.html.erb +0 -16
- data/app/views/fields/active_storage/_index.html.erb +27 -35
- data/app/views/fields/active_storage/_show.html.erb +4 -18
- data/app/views/fields/active_storage/drop_js/_drop_js_items_if_sweety.html.erb +57 -0
- data/app/views/fields/active_storage/normal/_item.html.erb +31 -33
- data/app/views/fields/active_storage/normal/_items.html.erb +35 -0
- data/app/views/fields/active_storage/normal/_preview.html.erb +42 -0
- data/lib/viniBaxter/field/active_storage.rb +18 -2
- data/lib/viniBaxter/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87b79589f648d29cae389c4f4e05ba2f5eda5a204a05d3a868f2a5d4bb001587
|
4
|
+
data.tar.gz: 500b6345e53af356d9bb4062462185d1c700edd5a2b7736fd6d68a63e7c8eba6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 105b6b52b9bc8d9cce99b1e73718cd37c38832f1cf23e4773eafb20c6a5672e4e77dd030f000d62f4c4b41d00db831c43878db931d881691a2163e736c296ab9
|
7
|
+
data.tar.gz: 4d8d9ddc967eb6f9659fa7e2e69e8bd7a7b5a56fbb99bcdef90410c331151bb6e1ebb850f7daf2471cc068143d27cafb52b82be7971f3a26f88eab6eb854cbf5
|
@@ -1,19 +1,3 @@
|
|
1
|
-
<%#
|
2
|
-
# Image Form Partial
|
3
|
-
|
4
|
-
This partial renders an input element for image attributes.
|
5
|
-
By default, the input is a text field for the image's URL.
|
6
|
-
|
7
|
-
## Local variables:
|
8
|
-
|
9
|
-
- `f`:
|
10
|
-
A Rails form generator, used to help create the appropriate input fields.
|
11
|
-
- `field`:
|
12
|
-
An instance of [Administrate::Field::Image][1].
|
13
|
-
A wrapper around the image url pulled from the database.
|
14
|
-
|
15
|
-
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Image
|
16
|
-
%>
|
17
1
|
<div class="field-unit__label">
|
18
2
|
<%= f.label field.attribute %>
|
19
3
|
</div>
|
@@ -1,42 +1,34 @@
|
|
1
|
-
<%#
|
2
|
-
# Image Index Partial
|
3
|
-
|
4
|
-
This partial renders an image attribute
|
5
|
-
to be displayed on a resource's index page.
|
6
|
-
|
7
|
-
By default, the attribute is rendered as an image tag.
|
8
|
-
|
9
|
-
## Local variables:
|
10
|
-
|
11
|
-
- `field`:
|
12
|
-
An instance of [Administrate::Field::Image][1].
|
13
|
-
A wrapper around the image url pulled from the database.
|
14
|
-
|
15
|
-
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Image
|
16
|
-
%>
|
17
|
-
<style>
|
18
|
-
<%# figure out a way to remove this %>
|
19
|
-
td img {
|
20
|
-
max-height: unset !important;
|
21
|
-
}
|
22
|
-
</style>
|
23
|
-
<%
|
24
|
-
attachments = Array(field.many? ? field.attachments : field.data)
|
25
|
-
%>
|
26
1
|
<% if field.attached? %>
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
2
|
+
<style type="text/css" nonce="<%= content_security_policy_nonce %>">
|
3
|
+
<%# figure out a way to remove this %>
|
4
|
+
td img {
|
5
|
+
max-height: unset !important;
|
6
|
+
}
|
7
|
+
</style>
|
8
|
+
<% if field.index_display_preview? %>
|
9
|
+
<% if field.many? %>
|
10
|
+
<%= render partial: 'fields/active_storage/normal/items',
|
11
|
+
locals: {
|
12
|
+
many: true,
|
13
|
+
field: field,
|
14
|
+
size: field.index_preview_size
|
15
|
+
} %>
|
16
|
+
<% else %>
|
17
|
+
<%= render partial: 'fields/active_storage/normal/item',
|
18
|
+
locals: {
|
19
|
+
many: false,
|
20
|
+
field: field,
|
21
|
+
attachment: field.data,
|
22
|
+
size: field.index_preview_size
|
23
|
+
} %>
|
24
|
+
<% end %>
|
34
25
|
<% end %>
|
35
26
|
<% if field.index_display_count? %>
|
36
27
|
<div class="attachments-count">
|
37
|
-
<%= pluralize(field.attachments.count,
|
28
|
+
<%= pluralize(field.attachments.count,
|
29
|
+
I18n.t("administrate.fields.active_storage.attachment", default: 'Attachment')
|
30
|
+
)
|
31
|
+
%>
|
38
32
|
</div>
|
39
33
|
<% end %>
|
40
|
-
<% else %>
|
41
|
-
0 Attached files
|
42
34
|
<% end %>
|
@@ -1,23 +1,9 @@
|
|
1
|
-
<%#
|
2
|
-
# Image Show Partial
|
3
|
-
|
4
|
-
This partial renders an image attribute,
|
5
|
-
to be displayed on a resource's show page.
|
6
|
-
|
7
|
-
By default, the attribute is rendered as an image tag.
|
8
|
-
|
9
|
-
## Local variables:
|
10
|
-
|
11
|
-
- `field`:
|
12
|
-
An instance of [Administrate::Field::Image][1].
|
13
|
-
A wrapper around the image url pulled from the database.
|
14
|
-
|
15
|
-
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Image
|
16
|
-
%>
|
17
1
|
<% if field.attached? %>
|
18
|
-
<% if field.show_drop_js_on_show? %>
|
2
|
+
<% if field.show_drop_js_on_show? && field.sweety_show_drop_js_on_show? %>
|
3
|
+
<%= render partial: 'fields/active_storage/drop_js/drop_js_items_if_sweety', locals: { field: field, removable: field.destroyable? } %>
|
4
|
+
<% elsif field.show_drop_js_on_show?%>
|
19
5
|
<%= render partial: 'fields/active_storage/drop_js/drop_js_items_on_show', locals: { field: field } %>
|
20
|
-
<%else %>
|
6
|
+
<% else %>
|
21
7
|
<%= render partial: 'fields/active_storage/normal/items_on_show', locals: { field: field } %>
|
22
8
|
<% end %>
|
23
9
|
<% end %>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<%
|
2
|
+
attachments = Array(field.many? ? field.attachments : field.data)
|
3
|
+
removable = local_assigns.fetch(:removable, false)
|
4
|
+
%>
|
5
|
+
<div class="mt-5 col-12 ">
|
6
|
+
<div class="row">
|
7
|
+
<div class="col-12">
|
8
|
+
<div class="">
|
9
|
+
<div class="card-body">
|
10
|
+
<div class="already-downloaded dropzone">
|
11
|
+
<div class="list-group list-group-flush">
|
12
|
+
<div class="list-group-item">
|
13
|
+
<div class="row align-items-center">
|
14
|
+
<% attachments.each do |attachment| %>
|
15
|
+
<div>
|
16
|
+
<div class="" id="<%= @page.class %>_picture_<%= attachment.id %>">
|
17
|
+
<%= render partial: 'fields/active_storage/drop_js/dropjs_list_edit', locals: {
|
18
|
+
field: field,
|
19
|
+
attachment: attachment,
|
20
|
+
removable: removable,
|
21
|
+
image_size: field.show_preview_size
|
22
|
+
}%>
|
23
|
+
</div>
|
24
|
+
<div class="col ml-n2">
|
25
|
+
<small class="text-muted">
|
26
|
+
<div class="mb-1 dz-size" data-dz-size="">
|
27
|
+
<strong>
|
28
|
+
SEO: <%= alt_method(attachment) %>
|
29
|
+
</strong>
|
30
|
+
</div>
|
31
|
+
</small>
|
32
|
+
<div class="dz-error-message"><span data-dz-errormessage=""></span></div>
|
33
|
+
<!-- Text -->
|
34
|
+
<small class="text-muted">
|
35
|
+
<div class="mb-1 dz-size" data-dz-size="">
|
36
|
+
<strong>
|
37
|
+
full name : <%= attachment.filename %> |
|
38
|
+
</strong></div>
|
39
|
+
</small>
|
40
|
+
<small class="text-muted">
|
41
|
+
<div class="mb-1 dz-size" data-dz-size="">
|
42
|
+
<strong>
|
43
|
+
<%= attachment.byte_size.fdiv(1000).round(1) %>
|
44
|
+
</strong> KB</div>
|
45
|
+
</small>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
<% end %>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
</div>
|
@@ -1,35 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
<%#
|
2
|
+
# Item Partial
|
3
|
+
|
4
|
+
This partial renders attached items.
|
5
|
+
|
6
|
+
Attachments of type image, video and audio are emedded. For all other types
|
7
|
+
we try use it's preview. If all else fails we simply link to the attached file.
|
8
|
+
|
9
|
+
This partial will optionally show a `remove` link next to each attachment which is
|
10
|
+
controlled via a boolean local variable.
|
11
|
+
|
12
|
+
## Local variables:
|
13
|
+
|
14
|
+
- `field`:
|
15
|
+
An instance of [Administrate::Field::Image].
|
16
|
+
A wrapper around the image url pulled from the database.
|
17
|
+
- `attachment`:
|
18
|
+
Reference to the file
|
19
|
+
- `removable`:
|
20
|
+
A boolean used to control the display of a `Remove` link which
|
21
|
+
is used to destroy a single attachment. Defaults to `false`
|
22
|
+
- `size`:
|
23
|
+
[x, y]
|
24
|
+
Maximum size of the ActiveStorage preview.
|
25
|
+
%>
|
26
|
+
<% if field.show_display_preview? %>
|
27
|
+
<div>
|
28
|
+
<%= render partial: 'fields/active_storage/normal/preview', locals: local_assigns %>
|
6
29
|
</div>
|
7
|
-
<% elsif attachment.image? and !field.url_only? %>
|
8
|
-
<%= link_to(field.blob_url(attachment), title: attachment.filename) do %>
|
9
|
-
<%= image_tag(field.url(attachment)) %>
|
10
|
-
<% end %>
|
11
|
-
<% elsif attachment.video? and attachment.previewable? and !field.url_only? %> <%# if ffmpeg is installed %>
|
12
|
-
<%= video_tag(field.url(attachment), poster: field.preview(attachment, resize_to_limit: image_size), controls: true, autobuffer: true, style: "width: 100%; height: auto;") %>
|
13
|
-
<% elsif attachment.video? and !field.url_only? %>
|
14
|
-
<%= video_tag(field.url(attachment), controls: true, autobuffer: true, style: "width: 100%; height: auto;") %>
|
15
|
-
<% elsif attachment.audio? and !field.url_only? %>
|
16
|
-
<%= audio_tag(field.url(attachment), autoplay: false, controls: true) %>
|
17
|
-
<% else %>
|
18
|
-
<%= link_to(field.blob_url(attachment), title: attachment.filename) do %>
|
19
|
-
<% if attachment.previewable? and !field.url_only? %>
|
20
|
-
<%= image_tag(field.preview(attachment, resize_to_limit: [595, 842])) %>
|
21
|
-
<% else %>
|
22
|
-
<%= attachment.filename %>
|
23
|
-
<% end %>
|
24
|
-
<% end %>
|
25
|
-
<% end %>
|
26
|
-
<% if removable %>
|
27
|
-
<%#= link_to 'Remove', field.destroy_path(field, attachment), method: :delete, class: 'remove-attachment-link' %>
|
28
|
-
<%= link_to 'Remove', destroy_url,
|
29
|
-
method: :delete,
|
30
|
-
# data: { confirm: t("administrate.actions.confirm") },
|
31
|
-
remote: true,
|
32
|
-
class: 'remove-attachment-link'
|
33
|
-
%>
|
34
|
-
<hr>
|
35
30
|
<% end %>
|
31
|
+
<div>
|
32
|
+
<%#= link_to attachment.filename, field.blob_url(attachment), title: attachment.filename %>
|
33
|
+
</div>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%#
|
2
|
+
# Items Partial
|
3
|
+
|
4
|
+
This partial renders one or more attachments
|
5
|
+
|
6
|
+
## Local variables:
|
7
|
+
|
8
|
+
- `field`:
|
9
|
+
An instance of [Administrate::Field::Image].
|
10
|
+
A wrapper around the image url pulled from the database.
|
11
|
+
- `removable`:
|
12
|
+
A boolean used to control the display of a `Remove` link which
|
13
|
+
is used to destroy a single attachment. Defaults to `false`
|
14
|
+
- `size`:
|
15
|
+
[x, y]
|
16
|
+
Maximum size of the ActiveStorage preview.
|
17
|
+
Defaults to `field.show_preview_size`.
|
18
|
+
%>
|
19
|
+
<%
|
20
|
+
removable = local_assigns.fetch(:removable, false)
|
21
|
+
size = local_assigns.fetch(:size, field.show_preview_size)
|
22
|
+
%>
|
23
|
+
<div class="d-flex" style="flex-wrap: wrap;">
|
24
|
+
<% field.attachments.each do |attachment| %>
|
25
|
+
<div class="attachments-listing m-1">
|
26
|
+
<%= render partial: 'fields/active_storage/normal/item',
|
27
|
+
locals: {
|
28
|
+
field: field,
|
29
|
+
attachment: attachment,
|
30
|
+
removable: removable,
|
31
|
+
size: size
|
32
|
+
} %>
|
33
|
+
</div>
|
34
|
+
<% end %>
|
35
|
+
</div>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<style type="text/css" nonce="<%= content_security_policy_nonce %>">
|
2
|
+
#as-field-<%= attachment.id %> {
|
3
|
+
width: <%=size[0]/2%>px;
|
4
|
+
height: auto;
|
5
|
+
overflow: hidden;
|
6
|
+
}
|
7
|
+
</style>
|
8
|
+
<div id="as-field-<%= attachment.id %>">
|
9
|
+
<% if attachment.image? %>
|
10
|
+
<% if attachment.variable? %>
|
11
|
+
<div class="avatar">
|
12
|
+
<%#= image_tag attachment.variant(resize_to_limit: image_size)%>
|
13
|
+
<%= image_tag(field.variant(attachment, resize_to_limit: size), class:"avatar-img rounded") %>
|
14
|
+
</div>
|
15
|
+
<% else %>
|
16
|
+
<%= image_tag(field.url(attachment)) %>
|
17
|
+
<% end %>
|
18
|
+
<% elsif attachment.video? %>
|
19
|
+
<style type="text/css" nonce="<%= content_security_policy_nonce %>">
|
20
|
+
#as-field-video-<%= attachment.id %> {
|
21
|
+
object-fit: contain;
|
22
|
+
width: 100%;
|
23
|
+
height: 100%;
|
24
|
+
}
|
25
|
+
</style>
|
26
|
+
<% if attachment.previewable? %>
|
27
|
+
<%= video_tag(field.url(attachment),
|
28
|
+
poster: field.preview(attachment, resize_to_limit: size),
|
29
|
+
controls: true,
|
30
|
+
autobuffer: true,
|
31
|
+
id: "as-field-video-#{attachment.id}") %>
|
32
|
+
<% else %>
|
33
|
+
<%= video_tag(field.url(attachment), controls: true, autobuffer: true, id: "as-field-video-#{attachment.id}") %>
|
34
|
+
<% end %>
|
35
|
+
<% elsif attachment.audio? %>
|
36
|
+
<%= audio_tag(field.url(attachment), autoplay: false, controls: true) %>
|
37
|
+
<% elsif attachment.previewable? %>
|
38
|
+
<%= image_tag(field.preview(attachment, resize_to_limit: size)) %>
|
39
|
+
<% else %>
|
40
|
+
<%= attachment.filename %>
|
41
|
+
<% end %>
|
42
|
+
</div>
|
@@ -17,6 +17,18 @@ module Administrate
|
|
17
17
|
# theVariant.service.send(:path_for, theVariant.key) # Absolute path to variant file
|
18
18
|
# end
|
19
19
|
|
20
|
+
def index_display_preview?
|
21
|
+
options.fetch(:index_display_preview, true)
|
22
|
+
end
|
23
|
+
|
24
|
+
def index_preview_size
|
25
|
+
options.fetch(:index_preview_size, [150, 150])
|
26
|
+
end
|
27
|
+
|
28
|
+
def show_display_preview?
|
29
|
+
options.fetch(:show_display_preview, true)
|
30
|
+
end
|
31
|
+
|
20
32
|
def url_only?
|
21
33
|
options.fetch(:url_only, false)
|
22
34
|
end
|
@@ -34,7 +46,7 @@ module Administrate
|
|
34
46
|
end
|
35
47
|
|
36
48
|
def show_preview_size
|
37
|
-
options.fetch(:show_preview_size, [
|
49
|
+
options.fetch(:show_preview_size, [800, 800])
|
38
50
|
end
|
39
51
|
|
40
52
|
def many?
|
@@ -55,6 +67,10 @@ module Administrate
|
|
55
67
|
options.fetch(:show_drop_js_on_show, false)
|
56
68
|
end
|
57
69
|
|
70
|
+
def sweety_show_drop_js_on_show?
|
71
|
+
options.fetch(:sweety_show_drop_js_on_show, false)
|
72
|
+
end
|
73
|
+
|
58
74
|
def drop_max_file?
|
59
75
|
options.fetch(:drop_max_file, many? == true ? 10 : 1)
|
60
76
|
end
|
@@ -86,7 +102,7 @@ module Administrate
|
|
86
102
|
end
|
87
103
|
|
88
104
|
def variant(attachment, options)
|
89
|
-
Rails.application.routes.url_helpers.rails_representation_path(attachment.variant(
|
105
|
+
Rails.application.routes.url_helpers.rails_representation_path(attachment.variant(options), only_path: true)
|
90
106
|
end
|
91
107
|
|
92
108
|
def url(attachment)
|
data/lib/viniBaxter/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: viniBaxter-field-active_storage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 300.0.
|
4
|
+
version: 300.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- viny baxter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: administrate
|
@@ -69,6 +69,7 @@ files:
|
|
69
69
|
- app/views/fields/active_storage/_form.html.erb
|
70
70
|
- app/views/fields/active_storage/_index.html.erb
|
71
71
|
- app/views/fields/active_storage/_show.html.erb
|
72
|
+
- app/views/fields/active_storage/drop_js/_drop_js_items_if_sweety.html.erb
|
72
73
|
- app/views/fields/active_storage/drop_js/_drop_js_items_on_edit.html.erb
|
73
74
|
- app/views/fields/active_storage/drop_js/_drop_js_items_on_show.html.erb
|
74
75
|
- app/views/fields/active_storage/drop_js/_dropjs_items.html.erb
|
@@ -76,7 +77,9 @@ files:
|
|
76
77
|
- app/views/fields/active_storage/drop_js/_dropjs_list_show.html.erb
|
77
78
|
- app/views/fields/active_storage/drop_js/_dropjs_template.html.erb
|
78
79
|
- app/views/fields/active_storage/normal/_item.html.erb
|
80
|
+
- app/views/fields/active_storage/normal/_items.html.erb
|
79
81
|
- app/views/fields/active_storage/normal/_items_on_show.html.erb
|
82
|
+
- app/views/fields/active_storage/normal/_preview.html.erb
|
80
83
|
- contribute.md
|
81
84
|
- lib/viniBaxter/field/active_storage.rb
|
82
85
|
- lib/viniBaxter/version.rb
|