pg_rails 7.2.3 → 7.3.1
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 +9 -2
- data/pg_associable/app/helpers/pg_associable/helpers.rb +4 -5
- data/pg_associable/app/javascript/modal_controller.js +80 -6
- data/pg_associable/spec/system/associable_spec.rb +30 -7
- data/pg_engine/app/assets/stylesheets/pg_rails_b5.scss +5 -0
- 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/date_selector_component.rb +2 -2
- 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 +29 -0
- data/pg_engine/app/components/search_bar_component.html.slim +1 -1
- data/pg_engine/app/controllers/admin/accounts_controller.rb +1 -1
- data/pg_engine/app/controllers/admin/email_logs_controller.rb +1 -1
- data/pg_engine/app/controllers/admin/emails_controller.rb +4 -21
- data/pg_engine/app/controllers/admin/user_accounts_controller.rb +1 -1
- data/pg_engine/app/controllers/admin/users_controller.rb +1 -1
- data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +288 -133
- data/pg_engine/app/controllers/pg_engine/base_controller.rb +5 -0
- data/pg_engine/app/controllers/public/mensaje_contactos_controller.rb +1 -1
- data/pg_engine/app/decorators/pg_engine/base_record_decorator.rb +36 -10
- data/pg_engine/app/helpers/pg_engine/flash_helper.rb +6 -2
- data/pg_engine/app/helpers/pg_engine/form_helper.rb +15 -2
- data/pg_engine/app/helpers/pg_engine/frame_helper.rb +52 -0
- data/pg_engine/app/lib/pg_engine/bootstrap5_breadcrumbs_builder.rb +22 -0
- data/pg_engine/app/lib/pg_engine/filtros_builder.rb +3 -2
- data/pg_engine/app/models/current.rb +1 -1
- data/pg_engine/app/models/email.rb +2 -0
- data/pg_engine/app/models/pg_engine/base_record.rb +13 -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/edit.html.slim +1 -2
- data/pg_engine/app/views/pg_engine/base/index.html.slim +6 -3
- 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/config/initializers/ransack_memory.rb +13 -2
- data/pg_engine/config/locales/es.yml +1 -1
- 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/controllers/concerns/pg_engine/resource_helper_spec.rb +0 -2
- data/pg_engine/spec/lib/pg_engine/form_helper_spec.rb +51 -0
- data/pg_engine/spec/system/breadcrumbs_spec.rb +61 -0
- data/pg_engine/spec/system/destroy_spec.rb +1 -1
- data/pg_engine/spec/system/login_spec.rb +1 -1
- 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 +38 -0
- data/pg_layout/app/javascript/config/turbo_rails/index.js +4 -1
- data/pg_layout/app/javascript/controllers/embedded_frame_controller.js +10 -0
- data/pg_layout/app/javascript/controllers/index.js +2 -0
- data/pg_layout/app/javascript/controllers/popover_toggler_controller.js +3 -2
- data/pg_layout/app/javascript/controllers/tooltip_controller.js +8 -0
- data/pg_layout/app/javascript/elements/index.js +1 -0
- data/pg_layout/app/javascript/elements/pg_event.js +13 -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_layout/app/views/layouts/pg_layout/base.html.slim +45 -17
- data/pg_layout/app/views/layouts/pg_layout/containerized.html.slim +1 -1
- data/pg_rails/lib/version.rb +1 -1
- data/pg_rails/scss/bootstrap_overrides.scss +2 -1
- data/pg_rails/scss/pg_rails.scss +8 -1
- data/pg_scaffold/lib/generators/pg_rspec/scaffold/templates/controller_spec.rb +2 -2
- data/pg_scaffold/lib/generators/pg_scaffold/templates/controller.rb +2 -4
- 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
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
module PgEngine
|
|
2
2
|
module FlashHelper
|
|
3
|
-
def render_turbo_stream_flash_messages
|
|
4
|
-
|
|
3
|
+
def render_turbo_stream_flash_messages(to: nil)
|
|
4
|
+
if to.present?
|
|
5
|
+
turbo_stream.prepend_all to, partial: 'pg_layout/flash'
|
|
6
|
+
else
|
|
7
|
+
turbo_stream.prepend 'flash', partial: 'pg_layout/flash'
|
|
8
|
+
end
|
|
5
9
|
end
|
|
6
10
|
|
|
7
11
|
def render_turbo_stream_title
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
module PgEngine
|
|
4
4
|
module FormHelper
|
|
5
|
-
|
|
5
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
6
|
+
def pg_form_for(object, *args, &block_passed)
|
|
6
7
|
resource = object
|
|
7
8
|
if object.is_a? PgEngine::BaseRecordDecorator
|
|
8
9
|
object = object.target_object
|
|
@@ -27,8 +28,20 @@ module PgEngine
|
|
|
27
28
|
options[:html][:data][:errors] = resource.errors.details.to_json
|
|
28
29
|
end
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
if options[:render_errors].nil?
|
|
32
|
+
options[:render_errors] = true
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
block_with_additives = lambda do |f|
|
|
36
|
+
ret = ''.html_safe
|
|
37
|
+
ret += f.mensajes_de_error if options[:render_errors]
|
|
38
|
+
ret += capture(f, &block_passed)
|
|
39
|
+
ret
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
simple_form_for(object, *(args << options), &block_with_additives)
|
|
31
43
|
end
|
|
44
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
32
45
|
|
|
33
46
|
def url_change_format(url, formato)
|
|
34
47
|
uri = URI.parse(url)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module PgEngine
|
|
2
|
+
module FrameHelper
|
|
3
|
+
# Will the current view rendered in a modal?
|
|
4
|
+
def using_modal?
|
|
5
|
+
controller.instance_variable_get(:@using_modal) ||
|
|
6
|
+
modal_targeted?
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def using_modal2?
|
|
10
|
+
@using_modal || modal_targeted?
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def in_modal?
|
|
14
|
+
request.headers['Modal-Opened'] == 'true'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def current_turbo_frame
|
|
18
|
+
request.headers['Turbo-Frame']
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def turbo_frame?
|
|
22
|
+
current_turbo_frame.present?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def modal_targeted?
|
|
26
|
+
current_turbo_frame == 'modal_content'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def frame_embedded?
|
|
30
|
+
turbo_frame? && current_turbo_frame.include?('embedded')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def embed_index(object, key)
|
|
34
|
+
content_tag(:div, 'data-controller': 'embedded-frame') do
|
|
35
|
+
turbo_frame_tag "embedded--#{key}",
|
|
36
|
+
refresh: :morph, src: url_for([pg_namespace, object, key]) do
|
|
37
|
+
content_tag(:p, class: 'p text-body-secondary text-center') { 'Cargando...' }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def nav_bg
|
|
43
|
+
if frame_embedded?
|
|
44
|
+
'bg-warning bg-opacity-25'
|
|
45
|
+
elsif using_modal?
|
|
46
|
+
'bg-warning bg-opacity-50'
|
|
47
|
+
else
|
|
48
|
+
'bg-primary-subtle'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module PgEngine
|
|
2
|
+
class Bootstrap5BreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
|
|
3
|
+
def render
|
|
4
|
+
@elements.collect do |element|
|
|
5
|
+
render_element(element)
|
|
6
|
+
end.join(@options[:separator] || '')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def render_element(element)
|
|
10
|
+
content = if element.path.nil?
|
|
11
|
+
compute_name(element)
|
|
12
|
+
else
|
|
13
|
+
# TODO: add aria-current="page"
|
|
14
|
+
@context.link_to_unless_current(
|
|
15
|
+
compute_name(element), compute_path(element), element.options
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
@context.content_tag('li', content, class: 'breadcrumb-item')
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -64,11 +64,12 @@ module PgEngine
|
|
|
64
64
|
@filtros[campo][:scope_asociacion] = block
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
+
# FIXME: deprecar
|
|
67
68
|
def filtrar(query, parametros = nil)
|
|
68
|
-
|
|
69
|
+
parametros_controller if parametros.nil?
|
|
69
70
|
|
|
70
71
|
# Filtro soft deleted
|
|
71
|
-
query = query.kept if query.respond_to?(:kept)
|
|
72
|
+
query = query.kept if query.respond_to?(:kept)
|
|
72
73
|
|
|
73
74
|
query
|
|
74
75
|
end
|
|
@@ -13,6 +13,12 @@ module PgEngine
|
|
|
13
13
|
before_create :setear_creado_y_actualizado_por
|
|
14
14
|
before_update :setear_actualizado_por
|
|
15
15
|
|
|
16
|
+
class << self
|
|
17
|
+
# This is a per class variable, all subclasses of BaseRecord inherit it
|
|
18
|
+
# BUT **the values are independent between all of them**
|
|
19
|
+
attr_accessor :default_modal
|
|
20
|
+
end
|
|
21
|
+
|
|
16
22
|
scope :query, ->(param) { param.present? ? where(id: param) : all }
|
|
17
23
|
|
|
18
24
|
def self.ransackable_associations(_auth_object = nil)
|
|
@@ -47,6 +53,10 @@ module PgEngine
|
|
|
47
53
|
end
|
|
48
54
|
end
|
|
49
55
|
|
|
56
|
+
def actions_component
|
|
57
|
+
ActionsComponent.new(self)
|
|
58
|
+
end
|
|
59
|
+
|
|
50
60
|
# Para el dom_id (index.html)
|
|
51
61
|
def to_key
|
|
52
62
|
if respond_to? :hashid
|
|
@@ -58,6 +68,9 @@ module PgEngine
|
|
|
58
68
|
|
|
59
69
|
def to_s
|
|
60
70
|
%i[nombre name].each do |campo|
|
|
71
|
+
# Using `_in_database` for consistent breadcrumbs when editing the name
|
|
72
|
+
campo = :"#{campo}_in_database"
|
|
73
|
+
|
|
61
74
|
return "#{send(campo)} ##{to_param}" if try(campo).present?
|
|
62
75
|
end
|
|
63
76
|
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
|
|
@@ -42,7 +46,7 @@ div
|
|
|
42
46
|
ul.list-group.list-group-horizontal
|
|
43
47
|
- available_page_sizes.each do |page_size|
|
|
44
48
|
= link_to page_size,
|
|
45
|
-
|
|
49
|
+
url_for(page_size:),
|
|
46
50
|
class: "list-group-item py-0 px-1 #{'active' if current_page_size == page_size}"
|
|
47
51
|
- elsif @records_filtered
|
|
48
52
|
- i18n_key = "#{controller_key}.#{action_name}.index.empty_but_filtered"
|
|
@@ -50,8 +54,7 @@ div
|
|
|
50
54
|
= t(i18n_key, default: :'.empty_but_filtered', model: @clase_modelo.nombre_plural.downcase)
|
|
51
55
|
| :
|
|
52
56
|
span.ms-2
|
|
53
|
-
= link_to
|
|
54
|
-
| Limpiar búsqueda
|
|
57
|
+
= link_to 'Limpiar búsqueda', url_for + '?cancel_filter=true'
|
|
55
58
|
- else
|
|
56
59
|
- i18n_key = "#{controller_key}.#{action_name}.index.empty"
|
|
57
60
|
p.m-3 = t(i18n_key, default: :'.empty', model: @clase_modelo.nombre_plural.downcase)
|
|
@@ -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' }
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
RansackMemory::Core.config = {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
# This means the default Ransack param name for searching. You can change it
|
|
3
|
+
param: :q,
|
|
4
|
+
|
|
5
|
+
# This means how the key used to store the information to the session
|
|
6
|
+
# will be stored. Currently it interpolates request parameters.
|
|
7
|
+
# You can customize it and use these vars to build a key that fits your needs
|
|
8
|
+
#
|
|
9
|
+
# Available variables are:
|
|
10
|
+
# controller_name
|
|
11
|
+
# action_name
|
|
12
|
+
# request_format
|
|
13
|
+
# turbo_frame
|
|
14
|
+
session_key_format: '%controller_name%_%action_name%_%request_format%_%turbo_frame%'
|
|
4
15
|
}
|
|
@@ -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
|
|
@@ -14,7 +14,6 @@ describe PgEngine::Resource do
|
|
|
14
14
|
allow(request).to receive_messages(filtered_parameters: { id: 321 },
|
|
15
15
|
parameters: { id: 321 })
|
|
16
16
|
allow(instancia).to receive(:request).and_return(request)
|
|
17
|
-
instancia.set_clase_modelo
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
it do
|
|
@@ -34,7 +33,6 @@ describe PgEngine::Resource do
|
|
|
34
33
|
allow(request).to receive_messages(filtered_parameters: { id: categoria_de_cosa.to_param },
|
|
35
34
|
parameters: { id: categoria_de_cosa.to_param })
|
|
36
35
|
allow(instancia).to receive(:request).and_return(request)
|
|
37
|
-
instancia.set_clase_modelo
|
|
38
36
|
end
|
|
39
37
|
|
|
40
38
|
it do
|
|
@@ -0,0 +1,51 @@
|
|
|
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(:view_context) do
|
|
15
|
+
cont = Admin::CosasController.new
|
|
16
|
+
cont.request = ActionDispatch::TestRequest.create
|
|
17
|
+
cont.view_context
|
|
18
|
+
end
|
|
19
|
+
let(:cosa) { Cosa.new }
|
|
20
|
+
|
|
21
|
+
before do
|
|
22
|
+
Current.namespace = :admin
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'renders the form and the button' do
|
|
26
|
+
expect(subject).to include 'ACEPTAR'
|
|
27
|
+
expect(subject).to include '<form'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
context 'when there are errors' do
|
|
31
|
+
let(:cosa) do
|
|
32
|
+
ret = Cosa.new(nombre: nil)
|
|
33
|
+
ret.validate
|
|
34
|
+
ret
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'renders the errors' do
|
|
38
|
+
expect(subject).to include 'Por favor, revisá los campos obligatorios'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context 'and its requested not to render errors' do
|
|
42
|
+
let(:options) do
|
|
43
|
+
{ render_errors: false }
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it 'renders the errors' do
|
|
47
|
+
expect(subject).not_to include 'Por favor, revisá los campos obligatorios'
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|