avo 1.13.1 → 1.15.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of avo might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +8 -8
- data/app/components/avo/fields/common/multiple_file_viewer_component.html.erb +14 -7
- data/app/components/avo/fields/common/single_file_viewer_component.html.erb +15 -7
- data/app/components/avo/fields/file_field/edit_component.html.erb +3 -1
- data/app/components/avo/fields/files_field/edit_component.html.erb +3 -1
- data/app/controllers/avo/application_controller.rb +22 -4
- data/app/controllers/avo/base_controller.rb +1 -1
- data/app/packs/js/controllers/search_controller.js +4 -1
- data/app/views/avo/partials/_global_search.html.erb +1 -1
- data/app/views/avo/sidebar/_sidebar.html.erb +1 -1
- data/lib/avo/app.rb +2 -0
- data/lib/avo/fields_collector.rb +1 -0
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/templates/locales/avo.en.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.nb-NO.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.pt-BR.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.ro.yml +3 -0
- data/public/avo-packs/css/application-2b4685ca.css.map +1 -1
- data/public/avo-packs/css/application-2b4685ca.css.map.br +0 -0
- data/public/avo-packs/css/application-2b4685ca.css.map.gz +0 -0
- data/public/avo-packs/js/application-6dbb940fca2e811fb7d5.js +26 -0
- data/public/avo-packs/js/{application-24899bdd53fce059b07e.js.LICENSE.txt → application-6dbb940fca2e811fb7d5.js.LICENSE.txt} +0 -0
- data/public/avo-packs/js/application-6dbb940fca2e811fb7d5.js.br +0 -0
- data/public/avo-packs/js/application-6dbb940fca2e811fb7d5.js.gz +0 -0
- data/public/avo-packs/js/application-6dbb940fca2e811fb7d5.js.map +1 -0
- data/public/avo-packs/js/application-6dbb940fca2e811fb7d5.js.map.br +0 -0
- data/public/avo-packs/js/application-6dbb940fca2e811fb7d5.js.map.gz +0 -0
- data/public/avo-packs/manifest.json +8 -8
- metadata +11 -11
- data/public/avo-packs/js/application-24899bdd53fce059b07e.js +0 -26
- data/public/avo-packs/js/application-24899bdd53fce059b07e.js.br +0 -0
- data/public/avo-packs/js/application-24899bdd53fce059b07e.js.gz +0 -0
- data/public/avo-packs/js/application-24899bdd53fce059b07e.js.map +0 -1
- data/public/avo-packs/js/application-24899bdd53fce059b07e.js.map.br +0 -0
- data/public/avo-packs/js/application-24899bdd53fce059b07e.js.map.gz +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d383ac646109d2df17ad55051991565b86751396b90f07bed6febd2c74ec2a3b
|
4
|
+
data.tar.gz: 165d98536e64218b88b4cd4e3191cabf1ccda0469d3bd85d84d1498097c1404f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3981465a470c93bef51cea94d4fe2b1cd3473e0e07bcbd5e7bdd2dcc7749d14ad9560fe2b46794e8e41a4554725cefaab61b68908ede56d3f6cf1bda54d42b7
|
7
|
+
data.tar.gz: c96ee899de497fa540760abab565bbca84b4d40b074159e73403661604fefffa3bca342bbf8407c07a27bbaad0c95d3c2cf5f1dccd4f72376b3ce73a508d7c5f
|
data/Gemfile
CHANGED
@@ -30,7 +30,7 @@ gem "rails", "~> 6.1.0"
|
|
30
30
|
# Use postgresql as the database for Active Record
|
31
31
|
gem "pg", ">= 0.18", "< 2.0"
|
32
32
|
# Use Puma as the app server
|
33
|
-
gem "puma", "~> 5.
|
33
|
+
gem "puma", "~> 5.5.1"
|
34
34
|
# Use SCSS for stylesheets
|
35
35
|
gem "sass-rails", ">= 6"
|
36
36
|
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
avo (1.
|
4
|
+
avo (1.15.0.pre.1)
|
5
5
|
active_link_to
|
6
6
|
addressable
|
7
7
|
breadcrumbs_on_rails
|
@@ -201,15 +201,15 @@ GEM
|
|
201
201
|
mime-types-data (3.2021.0225)
|
202
202
|
mini_magick (4.11.0)
|
203
203
|
mini_mime (1.0.3)
|
204
|
-
mini_portile2 (2.
|
204
|
+
mini_portile2 (2.6.1)
|
205
205
|
minitest (5.14.4)
|
206
206
|
msgpack (1.4.2)
|
207
207
|
multi_xml (0.6.0)
|
208
|
-
nio4r (2.5.
|
209
|
-
nokogiri (1.
|
210
|
-
mini_portile2 (~> 2.
|
208
|
+
nio4r (2.5.8)
|
209
|
+
nokogiri (1.12.5)
|
210
|
+
mini_portile2 (~> 2.6.1)
|
211
211
|
racc (~> 1.4)
|
212
|
-
nokogiri (1.
|
212
|
+
nokogiri (1.12.5-x86_64-linux)
|
213
213
|
racc (~> 1.4)
|
214
214
|
orm_adapter (0.5.0)
|
215
215
|
pagy (4.11.0)
|
@@ -218,7 +218,7 @@ GEM
|
|
218
218
|
ast (~> 2.4.1)
|
219
219
|
pg (1.2.3)
|
220
220
|
public_suffix (4.0.6)
|
221
|
-
puma (5.
|
221
|
+
puma (5.5.1)
|
222
222
|
nio4r (~> 2.0)
|
223
223
|
pundit (2.1.0)
|
224
224
|
activesupport (>= 3.0.0)
|
@@ -417,7 +417,7 @@ DEPENDENCIES
|
|
417
417
|
manifester
|
418
418
|
meta-tags
|
419
419
|
pg (>= 0.18, < 2.0)
|
420
|
-
puma (~> 5.
|
420
|
+
puma (~> 5.5.1)
|
421
421
|
pundit
|
422
422
|
rails (~> 6.1.0)
|
423
423
|
rails-controller-testing
|
@@ -14,13 +14,20 @@
|
|
14
14
|
<% end %>
|
15
15
|
|
16
16
|
<div class="flex justify-between lg:flex-col lg:space-y-2 2xl:flex-row 2xl:space-y-0">
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
<div>
|
18
|
+
<% if @resource.authorization.authorize_action(:download_attachments?, raise_exception: false) %>
|
19
|
+
<%= a_link helpers.main_app.url_for(@file), color: 'indigo', download: true, class: 'text-center', size: :xs do %>
|
20
|
+
<%= helpers.svg 'download' %> <span class="hidden lg:block lg:flex-1"><%= t('avo.download_file') %></span>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
<div>
|
25
|
+
<% if @resource.authorization.authorize_action(:delete_attachments?, raise_exception: false) %>
|
26
|
+
<%= a_link "#{Avo::App.root_path}/resources/#{@resource.model.model_name.route_key}/#{@resource.model.id}/active_storage_attachments/#{@id}/#{@file.id}", color: :red, variant: :outlined, size: :xs, class: 'text-center', 'data-turbo-frame': 'destroy_attachment_form', data: { confirm: t('avo.are_you_sure')} do %>
|
27
|
+
<%= helpers.svg 'trash' %> <span class="hidden lg:block lg:flex-1"><%= t 'avo.delete_file', item: @file.filename %></span>
|
28
|
+
<% end %>
|
29
|
+
<% end %>
|
30
|
+
</div>
|
24
31
|
</div>
|
25
32
|
<% end %>
|
26
33
|
</div>
|
@@ -14,13 +14,21 @@
|
|
14
14
|
<% end %>
|
15
15
|
|
16
16
|
<div class="flex justify-between">
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
<div>
|
18
|
+
<% if @resource.authorization.authorize_action(:download_attachments?, raise_exception: false) %>
|
19
|
+
<%= a_link helpers.main_app.url_for(@file), color: 'indigo', download: true, class: '', size: :md do %>
|
20
|
+
<%= helpers.svg 'download' %> <%= t('avo.download_file') %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
<div>
|
25
|
+
<% if @resource.authorization.authorize_action(:delete_attachments?, raise_exception: false) %>
|
26
|
+
<%= a_link "#{Avo::App.root_path}/resources/#{@resource.model.model_name.route_key}/#{@resource.model.id
|
27
|
+
}/active_storage_attachments/#{@id}/#{@file.blob_id}", color: :red, variant: :outlined, size: :md, class: '', 'data-turbo-frame': 'destroy_attachment_form', data: { confirm: t('avo.are_you_sure')} do %>
|
28
|
+
<%= helpers.svg 'trash' %> <%= t 'avo.delete_file', item: @file.filename %>
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
31
|
+
</div>
|
24
32
|
</div>
|
25
33
|
<% else %>
|
26
34
|
–
|
@@ -5,5 +5,7 @@
|
|
5
5
|
</div>
|
6
6
|
<% end %>
|
7
7
|
|
8
|
-
|
8
|
+
<% if @resource.authorization.authorize_action(:upload_attachments?, raise_exception: false) %>
|
9
|
+
<%= @form.file_field @field.id, disabled: @field.readonly %>
|
10
|
+
<% end %>
|
9
11
|
<% end %>
|
@@ -1,5 +1,7 @@
|
|
1
1
|
<%= edit_field_wrapper field: @field, index: @index, form: @form, resource: @resource, displayed_in_modal: @displayed_in_modal, full_width: true do %>
|
2
2
|
<%= render Avo::Fields::Common::FilesListViewerComponent.new(field: @field, resource: @resource) if @field.value.present? %>
|
3
3
|
|
4
|
-
|
4
|
+
<% if @resource.authorization.authorize_action(:upload_attachments?, raise_exception: false) %>
|
5
|
+
<%= @form.file_field @field.id, disabled: @field.readonly, multiple: true %>
|
6
|
+
<% end %>
|
5
7
|
<% end %>
|
@@ -97,9 +97,9 @@ module Avo
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def resource_path(model = nil, resource_id: nil, keep_query_params: false, **args)
|
100
|
-
return avo.send :"resources_#{model
|
100
|
+
return avo.send :"resources_#{singular_name(model)}_path", resource_id, **args if resource_id.present?
|
101
101
|
|
102
|
-
avo.send :"resources_#{model
|
102
|
+
avo.send :"resources_#{singular_name(model)}_path", model, **args
|
103
103
|
end
|
104
104
|
|
105
105
|
def resource_attach_path(model_name, model_id, related_name, related_id = nil)
|
@@ -119,11 +119,11 @@ module Avo
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def new_resource_path(model, **args)
|
122
|
-
avo.send :"new_resources_#{model
|
122
|
+
avo.send :"new_resources_#{singular_name(model)}_path", **args
|
123
123
|
end
|
124
124
|
|
125
125
|
def edit_resource_path(model, **args)
|
126
|
-
avo.send :"edit_resources_#{model
|
126
|
+
avo.send :"edit_resources_#{singular_name(model)}_path", model.id, **args
|
127
127
|
end
|
128
128
|
|
129
129
|
private
|
@@ -283,5 +283,23 @@ module Avo
|
|
283
283
|
def on_api_path
|
284
284
|
request.original_url.match?(/.*#{Avo::App.root_path}\/avo_api\/.*/)
|
285
285
|
end
|
286
|
+
|
287
|
+
def get_model_class(model)
|
288
|
+
if model.instance_of?(Class)
|
289
|
+
model
|
290
|
+
else
|
291
|
+
model.class
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
def singular_name(model_or_class)
|
296
|
+
model_class = get_model_class model_or_class
|
297
|
+
|
298
|
+
if ActiveModel::Naming.uncountable? model_class
|
299
|
+
model_class.model_name.route_key.singularize.gsub('_index', '')
|
300
|
+
else
|
301
|
+
model_class.model_name.route_key.singularize
|
302
|
+
end
|
303
|
+
end
|
286
304
|
end
|
287
305
|
end
|
@@ -105,7 +105,10 @@ export default class extends Controller {
|
|
105
105
|
|
106
106
|
autocomplete({
|
107
107
|
container: this.autocompleteTarget,
|
108
|
-
placeholder:
|
108
|
+
placeholder: this.translationKeys.placeholder,
|
109
|
+
translations: {
|
110
|
+
detachedCancelButtonText: this.translationKeys.cancel_button,
|
111
|
+
},
|
109
112
|
openOnFocus: true,
|
110
113
|
detachedMediaQuery: '',
|
111
114
|
getSources: ({ query }) => {
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="inline-block"
|
3
3
|
data-search-target="autocomplete"
|
4
4
|
data-search-resource="global"
|
5
|
-
data-translation-keys='{"no_item_found": "<%= I18n.translate 'avo.no_item_found' %>"}'
|
5
|
+
data-translation-keys='{"no_item_found": "<%= I18n.translate 'avo.no_item_found' %>", "placeholder": "<%= I18n.translate 'avo.search.placeholder' %>", "cancel_button": "<%= I18n.translate 'avo.search.cancel_button' %>"}'
|
6
6
|
data-debounce-timeout='<%= Avo.configuration.search_debounce %>'
|
7
7
|
>
|
8
8
|
</div>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
<div class="w-full">
|
14
14
|
<% Avo::App.resources_navigation(_current_user).each do |resource| %>
|
15
|
-
<%= render Avo::NavigationLinkComponent.new label: resource.
|
15
|
+
<%= render Avo::NavigationLinkComponent.new label: resource.plural_name.humanize, path: resources_path(resource.model_class) %>
|
16
16
|
<% end %>
|
17
17
|
|
18
18
|
<% sidebar_partials = Avo::App.get_sidebar_partials %>
|
data/lib/avo/app.rb
CHANGED
data/lib/avo/fields_collector.rb
CHANGED
data/lib/avo/version.rb
CHANGED