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