pg_rails 7.3.0 → 7.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/pg_associable/app/helpers/pg_associable/form_builder_methods.rb +8 -0
- data/pg_associable/app/helpers/pg_associable/helpers.rb +2 -2
- data/pg_associable/app/javascript/modal_controller.js +66 -4
- data/pg_associable/spec/system/associable_spec.rb +28 -5
- data/pg_engine/app/assets/stylesheets/pg_rails_b5.scss +5 -0
- data/pg_engine/app/components/date_selector_component.rb +2 -2
- data/pg_engine/app/components/modal_content_component.rb +20 -19
- 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 +1 -1
- 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 +209 -86
- 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 +27 -16
- data/pg_engine/app/helpers/pg_engine/form_helper.rb +0 -5
- 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/pg_engine/base_record.rb +2 -0
- data/pg_engine/app/views/pg_engine/base/edit.html.slim +1 -2
- data/pg_engine/app/views/pg_engine/base/index.html.slim +2 -3
- data/pg_engine/config/initializers/ransack_memory.rb +13 -2
- data/pg_engine/config/locales/es.yml +1 -1
- 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 +0 -2
- 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 +4 -4
- data/pg_layout/app/javascript/application.js +14 -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/tooltip_controller.js +8 -0
- data/pg_layout/app/javascript/elements/pg_event.js +2 -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_scaffold/templates/controller.rb +2 -4
- metadata +6 -6
- data/pg_engine/app/components/form_modal_component.html.slim +0 -15
- data/pg_engine/app/components/form_modal_component.rb +0 -6
- data/pg_engine/app/components/show_modal_component.html.slim +0 -10
- data/pg_engine/app/components/show_modal_component.rb +0 -7
@@ -46,7 +46,7 @@ div
|
|
46
46
|
ul.list-group.list-group-horizontal
|
47
47
|
- available_page_sizes.each do |page_size|
|
48
48
|
= link_to page_size,
|
49
|
-
|
49
|
+
url_for(page_size:),
|
50
50
|
class: "list-group-item py-0 px-1 #{'active' if current_page_size == page_size}"
|
51
51
|
- elsif @records_filtered
|
52
52
|
- i18n_key = "#{controller_key}.#{action_name}.index.empty_but_filtered"
|
@@ -54,8 +54,7 @@ div
|
|
54
54
|
= t(i18n_key, default: :'.empty_but_filtered', model: @clase_modelo.nombre_plural.downcase)
|
55
55
|
| :
|
56
56
|
span.ms-2
|
57
|
-
= link_to
|
58
|
-
| Limpiar búsqueda
|
57
|
+
= link_to 'Limpiar búsqueda', url_for + '?cancel_filter=true'
|
59
58
|
- else
|
60
59
|
- i18n_key = "#{controller_key}.#{action_name}.index.empty"
|
61
60
|
p.m-3 = t(i18n_key, default: :'.empty', model: @clase_modelo.nombre_plural.downcase)
|
@@ -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
|
}
|
@@ -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,61 @@
|
|
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 'Breadcrumbs' do
|
11
|
+
subject(:visitar) do
|
12
|
+
visit path
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:path) { "/admin/cosas/#{cosa.id}" }
|
16
|
+
let(:cosa) { create :cosa }
|
17
|
+
let(:logged_user) { create :user, :developer }
|
18
|
+
let(:account) { logged_user.current_account }
|
19
|
+
|
20
|
+
before do
|
21
|
+
login_as logged_user
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'some case' do
|
25
|
+
it do
|
26
|
+
visitar
|
27
|
+
|
28
|
+
expect(page).to have_css('nav ol.breadcrumb li').exactly(2)
|
29
|
+
expect(page).to have_css('nav ol.breadcrumb li a').exactly(1)
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'cuando es con nested' do
|
33
|
+
let(:path) do
|
34
|
+
hashid = cosa.categoria_de_cosa.hashid
|
35
|
+
"/admin/categoria_de_cosas/#{hashid}/cosas/#{cosa.id}"
|
36
|
+
end
|
37
|
+
|
38
|
+
it do
|
39
|
+
visitar
|
40
|
+
|
41
|
+
expect(page).to have_css('nav ol.breadcrumb li').exactly(3)
|
42
|
+
expect(page).to have_css('nav ol.breadcrumb li a').exactly(1)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'cuando es con nested y modal' do
|
47
|
+
let(:path) do
|
48
|
+
hashid = cosa.categoria_de_cosa.hashid
|
49
|
+
"/admin/categoria_de_cosas/#{hashid}"
|
50
|
+
end
|
51
|
+
|
52
|
+
it do
|
53
|
+
visitar
|
54
|
+
find('td span[title=Ver] a').click
|
55
|
+
|
56
|
+
expect(page).to have_css('.modal nav ol.breadcrumb li').exactly(3)
|
57
|
+
expect(page).to have_no_css('.modal nav ol.breadcrumb li a')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -24,11 +24,11 @@ describe 'Modal windows' do
|
|
24
24
|
it do
|
25
25
|
visitar
|
26
26
|
click_on 'Cargar coso'
|
27
|
-
select 'Completar'
|
28
|
-
select categoria_de_cosa.to_s
|
27
|
+
select 'Completar', from: 'cosa_tipo'
|
28
|
+
select categoria_de_cosa.to_s, from: 'cosa_categoria_de_cosa_id'
|
29
29
|
find('.modal input[type=submit]').click
|
30
30
|
expect(page).to have_text 'Por favor, revisá los campos obligatorios'
|
31
|
-
fill_in '
|
31
|
+
fill_in 'cosa_nombre', with: 'bla'
|
32
32
|
find('.modal input[type=submit]').click
|
33
33
|
expect(page).to have_text 'bla'
|
34
34
|
end
|
@@ -68,7 +68,7 @@ describe 'Modal windows' do
|
|
68
68
|
accept_confirm do
|
69
69
|
find('.modal span[title=Eliminar] a').click
|
70
70
|
end
|
71
|
-
expect(page).to have_text 'No hay cosos
|
71
|
+
expect(page).to have_text 'No hay cosos que mostrar'
|
72
72
|
end
|
73
73
|
|
74
74
|
context 'cuando da error' do
|
@@ -25,3 +25,17 @@ document.addEventListener('pg:record-destroyed', (ev) => {
|
|
25
25
|
Turbo.cache.clear()
|
26
26
|
}, 1000)
|
27
27
|
})
|
28
|
+
|
29
|
+
document.addEventListener('turbo:before-fetch-request', (ev) => {
|
30
|
+
// Si es POST, quito la opción text/vnd.turbo-stream.html para que
|
31
|
+
// on successful redirect no haya posibilidad de que se abra un modal
|
32
|
+
// FIXME: buscar una manera mejor de hacerlo porque es para problemas
|
33
|
+
// quizás, con la movida de abrir modales desde JS
|
34
|
+
if (ev.detail.fetchOptions.method === 'post') {
|
35
|
+
ev.detail.fetchOptions.headers.Accept = 'text/html, application/xhtml+xml'
|
36
|
+
}
|
37
|
+
|
38
|
+
if (document.querySelector('.modal.show')) {
|
39
|
+
ev.detail.fetchOptions.headers['Modal-Opened'] = true
|
40
|
+
}
|
41
|
+
})
|
@@ -9,7 +9,10 @@ import '@hotwired/turbo-rails'
|
|
9
9
|
// TODO: testear con capybara
|
10
10
|
document.addEventListener('turbo:before-cache', () => {
|
11
11
|
document.querySelectorAll('#flash .alert').forEach((el) => {
|
12
|
-
|
12
|
+
// FIXME: en los destroy desde main frame, turbo llama a before-cache
|
13
|
+
// después de renderear el redirect, por eso no puedo hacer el remove
|
14
|
+
//
|
15
|
+
// el.remove()
|
13
16
|
})
|
14
17
|
document.querySelectorAll('.offcanvas-backdrop').forEach((el) => {
|
15
18
|
el.remove()
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Controller } from '@hotwired/stimulus'
|
2
|
+
|
3
|
+
export default class extends Controller {
|
4
|
+
connect () {
|
5
|
+
this.element.addEventListener('pg:record-destroyed', (ev) => {
|
6
|
+
this.element.querySelector('turbo-frame').reload()
|
7
|
+
ev.stopPropagation()
|
8
|
+
})
|
9
|
+
}
|
10
|
+
}
|
@@ -14,6 +14,7 @@ import TooltipController from './tooltip_controller'
|
|
14
14
|
import PopoverController from './popover_controller'
|
15
15
|
import PopoverTogglerController from './popover_toggler_controller'
|
16
16
|
import DateSelectorController from './date_selector_controller'
|
17
|
+
import EmbeddedFrameController from './embedded_frame_controller'
|
17
18
|
|
18
19
|
application.register('navbar', NavbarController)
|
19
20
|
application.register('nested', NestedController)
|
@@ -29,5 +30,6 @@ application.register('tooltip', TooltipController)
|
|
29
30
|
application.register('popover', PopoverController)
|
30
31
|
application.register('popover-toggler', PopoverTogglerController)
|
31
32
|
application.register('date-selector', DateSelectorController)
|
33
|
+
application.register('embedded-frame', EmbeddedFrameController)
|
32
34
|
|
33
35
|
// TODO: testear con capybara todo lo que se pueda
|
@@ -20,6 +20,14 @@ export default class extends Controller {
|
|
20
20
|
}
|
21
21
|
}
|
22
22
|
|
23
|
+
setContent (content) {
|
24
|
+
this.tooltip.setContent({ '.tooltip-inner': content })
|
25
|
+
}
|
26
|
+
|
27
|
+
hide () {
|
28
|
+
this.tooltip.hide()
|
29
|
+
}
|
30
|
+
|
23
31
|
disconnect () {
|
24
32
|
if (this.tooltip) {
|
25
33
|
this.tooltip.dispose()
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class PgEventElement extends HTMLElement {
|
2
2
|
connectedCallback () {
|
3
|
-
|
3
|
+
const event = new MessageEvent(this.dataset.eventName, { bubbles: true, data: this })
|
4
|
+
this.dispatchEvent(event)
|
4
5
|
}
|
5
6
|
|
6
7
|
disconnectedCallback () {
|
@@ -59,23 +59,51 @@ html
|
|
59
59
|
div
|
60
60
|
= render partial: 'pg_layout/navbar' if @navbar.present?
|
61
61
|
div
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
62
|
+
/ FIXME: rename to main, use a constant
|
63
|
+
= turbo_frame_tag current_turbo_frame || 'top',
|
64
|
+
**{ 'data-turbo-action': (turbo_frame? ? nil : :advance) }.compact do
|
65
|
+
- if user_signed_in? && breadcrumbs.any?
|
66
|
+
.d-flex.d-print-none
|
67
|
+
.d-flex.flex-grow-1.px-3.py-1[
|
68
|
+
class="#{nav_bg} align-items-center justify-content-between"
|
69
|
+
style="min-height: 2.5em;"]
|
70
|
+
nav.d-flex aria-label="breadcrumb"
|
71
|
+
- unless frame_embedded?
|
72
|
+
i.bi-segmented-nav.me-2
|
73
|
+
ol.breadcrumb
|
74
|
+
= render_breadcrumbs builder: PgEngine::Bootstrap5BreadcrumbsBuilder
|
75
|
+
|
76
|
+
.btn-toolbar.gap-1
|
77
|
+
= yield(:actions)
|
78
|
+
- if using_modal?
|
79
|
+
.px-2.d-flex.align-items-center.border.border-start-0
|
80
|
+
= button_tag type: :button, class: 'btn btn-sm btn-link',
|
81
|
+
data: { action: 'modal#maximize',
|
82
|
+
controller: :tooltip, 'bs-title': 'Maximizar' } do
|
83
|
+
i.bi-fullscreen
|
84
|
+
= link_to request.url,
|
85
|
+
class: 'btn btn-sm btn-link',
|
86
|
+
data: { controller: :tooltip,
|
87
|
+
'turbo-frame': :_top,
|
88
|
+
'bs-title': 'Reemplazar ventana principal' } do
|
89
|
+
i.bi-box-arrow-up-right
|
90
|
+
= button_tag type: :button, class: 'btn btn-sm btn-link',
|
91
|
+
data: { controller: :tooltip,
|
92
|
+
'bs-title': 'Cerrar', 'bs-dismiss': :modal },
|
93
|
+
'aria-label': 'Close' do
|
94
|
+
i.bi-x-lg
|
95
|
+
|
96
|
+
/ hr.my-0
|
97
|
+
- content = content_for?(:content) ? yield(:content) : yield
|
98
|
+
/ FIXME: rename to main?
|
99
|
+
- if (!turbo_frame? || current_turbo_frame == 'top') && \
|
100
|
+
content.exclude?('flash-container')
|
101
|
+
= render FlashContainerComponent.new
|
102
|
+
/ TODO: si hay varios flashes toast, se superponen. habría que
|
103
|
+
hacer un container con position absolute para los toasts
|
104
|
+
= yield(:filtros)
|
105
|
+
= content
|
106
|
+
|
79
107
|
div style="width:100%; height: 10em"
|
80
108
|
.d-flex.gap-1.justify-content-center.opacity-50 data-controller="theme"
|
81
109
|
| (Beta) Tema:
|
data/pg_rails/lib/version.rb
CHANGED
@@ -10,5 +10,6 @@ $warning-border-subtle: tint-color($warning, 20%);
|
|
10
10
|
$secondary-bg-subtle: tint-color($secondary, 92%);
|
11
11
|
// $warning-bg-subtle: tint-color($warning, 40%);
|
12
12
|
|
13
|
-
|
14
13
|
$btn-close-focus-shadow: none;
|
14
|
+
|
15
|
+
$breadcrumb-divider: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'><path d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='#{$breadcrumb-divider-color}'/></svg>");
|
data/pg_rails/scss/pg_rails.scss
CHANGED
@@ -31,6 +31,8 @@ $focus-ring-width: .05rem;
|
|
31
31
|
$alert-padding-y: 0.5rem;
|
32
32
|
$alert-margin-bottom: 0.5rem;
|
33
33
|
|
34
|
+
$breadcrumb-margin-bottom: 0;
|
35
|
+
|
34
36
|
@import 'bootstrap_pre';
|
35
37
|
@import 'bootstrap_overrides';
|
36
38
|
@import 'bootstrap_post';
|
@@ -63,10 +65,15 @@ $alert-margin-bottom: 0.5rem;
|
|
63
65
|
|
64
66
|
|
65
67
|
$warning-border-emphasis: shade-color($yellow, 60%);
|
66
|
-
.
|
68
|
+
.btn-toolbar .btn-warning {
|
67
69
|
border: 1px solid $warning-border-emphasis;
|
68
70
|
}
|
69
71
|
|
72
|
+
$light-border-emphasis: shade-color($light, 60%);
|
73
|
+
.btn-toolbar .btn-light {
|
74
|
+
border: 1px solid $light-border-emphasis;
|
75
|
+
}
|
76
|
+
|
70
77
|
.listado tr:has(td:hover):has(.bi-eye-fill) td {
|
71
78
|
background-color: #f2f2f2;
|
72
79
|
cursor: pointer;
|
@@ -9,16 +9,14 @@ require_dependency "<%= namespaced_path %>/application_controller"
|
|
9
9
|
<% module_namespacing do -%>
|
10
10
|
<% module_namespacing_2 do -%>
|
11
11
|
class <%= controller_class_name.split('::').last %>Controller < <%= parent_controller %>
|
12
|
-
include PgEngine::Resource
|
13
|
-
|
14
12
|
before_action { @clase_modelo = <%= class_name.split('::').last %> }
|
15
13
|
|
14
|
+
include PgEngine::Resource
|
15
|
+
|
16
16
|
before_action(only: :index) { authorize <%= class_name.split('::').last %> }
|
17
17
|
|
18
18
|
before_action :set_instancia_modelo, only: %i[new create show edit update destroy]
|
19
19
|
|
20
|
-
add_breadcrumb <%= class_name.split('::').last %>.nombre_plural, :<%= plural_route_name %>_path
|
21
|
-
|
22
20
|
private
|
23
21
|
|
24
22
|
def atributos_permitidos
|
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.3.
|
4
|
+
version: 7.3.2
|
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-08-
|
11
|
+
date: 2024-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -646,8 +646,6 @@ files:
|
|
646
646
|
- pg_engine/app/components/date_selector_component.html.slim
|
647
647
|
- pg_engine/app/components/date_selector_component.rb
|
648
648
|
- pg_engine/app/components/flash_container_component.rb
|
649
|
-
- pg_engine/app/components/form_modal_component.html.slim
|
650
|
-
- pg_engine/app/components/form_modal_component.rb
|
651
649
|
- pg_engine/app/components/internal_error_component.rb
|
652
650
|
- pg_engine/app/components/modal_component.html.slim
|
653
651
|
- pg_engine/app/components/modal_component.rb
|
@@ -659,8 +657,6 @@ files:
|
|
659
657
|
- pg_engine/app/components/search_bar_component.rb
|
660
658
|
- pg_engine/app/components/search_bar_toggler_component.html.slim
|
661
659
|
- pg_engine/app/components/search_bar_toggler_component.rb
|
662
|
-
- pg_engine/app/components/show_modal_component.html.slim
|
663
|
-
- pg_engine/app/components/show_modal_component.rb
|
664
660
|
- pg_engine/app/controllers/admin/accounts_controller.rb
|
665
661
|
- pg_engine/app/controllers/admin/email_logs_controller.rb
|
666
662
|
- pg_engine/app/controllers/admin/emails_controller.rb
|
@@ -688,6 +684,7 @@ files:
|
|
688
684
|
- pg_engine/app/decorators/user_decorator.rb
|
689
685
|
- pg_engine/app/helpers/pg_engine/flash_helper.rb
|
690
686
|
- pg_engine/app/helpers/pg_engine/form_helper.rb
|
687
|
+
- pg_engine/app/helpers/pg_engine/frame_helper.rb
|
691
688
|
- pg_engine/app/helpers/pg_engine/i18n_helper.rb
|
692
689
|
- pg_engine/app/helpers/pg_engine/index_helper.rb
|
693
690
|
- pg_engine/app/helpers/pg_engine/pg_rails_helper.rb
|
@@ -695,6 +692,7 @@ files:
|
|
695
692
|
- pg_engine/app/helpers/pg_engine/print_helper.rb
|
696
693
|
- pg_engine/app/helpers/pg_engine/route_helper.rb
|
697
694
|
- pg_engine/app/inputs/pg_engine/fecha_input.rb
|
695
|
+
- pg_engine/app/lib/pg_engine/bootstrap5_breadcrumbs_builder.rb
|
698
696
|
- pg_engine/app/lib/pg_engine/date_jumper.rb
|
699
697
|
- pg_engine/app/lib/pg_engine/devise_failure_app.rb
|
700
698
|
- pg_engine/app/lib/pg_engine/error_helper.rb
|
@@ -855,6 +853,7 @@ files:
|
|
855
853
|
- pg_engine/spec/requests/base_controller_requests_spec.rb
|
856
854
|
- pg_engine/spec/requests/users/date_jumper_spec.rb
|
857
855
|
- pg_engine/spec/system/alerts_spec.rb
|
856
|
+
- pg_engine/spec/system/breadcrumbs_spec.rb
|
858
857
|
- pg_engine/spec/system/date_selector_spec.rb
|
859
858
|
- pg_engine/spec/system/destroy_spec.rb
|
860
859
|
- pg_engine/spec/system/login_spec.rb
|
@@ -880,6 +879,7 @@ files:
|
|
880
879
|
- pg_layout/app/javascript/controllers/application.js
|
881
880
|
- pg_layout/app/javascript/controllers/clear_timeout_controller.js
|
882
881
|
- pg_layout/app/javascript/controllers/date_selector_controller.js
|
882
|
+
- pg_layout/app/javascript/controllers/embedded_frame_controller.js
|
883
883
|
- pg_layout/app/javascript/controllers/fadein_onload_controller.js
|
884
884
|
- pg_layout/app/javascript/controllers/filtros_controller.js
|
885
885
|
- pg_layout/app/javascript/controllers/index.js
|
@@ -1,15 +0,0 @@
|
|
1
|
-
= render ModalContentComponent.new do |content|
|
2
|
-
- content.with_header do
|
3
|
-
/ TODO: render breadcrumbs?
|
4
|
-
- if @record.persisted?
|
5
|
-
= link_to @record.target_object do
|
6
|
-
| Ir al #{@record.class.nombre_singular.downcase}
|
7
|
-
span.ms-1 » Modificando
|
8
|
-
- else
|
9
|
-
.fs-5 = @record.decorate.submit_default_value
|
10
|
-
|
11
|
-
/ - content.with_actions do
|
12
|
-
= render @record.actions_component
|
13
|
-
|
14
|
-
- content.with_body do
|
15
|
-
= render partial: 'form', locals: { object: @record }
|
@@ -1,10 +0,0 @@
|
|
1
|
-
= render ModalContentComponent.new do |content|
|
2
|
-
- content.with_header do
|
3
|
-
= link_to @record.target_object, 'data-turbo-frame': '_top' do
|
4
|
-
| Ir al #{@record.class.nombre_singular.downcase}
|
5
|
-
|
6
|
-
- content.with_actions do
|
7
|
-
= render @record.actions_component
|
8
|
-
|
9
|
-
- content.with_body do
|
10
|
-
= render @record
|