pg_rails 7.0.8.pre.alpha.37 → 7.0.8.pre.alpha.38

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc5297175e67ac85e03b8fbf4781139dc77a9d491c5c5ab15b0cf6d3d2c6dd48
4
- data.tar.gz: fa9e5a41db685275a80b90b737a9ff9772798d8c96c7cc4ab3c9b9d16a550716
3
+ metadata.gz: 683d6ba7d56764dfcf541c11cc57cd17a4e7a07db3cc5381d0b265151370e151
4
+ data.tar.gz: 6cab86107a332dcf819966a6458b18028dbb2b5e13fc875117f9685217c77c27
5
5
  SHA512:
6
- metadata.gz: ed39f31e8b7cebaf0d0c3055db4df0f044867d3df6d749720fe4093c400fbab88bbbdf3ef8869d43198f78345cf07b6854ef14339b1c579e3d1602f0526b7794
7
- data.tar.gz: 8752b125d74aa41ee9b9db26cca6a4fa94e17c58337c5eb95751d451ddbbaa175d9bf9f31d2cd0b33f4dcb0987c3837f38978efed0057895c8121285d65703ca
6
+ metadata.gz: d29164b89d0b98c7e884b32be394f8a13244e5c6f4429fa4c0432ca86f548213a267393c8b1ffae197947130cc668ade1cd2e4b2848e9d09b4842f5422c8684c
7
+ data.tar.gz: 01a039fa9de8f00165a9f6a883c08383cffcb4b478598a38da0661944e2eadce7a342724c9a40e4e1c7c60d5bc7e8258c5ab01c9788b97a6fef61fd61567a94e
@@ -3,6 +3,7 @@
3
3
  module PgEngine
4
4
  module FormHelper
5
5
  def pg_form_for(object, *args, &)
6
+ resource = object
6
7
  if object.is_a? PgEngine::BaseDecorator
7
8
  object = object.target_object
8
9
  elsif object.is_a?(PgEngine::BaseRecord) &&
@@ -21,6 +22,11 @@ module PgEngine
21
22
  'pg-form'
22
23
  end
23
24
 
25
+ if resource.errors.any?
26
+ options[:html][:data] ||= {}
27
+ options[:html][:data][:errors] = resource.errors.details.to_json
28
+ end
29
+
24
30
  simple_form_for(object, *(args << options), &)
25
31
  end
26
32
 
@@ -32,23 +32,7 @@ class PgFormBuilder < SimpleForm::FormBuilder
32
32
  base_message = (base_errors.map(&:to_s).join('<br>') if base_errors.present?)
33
33
  base_tag = error_notification(message: base_message, class: 'alert alert-danger') if base_message
34
34
 
35
- all_errors_tag = build_all_errors_tag unless base_tag
36
-
37
- "#{title}#{base_tag}#{all_errors_tag}".html_safe # rubocop:disable Rails/OutputSafety
38
- end
39
-
40
- def build_all_errors_tag
41
- details = object.errors.details.dup
42
- details.delete(:base)
43
- not_base_errors = details.any?
44
-
45
- return unless not_base_errors
46
-
47
- # TODO!: poder pasar un block para que no se ejecute si no se va a loguear por el log level
48
- # TODO: quizá esta warning loguearla pero no mandarla a rollbar por si son demasiadas
49
- pg_warn "Not base errors en pg_form: #{object.errors.details}. Record: #{object.inspect}", :warn
50
-
51
- "<span class='not_base_errors' data-errors='#{object.errors.details.to_json}'></span>"
35
+ "#{title}#{base_tag}".html_safe # rubocop:disable Rails/OutputSafety
52
36
  end
53
37
 
54
38
  def mensaje
@@ -15,9 +15,6 @@ describe PgFormBuilder do
15
15
  describe '#mensajes_de_error' do
16
16
  subject { instancia.mensajes_de_error }
17
17
 
18
- # expect(subject)
19
- # it { expect(subject).to eq 'Por favor, revisá los campos obligatorios:' }
20
-
21
18
  context 'cuando solo tiene errores de presencia' do
22
19
  before do
23
20
  categoria.nombre = nil
@@ -25,7 +22,6 @@ describe PgFormBuilder do
25
22
  end
26
23
 
27
24
  it { expect(subject).to include 'Por favor, revisá los campos obligatorios:' }
28
- it { expect(subject).to include 'not_base_errors' }
29
25
  end
30
26
 
31
27
  context 'cuando solo tiene errores de :base' do
@@ -35,7 +31,6 @@ describe PgFormBuilder do
35
31
  end
36
32
 
37
33
  it { expect(subject).to include 'Por favor, revisá los siguientes errores' }
38
- it { expect(subject).not_to include 'not_base_errors' }
39
34
  end
40
35
  end
41
36
 
@@ -10,16 +10,19 @@ export default class extends Controller {
10
10
  }
11
11
  })
12
12
  })
13
- const notBaseErrors = this.element.querySelector('.not_base_errors')
14
-
15
- if (notBaseErrors) {
16
- const invalidFeedback = document.querySelector('.invalid-feedback')
17
- if (!invalidFeedback) {
18
- console.error(notBaseErrors.dataset.errors)
19
- Rollbar.error(notBaseErrors.dataset.errors)
13
+ const errorTitle = this.element.querySelector('.error-title')
14
+ if (errorTitle) {
15
+ const invalidField = document.querySelector('.is-invalid')
16
+ const baseAlert = document.querySelector('.alert-danger')
17
+ if (!invalidField && !baseAlert) {
20
18
  const errorTitle = this.element.querySelector('.error-title')
19
+ // FIXME: testear con capybara
21
20
  errorTitle.innerText = 'Lo lamentamos mucho pero ocurrió algo inesperado. Por favor, intentá nuevamente o ponete en contacto con nosotros.'
22
21
  // FIXME: link a contacto
22
+ const form = this.element.querySelector('form')
23
+ const errorMsg = `${form.id} - ${form.action} - ${form.dataset.errors}`
24
+ console.error(errorMsg)
25
+ Rollbar.error(errorMsg)
23
26
  }
24
27
  }
25
28
  }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.0.8-alpha.37'
4
+ VERSION = '7.0.8-alpha.38'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.8.pre.alpha.37
4
+ version: 7.0.8.pre.alpha.38
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martín Rosso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-18 00:00:00.000000000 Z
11
+ date: 2024-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails