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 +4 -4
- data/app/components/olivander/components/resource_form_component.html.haml +2 -0
- data/app/components/olivander/components/resource_show_component.html.haml +2 -0
- data/app/controllers/concerns/olivander/resources/auto_form_attributes.rb +8 -1
- data/app/datatables/olivander/datatable.rb +15 -2
- data/app/helpers/olivander/application_helper.rb +6 -7
- data/app/views/application/_form.html.haml +4 -4
- data/lib/olivander/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 813bb7ec43d77ce06d78481a6fd41a8ceef88fff67dc898464dd8c2ab6f3486e
|
|
4
|
+
data.tar.gz: 054c82737ee7e9c01e86c016f1caca362d11e665eb4a5628fc09a4d27aa2c34b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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}" } }
|
|
@@ -43,7 +43,14 @@ module Olivander
|
|
|
43
43
|
auto_resource_fields(columns: columns, only: only)
|
|
44
44
|
end
|
|
45
45
|
else
|
|
46
|
-
|
|
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
|
-
|
|
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[
|
|
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
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
|
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
|
data/lib/olivander/version.rb
CHANGED
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.
|
|
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-
|
|
11
|
+
date: 2024-01-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: chartkick
|