base_editing_bootstrap 1.3.2 → 1.4.0

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
  SHA256:
3
- metadata.gz: 2e340e913487e9367deddd3f112c3a379af1ae132da18d27f19b44b6c4f133f6
4
- data.tar.gz: 35c0c82b8cc25665ddbeced4615baec2076ca3c6dc33651cc32d73b622d0b761
3
+ metadata.gz: ec2173d4ede7597e31056daba4097d643b427878115e0e2898e5e43c09d80d80
4
+ data.tar.gz: 6e8325daa90163681e969003f1a32612eab37e0bcc40fac78618b5f79cf24d35
5
5
  SHA512:
6
- metadata.gz: fca88f75c5a9e90adf8fc20a6cb46165745a90545649542f984b70b3dfb5b9310fbfaf11d9fc58debbde83022c46d8ab376b475ea64df88ac608f981e17fd567
7
- data.tar.gz: f7f4fe4e1755e174b980915ecd685754f68a9e5ea80cc258aa31c50325c16c709448992e2a3b28a64808d09ddbbff2d0a673e6446f9470b09409614f751921e2
6
+ metadata.gz: 7ce5b95dd4da6535fbe6e3388d7dbc65b4ec11ea1c304b4141f7c299a2974d3a30b72ce65fb2d000216fb92cc028c24ef4b2c4bdd4819c033bc50696ea8ce801
7
+ data.tar.gz: d923d2daed952f049ad97b13e723d6c5343639fce7b873d923aee776bfca3f3021e78d45db4c199c524a9a4a8ebd1bd5a6c5ea509c0a14ba5bbd9644b546c0e8
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
  All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
3
3
 
4
4
  - - -
5
+ ## 1.4.0 - 2025-01-13
6
+ #### Bug Fixes
7
+ - Correct generator for values - (a83f07a) - Marino Bonetti
8
+ #### Features
9
+ - Has one attached automatic file_field - (fd32678) - Marino Bonetti
10
+
11
+ - - -
12
+
5
13
  ## 1.3.2 - 2025-01-10
6
14
  #### Bug Fixes
7
15
  - Fields in form inside layout - (a2e1d42) - Marino Bonetti
data/README.md CHANGED
@@ -25,6 +25,8 @@ Then run installer:
25
25
  $ bundle exec rails g base_editing_bootstrap:install
26
26
  ```
27
27
 
28
+ **Si presume quindi che ActiveStorage sia correttamente installato, completo del javascript per il direct upload**
29
+
28
30
  ### Generators
29
31
  Then Install dependency (if you run base_editing_bootstrap:install you are good to go):
30
32
  ```bash
@@ -2,6 +2,7 @@ module Utilities
2
2
  module FormHelper
3
3
  include TemplateHelper
4
4
  include EnumHelper
5
+ include IconHelper
5
6
  ##
6
7
  # Metodo su cui eseguire override per i campi specifici rispetto all'oggetto gestito dal controller
7
8
  # @deprecated Utilizza form_print_field(form, field) senza sovrascriverlo
@@ -23,9 +24,15 @@ module Utilities
23
24
  else
24
25
  if form.object.class.respond_to?(:type_for_attribute)
25
26
  type = form.object.class.type_for_attribute(field).type
27
+
28
+ # Se non abbiamo ancora il type tentiamo di capire se è di tipo attachment SINGOLO
29
+ if type.nil? and form.object.respond_to?(:"#{field}_attachment")
30
+ type = :has_one_attachment
31
+ end
26
32
  else
27
33
  type = :string
28
34
  end
35
+
29
36
  case type
30
37
  when :datetime
31
38
  generic_field = "datetime"
@@ -41,6 +48,8 @@ module Utilities
41
48
  generic_field = "integer"
42
49
  when :boolean
43
50
  generic_field = "boolean"
51
+ when :has_one_attachment
52
+ generic_field = "has_one_attachment"
44
53
  else
45
54
  generic_field = "base"
46
55
  end
@@ -30,3 +30,5 @@
30
30
  <%= error_messages_for(form.object, form_field) %>
31
31
  <% end %>
32
32
  <%= render partial: "editing_form_help_text", locals: {object: form.object, field: form_field} %>
