tramway-admin 1.16.1.1 → 1.17

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: 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