pg_rails 7.6.3 → 7.6.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c827faeb7ffa9b904395708a6f9c6184a930ee22663bcec472b600046497baa
4
- data.tar.gz: bb256bb482b6697302d7e3b2131f5cd9e3ddeaa17447f739b943091a6b90c431
3
+ metadata.gz: 558b69c5a93797c069002f3477d6ccc34b63b98fa4f1a37ddedcc4ab6010ef3b
4
+ data.tar.gz: a3cc4d53326372aaa5e7155b2d50cfdee3fc3d0814a81eee53ec3701814c3e23
5
5
  SHA512:
6
- metadata.gz: c06b67c6b8bdeb5462db606077e29b1d1a68bc58ee65a6df7c9e21a13615f723d68189a497b769faf401160875741caf946010f6b162659aa5d9c8dffec6f35d
7
- data.tar.gz: 471922d32d56e46a8e7d20ecd0fe2793d22849a66d813c8fc103a51a8e1d44d4d8229f1b04457d0b3f16f9a9c6ab6ea052dac95dcd43605b9120ddaf8eeb8a88
6
+ metadata.gz: 259c3f0cc7c935f4a5b9569a2cd33cb1cc60e71a1c5cc85118fb3190415ebad4d78065c641bbe0bdaf479639df1be0ef93ded0ad589313f7dd23011ecfa618d8
7
+ data.tar.gz: b0e0ad29958f836916d4469d43bd5f3c8797eb9e00a981694034c025158083f28a0ea32bce7057a957bd2d2898d75daf7905fc9e0facd2ec78677f0de06c3389
@@ -207,6 +207,8 @@ input[type=datetime-local], input[type=datetime] {
207
207
  // text-decoration: underline;
208
208
  // text-decoration-style: dotted;
209
209
  // text-decoration-color: #262626;
210
+ border-bottom: 1px dotted #333;
211
+ padding-bottom: 1px;
210
212
 
211
213
  a:hover {
212
214
  i {
@@ -217,4 +219,9 @@ input[type=datetime-local], input[type=datetime] {
217
219
  input[type=text] {
218
220
  min-width: 22em;
219
221
  }
222
+
223
+ // To display correctly in tables with fixed witdh columns
224
+ .form-select {
225
+ width: initial;
226
+ }
220
227
  }
@@ -0,0 +1,27 @@
1
+ class InlineComponent < ViewComponent::Base
2
+ def initialize(model, attribute)
3
+ @model = model
4
+ @attribute = attribute
5
+ @unsuffixed_attribute = unsuffixed(attribute)
6
+ @frame_id = dom_id(model, "#{attribute}_inline_edit")
7
+
8
+ super
9
+ end
10
+
11
+ def before_render
12
+ return unless controller.in_modal?
13
+
14
+ controller.instance_variable_set(:@using_modal, true)
15
+ end
16
+
17
+ SUFIJOS = %i[f text].freeze
18
+ def unsuffixed(attribute)
19
+ ret = attribute.to_s.dup
20
+
21
+ SUFIJOS.each do |sufijo|
22
+ ret.gsub!(/_#{sufijo}$/, '')
23
+ end
24
+
25
+ ret
26
+ end
27
+ end
@@ -3,7 +3,7 @@
3
3
  html: { class: 'd-flex align-items-start gap-1' }) do |f|
4
4
  = hidden_field_tag :inline_attribute, @attribute
5
5
 
6
- = f.field @attribute, label: false, html5: true
6
+ = f.field @unsuffixed_attribute, label: false, html5: true
7
7
 
8
8
  = button_tag class: 'btn btn-sm btn-primary',
9
9
  data: { controller: 'tooltip', 'bs-title': 'Guardar' } do
@@ -1,11 +1,7 @@
1
- class InlineEditComponent < ViewComponent::Base
2
- def initialize(model, attribute)
3
- @model = model
4
- @attribute = attribute
5
- @frame_id = dom_id(model, "#{attribute}_inline_edit")
6
-
1
+ class InlineEditComponent < InlineComponent
2
+ def initialize(*)
7
3
  @wrapper_mappings = {
8
- string: :inline_form_control,
4
+ string: :inline_form_grow,
9
5
  pg_associable: :inline_form_control,
10
6
  date: :inline_form_control,
11
7
  datetime: :inline_form_control,
@@ -14,10 +10,4 @@ class InlineEditComponent < ViewComponent::Base
14
10
 
15
11
  super
16
12
  end
17
-
18
- def before_render
19
- return unless controller.in_modal?
20
-
21
- controller.instance_variable_set(:@using_modal, true)
22
- end
23
13
  end
@@ -1,8 +1,8 @@
1
- - if @model.class.inline_editable?(@attribute) && helpers.policy(@model).edit?
1
+ - if @model.class.inline_editable?(@unsuffixed_attribute) && helpers.policy(@model).edit?
2
2
  = helpers.turbo_frame_tag(@frame_id, class: 'inline-edit')
3
- span = @model.decorate.send(@attribute)
4
3
  = link_to users_inline_edit_path(model: @model.to_gid, attribute: @attribute),
5
- class: 'text-body-tertiary ms-1', style: 'font-size: 0.8em' do
4
+ class: 'text-body-tertiary', style: 'font-size: 0.8em' do
6
5
  i.bi.bi-pencil
6
+ span.ms-1 = @model.decorate.send(@attribute)
7
7
  - else
8
8
  = @model.decorate.send(@attribute)
@@ -1,15 +1,2 @@
1
- class InlineShowComponent < ViewComponent::Base
2
- def initialize(model, attribute)
3
- @model = model
4
- @attribute = attribute
5
- @frame_id = dom_id(model, "#{attribute}_inline_edit")
6
-
7
- super
8
- end
9
-
10
- def before_render
11
- return unless controller.in_modal?
12
-
13
- controller.instance_variable_set(:@using_modal, true)
14
- end
1
+ class InlineShowComponent < InlineComponent
15
2
  end
@@ -270,6 +270,21 @@ SimpleForm.setup do |config|
270
270
  # inline forms
271
271
  #
272
272
  # inline default_wrapper
273
+ config.wrappers :inline_form_grow, class: 'flex-grow-1' do |b|
274
+ b.use :html5
275
+ b.use :placeholder
276
+ b.optional :maxlength
277
+ b.optional :minlength
278
+ b.optional :pattern
279
+ b.optional :min_max
280
+ b.optional :readonly
281
+ b.use :label, class: 'visually-hidden'
282
+
283
+ b.use :input, class: 'form-control form-control-sm', error_class: 'is-invalid'
284
+ b.use :error, wrap_with: { class: 'invalid-feedback' }
285
+ b.optional :hint, wrap_with: { class: 'form-text' }
286
+ end
287
+
273
288
  config.wrappers :inline_form_control, class: '' do |b|
274
289
  b.use :html5
275
290
  b.use :placeholder
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.6.3'
4
+ VERSION = '7.6.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.6.3
4
+ version: 7.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martín Rosso
@@ -674,6 +674,7 @@ files:
674
674
  - pg_engine/app/components/date_selector_component.html.slim
675
675
  - pg_engine/app/components/date_selector_component.rb
676
676
  - pg_engine/app/components/flash_container_component.rb
677
+ - pg_engine/app/components/inline_edit/inline_component.rb
677
678
  - pg_engine/app/components/inline_edit/inline_edit_component.html.slim
678
679
  - pg_engine/app/components/inline_edit/inline_edit_component.rb
679
680
  - pg_engine/app/components/inline_edit/inline_show_component.html.slim