tramway-admin 1.6.3 → 1.7

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: 549476f0e2ade569531af185bac5c737cfed252d61d419b1fe1e695ee4e337c7
4
- data.tar.gz: 2cd61f7805ab5fa050a60504dee3200929d608bdfa04d49ee6fa8eb47a99f74b
3
+ metadata.gz: b79d54ce69a7ec52260303f4ff460312ea36aee4a51dcdb8e64392c88f2bc445
4
+ data.tar.gz: 4ad934c6776f7377dd7169ae2e494420ea61516ba475868e6f858b7c6f2ea697
5
5
  SHA512:
6
- metadata.gz: 0a66622b18c45311760d801be761d8a96b9b44e32de54939c96e78aa93385c55140a8285b4e46d472be7538e9eae259906be00bd40bb933753e6e5dea7331ec9
7
- data.tar.gz: ddfcb0f662239bf50d55aaf267844bab6709e0036969fd3dd34c6191ca1cca36e8d2478cf13a785193769f71e896cd94bdca13d2bc8440d224688504332a09e8
6
+ metadata.gz: 9517c3a67708efc8e6fa9bf7dae48530b4246dd8f69015d220968e73e6cf759ef03128ef0a0266cce1cbdee529b7eca111324d60e2970908dd1d97f1ee852a12
7
+ data.tar.gz: e8c9edafdcdb8b3da555ffe2a201d03a280a41e391c6b5e71b0a301106f3bb281bc287c2ced31b3b05c6d2448a204673508631697c5a9f8bff78685da145e303
@@ -8,6 +8,7 @@ module Tramway
8
8
  include ::Tramway::Admin::RecordsHelper
9
9
  include ::Tramway::Admin::SingletonHelper
10
10
  include ::Tramway::Admin::NavbarHelper
11
+ include ::Tramway::Admin::InputsHelper
11
12
  include ::Tramway::Collections::Helper
12
13
  end
13
14
  end
@@ -0,0 +1,44 @@
1
+ module Tramway
2
+ module Admin
3
+ module InputsHelper
4
+ def association_params(form_object:, property:, value:, object:)
5
+ full_class_name_association = form_object.class.full_class_name_association(property)
6
+ {
7
+ label: false,
8
+ input_html: {
9
+ name: "#{object}[#{property}]",
10
+ id: "#{object}_#{property}",
11
+ value: (form_object.send(property) || form_object.model.send("#{property}_id") || value)
12
+ },
13
+ selected: (form_object.model.send("#{property}_id") || value),
14
+ collection: full_class_name_association.active.map do |obj|
15
+ decorator_class(full_class_name_association).decorate obj
16
+ end
17
+ }
18
+ end
19
+
20
+ def polymorphic_association_params(object:, form_object:, property:, value:)
21
+ full_class_names = form_object.model.class.send("#{property}_type").values.map &:constantize
22
+ collection = full_class_names.map do |class_name|
23
+ class_name.active.map do |obj|
24
+ decorator_class(class_name).decorate obj
25
+ end
26
+ end.flatten
27
+ {
28
+ as: :select,
29
+ label: false,
30
+ input_html: {
31
+ name: "#{object}[#{property}]",
32
+ id: "#{object}_#{property}",
33
+ value: (form_object.send(property) || form_object.model.send("#{property}_id") || value)
34
+ },
35
+ selected: (form_object.model.send("#{property}_id") || value),
36
+ collection: collection,
37
+ label_method: lambda do |obj|
38
+ "#{obj.class.model_name.human} | #{obj.name}"
39
+ end
40
+ }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -6,8 +6,10 @@
6
6
  - when :default
7
7
  = form.input property, label: false, input_html: { name: "#{object}[#{property}]", id: "#{object}_#{property}", value: (form_object.send(property) || form_object.model.send(property) || value) }, selected: (form_object.model.send(property) || value)
8
8
  - when :association
9
- - full_class_name_association = form_object.class.full_class_name_association(property)
10
- = form.association property, label: false, input_html: { name: "#{object}[#{property}]", id: "#{object}_#{property}", value: (form_object.send(property) || form_object.model.send("#{property}_id") || value) }, selected: (form_object.model.send("#{property}_id") || value), collection: full_class_name_association.active.map { |obj| decorator_class(full_class_name_association).decorate obj }
9
+ = form.association property, **association_params(form_object: form_object, property: property, value: value, object: object)
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
13
  - else
12
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) }
13
15
  - else
@@ -1,5 +1,5 @@
1
1
  module Tramway
2
2
  module Admin
3
- VERSION = '1.6.3'
3
+ VERSION = '1.7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tramway-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: '1.7'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kalashnikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-13 00:00:00.000000000 Z
11
+ date: 2018-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootstrap-kaminari-views
@@ -212,6 +212,7 @@ files:
212
212
  - app/controllers/tramway/admin/welcome_controller.rb
213
213
  - app/helpers/tramway/admin/additional_buttons_builder.rb
214
214
  - app/helpers/tramway/admin/application_helper.rb
215
+ - app/helpers/tramway/admin/inputs_helper.rb
215
216
  - app/helpers/tramway/admin/navbar_helper.rb
216
217
  - app/helpers/tramway/admin/records_helper.rb
217
218
  - app/helpers/tramway/admin/russian_cases_helper.rb