viniBaxter-field-active_storage 300.0.2 → 300.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|