33
+ <%= content_for :form_field_ending %>
34
+ <% content_for :form_field_ending, "", flush: true #RESET altrimenti ce lo troviamo nel successivo campo %>
@@ -0,0 +1,31 @@
1
+ <%# locals: (form:, field:) -%>
2
+ <%
3
+ is_attached = form.object.send(field).attached?
4
+ hidden_field_id = dom_id(form.object, "hidden_#{field}")
5
+ preview_image_id = dom_id(form.object, "preview_image_#{field}")
6
+ filename_id = dom_id(form.object, "filename_#{field}")
7
+
8
+ javascript_clear_event = <<~JAVASCRIPT
9
+ try{document.getElementById('#{hidden_field_id}').value = ''}catch{};
10
+ try{document.getElementById('#{preview_image_id}').remove()}catch{};
11
+ try{document.getElementById('#{filename_id}').remove()}catch{};
12
+ return false
13
+ JAVASCRIPT
14
+
15
+ %>
16
+ <%= form.hidden_field field, value: form.object.send(field).signed_id, id: hidden_field_id if is_attached %>
17
+
18
+ <%= form.file_field field, direct_upload: true %>
19
+
20
+ <% if is_attached %>
21
+ <%= content_tag :span, form.object.send(field).attachment.blob.filename, class: "input-group-text", id: filename_id %>
22
+ <%= content_tag :button, icon(:trash),
23
+ onclick: javascript_clear_event,
24
+ class: "btn btn-outline-secondary rounded-0" %>
25
+ <%= link_to icon(:download), form.object.send(field), class: "btn btn-outline-secondary", target: :_blank %>
26
+ <% if form.object.send(field).representable? %>
27
+ <% content_for :form_field_ending,flush:true do %>
28
+ <%= content_tag :div, image_tag(form.object.send(field).representation(resize_to_limit: [100, 100])), id: preview_image_id %>
29
+ <% end %>
30
+ <% end %>
31
+ <% end %>
@@ -43,7 +43,9 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency 'faker', '~> 3.3'
44
44
  spec.add_development_dependency "puma", '~> 6.4'
45
45
  spec.add_development_dependency "sqlite3"
46
- spec.add_development_dependency "sprockets-rails", '~> 3.4'
46
+ spec.add_development_dependency "propshaft", '~> 1.1.0'
47
+ spec.add_development_dependency 'importmap-rails', '~> 2.1.0'
48
+ spec.add_development_dependency "image_processing", "~> 1.2"
47
49
  spec.add_development_dependency 'rails-i18n'
48
50
  spec.add_development_dependency "i18n-debug", '~> 1.2'
49
51
  spec.add_development_dependency "cssbundling-rails", '~> 1.4'
@@ -1 +1 @@
1
- 1.3.2
1
+ 1.4.0
@@ -1,8 +1,8 @@
1
1
  class <%= class_name %>Policy < BaseModelPolicy
2
2
 
3
- def editable_attributes = %w[<%= attributes_names.join(" ") %>]
4
- def permitted_attributes = %w[<%= attributes_names.join(" ") %>]
5
- def search_result_fields = %w[<%= attributes_names.join(" ") %>]
3
+ def editable_attributes = %i[<%= attributes_names.join(" ") %>]
4
+ def permitted_attributes = %i[<%= attributes_names.join(" ") %>]
5
+ def search_result_fields = %i[<%= attributes_names.join(" ") %>]
6
6
  <%- if @search_attrs.any? -%>
7
7
  def search_fields
8
8
  %i[<%= @search_attrs.join(" ") %>]
@@ -11,7 +11,7 @@ class <%= class_name %>Policy < BaseModelPolicy
11
11
  <%- if @permitted_attributes.any? -%>
12
12
  # TODO check if correct with search_fields
13
13
  def permitted_attributes_for_ransack
14
- %w[<%= @permitted_attributes.join(" ") %>]
14
+ %i[<%= @permitted_attributes.join(" ") %>]
15
15
  end
16
16
  <%- end -%>
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: base_editing_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marino Bonetti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-10 00:00:00.000000000 Z
11
+ date: 2025-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -175,19 +175,47 @@ dependencies:
175
175
  - !ruby/object:Gem::Version
176
176
  version: '0'
177
177
  - !ruby/object:Gem::Dependency
178
- name: sprockets-rails
178
+ name: propshaft
179
179
  requirement: !ruby/object:Gem::Requirement
180
180
  requirements:
181
181
  - - "~>"
182
182
  - !ruby/object:Gem::Version
183
- version: '3.4'
183
+ version: 1.1.0
184
184
  type: :development
185
185
  prerelease: false
186
186
  version_requirements: !ruby/object:Gem::Requirement
187
187
  requirements:
188
188
  - - "~>"
189
189
  - !ruby/object:Gem::Version
190
- version: '3.4'
190
+ version: 1.1.0
191
+ - !ruby/object:Gem::Dependency
192
+ name: importmap-rails
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: 2.1.0
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: 2.1.0
205
+ - !ruby/object:Gem::Dependency
206
+ name: image_processing
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '1.2'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '1.2'
191
219
  - !ruby/object:Gem::Dependency
192
220
  name: rails-i18n
193
221
  requirement: !ruby/object:Gem::Requirement
@@ -343,6 +371,7 @@ files:
343
371
  - app/views/base_editing/form_field/_datetime.html.erb
344
372
  - app/views/base_editing/form_field/_decimal.html.erb
345
373
  - app/views/base_editing/form_field/_enum.html.erb
374
+ - app/views/base_editing/form_field/_has_one_attachment.html.erb
346
375
  - app/views/base_editing/form_field/_integer.html.erb
347
376
  - app/views/base_editing/header_field/_base.html.erb
348
377
  - app/views/base_editing/index.html.erb