pg_rails 7.0.8.pre.alpha.80 → 7.0.8.pre.alpha.82
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/pg_associable/app/javascript/asociable_controller.tsx +2 -1
- data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +0 -1
- data/pg_engine/app/controllers/pg_engine/base_controller.rb +1 -1
- data/pg_engine/app/helpers/pg_engine/flash_helper.rb +0 -1
- data/pg_engine/app/mailers/pg_engine/base_mailer.rb +16 -12
- data/pg_engine/app/models/email.rb +5 -0
- data/pg_engine/config/initializers/active_admin.rb +1 -1
- data/pg_engine/config/initializers/devise.rb +2 -2
- data/pg_engine/config/locales/es.yml +23 -0
- data/pg_engine/lib/pg_engine/email_observer.rb +7 -7
- data/pg_engine/lib/pg_engine/engine.rb +3 -0
- data/pg_engine/spec/controllers/concerns/pg_engine/resource_helper_spec.rb +2 -2
- data/pg_engine/spec/features/signup_spec.rb +1 -1
- data/pg_engine/spec/mailers/previews/devise_preview.rb +13 -0
- data/pg_layout/app/views/devise/mailer/confirmation_instructions.html.erb +1 -1
- data/pg_layout/app/views/devise/mailer/email_changed.html.erb +1 -1
- data/pg_layout/app/views/devise/mailer/password_change.html.erb +1 -1
- data/pg_layout/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/pg_layout/app/views/devise/mailer/unlock_instructions.html.erb +1 -1
- data/pg_rails/lib/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f155f16783603b8b6acd943855ce4d4996d92722235ec8eea4fe9cf82dd6efb0
|
4
|
+
data.tar.gz: 4403492bc1eaeecb807dd9bab487047b89681007100baf5e6758271a8967f163
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97f5a71981109ce5a8dac87ce5db0184e5c21fc906adc0863ca916e2b8868e5dc013ea46a924e42780b49e9d658faf32a8b5c34bcdf272edd549f848a4ad9918
|
7
|
+
data.tar.gz: 69dc1acfe7f80c080c4f0263f1904f9ceaff511da31a24e37ba5f77fa6e76fb4888af45313c7c41ab58b3fe3697cdaf46306c28c426bcac91e0badc84ad4aa69
|
@@ -265,7 +265,7 @@ export default class extends Controller {
|
|
265
265
|
this.buscando()
|
266
266
|
}, 200)
|
267
267
|
// console.log(`setTimeOut ${timerBuscandoId}`)
|
268
|
-
document.addEventListener('turbo:before-stream-render', (
|
268
|
+
document.addEventListener('turbo:before-stream-render', () => {
|
269
269
|
// console.log(`clear before stream render ${timerBuscandoId}`)
|
270
270
|
clearTimeout(timerBuscandoId)
|
271
271
|
}, { once: true })
|
@@ -290,6 +290,7 @@ export default class extends Controller {
|
|
290
290
|
}
|
291
291
|
|
292
292
|
completarCampo (target) {
|
293
|
+
// FIXME: savedInputState = null
|
293
294
|
const textField = this.element.querySelector('input[type=text]')
|
294
295
|
const hiddenField = this.element.querySelector('input[type=hidden]')
|
295
296
|
|
@@ -92,7 +92,6 @@ module PgEngine
|
|
92
92
|
if params[:asociable]
|
93
93
|
format.turbo_stream do
|
94
94
|
render turbo_stream:
|
95
|
-
# rubocop:disable Rails/SkipsModelValidations
|
96
95
|
turbo_stream.update_all('.modal.show .pg-associable-form', <<~HTML
|
97
96
|
<div data-modal-target="response" data-response='#{object.decorate.to_json}'></div>
|
98
97
|
HTML
|
@@ -6,7 +6,6 @@ module PgEngine
|
|
6
6
|
|
7
7
|
def render_turbo_stream_title
|
8
8
|
title = [breadcrumbs.last&.name, I18n.t('app_name')].compact.join(' - ')
|
9
|
-
# rubocop:disable Rails/SkipsModelValidations
|
10
9
|
turbo_stream.update_all 'title', title
|
11
10
|
# rubocop:enable Rails/SkipsModelValidations
|
12
11
|
end
|
@@ -2,34 +2,38 @@ module PgEngine
|
|
2
2
|
class BaseMailer < ActionMailer::Base # rubocop:disable Rails/ApplicationMailer
|
3
3
|
class MailNotDelivered < StandardError; end
|
4
4
|
|
5
|
-
before_action { @
|
6
|
-
|
7
|
-
default from:
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
before_action { @email_object = params[:email_object] }
|
6
|
+
|
7
|
+
default from: lambda { |_mailer|
|
8
|
+
if @email_object.present?
|
9
|
+
email_address_with_name(@email_object.from_address, @email_object.from_name)
|
10
|
+
else
|
11
|
+
email_address_with_name(ENV.fetch('DEFAULT_MAIL_FROM'), ENV.fetch('DEFAULT_MAIL_FROM_NAME'))
|
12
|
+
end
|
13
|
+
},
|
14
|
+
reply_to: ->(_mailer) { @email_object.reply_to if @email_object.present? },
|
15
|
+
subject: ->(_mailer) { @email_object.subject if @email_object.present? },
|
16
|
+
to: ->(_mailer) { @email_object.to if @email_object.present? }
|
11
17
|
|
12
18
|
layout 'pg_layout/mailer'
|
13
19
|
|
14
20
|
# default delivery_method: :smtp
|
15
21
|
|
16
22
|
rescue_from StandardError do |err|
|
17
|
-
|
18
|
-
if @
|
19
|
-
@email.update_columns(status: :failed, status_detail: err.to_s) # rubocop:disable Rails/SkipsModelValidations
|
20
|
-
end
|
23
|
+
pg_err err
|
24
|
+
@email_object.update_columns(status: :failed, status_detail: err.to_s) if @email_object.present?
|
21
25
|
end
|
22
26
|
|
23
27
|
protected
|
24
28
|
|
25
29
|
def mail(*args)
|
26
|
-
@footer_href = root_url(m: @
|
30
|
+
@footer_href = root_url(m: @email_object&.hashid)
|
27
31
|
super(*args).tap do |message|
|
28
32
|
# message.mailgun_options = {
|
29
33
|
# 'tag' => email.tags,
|
30
34
|
# 'tracking-opens' => true
|
31
35
|
# }
|
32
|
-
message['
|
36
|
+
message['email_object'] = @email_object if @email_object.present?
|
33
37
|
end
|
34
38
|
end
|
35
39
|
end
|
@@ -36,6 +36,8 @@ class Email < ApplicationRecord
|
|
36
36
|
include Hashid::Rails
|
37
37
|
audited
|
38
38
|
|
39
|
+
attr_accessor :require_body_input
|
40
|
+
|
39
41
|
has_one_attached :encoded_eml
|
40
42
|
|
41
43
|
belongs_to :associated, polymorphic: true, optional: true
|
@@ -61,6 +63,9 @@ class Email < ApplicationRecord
|
|
61
63
|
validates :from_name, length: { within: 0..80 }
|
62
64
|
validates :to, length: { within: 3..200 }
|
63
65
|
|
66
|
+
validates :body_input, length: { minimum: 10 }, if: -> { require_body_input }
|
67
|
+
validates :body_input, presence: true, if: -> { require_body_input }
|
68
|
+
|
64
69
|
validates :from_name, :subject, :to,
|
65
70
|
format: { with: /\A[^\n<>&]*\z/, message: 'contiene caracteres inválidos' }
|
66
71
|
|
@@ -105,7 +105,7 @@ ActiveAdmin.setup do |config|
|
|
105
105
|
# because, by default, user gets redirected to Dashboard. If user
|
106
106
|
# doesn't have access to Dashboard, he'll end up in a redirect loop.
|
107
107
|
# Method provided here should be defined in application_controller.rb.
|
108
|
-
|
108
|
+
config.on_unauthorized_access = :not_authorized
|
109
109
|
|
110
110
|
# == Current User
|
111
111
|
#
|
@@ -24,13 +24,13 @@ Devise.setup do |config|
|
|
24
24
|
# Configure the e-mail address which will be shown in Devise::Mailer,
|
25
25
|
# note that it will be overwritten if you use your own mailer class
|
26
26
|
# with default "from" parameter.
|
27
|
-
config.mailer_sender =
|
27
|
+
# config.mailer_sender = ""
|
28
28
|
|
29
29
|
# Configure the class responsible to send e-mails.
|
30
30
|
# config.mailer = 'Devise::Mailer'
|
31
31
|
|
32
32
|
# Configure the parent class responsible to send e-mails.
|
33
|
-
|
33
|
+
config.parent_mailer = 'ApplicationMailer'
|
34
34
|
|
35
35
|
# ==> ORM configuration
|
36
36
|
# Load and configure the ORM. Supports :active_record (default) and
|
@@ -65,6 +65,7 @@ es:
|
|
65
65
|
timeout: ''
|
66
66
|
unauthenticated: ''
|
67
67
|
registrations:
|
68
|
+
signed_up_but_unconfirmed: Te enviamos un correo electrónico con instrucciones para confirmar tu cuenta.
|
68
69
|
new:
|
69
70
|
sign_up: Crear una cuenta
|
70
71
|
passwords:
|
@@ -77,6 +78,28 @@ es:
|
|
77
78
|
sign_up: Crear una cuenta
|
78
79
|
forgot_your_password: ¿Olvidaste tu contraseña?
|
79
80
|
didn_t_receive_confirmation_instructions: ¿No recibiste las instrucciones para confirmar tu cuenta?
|
81
|
+
mailer:
|
82
|
+
confirmation_instructions:
|
83
|
+
action: Confirmá tu cuenta
|
84
|
+
greeting: "Hola %{recipient}"
|
85
|
+
instruction: 'por favor, confirmá tu cuenta haciendo click en el siguiente enlace:'
|
86
|
+
subject: Confirmación de cuenta
|
87
|
+
email_changed:
|
88
|
+
greeting: "Hola %{recipient}"
|
89
|
+
message: Estamos contactando contigo para notificarte que tu email ha sido cambiado a %{email}.
|
90
|
+
message_unconfirmed: Nos estamos contactando contigo para notificarte que tu correo se está cambiando a %{email}.
|
91
|
+
subject: Email cambiado
|
92
|
+
password_change:
|
93
|
+
greeting: "Hola %{recipient}"
|
94
|
+
message: Lo estamos contactando para notificarle que su contraseña ha sido cambiada.
|
95
|
+
subject: Contraseña cambiada
|
96
|
+
reset_password_instructions:
|
97
|
+
action: Cambiar mi contraseña
|
98
|
+
greeting: "Hola %{recipient}"
|
99
|
+
instruction: "Para cambiar tu contraseña ingresá al siguiente link:"
|
100
|
+
instruction_2: Si no solicitaste cambiar tu contraseña, podés ignorar este correo.
|
101
|
+
instruction_3: Tu contraseña no será cambiada hasta que accedas al link y crees una nueva.
|
102
|
+
subject: Recuperación de contraseña
|
80
103
|
activerecord:
|
81
104
|
attributes:
|
82
105
|
user:
|
@@ -6,18 +6,18 @@ module PgEngine
|
|
6
6
|
message_id = message.message_id
|
7
7
|
mailer = message.delivery_handler.to_s
|
8
8
|
status = get_status(message)
|
9
|
-
if message['
|
10
|
-
|
11
|
-
|
9
|
+
if message['email_object'].present?
|
10
|
+
email_object = message['email_object'].unparsed_value
|
11
|
+
email_object.update_columns(message_id:, mailer:, status:)
|
12
12
|
else
|
13
13
|
to = [message.to].flatten.join(', ')
|
14
14
|
from = [message.from].flatten.join(', ')
|
15
|
-
|
16
|
-
|
15
|
+
email_object = Email.create!(message_id:, subject: message.subject, to:, mailer:, status:, from_address: from,
|
16
|
+
from_name: '')
|
17
17
|
end
|
18
|
-
|
18
|
+
email_object.encoded_eml.attach({ io: StringIO.new(message.encoded), filename: "email-#{email_object.id}.eml" })
|
19
19
|
rescue StandardError => e
|
20
|
-
|
20
|
+
pg_err e
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.get_status(message)
|
@@ -20,6 +20,9 @@ module PgEngine
|
|
20
20
|
end
|
21
21
|
|
22
22
|
initializer 'configurar_pg_rails' do
|
23
|
+
# Ensure required env variables are set
|
24
|
+
ENV.fetch('DEFAULT_MAIL_FROM')
|
25
|
+
ENV.fetch('DEFAULT_MAIL_FROM_NAME')
|
23
26
|
# SimpleForm
|
24
27
|
require "#{PgEngine::Engine.root}/config/simple_form/simple_form"
|
25
28
|
require "#{PgEngine::Engine.root}/config/simple_form/simple_form_bootstrap"
|
@@ -68,8 +68,8 @@ describe PgEngine::Resource do
|
|
68
68
|
let(:param) { :categoria_de_cosa }
|
69
69
|
|
70
70
|
before do
|
71
|
-
cosa_pri.categoria_de_cosa.update_column(:nombre, 'a')
|
72
|
-
cosa_ult.categoria_de_cosa.update_column(:nombre, 'z')
|
71
|
+
cosa_pri.categoria_de_cosa.update_column(:nombre, 'a')
|
72
|
+
cosa_ult.categoria_de_cosa.update_column(:nombre, 'z')
|
73
73
|
end
|
74
74
|
|
75
75
|
context 'si es asc' do
|
@@ -23,7 +23,7 @@ describe 'Al Registrarse', :js do
|
|
23
23
|
fill_in 'user_password', with: 'admin123'
|
24
24
|
fill_in 'user_password_confirmation', with: 'admin123'
|
25
25
|
instance_exec('input[type=submit]', &find_scroll).click
|
26
|
-
expect(page).to have_text('
|
26
|
+
expect(page).to have_text('Te enviamos un correo electrónico con instrucciones')
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Preview all emails at http://localhost:3000/rails/mailers/cliente
|
2
|
+
class DevisePreview < ActionMailer::Preview
|
3
|
+
# Preview this email at http://localhost:3000/rails/mailers/cliente/comprobante_recibido
|
4
|
+
def confirmation_instructions
|
5
|
+
# ClienteMailer.comprobante_recibido(VComprobante.find(params[:]))
|
6
|
+
Devise::Mailer.confirmation_instructions(User.first, 'TOKENN')
|
7
|
+
end
|
8
|
+
|
9
|
+
def reset_password_instructions
|
10
|
+
# ClienteMailer.comprobante_recibido(VComprobante.find(params[:]))
|
11
|
+
Devise::Mailer.reset_password_instructions(User.first, 'TOKENN')
|
12
|
+
end
|
13
|
+
end
|
data/pg_rails/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.
|
4
|
+
version: 7.0.8.pre.alpha.82
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martín Rosso
|
@@ -1084,6 +1084,7 @@ files:
|
|
1084
1084
|
- pg_engine/spec/lib/pg_engine/mailgun/log_sync_spec.rb
|
1085
1085
|
- pg_engine/spec/lib/pg_engine/utils/pg_engine/pg_logger_spec.rb
|
1086
1086
|
- pg_engine/spec/lib/pg_form_builder_spec.rb
|
1087
|
+
- pg_engine/spec/mailers/previews/devise_preview.rb
|
1087
1088
|
- pg_engine/spec/models/account_spec.rb
|
1088
1089
|
- pg_engine/spec/models/email_spec.rb
|
1089
1090
|
- pg_engine/spec/models/mensaje_contacto_spec.rb
|