five-two-nw-olivander 0.1.2.49 → 0.1.2.50

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: 002fba1f117b2435491c2b6627f1124a77f5fe03abe8bb892ee55ca5ce84c999
4
- data.tar.gz: 33692e5979bc9cf09671052eebaaede0cbf15261f6ec6f2f07b889ecdee08d10
3
+ metadata.gz: 813bb7ec43d77ce06d78481a6fd41a8ceef88fff67dc898464dd8c2ab6f3486e
4
+ data.tar.gz: 054c82737ee7e9c01e86c016f1caca362d11e665eb4a5628fc09a4d27aa2c34b
5
5
  SHA512:
6
- metadata.gz: 49cd7121ce896cca2e054b6e9b1f8e0ce96eb4835c2d639f0a5aca8c9e69780c785114755c55ada48050fa0c792d8fe58334ec7393a9215ad259fb480904c8c3
7
- data.tar.gz: 9ffca213dde223e5ecda96b698d2ee3015c1ad8f794609c67705a9b95577f39a1e475a85e0893cf01a160a130e9e40091e485f689265df7a43ca1ec438be3402
6
+ metadata.gz: 45b11c5971c38f84ed31f247e7c407ffd2df32a58be4e302ca4a5c8756ee4fd0e7c6648b5209a4e788c43322fa8d095d1133e2046f9961efc3f94e2d8f701c13
7
+ data.tar.gz: cfafb658d561858e330495178079e58c5e76a787c5d145ea0854ca2131eb10b1312ab2109bd5a004109d5c4a4a9ee976b832be672873b19e7f6dea0051c82ed6
@@ -7,5 +7,7 @@
7
7
  - case field.type
8
8
  - when :association
9
9
  = @f.association field.sym, disabled: !field.editable, input_html: { data: { controller: "input-control-#{field.type}" } }
10
+ - when :boolean
11
+ = @f.input field.sym, disabled: !field.editable, as: field.type.to_sym, input_html: { data: { controller: "input-control-#{field.type}" } }, wrapper: :checkbox
10
12
  - else
11
13
  = @f.input field.sym, disabled: !field.editable, as: field.type.to_sym, input_html: { data: { controller: "input-control-#{field.type}" } }
@@ -16,6 +16,8 @@
16
16
  %td{ colspan: colspan }
17
17
  - val = @resource.send(f.sym)
18
18
  - case f.type
19
+ - when :integer, :float
20
+ = val
19
21
  - when :string, :text
20
22
  = simple_format(val)
21
23
  - when :boolean
@@ -43,7 +43,14 @@ module Olivander
43
43
  auto_resource_fields(columns: columns, only: only)
44
44
  end
45
45
  else
46
- only = self.columns.collect{ |x| x.name.to_sym } - SKIPPED_ATTRIBUTES if only.size.zero?
46
+ if only.size.zero?
47
+ only = [
48
+ self.columns.collect{ |x| x.name.to_sym },
49
+ reflections.map{ |r| r[1].name },
50
+ ]
51
+ only << attachment_definitions.select{ |x| x[0] } if respond_to?(:attachment_definitions)
52
+ only = only.flatten - SKIPPED_ATTRIBUTES
53
+ end
47
54
  only.each do |inc|
48
55
  self.columns.each do |att|
49
56
  sym = att.name.to_sym
@@ -18,14 +18,19 @@ module Olivander
18
18
  def self.auto_datatable(klazz, collection: nil, link_path: nil, only: [], except: [], hide: [], show: [], order_by: [], scopes: [])
19
19
  Rails.logger.debug "initializing datatable for #{klazz}"
20
20
 
21
- klazz_attributes = klazz.new.attributes.collect{ |x| x[0] }
21
+ instance = klazz.new
22
+ klazz_attributes = instance.attributes.collect{ |x| x[0] }
22
23
  column_attributes = klazz_attributes
23
24
  column_attributes &&= only if only.size.positive?
24
25
  column_attributes -= except if except.size.positive?
