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 +4 -4
- data/app/helpers/tramway/admin/inputs_helper.rb +16 -0
- data/app/helpers/tramway/admin/records_helper.rb +9 -0
- data/app/views/tramway/admin/shared/_input.html.haml +3 -3
- data/app/views/tramway/admin/shared/show/_associations.html.haml +1 -1
- data/lib/tramway/admin/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13db76bce2de75c4328a285d6dfe261d713e3d8affb341c52e415ea7980155fb
|
4
|
+
data.tar.gz: 72b43c637b298e8a0d6b8b5fb7c9337615976cd2b8e0d64e1d34c74714529bba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 =
|
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),
|
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|
|