tramway-admin 1.16.1.1 → 1.17

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c91182d0d976fa56ef1257765888681c7cff2d6e0c9ac124e2aea2a9c15dcda1
4
- data.tar.gz: 4297ac7eab59d61e72a52d0add35acb27b03c618c73c849a1b7bd3a232c03fa2
3
+ metadata.gz: 13db76bce2de75c4328a285d6dfe261d713e3d8affb341c52e415ea7980155fb
4
+ data.tar.gz: 72b43c637b298e8a0d6b8b5fb7c9337615976cd2b8e0d64e1d34c74714529bba
5
5
  SHA512:
6
- metadata.gz: 92fa86e2d0d20f1c0aa8edd51434a9495aa4098feaf76234f3adaa0d49032d05d451584ff14ca31e26dc5d00bd1dac6f454fa22c0ea8ddcc7c528f959290a862
7
- data.tar.gz: cc71301bb4fc9f2d04fa7bc272ea27c0ec6f148b7b87cec1ee671d1cd98c75f7df02a70591758f7c164b6ebea000e9d8da47aad2f6bd3266058d8819c3bfc7a5
6
+ metadata.gz: 6466b87e880e2574fc513590997a701ae4ebbc2837869846b0169475fdadffeefcd3285699d4b1928d3c2e5f844345e6c27d7594f4cbb949822b1a9e833f4871
7
+ data.tar.gz: e2d8579bda0a3e4d0b4c5ef0465836960e678d13556e7dab91ec522dd82de6a42a4799137f6e4b77cb1edc37c08bf73a4c4a5dc5f997b75c78116817e5240130
@@ -42,6 +42,22 @@ module Tramway
42
42
  end
43
43
  }
44
44
  end
45
+
46
+ def value_from_params(model_class:, property:, type:)
47
+ if type.is_a? Symbol
48
+ case type
49
+ when :polymorphic_association
50
+ {
51
+ id: params.dig(model_class.to_s.underscore, property.to_s),
52
+ type: params.dig(model_class.to_s.underscore, "#{property}_type"),
53
+ }
54
+ else
55
+ params.dig(model_class.to_s.underscore, property.to_s)
56
+ end
57
+ else
58
+ params.dig(model_class.to_s.underscore, property.to_s)
59
+ end
60
+ end
45
61
  end
46
62
  end
47
63
  end
@@ -71,5 +71,14 @@ module Tramway::Admin
71
71
  return :active if params[:scope].nil? && index == 0
72
72
  return :active if params[:search].nil? && params[:scope].to_s == tab.to_s
73
73
  end
74
+
75
+ def new_associated_record_path(object:, association:)
76
+ new_record_path model: association.class_name,
77
+ redirect: current_model_record_path(object),
78
+ association.options[:class_name].underscore => {
79
+ association.options[:as] => object.id,
80
+ association.type => object.class.model_name
81
+ }
82
+ end
74
83
  end
75
84
  end
@@ -1,4 +1,4 @@
1
- - value = params.dig(model_class.to_s.underscore, property.to_s)
1
+ - value = value_from_params(model_class: model_class, property: property, type: type)
2
2
  - form_object = instance_variable_get "@#{object}_form"
3
3
  - if type.is_a? Symbol
4
4
  = form.label form_object.model.class.human_attribute_name property
@@ -8,8 +8,8 @@
8
8
  - when :association
9
9
  = form.association property, **association_params(form_object: form_object, property: property, value: value, object: object)
10
10
  - when :polymorphic_association
11
- = form.input property, **polymorphic_association_params(object: object, form_object: form_object, property: property, value: value)
12
- = form.input "#{property}_type", input_html: { name: "#{object}[#{property}_type]", id: "#{object}_#{property}_type", value: (form_object.send(property) || form_object.model.send("#{property}_type") || value) }, selected: (form_object.model.send("#{property}_type") || value)
11
+ = form.input property, **polymorphic_association_params(object: object, form_object: form_object, property: property, value: value[:id])
12
+ = form.input "#{property}_type", input_html: { name: "#{object}[#{property}_type]", id: "#{object}_#{property}_type", value: (form_object.send(property) || form_object.model.send("#{property}_type") || value[:type]) }, selected: (form_object.model.send("#{property}_type") || value[:type])
13
13
  - else
14
14
  = form.input property, as: type, label: false, input_html: { name: "#{object}[#{property}]", id: "#{object}_#{property}", value: (form_object.send(property) || form_object.model.send(property) || value) }
15
15
  - else
@@ -3,7 +3,7 @@
3
3
  %tr
4
4
  %td
5
5
  = model_class.human_attribute_name association.name
6
- = link_to fa_icon(:plus), new_record_path(model: association.class_name, redirect: current_model_record_path(object)), class: 'btn btn-primary'
6
+ = link_to fa_icon(:plus), new_associated_record_path(association: association, object: object), class: 'btn btn-primary'
7
7
  %td{ colspan: 2 }
8
8
  %table.table.table-striped.table-bordered
9
9
  - object.send(association.name)&.each do |association_object|
@@ -1,5 +1,5 @@
1
1
  module Tramway
2
2
  module Admin
3
- VERSION = '1.16.1.1'
3
+ VERSION = '1.17'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tramway-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.1.1
4
+ version: '1.17'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kalashnikov