25
26
  resources_sym = klazz.table_name.to_sym
26
27
  bulk_action_list = self::ROUTE_BUILDER.resources[resources_sym]&.datatable_bulk_actions || []
27
28
 
28
- default_hidden = %w[id created updated created_at updated_at deleted_at current_user current_action]
29
+ default_hidden = %w[
30
+ id created updated created_at updated_at
31
+ deleted_at current_user current_action
32
+ application_tenant_id created_by_id updated_by_id
33
+ ]
29
34
 
30
35
  filters do
31
36
  scopes.each do |s|
@@ -60,6 +65,8 @@ module Olivander
60
65
  Rails.logger.debug "bulk actions size: #{datatable._bulk_actions.size}"
61
66
  Rails.logger.debug "bulk actions size: #{datatable._bulk_actions.size.positive?}"
62
67
  # bulk_actions_col if datatable._bulk_actions.size.positive?
68
+
69
+ #TODO: use columns from model here instead of attributes keys
63
70
  column_attributes.each do |key|
64
71
  label = field_label_for(klazz, key)
65
72
  sym = key.gsub('_id', '')
@@ -68,6 +75,12 @@ module Olivander
68
75
  col sym, visible: visible, action: :show
69
76
  elsif sym.include?('.')
70
77
  col sym, visible: visible, label: label
78
+ elsif klazz.columns.select{ |x| x.name == key }.first&.type == :boolean
79
+ col sym, visible: visible, label: label do |c|
80
+ val = c.send(sym)
81
+ icon_class = val ? 'fa-check text-success' : 'fa-times text-danger'
82
+ "<div class='text-center'><i class='fa fa-icon #{icon_class}'></div>".html_safe
83
+ end
71
84
  else
72
85
  col sym, visible: visible, label: label
73
86
  end
@@ -94,13 +94,12 @@ module Olivander
94
94
  resource.auto_form_attributes
95
95
  end
96
96
 
97
- def render_optional_partial partial
98
- begin
99
- render partial: partial
100
- rescue ActionView::MissingTemplate
101
- Rails.logger.debug "did not find partial: #{partial}"
102
- nil
103
- end
97
+ def render_optional_partial(partial, locals: {})
98
+ render partial: partial, locals: locals
99
+
100
+ rescue ActionView::MissingTemplate
101
+ Rails.logger.debug "did not find partial: #{partial}"
102
+ nil
104
103
  end
105
104
 
106
105
  def field_label_for(resource_class, sym)
@@ -1,16 +1,16 @@
1
- - read_only = !%w[edit new].include?(action_name)
1
+ - read_only = !%w[new create edit update].include?(action_name)
2
2
  = simple_form_for(@resource) do |f|
3
3
  .card.card-primary
4
4
  .card-header
5
- %h3.card-title= @resource
5
+ %h3.card-title= @resource.to_s.blank? ? @resource.model_name.human : @resource
6
6
  .card-tools
7
7
  = resource_form_actions(@context.route_builder, @resource, for_action: action_name.to_sym)
8
8
  .card-body
9
9
  =f.error_notification
10
10
  =f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?
11
- = render_optional_partial 'form_inside_before'
11
+ = render_optional_partial 'form_inside_before', locals: {f: f}
12
12
  = render Olivander::Components::ResourceFormComponent.new(@resource, f)
13
- = render_optional_partial 'form_inside_after'
13
+ = render_optional_partial 'form_inside_after', locals: {f: f}
14
14
  .card-footer.text-right
15
15
  = link_to 'Cancel', @_effective_resource.action_path(:index), class: 'btn btn-secondary'
16
16
  - unless read_only
@@ -1,3 +1,3 @@
1
1
  module Olivander
2
- VERSION = '0.1.2.49'.freeze
2
+ VERSION = '0.1.2.50'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: five-two-nw-olivander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.49
4
+ version: 0.1.2.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Dennis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-26 00:00:00.000000000 Z
11
+ date: 2024-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chartkick