pg_rails 7.3.0 → 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 +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 +24 -19
- 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.1
|
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
|