tramway-admin 1.6.3 → 1.7

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