pg_rails 7.2.3 → 7.3.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 +4 -4
- data/pg_associable/app/helpers/pg_associable/form_builder_methods.rb +1 -2
- data/pg_associable/app/helpers/pg_associable/helpers.rb +4 -5
- data/pg_associable/app/javascript/modal_controller.js +19 -7
- data/pg_associable/spec/system/associable_spec.rb +2 -2
- data/pg_engine/app/components/actions_component.rb +14 -0
- data/pg_engine/app/components/asociable_modal_component.html.slim +6 -0
- data/pg_engine/app/components/asociable_modal_component.rb +7 -0
- data/pg_engine/app/components/form_modal_component.html.slim +15 -0
- data/pg_engine/app/components/form_modal_component.rb +6 -0
- data/pg_engine/app/components/modal_component.html.slim +5 -0
- data/pg_engine/app/components/modal_component.rb +11 -0
- data/pg_engine/app/components/modal_content_component.rb +28 -0
- data/pg_engine/app/components/show_modal_component.html.slim +10 -0
- data/pg_engine/app/components/show_modal_component.rb +7 -0
- data/pg_engine/app/controllers/admin/emails_controller.rb +3 -20
- data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +134 -102
- data/pg_engine/app/decorators/pg_engine/base_record_decorator.rb +29 -8
- data/pg_engine/app/helpers/pg_engine/flash_helper.rb +6 -2
- data/pg_engine/app/helpers/pg_engine/form_helper.rb +20 -2
- data/pg_engine/app/models/email.rb +2 -0
- data/pg_engine/app/models/pg_engine/base_record.rb +11 -0
- data/pg_engine/app/views/admin/accounts/_form.html.slim +1 -4
- data/pg_engine/app/views/admin/email_logs/_form.html.slim +2 -5
- data/pg_engine/app/views/admin/emails/_form.html.slim +13 -13
- data/pg_engine/app/views/admin/emails/_send.html.slim +0 -1
- data/pg_engine/app/views/admin/emails/show.html.slim +19 -20
- data/pg_engine/app/views/admin/eventos/new.html.slim +0 -2
- data/pg_engine/app/views/admin/user_accounts/_form.html.slim +1 -4
- data/pg_engine/app/views/admin/users/_form.html.slim +1 -4
- data/pg_engine/app/views/pg_engine/base/index.html.slim +4 -0
- data/pg_engine/app/views/pg_engine/base/new.html.slim +1 -2
- data/pg_engine/app/views/public/mensaje_contactos/new.html.slim +2 -5
- data/pg_engine/config/initializers/kaminari.rb +3 -0
- data/pg_engine/lib/pg_engine/utils/pg_logger.rb +10 -10
- data/pg_engine/spec/controllers/admin/accounts_controller_spec.rb +2 -2
- data/pg_engine/spec/controllers/admin/email_logs_controller_spec.rb +2 -2
- data/pg_engine/spec/controllers/admin/emails_controller_spec.rb +2 -2
- data/pg_engine/spec/controllers/admin/user_accounts_controller_spec.rb +2 -2
- data/pg_engine/spec/controllers/admin/users_controller_spec.rb +2 -2
- data/pg_engine/spec/lib/pg_engine/form_helper_spec.rb +53 -0
- data/pg_engine/spec/system/modal_windows_spec.rb +89 -0
- data/pg_engine/spec/system/send_mail_spec.rb +1 -1
- data/pg_layout/app/javascript/application.js +24 -0
- data/pg_layout/app/javascript/controllers/popover_toggler_controller.js +3 -2
- data/pg_layout/app/javascript/elements/index.js +1 -0
- data/pg_layout/app/javascript/elements/pg_event.js +12 -0
- data/pg_layout/app/views/devise/confirmations/new.html.erb +0 -1
- data/pg_layout/app/views/devise/passwords/edit.html.erb +0 -2
- data/pg_layout/app/views/devise/passwords/new.html.erb +0 -2
- data/pg_layout/app/views/devise/registrations/edit.html.erb +0 -2
- data/pg_layout/app/views/devise/registrations/new.html.erb +0 -2
- data/pg_layout/app/views/devise/unlocks/new.html.erb +0 -1
- data/pg_rails/lib/version.rb +1 -1
- data/pg_scaffold/lib/generators/pg_rspec/scaffold/templates/controller_spec.rb +2 -2
- data/pg_scaffold/lib/generators/pg_slim/templates/_form.html.slim +2 -5
- data/pg_scaffold/lib/generators/pg_slim/templates/show.html.slim +1 -1
- metadata +17 -4
- data/pg_associable/app/views/pg_engine/base/_pg_associable_modal.html.slim +0 -14
- data/pg_layout/app/views/pg_layout/_modal_show.html.slim +0 -14
@@ -2,7 +2,12 @@
|
|
2
2
|
|
3
3
|
module PgEngine
|
4
4
|
module FormHelper
|
5
|
-
def
|
5
|
+
def using_modal?
|
6
|
+
@using_modal || controller.instance_variable_get(:@using_modal)
|
7
|
+
end
|
8
|
+
|
9
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
10
|
+
def pg_form_for(object, *args, &block_passed)
|
6
11
|
resource = object
|
7
12
|
if object.is_a? PgEngine::BaseRecordDecorator
|
8
13
|
object = object.target_object
|
@@ -27,8 +32,21 @@ module PgEngine
|
|
27
32
|
options[:html][:data][:errors] = resource.errors.details.to_json
|
28
33
|
end
|
29
34
|
|
30
|
-
|
35
|
+
if options[:render_errors].nil?
|
36
|
+
options[:render_errors] = true
|
37
|
+
end
|
38
|
+
|
39
|
+
block_with_additives = lambda do |f|
|
40
|
+
ret = ''.html_safe
|
41
|
+
ret += f.mensajes_de_error if options[:render_errors]
|
42
|
+
# ret += hidden_field_tag(:using_modal, true) if using_modal?
|
43
|
+
ret += capture(f, &block_passed)
|
44
|
+
ret
|
45
|
+
end
|
46
|
+
|
47
|
+
simple_form_for(object, *(args << options), &block_with_additives)
|
31
48
|
end
|
49
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
32
50
|
|
33
51
|
def url_change_format(url, formato)
|
34
52
|
uri = URI.parse(url)
|
@@ -13,6 +13,10 @@ module PgEngine
|
|
13
13
|
before_create :setear_creado_y_actualizado_por
|
14
14
|
before_update :setear_actualizado_por
|
15
15
|
|
16
|
+
class << self
|
17
|
+
attr_accessor :default_modal
|
18
|
+
end
|
19
|
+
|
16
20
|
scope :query, ->(param) { param.present? ? where(id: param) : all }
|
17
21
|
|
18
22
|
def self.ransackable_associations(_auth_object = nil)
|
@@ -47,6 +51,10 @@ module PgEngine
|
|
47
51
|
end
|
48
52
|
end
|
49
53
|
|
54
|
+
def actions_component
|
55
|
+
ActionsComponent.new(self)
|
56
|
+
end
|
57
|
+
|
50
58
|
# Para el dom_id (index.html)
|
51
59
|
def to_key
|
52
60
|
if respond_to? :hashid
|
@@ -58,6 +66,9 @@ module PgEngine
|
|
58
66
|
|
59
67
|
def to_s
|
60
68
|
%i[nombre name].each do |campo|
|
69
|
+
# Using `_in_database` for consistent breadcrumbs when editing the name
|
70
|
+
campo = :"#{campo}_in_database"
|
71
|
+
|
61
72
|
return "#{send(campo)} ##{to_param}" if try(campo).present?
|
62
73
|
end
|
63
74
|
if to_param.present?
|
@@ -1,10 +1,7 @@
|
|
1
|
-
/ # locals: (object: nil
|
1
|
+
/ # locals: (object: nil)
|
2
2
|
|
3
3
|
div style="max-width: 22em"
|
4
4
|
= pg_form_for(@account || object) do |f|
|
5
|
-
= f.mensajes_de_error
|
6
|
-
|
7
|
-
= hidden_field_tag :asociable, true if asociable
|
8
5
|
= f.input :plan
|
9
6
|
= f.input :nombre
|
10
7
|
.mt-2
|
@@ -1,10 +1,7 @@
|
|
1
|
-
/ # locals: (object: nil
|
1
|
+
/ # locals: (object: nil)
|
2
2
|
|
3
3
|
div style="max-width: 22em" data-controller="pg_form"
|
4
|
-
= pg_form_for(@email_log || object
|
5
|
-
= f.mensajes_de_error
|
6
|
-
|
7
|
-
= hidden_field_tag :asociable, true if asociable
|
4
|
+
= pg_form_for(@email_log || object) do |f|
|
8
5
|
= f.pg_associable :email
|
9
6
|
= f.input :log_id
|
10
7
|
= f.input :event
|
@@ -1,17 +1,17 @@
|
|
1
|
-
/ # locals: (object: nil
|
1
|
+
/ # locals: (object: nil)
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
- object ||= @email
|
4
|
+
div style="max-width: 52em" data-controller="pg_form"
|
5
|
+
= pg_form_for(object) do |f|
|
6
|
+
- if object.persisted?
|
7
|
+
= f.input :status
|
8
|
+
- else
|
9
|
+
= f.input :from_name
|
10
|
+
= f.input :from_address
|
11
|
+
= f.input :to
|
12
|
+
= f.input :subject
|
13
|
+
= f.input :reply_to
|
14
|
+
= f.input :body_input, as: :text, input_html: { rows: 5 }
|
15
15
|
|
16
16
|
.mt-2
|
17
17
|
= f.button :submit
|
@@ -5,7 +5,7 @@
|
|
5
5
|
.ms-1
|
6
6
|
= @email.edit_link
|
7
7
|
|
8
|
-
table.table.table-borderless.table-sm.w-auto.mb-0
|
8
|
+
table.table.table-borderless.table-sm.w-auto.mb-0
|
9
9
|
- atributos_para_mostrar.each do |att|
|
10
10
|
tr
|
11
11
|
th = @clase_modelo.human_attribute_name(att)
|
@@ -23,23 +23,22 @@ table.table.table-borderless.table-sm.w-auto.mb-0.m-3
|
|
23
23
|
th = t('attributes.updated_at')
|
24
24
|
td = @email.updated_at
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
h4 Logs
|
27
|
+
table.table
|
28
|
+
tr
|
29
|
+
th log_id
|
30
|
+
th event
|
31
|
+
th log_level
|
32
|
+
th severity
|
33
|
+
th timestamp
|
34
|
+
th created_at
|
35
|
+
th updated_at
|
36
|
+
- @email.email_logs.order(timestamp: :desc).each do |log|
|
29
37
|
tr
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
- @email.email_logs.order(timestamp: :desc).each do |log|
|
38
|
-
tr
|
39
|
-
td = log.log_id
|
40
|
-
td = log.event
|
41
|
-
td = log.log_level
|
42
|
-
td = log.severity
|
43
|
-
td = log.timestamp
|
44
|
-
td = log.created_at
|
45
|
-
td = log.updated_at
|
38
|
+
td = log.log_id
|
39
|
+
td = log.event
|
40
|
+
td = log.log_level
|
41
|
+
td = log.severity
|
42
|
+
td = log.timestamp
|
43
|
+
td = log.created_at
|
44
|
+
td = log.updated_at
|
@@ -1,10 +1,7 @@
|
|
1
|
-
/ # locals: (object: nil
|
1
|
+
/ # locals: (object: nil)
|
2
2
|
|
3
3
|
div style="max-width: 22em"
|
4
4
|
= pg_form_for(@user_account || object) do |f|
|
5
|
-
= f.mensajes_de_error
|
6
|
-
|
7
|
-
= hidden_field_tag :asociable, true if asociable
|
8
5
|
= f.pg_associable :user
|
9
6
|
= f.pg_associable :account
|
10
7
|
= f.input :profiles
|
@@ -1,10 +1,7 @@
|
|
1
|
-
/ # locals: (object: nil
|
1
|
+
/ # locals: (object: nil)
|
2
2
|
|
3
3
|
div style="max-width: 22em"
|
4
4
|
= pg_form_for(@user || object) do |f|
|
5
|
-
= f.mensajes_de_error
|
6
|
-
|
7
|
-
= hidden_field_tag :asociable, true if asociable
|
8
5
|
= f.input :nombre
|
9
6
|
= f.input :apellido
|
10
7
|
= f.input :email
|
@@ -2,6 +2,10 @@
|
|
2
2
|
- content_for :actions do
|
3
3
|
- @actions&.each do |link_args|
|
4
4
|
= link_to(*link_args)
|
5
|
+
= link_to request.url, class: 'btn btn-sm btn-outline-primary',
|
6
|
+
data: { controller: :tooltip, 'bs-title': 'Actualizar' } do
|
7
|
+
i.bi.bi-arrow-clockwise
|
8
|
+
.ms-1
|
5
9
|
- if @filtros.present?
|
6
10
|
= render SearchBarTogglerComponent.new
|
7
11
|
.ms-1
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/ # locals: (object: nil
|
1
|
+
/ # locals: (object: nil)
|
2
2
|
|
3
3
|
.d-none
|
4
4
|
/ Preload
|
@@ -8,10 +8,7 @@
|
|
8
8
|
h2 Ponete en contacto
|
9
9
|
.d-inline-block style="width: 30em; max-width: 100%"
|
10
10
|
div data-controller="pg_form"
|
11
|
-
= pg_form_for(@mensaje_contacto || object
|
12
|
-
= f.mensajes_de_error
|
13
|
-
|
14
|
-
= hidden_field_tag :asociable, true if asociable
|
11
|
+
= pg_form_for(@mensaje_contacto || object) do |f|
|
15
12
|
- unless user_signed_in?
|
16
13
|
= f.input :nombre, input_html: { style: 'max-width: 22em' }
|
17
14
|
= f.input :email, input_html: { style: 'max-width: 23em' }
|
@@ -19,20 +19,20 @@ def pg_err(*args)
|
|
19
19
|
pg_log(:error, *args)
|
20
20
|
end
|
21
21
|
|
22
|
-
def pg_warn(*
|
23
|
-
pg_log(:warn, *
|
22
|
+
def pg_warn(*)
|
23
|
+
pg_log(:warn, *)
|
24
24
|
end
|
25
25
|
|
26
|
-
def pg_info(*
|
27
|
-
pg_log(:info, *
|
26
|
+
def pg_info(*)
|
27
|
+
pg_log(:info, *)
|
28
28
|
end
|
29
29
|
|
30
|
-
def pg_debug(*
|
31
|
-
pg_log(:debug, *
|
30
|
+
def pg_debug(*)
|
31
|
+
pg_log(:debug, *)
|
32
32
|
end
|
33
33
|
|
34
|
-
def pg_log(*
|
35
|
-
PgEngine::PgLogger.log(*
|
34
|
+
def pg_log(*)
|
35
|
+
PgEngine::PgLogger.log(*)
|
36
36
|
end
|
37
37
|
|
38
38
|
module PgEngine
|
@@ -42,8 +42,8 @@ module PgEngine
|
|
42
42
|
end
|
43
43
|
|
44
44
|
class << self
|
45
|
-
def log(type, *
|
46
|
-
notify_all(build_msg(*
|
45
|
+
def log(type, *)
|
46
|
+
notify_all(build_msg(*), type)
|
47
47
|
end
|
48
48
|
|
49
49
|
private
|
@@ -200,9 +200,9 @@ RSpec.describe Admin::AccountsController do
|
|
200
200
|
expect(account.reload.discarded_at).to be_present
|
201
201
|
end
|
202
202
|
|
203
|
-
it '
|
203
|
+
it 'envía el pg-event' do
|
204
204
|
subject
|
205
|
-
expect(response.body).to include('
|
205
|
+
expect(response.body).to include('<pg-event data-event-name="pg:record-destroyed"')
|
206
206
|
end
|
207
207
|
|
208
208
|
context 'si hay redirect_to' do
|
@@ -162,9 +162,9 @@ RSpec.describe Admin::EmailLogsController do
|
|
162
162
|
expect { subject }.to change(EmailLog, :count).by(-1)
|
163
163
|
end
|
164
164
|
|
165
|
-
it '
|
165
|
+
it 'envía el pg-event' do
|
166
166
|
subject
|
167
|
-
expect(response.body).to include('
|
167
|
+
expect(response.body).to include('<pg-event data-event-name="pg:record-destroyed"')
|
168
168
|
end
|
169
169
|
|
170
170
|
context 'si hay redirect_to' do
|
@@ -153,9 +153,9 @@ RSpec.describe Admin::EmailsController do
|
|
153
153
|
expect { subject }.to change(Email, :count).by(-1)
|
154
154
|
end
|
155
155
|
|
156
|
-
it '
|
156
|
+
it 'envía el pg-event' do
|
157
157
|
subject
|
158
|
-
expect(response.body).to include('
|
158
|
+
expect(response.body).to include('<pg-event data-event-name="pg:record-destroyed"')
|
159
159
|
end
|
160
160
|
|
161
161
|
context 'si hay redirect_to' do
|
@@ -183,9 +183,9 @@ RSpec.describe Admin::UserAccountsController do
|
|
183
183
|
expect { subject }.to change(UserAccount, :count).by(-1)
|
184
184
|
end
|
185
185
|
|
186
|
-
it '
|
186
|
+
it 'envía el pg-event' do
|
187
187
|
subject
|
188
|
-
expect(response.body).to include('
|
188
|
+
expect(response.body).to include('<pg-event data-event-name="pg:record-destroyed"')
|
189
189
|
end
|
190
190
|
|
191
191
|
context 'si hay redirect_to' do
|
@@ -174,9 +174,9 @@ RSpec.describe Admin::UsersController do
|
|
174
174
|
expect(user.reload.discarded_at).to be_present
|
175
175
|
end
|
176
176
|
|
177
|
-
it '
|
177
|
+
it 'envía el pg-event' do
|
178
178
|
subject
|
179
|
-
expect(response.body).to include('
|
179
|
+
expect(response.body).to include('<pg-event data-event-name="pg:record-destroyed"')
|
180
180
|
end
|
181
181
|
|
182
182
|
context 'si hay redirect_to' do
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe PgEngine::FormHelper do
|
4
|
+
subject do
|
5
|
+
view_context.pg_form_for(cosa, **options) do |f|
|
6
|
+
f.submit 'ACEPTAR'
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:options) do
|
11
|
+
{}
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:using_modal) { false }
|
15
|
+
|
16
|
+
let(:view_context) do
|
17
|
+
cont = Admin::CosasController.new
|
18
|
+
cont.request = ActionDispatch::TestRequest.create
|
19
|
+
cont.view_context
|
20
|
+
end
|
21
|
+
let(:cosa) { Cosa.new }
|
22
|
+
|
23
|
+
before do
|
24
|
+
Current.namespace = :admin
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'renders the form and the button' do
|
28
|
+
expect(subject).to include 'ACEPTAR'
|
29
|
+
expect(subject).to include '<form'
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'when there are errors' do
|
33
|
+
let(:cosa) do
|
34
|
+
ret = Cosa.new(nombre: nil)
|
35
|
+
ret.validate
|
36
|
+
ret
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'renders the errors' do
|
40
|
+
expect(subject).to include 'Por favor, revisá los campos obligatorios'
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'and its requested not to render errors' do
|
44
|
+
let(:options) do
|
45
|
+
{ render_errors: false }
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'renders the errors' do
|
49
|
+
expect(subject).not_to include 'Por favor, revisá los campos obligatorios'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# Initially generated with PgRails::SystemSpecGenerator
|
2
|
+
# https://github.com/martin-rosso/pg_rails
|
3
|
+
|
4
|
+
require 'rails_helper'
|
5
|
+
|
6
|
+
# By default uses selenium_chrome_headless_iphone driver
|
7
|
+
# run with DRIVER environment variable to override, eg:
|
8
|
+
#
|
9
|
+
# DRIVER=selenium rspec
|
10
|
+
describe 'Modal windows' do
|
11
|
+
subject(:visitar) do
|
12
|
+
visit '/admin/cosas'
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:logged_user) { create :user, :developer }
|
16
|
+
let(:account) { logged_user.current_account }
|
17
|
+
let!(:categoria_de_cosa) { create :categoria_de_cosa }
|
18
|
+
|
19
|
+
before do
|
20
|
+
login_as logged_user
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'crear con modal' do
|
24
|
+
it do
|
25
|
+
visitar
|
26
|
+
click_on 'Cargar coso'
|
27
|
+
select 'Completar'
|
28
|
+
select categoria_de_cosa.to_s
|
29
|
+
find('.modal input[type=submit]').click
|
30
|
+
expect(page).to have_text 'Por favor, revisá los campos obligatorios'
|
31
|
+
fill_in 'Nombre', with: 'bla'
|
32
|
+
find('.modal input[type=submit]').click
|
33
|
+
expect(page).to have_text 'bla'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'show con modal' do
|
38
|
+
let!(:cosa) { create :cosa, categoria_de_cosa: }
|
39
|
+
|
40
|
+
it do
|
41
|
+
visit '/admin/cosas/' + cosa.to_param
|
42
|
+
click_on 'Ver categoría'
|
43
|
+
expect(page).to have_css '.modal', text: categoria_de_cosa.nombre
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe 'edit con modal' do
|
48
|
+
let!(:cosa) { create :cosa, categoria_de_cosa: }
|
49
|
+
|
50
|
+
it do
|
51
|
+
visit '/admin/cosas/' + cosa.to_param
|
52
|
+
click_on 'Modificar'
|
53
|
+
fill_in 'Nombre', with: ''
|
54
|
+
find('.modal input[type=submit]').click
|
55
|
+
expect(page).to have_text 'Por favor, revisá los campos obligatorios'
|
56
|
+
fill_in 'Nombre', with: 'bla'
|
57
|
+
find('.modal input[type=submit]').click
|
58
|
+
expect(page).to have_text 'bla'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe 'destroy con modal' do
|
63
|
+
before { create :cosa, categoria_de_cosa: }
|
64
|
+
|
65
|
+
it do
|
66
|
+
visit '/admin/cosas'
|
67
|
+
find('span[title=Ver] a').click
|
68
|
+
accept_confirm do
|
69
|
+
find('.modal span[title=Eliminar] a').click
|
70
|
+
end
|
71
|
+
expect(page).to have_text 'No hay cosos aún'
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'cuando da error' do
|
75
|
+
before do
|
76
|
+
allow_any_instance_of(Cosa).to receive(:discard).and_return(false)
|
77
|
+
end
|
78
|
+
|
79
|
+
it do
|
80
|
+
visit '/admin/cosas'
|
81
|
+
find('span[title=Ver] a').click
|
82
|
+
accept_confirm do
|
83
|
+
find('.modal span[title=Eliminar] a').click
|
84
|
+
end
|
85
|
+
expect(page).to have_text 'No se pudo eliminar el registro'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -1,3 +1,27 @@
|
|
1
1
|
import './config'
|
2
2
|
import './channels'
|
3
3
|
import './controllers'
|
4
|
+
import './elements'
|
5
|
+
|
6
|
+
import { Turbo } from '@hotwired/turbo-rails'
|
7
|
+
|
8
|
+
document.addEventListener('pg:record-created', (ev) => {
|
9
|
+
Turbo.visit(window.location)
|
10
|
+
setTimeout(() => {
|
11
|
+
Turbo.cache.clear()
|
12
|
+
}, 1000)
|
13
|
+
})
|
14
|
+
|
15
|
+
document.addEventListener('pg:record-updated', (ev) => {
|
16
|
+
Turbo.visit(window.location)
|
17
|
+
setTimeout(() => {
|
18
|
+
Turbo.cache.clear()
|
19
|
+
}, 1000)
|
20
|
+
})
|
21
|
+
|
22
|
+
document.addEventListener('pg:record-destroyed', (ev) => {
|
23
|
+
Turbo.visit(window.location)
|
24
|
+
setTimeout(() => {
|
25
|
+
Turbo.cache.clear()
|
26
|
+
}, 1000)
|
27
|
+
})
|
@@ -5,9 +5,11 @@ export default class extends Controller {
|
|
5
5
|
popover = null
|
6
6
|
|
7
7
|
connect () {
|
8
|
+
const container = this.element.closest('.modal-body') ? '.modal-body' : 'body'
|
8
9
|
this.popover = new bootstrap.Popover(this.element, {
|
9
10
|
// WARNING: don't use for user input html
|
10
11
|
sanitize: false,
|
12
|
+
container,
|
11
13
|
template: `
|
12
14
|
<div class="popover" role="tooltip" data-controller="popover">
|
13
15
|
<div class="popover-arrow"></div>
|
@@ -16,8 +18,7 @@ export default class extends Controller {
|
|
16
18
|
<div class="popover-body">
|
17
19
|
</div>
|
18
20
|
</div>
|
19
|
-
|
20
|
-
container: 'body'
|
21
|
+
`
|
21
22
|
})
|
22
23
|
}
|
23
24
|
|
@@ -0,0 +1 @@
|
|
1
|
+
import './pg_event'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class PgEventElement extends HTMLElement {
|
2
|
+
connectedCallback () {
|
3
|
+
this.dispatchEvent(new MessageEvent(this.dataset.eventName, { bubbles: true, data: this }))
|
4
|
+
}
|
5
|
+
|
6
|
+
disconnectedCallback () {
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
if (customElements.get('pg-event') === undefined) {
|
11
|
+
customElements.define('pg-event', PgEventElement)
|
12
|
+
}
|
@@ -1,8 +1,6 @@
|
|
1
1
|
<h2><%= t(".change_your_password") %></h2>
|
2
2
|
|
3
3
|
<%= pg_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
|
4
|
-
<%= f.mensajes_de_error %>
|
5
|
-
|
6
4
|
<%= f.input :reset_password_token, as: :hidden %>
|
7
5
|
<%= f.full_error :reset_password_token %>
|
8
6
|
|
@@ -1,8 +1,6 @@
|
|
1
1
|
<h2><%= t(".title", resource: devise_i18n_fix_model_name_case(resource.model_name.human, i18n_key: "registrations.edit.title")) %></h2>
|
2
2
|
|
3
3
|
<%= pg_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
|
4
|
-
<%= f.mensajes_de_error %>
|
5
|
-
|
6
4
|
<div class="form-inputs">
|
7
5
|
<%= f.input :email, required: true, autofocus: true %>
|
8
6
|
<%= f.input :nombre, required: true %>
|
@@ -1,8 +1,6 @@
|
|
1
1
|
<h2><%= t(".sign_up") %></h2>
|
2
2
|
<div id="form-signup" data-controller="pg_form">
|
3
3
|
<%= pg_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
4
|
-
<%= f.mensajes_de_error %>
|
5
|
-
|
6
4
|
<div class="form-inputs">
|
7
5
|
<%= f.input :nombre, required: true, autofocus: true %>
|
8
6
|
<%= f.input :apellido, required: true %>
|
data/pg_rails/lib/version.rb
CHANGED