pg_rails 7.1.0 → 7.1.1.pre.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/javascript/modal_controller.js +8 -0
- data/pg_engine/app/assets/stylesheets/pg_rails_b5.scss +2 -1
- data/pg_engine/app/components/alert_component.rb +0 -1
- data/pg_engine/app/controllers/admin/emails_controller.rb +1 -0
- data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +12 -6
- data/pg_engine/app/helpers/pg_engine/index_helper.rb +3 -3
- data/pg_engine/app/lib/pg_engine/filtros_builder.rb +14 -6
- data/pg_engine/config/locales/es.yml +3 -0
- data/pg_layout/app/views/pg_layout/_modal_show.html.slim +9 -0
- data/pg_rails/lib/version.rb +1 -1
- data/pg_rails/scss/bootstrap_overrides.scss +2 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1a5b2d45d523d85b889cb132876fecfa47dcb5ec2215745a8a5f52f65cb64d1
|
4
|
+
data.tar.gz: 2d3a6033834156a52fd1b2732fa5807da7c543a0ebac232ce1e588e2b8264595
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8307c9947ada0096c2c631c688fa6b5117c48473bd263786af090814aed41641535a5a205d9bfbfceef9ced876b8814b09e7dbcb6176730dc339f4499921e48
|
7
|
+
data.tar.gz: 5dff3bd33e3eb3adfe4f1ce205c34f6099ae1446cf58288aa411c863511531bab2aa40d476c04c6e41a2d5b8df72ff53bc9857f3fc6f6b311b4d620e1de6df12
|
@@ -9,6 +9,14 @@ export default class extends Controller {
|
|
9
9
|
|
10
10
|
connect (e) {
|
11
11
|
this.modalPuntero = new bootstrap.Modal(this.element)
|
12
|
+
if (this.element.dataset.removeOnHide) {
|
13
|
+
this.element.addEventListener('hidden.bs.modal', (e) => {
|
14
|
+
this.element.remove()
|
15
|
+
window.Stimulus.controllers.map((c) => { return c.calendar })
|
16
|
+
.filter((e) => { return e })
|
17
|
+
.forEach((c) => { c.refetchEvents() })
|
18
|
+
})
|
19
|
+
}
|
12
20
|
this.modalPuntero.show()
|
13
21
|
document.addEventListener('turbo:before-cache', () => {
|
14
22
|
this.element.remove()
|
@@ -4,7 +4,6 @@ class AlertComponent < ViewComponent::Base
|
|
4
4
|
def initialize(type:, toast: false, dismissible: true)
|
5
5
|
@type = type.to_s
|
6
6
|
|
7
|
-
# rubocop:disable Style/IfUnlessModifier
|
8
7
|
unless @type.in? ApplicationController._flash_types.map(&:to_s)
|
9
8
|
raise PgEngine::Error, 'el type no es válido'
|
10
9
|
end
|
@@ -22,6 +22,7 @@ module Admin
|
|
22
22
|
def create
|
23
23
|
saved = false
|
24
24
|
ActiveRecord::Base.transaction do
|
25
|
+
# FIXME: acá la transaction jode porque el ActiveJob no puede deserializar el Email
|
25
26
|
if (saved = @email.save)
|
26
27
|
PgEngine::AdminMailer.with(email_object: @email).admin_mail.deliver_later
|
27
28
|
end
|
@@ -89,6 +89,7 @@ module PgEngine
|
|
89
89
|
object = instancia_modelo
|
90
90
|
respond_to do |format|
|
91
91
|
if (@saved = object.save)
|
92
|
+
# TODO: 'asociable' lo cambiaría por 'in_modal' o algo así
|
92
93
|
if params[:asociable]
|
93
94
|
format.turbo_stream do
|
94
95
|
render turbo_stream:
|
@@ -96,7 +97,8 @@ module PgEngine
|
|
96
97
|
<div data-modal-target="response" data-response='#{object.decorate.to_json}'></div>
|
97
98
|
HTML
|
98
99
|
)
|
99
|
-
#
|
100
|
+
# FIXME: handlear json
|
101
|
+
# render json: object.decorate, content_type: 'application/json'
|
100
102
|
end
|
101
103
|
end
|
102
104
|
format.html do
|
@@ -113,10 +115,9 @@ module PgEngine
|
|
113
115
|
# self.instancia_modelo = instancia_modelo.decorate
|
114
116
|
if params[:asociable]
|
115
117
|
format.turbo_stream do
|
116
|
-
#
|
118
|
+
# FIXME: agregar , status: :unprocessable_entity
|
117
119
|
render turbo_stream:
|
118
120
|
turbo_stream.update_all('.modal.show .pg-associable-form', partial: 'form', locals: { asociable: true })
|
119
|
-
# rubocop:enable Rails/SkipsModelValidations
|
120
121
|
end
|
121
122
|
end
|
122
123
|
format.html { render :new, status: :unprocessable_entity }
|
@@ -138,9 +139,14 @@ module PgEngine
|
|
138
139
|
end
|
139
140
|
|
140
141
|
def pg_respond_show(object = nil)
|
141
|
-
|
142
|
-
|
143
|
-
|
142
|
+
object ||= instancia_modelo
|
143
|
+
if params[:modal].present?
|
144
|
+
render turbo_stream: turbo_stream.append_all('body', partial: 'pg_layout/modal_show', locals: { object: })
|
145
|
+
else
|
146
|
+
respond_to do |format|
|
147
|
+
format.json { render json: object }
|
148
|
+
format.html
|
149
|
+
end
|
144
150
|
end
|
145
151
|
end
|
146
152
|
|
@@ -17,10 +17,10 @@ module PgEngine
|
|
17
17
|
end
|
18
18
|
cgi['order_by'] = campo
|
19
19
|
cgi['order_direction'] =
|
20
|
-
if field.to_s == campo.to_s && direction.to_s == '
|
21
|
-
'desc'
|
22
|
-
else
|
20
|
+
if field.to_s == campo.to_s && direction.to_s == 'desc'
|
23
21
|
'asc'
|
22
|
+
else
|
23
|
+
'desc'
|
24
24
|
end
|
25
25
|
|
26
26
|
symbol = if field.to_s == campo.to_s
|
@@ -72,13 +72,21 @@ module PgEngine
|
|
72
72
|
raise 'filtro de asociacion no soportado'
|
73
73
|
end
|
74
74
|
elsif tipo(campo).in?(%i[string text])
|
75
|
-
|
76
|
-
match_like = "%#{parametros[campo]}%"
|
75
|
+
columna = @clase_modelo.columns.find { |c| c.name == campo.to_s }
|
77
76
|
campo_tabla = "#{@clase_modelo.table_name}.#{campo}"
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
77
|
+
match_like = "%#{parametros[campo]}%"
|
78
|
+
query =
|
79
|
+
if columna&.array
|
80
|
+
# FIXME: testear
|
81
|
+
# El CONCAT no sé para qué sirve, pero lo dejo
|
82
|
+
query.where("unaccent(CONCAT(array_to_string(#{campo_tabla}, ' '))) ILIKE unaccent(?)", I18n.transliterate(match_like).to_s)
|
83
|
+
else
|
84
|
+
match_vector = parametros[campo].split.map { |a| "#{a}:*" }.join(' & ')
|
85
|
+
condicion = "to_tsvector(coalesce(unaccent(#{campo_tabla}), '')) @@ to_tsquery( unaccent(?) )"
|
86
|
+
condicion += " OR unaccent(CONCAT(#{campo_tabla})) ILIKE unaccent(?)"
|
87
|
+
query = query.where(condicion, I18n.transliterate(match_vector).to_s,
|
88
|
+
I18n.transliterate(match_like).to_s)
|
89
|
+
end
|
82
90
|
elsif tipo(campo) == :boolean
|
83
91
|
if campo.to_s == 'discarded'
|
84
92
|
# Si el nombre del campo es 'discarded' entonces no es un campo
|
@@ -5,6 +5,9 @@ es:
|
|
5
5
|
empty: 'No hay %{model} aún'
|
6
6
|
empty_but_filtered: 'No hay %{model} para los filtros aplicados'
|
7
7
|
attributes:
|
8
|
+
external_labels: Etiquetas externas
|
9
|
+
external_source: Fuente externa
|
10
|
+
external_id: ID externo
|
8
11
|
created_at: Fecha de creación
|
9
12
|
updated_at: Fecha de actualización
|
10
13
|
discarded_at: Fecha de borrado
|
@@ -0,0 +1,9 @@
|
|
1
|
+
.modal.modal-lg.modal-asociable[tabindex="-1" data-controller="modal" data-remove-on-hide="true"]
|
2
|
+
.modal-dialog
|
3
|
+
.modal-content
|
4
|
+
.modal-header
|
5
|
+
.modal-title
|
6
|
+
h3 Item
|
7
|
+
a.btn-close[type="button" data-bs-dismiss="modal" aria-label="Close"]
|
8
|
+
.modal-body
|
9
|
+
= render object
|
data/pg_rails/lib/version.rb
CHANGED
@@ -7,7 +7,8 @@ $danger-bg-subtle: tint-color($danger, 98%);
|
|
7
7
|
// $info-border-subtle: tint-color($info, 60%);
|
8
8
|
$warning-border-subtle: tint-color($warning, 20%);
|
9
9
|
// $danger-border-subtle: tint-color($danger, 60%);
|
10
|
-
|
11
10
|
$secondary-bg-subtle: tint-color($secondary, 92%);
|
11
|
+
$warning-bg-subtle: tint-color($warning, 40%);
|
12
|
+
|
12
13
|
|
13
14
|
$btn-close-focus-shadow: none;
|
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.1.
|
4
|
+
version: 7.1.1.pre.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-07-
|
11
|
+
date: 2024-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -848,6 +848,7 @@ files:
|
|
848
848
|
- pg_layout/app/views/layouts/pg_layout/mailer.html.slim
|
849
849
|
- pg_layout/app/views/layouts/pg_layout/mailer.text.erb
|
850
850
|
- pg_layout/app/views/pg_layout/_flash.html.slim
|
851
|
+
- pg_layout/app/views/pg_layout/_modal_show.html.slim
|
851
852
|
- pg_layout/app/views/pg_layout/_navbar.html.erb
|
852
853
|
- pg_layout/app/views/pg_layout/_sidebar.html.erb
|
853
854
|
- pg_layout/app/views/pg_layout/_sidebar_mobile.html.erb
|