avo 0.5.0.beta8 → 0.5.0.beta13

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of avo might be problematic. Click here for more details.

Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +46 -50
  3. data/Gemfile.lock +3 -8
  4. data/Rakefile +14 -14
  5. data/app/components/avo/common/multiple_file_viewer_component.rb +1 -1
  6. data/app/components/avo/common/single_file_viewer_component.rb +1 -1
  7. data/app/components/avo/edit/field_wrapper_component.rb +3 -3
  8. data/app/components/avo/edit/fields/trix_field_component.html.erb +1 -1
  9. data/app/components/avo/index/field_wrapper_component.rb +1 -1
  10. data/app/components/avo/index/grid_item_component.rb +10 -9
  11. data/app/components/avo/index/resource_controls_component.rb +2 -2
  12. data/app/components/avo/panel_component.rb +7 -6
  13. data/app/components/avo/resource_component.rb +4 -3
  14. data/app/components/avo/show/field_wrapper_component.rb +3 -3
  15. data/app/components/avo/views/resource_edit_component.rb +4 -3
  16. data/app/components/avo/views/resource_index_component.rb +8 -7
  17. data/app/components/avo/views/resource_new_component.rb +4 -3
  18. data/app/components/avo/views/resource_show_component.rb +21 -21
  19. data/app/controllers/avo/actions_controller.rb +30 -29
  20. data/app/controllers/avo/application_controller.rb +113 -126
  21. data/app/controllers/avo/attachments_controller.rb +3 -3
  22. data/app/controllers/avo/base_controller.rb +81 -80
  23. data/app/controllers/avo/home_controller.rb +2 -2
  24. data/app/controllers/avo/relations_controller.rb +29 -28
  25. data/app/controllers/avo/resources_controller.rb +1 -1
  26. data/app/controllers/avo/search_controller.rb +20 -19
  27. data/app/helpers/avo/application_helper.rb +48 -42
  28. data/app/helpers/avo/resources_helper.rb +11 -11
  29. data/app/mailers/avo/application_mailer.rb +2 -2
  30. data/app/packs/entrypoints/application.js +9 -4
  31. data/app/packs/images/logo.png +0 -0
  32. data/app/packs/js/controllers/fields/code_field_controller.js +14 -14
  33. data/app/packs/js/controllers/filter_controller.js +9 -8
  34. data/app/packs/js/toastr.js +1 -0
  35. data/app/packs/stylesheets/components/code.css +0 -16
  36. data/avo.gemspec +30 -31
  37. data/bin/webpack +1 -0
  38. data/config/initializers/pagy.rb +1 -1
  39. data/config/routes.rb +12 -12
  40. data/config/spring.rb +5 -5
  41. data/config/webpack/base.js +3 -3
  42. data/config/webpacker.yml +32 -0
  43. data/db/factories.rb +3 -5
  44. data/lib/avo.rb +6 -6
  45. data/lib/avo/app.rb +18 -18
  46. data/lib/avo/base_action.rb +20 -20
  47. data/lib/avo/base_resource.rb +41 -45
  48. data/lib/avo/configuration.rb +16 -18
  49. data/lib/avo/engine.rb +18 -18
  50. data/lib/avo/fields/badge_field.rb +2 -2
  51. data/lib/avo/fields/base_field.rb +25 -26
  52. data/lib/avo/fields/belongs_to_field.rb +13 -12
  53. data/lib/avo/fields/boolean_field.rb +4 -4
  54. data/lib/avo/fields/boolean_group_field.rb +3 -3
  55. data/lib/avo/fields/code_field.rb +4 -4
  56. data/lib/avo/fields/country_field.rb +2 -2
  57. data/lib/avo/fields/currency_field.rb +3 -3
  58. data/lib/avo/fields/date_field.rb +3 -3
  59. data/lib/avo/fields/date_time_field.rb +2 -2
  60. data/lib/avo/fields/external_image_field.rb +2 -2
  61. data/lib/avo/fields/field_extensions/has_field_name.rb +2 -2
  62. data/lib/avo/fields/field_extensions/visible_in_different_views.rb +34 -33
  63. data/lib/avo/fields/file_field.rb +1 -1
  64. data/lib/avo/fields/files_field.rb +2 -2
  65. data/lib/avo/fields/gravatar_field.rb +9 -9
  66. data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -1
  67. data/lib/avo/fields/has_many_field.rb +1 -1
  68. data/lib/avo/fields/has_one_field.rb +2 -2
  69. data/lib/avo/fields/heading_field.rb +2 -2
  70. data/lib/avo/fields/hidden_field.rb +1 -1
  71. data/lib/avo/fields/id_field.rb +3 -3
  72. data/lib/avo/fields/key_value_field.rb +12 -12
  73. data/lib/avo/fields/markdown_field.rb +2 -2
  74. data/lib/avo/fields/number_field.rb +3 -3
  75. data/lib/avo/fields/password_field.rb +1 -1
  76. data/lib/avo/fields/select_field.rb +8 -12
  77. data/lib/avo/fields/status_field.rb +4 -4
  78. data/lib/avo/fields/text_field.rb +2 -2
  79. data/lib/avo/fields/textarea_field.rb +2 -2
  80. data/lib/avo/fields/trix_field.rb +1 -1
  81. data/lib/avo/fields_collector.rb +4 -5
  82. data/lib/avo/filters/base_filter.rb +6 -6
  83. data/lib/avo/filters/boolean_filter.rb +1 -1
  84. data/lib/avo/filters/select_filter.rb +1 -1
  85. data/lib/avo/licensing/h_q.rb +56 -55
  86. data/lib/avo/licensing/license.rb +5 -5
  87. data/lib/avo/licensing/license_manager.rb +4 -4
  88. data/lib/avo/licensing/null_license.rb +2 -2
  89. data/lib/avo/licensing/pro_license.rb +1 -1
  90. data/lib/avo/loaders/fields_loader.rb +4 -4
  91. data/lib/avo/services/authorization_service.rb +2 -2
  92. data/lib/avo/services/panel_service.rb +4 -4
  93. data/lib/avo/version.rb +1 -1
  94. data/lib/generators/avo/action_generator.rb +4 -4
  95. data/lib/generators/avo/controller_generator.rb +4 -4
  96. data/lib/generators/avo/filter_generator.rb +5 -5
  97. data/lib/generators/avo/install_generator.rb +8 -8
  98. data/lib/generators/avo/locales_generator.rb +5 -5
  99. data/lib/generators/avo/partials_generator.rb +4 -4
  100. data/lib/generators/avo/resource_generator.rb +5 -5
  101. data/lib/generators/avo/templates/action.tt +0 -4
  102. data/lib/generators/avo/templates/resource/resource.tt +3 -13
  103. data/lib/tasks/avo_tasks.rake +0 -60
  104. data/public/avo-packs/css/{application-5bb09ba4.css → application-9d115b7e.css} +124 -276
  105. data/public/avo-packs/css/application-9d115b7e.css.br +0 -0
  106. data/public/avo-packs/css/application-9d115b7e.css.gz +0 -0
  107. data/public/avo-packs/css/application-9d115b7e.css.map +1 -0
  108. data/public/avo-packs/css/application-9d115b7e.css.map.br +0 -0
  109. data/public/avo-packs/css/application-9d115b7e.css.map.gz +0 -0
  110. data/public/avo-packs/js/application-4751feac1bb0404b9c47.js +26 -0
  111. data/public/avo-packs/js/{application-86a3ea5a835b0c758203.js.LICENSE.txt → application-4751feac1bb0404b9c47.js.LICENSE.txt} +0 -0
  112. data/public/avo-packs/js/application-4751feac1bb0404b9c47.js.br +0 -0
  113. data/public/avo-packs/js/application-4751feac1bb0404b9c47.js.gz +0 -0
  114. data/public/avo-packs/js/application-4751feac1bb0404b9c47.js.map +1 -0
  115. data/public/avo-packs/js/application-4751feac1bb0404b9c47.js.map.br +0 -0
  116. data/public/avo-packs/js/application-4751feac1bb0404b9c47.js.map.gz +0 -0
  117. data/public/avo-packs/manifest.json +16 -16
  118. data/public/avo-packs/media/images/dadf2db36589607d107d.png +0 -0
  119. metadata +16 -31
  120. data/config/initializers/inline_svg.rb +0 -33
  121. data/public/avo-packs/css/application-5bb09ba4.css.br +0 -0
  122. data/public/avo-packs/css/application-5bb09ba4.css.gz +0 -0
  123. data/public/avo-packs/css/application-5bb09ba4.css.map +0 -1
  124. data/public/avo-packs/css/application-5bb09ba4.css.map.br +0 -0
  125. data/public/avo-packs/css/application-5bb09ba4.css.map.gz +0 -0
  126. data/public/avo-packs/js/application-86a3ea5a835b0c758203.js +0 -26
  127. data/public/avo-packs/js/application-86a3ea5a835b0c758203.js.br +0 -0
  128. data/public/avo-packs/js/application-86a3ea5a835b0c758203.js.gz +0 -0
  129. data/public/avo-packs/js/application-86a3ea5a835b0c758203.js.map +0 -1
  130. data/public/avo-packs/js/application-86a3ea5a835b0c758203.js.map.br +0 -0
  131. data/public/avo-packs/js/application-86a3ea5a835b0c758203.js.map.gz +0 -0
  132. data/public/avo-packs/media/images/f1b4befac91a3336db9a.png +0 -0
data/lib/avo.rb CHANGED
@@ -1,20 +1,20 @@
1
- require 'zeitwerk'
2
- require_relative 'avo/version'
3
- require_relative 'avo/engine' if defined?(Rails)
1
+ require "zeitwerk"
2
+ require_relative "avo/version"
3
+ require_relative "avo/engine" if defined?(Rails)
4
4
 
5
5
  loader = Zeitwerk::Loader.for_gem
6
6
  loader.setup
7
7
 
8
8
  module Avo
9
- ROOT_PATH = Pathname.new(File.join(__dir__, '..'))
10
- IN_DEVELOPMENT = ENV['AVO_IN_DEVELOPMENT'] == '1'
9
+ ROOT_PATH = Pathname.new(File.join(__dir__, ".."))
10
+ IN_DEVELOPMENT = ENV["AVO_IN_DEVELOPMENT"] == "1"
11
11
  PACKED = !IN_DEVELOPMENT
12
12
 
13
13
  class << self
14
14
  def webpacker
15
15
  @webpacker ||= ::Webpacker::Instance.new(
16
16
  root_path: ROOT_PATH,
17
- config_path: ROOT_PATH.join('config/webpacker.yml')
17
+ config_path: ROOT_PATH.join("config/webpacker.yml")
18
18
  )
19
19
  end
20
20
  end
data/lib/avo/app.rb CHANGED
@@ -15,10 +15,10 @@ module Avo
15
15
 
16
16
  I18n.locale = Avo.configuration.language_code
17
17
 
18
- if Rails.cache.class == ActiveSupport::Cache::NullStore
19
- self.app[:cache_store] ||= ActiveSupport::Cache::MemoryStore.new
18
+ if Rails.cache.instance_of?(ActiveSupport::Cache::NullStore)
19
+ app[:cache_store] ||= ActiveSupport::Cache::MemoryStore.new
20
20
  else
21
- self.app[:cache_store] = Rails.cache
21
+ app[:cache_store] = Rails.cache
22
22
  end
23
23
  end
24
24
 
@@ -35,7 +35,7 @@ module Avo
35
35
  end
36
36
 
37
37
  def cache_store
38
- self.app[:cache_store]
38
+ app[:cache_store]
39
39
  end
40
40
 
41
41
  # This method will find all fields available in the Avo::Fields namespace and add them to the fields class_variable array
@@ -47,23 +47,23 @@ module Avo
47
47
  # Avo::Fields::DateTimeField -> date_time
48
48
  def init_fields
49
49
  Avo::Fields::BaseField.descendants.each do |class_name|
50
- next if class_name.to_s == 'BaseField'
50
+ next if class_name.to_s == "BaseField"
51
51
 
52
- if class_name.to_s.end_with? 'Field'
52
+ if class_name.to_s.end_with? "Field"
53
53
  load_field class_name.get_field_name, class_name
54
54
  end
55
55
  end
56
56
  end
57
57
 
58
58
  def load_field(method_name, klass)
59
- self.fields.push(
59
+ fields.push(
60
60
  name: method_name,
61
- class: klass,
61
+ class: klass
62
62
  )
63
63
  end
64
64
 
65
65
  def init_resources
66
- self.app[:resources] = BaseResource.descendants
66
+ app[:resources] = BaseResource.descendants
67
67
  .select do |resource|
68
68
  resource != BaseResource
69
69
  end
@@ -75,14 +75,14 @@ module Avo
75
75
  end
76
76
 
77
77
  def get_resources
78
- self.app[:resources]
78
+ app[:resources]
79
79
  end
80
80
 
81
81
  # Returns the Avo resource by camelized name
82
82
  #
83
83
  # get_resource_by_name('User') => UserResource
84
84
  def get_resource(resource)
85
- self.app[:resources].find do |available_resource|
85
+ app[:resources].find do |available_resource|
86
86
  "#{resource}Resource".safe_constantize == available_resource.class
87
87
  end
88
88
  end
@@ -91,7 +91,7 @@ module Avo
91
91
  #
92
92
  # get_resource_by_name('user') => UserResource
93
93
  def get_resource_by_name(name)
94
- self.get_resource name.singularize.camelize
94
+ get_resource name.singularize.camelize
95
95
  end
96
96
 
97
97
  # Returns the Avo resource by singular snake_cased name
@@ -110,7 +110,7 @@ module Avo
110
110
  # get_resource_by_controller_name('users') => UserResource
111
111
  def get_resource_by_controller_name(name)
112
112
  get_resources.find do |resource|
113
- resource.model_class.to_s.pluralize.underscore.gsub('/', '_') == name.to_s
113
+ resource.model_class.to_s.pluralize.underscore.tr("/", "_") == name.to_s
114
114
  end
115
115
  end
116
116
 
@@ -124,7 +124,7 @@ module Avo
124
124
  def get_available_resources(user = nil)
125
125
  App.get_resources
126
126
  .select do |resource|
127
- Services::AuthorizationService.authorize user, resource.model, Avo.configuration.authorization_methods.stringify_keys['index'], raise_exception: false
127
+ Services::AuthorizationService.authorize user, resource.model, Avo.configuration.authorization_methods.stringify_keys["index"], raise_exception: false
128
128
  end
129
129
  .sort_by { |r| r.name }
130
130
  end
@@ -139,17 +139,17 @@ module Avo
139
139
  # We should eager load all the classes so we find all descendants
140
140
  Rails.application.eager_load!
141
141
 
142
- Proc.new do
142
+ proc do
143
143
  BaseResource.descendants
144
144
  .select do |resource|
145
145
  resource != :BaseResource
146
146
  end
147
147
  .map do |resource|
148
148
  if resource.is_a? Class
149
- if resource.model_class.present?
150
- route_key = resource.model_class.model_name.route_key
149
+ route_key = if resource.model_class.present?
150
+ resource.model_class.model_name.route_key
151
151
  else
152
- route_key = resource.to_s.underscore.gsub('_resource', '').downcase.pluralize.to_sym
152
+ resource.to_s.underscore.gsub("_resource", "").downcase.pluralize.to_sym
153
153
  end
154
154
 
155
155
  resources route_key
@@ -25,13 +25,13 @@ module Avo
25
25
  self.class.resource = resource if resource.present?
26
26
  self.class.user = user if user.present?
27
27
 
28
- self.class.message ||= I18n.t('avo.are_you_sure_you_want_to_run_this_option')
29
- self.class.confirm_button_label ||= I18n.t('avo.run')
30
- self.class.cancel_button_label ||= I18n.t('avo.cancel')
28
+ self.class.message ||= I18n.t("avo.are_you_sure_you_want_to_run_this_option")
29
+ self.class.confirm_button_label ||= I18n.t("avo.run")
30
+ self.class.cancel_button_label ||= I18n.t("avo.cancel")
31
31
 
32
32
  @response ||= {}
33
33
  @response[:message_type] ||= :notice
34
- @response[:message] ||= I18n.t('avo.action_ran_successfully')
34
+ @response[:message] ||= I18n.t("avo.action_ran_successfully")
35
35
  end
36
36
 
37
37
  def context
@@ -50,7 +50,7 @@ module Avo
50
50
  get_field_definitions.map do |field|
51
51
  field.hydrate(action: self, model: @model)
52
52
  end
53
- .select do |field|
53
+ .select do |field|
54
54
  field.visible?
55
55
  end
56
56
  end
@@ -59,7 +59,7 @@ module Avo
59
59
  get_fields.map do |field|
60
60
  [field.id, field.value]
61
61
  end
62
- .to_h
62
+ .to_h
63
63
  end
64
64
 
65
65
  def handle_action(models:, fields:)
@@ -75,50 +75,50 @@ module Avo
75
75
  processed_fields = {}
76
76
  end
77
77
 
78
- result = self.handle models: models, fields: processed_fields
78
+ handle models: models, fields: processed_fields
79
79
 
80
80
  self
81
81
  end
82
82
 
83
83
  def param_id
84
- self.class.to_s.demodulize.underscore.gsub '/', '_'
84
+ self.class.to_s.demodulize.underscore.tr "/", "_"
85
85
  end
86
86
 
87
87
  def succeed(text)
88
- self.response[:message_type] = :notice
89
- self.response[:message] = text
88
+ response[:message_type] = :notice
89
+ response[:message] = text
90
90
 
91
91
  self
92
92
  end
93
93
 
94
94
  def fail(text)
95
- self.response[:message_type] = :alert
96
- self.response[:message] = text
95
+ response[:message_type] = :alert
96
+ response[:message] = text
97
97
 
98
98
  self
99
99
  end
100
100
 
101
101
  def redirect_to(path = nil, &block)
102
- self.response[:type] = :redirect
103
- if block.present?
104
- self.response[:path] = block
102
+ response[:type] = :redirect
103
+ response[:path] = if block.present?
104
+ block
105
105
  else
106
- self.response[:path] = path
106
+ path
107
107
  end
108
108
 
109
109
  self
110
110
  end
111
111
 
112
112
  def reload
113
- self.response[:type] = :reload
113
+ response[:type] = :reload
114
114
 
115
115
  self
116
116
  end
117
117
 
118
118
  def download(path, filename)
119
- self.response[:type] = :download
120
- self.response[:path] = path
121
- self.response[:filename] = filename
119
+ response[:type] = :download
120
+ response[:path] = path
121
+ response[:filename] = filename
122
122
 
123
123
  self
124
124
  end
@@ -67,16 +67,16 @@ module Avo
67
67
 
68
68
  def get_fields(panel: nil, reflection: nil)
69
69
  fields = get_field_definitions.select do |field|
70
- field.send("show_on_#{@view.to_s}")
70
+ field.send("show_on_#{@view}")
71
71
  end
72
- .select do |field|
73
- field.visible?
74
- end
75
- .select do |field|
72
+ .select do |field|
73
+ field.visible?
74
+ end
75
+ .select do |field|
76
76
  unless field.respond_to?(:foreign_key) &&
77
- reflection.present? &&
78
- reflection.respond_to?(:foreign_key) &&
79
- reflection.foreign_key == field.foreign_key
77
+ reflection.present? &&
78
+ reflection.respond_to?(:foreign_key) &&
79
+ reflection.foreign_key == field.foreign_key
80
80
  true
81
81
  end
82
82
  end
@@ -87,11 +87,9 @@ module Avo
87
87
  end
88
88
  end
89
89
 
90
- fields = fields.map do |field|
90
+ fields.map do |field|
91
91
  field.hydrate(model: @model, view: @view, resource: self)
92
92
  end
93
-
94
- fields
95
93
  end
96
94
 
97
95
  def get_grid_fields
@@ -117,24 +115,22 @@ module Avo
117
115
 
118
116
  case @view
119
117
  when :show
120
- I18n.t('avo.resource_details', item: self.name.downcase, title: model_title).upcase_first
118
+ I18n.t("avo.resource_details", item: name.downcase, title: model_title).upcase_first
121
119
  when :edit
122
- I18n.t('avo.update_item', item: self.name.downcase, title: model_title).upcase_first
120
+ I18n.t("avo.update_item", item: name.downcase, title: model_title).upcase_first
123
121
  when :new
124
- I18n.t('avo.create_new_item', item: self.name.downcase).upcase_first
122
+ I18n.t("avo.create_new_item", item: name.downcase).upcase_first
125
123
  end
126
124
  end
127
125
 
128
126
  def panels
129
- panels = [
127
+ [
130
128
  {
131
129
  name: default_panel_name,
132
130
  type: :fields,
133
- in_panel: true,
131
+ in_panel: true
134
132
  }
135
133
  ]
136
-
137
- panels
138
134
  end
139
135
 
140
136
  def model_class
@@ -142,7 +138,7 @@ module Avo
142
138
 
143
139
  return @model.class if @model.present?
144
140
 
145
- self.class.name.demodulize.chomp('Resource').safe_constantize
141
+ self.class.name.demodulize.chomp("Resource").safe_constantize
146
142
  end
147
143
 
148
144
  def model_title
@@ -156,7 +152,7 @@ module Avo
156
152
 
157
153
  return I18n.t(@translation_key, count: 1).capitalize if @translation_key
158
154
 
159
- self.class.name.demodulize.chomp('Resource').titlecase
155
+ self.class.name.demodulize.chomp("Resource").titlecase
160
156
  end
161
157
 
162
158
  def singular_name
@@ -191,7 +187,7 @@ module Avo
191
187
  self.class.context
192
188
  end
193
189
 
194
- def query_search(query: '', via_resource_name: , via_resource_id:, user:)
190
+ def query_search(via_resource_name:, via_resource_id:, user:, query: "")
195
191
  # model_class = self.model
196
192
 
197
193
  db_query = AuthorizationService.apply_policy(user, model_class)
@@ -199,18 +195,18 @@ module Avo
199
195
  if via_resource_name.present?
200
196
  related_model = App.get_resource_by_name(via_resource_name).model
201
197
 
202
- db_query = related_model.find(via_resource_id).public_send(self.plural_name.downcase)
198
+ db_query = related_model.find(via_resource_id).public_send(plural_name.downcase)
203
199
  end
204
200
 
205
201
  new_query = []
206
202
 
207
- [self.search].flatten.each_with_index do |search_by, index|
208
- new_query.push 'or' if index != 0
203
+ [search].flatten.each_with_index do |search_by, index|
204
+ new_query.push "or" if index != 0
209
205
 
210
206
  new_query.push "text(#{search_by}) ILIKE '%#{query}%'"
211
207
  end
212
208
 
213
- db_query.where(new_query.join(' '))
209
+ db_query.where(new_query.join(" "))
214
210
  end
215
211
 
216
212
  def attached_file_fields
@@ -221,7 +217,7 @@ module Avo
221
217
 
222
218
  def fill_model(model, params)
223
219
  # Map the received params to their actual fields
224
- fields_by_database_id = self.get_field_definitions.map { |field| [field.database_id(model).to_s, field] }.to_h
220
+ fields_by_database_id = get_field_definitions.map { |field| [field.database_id(model).to_s, field] }.to_h
225
221
 
226
222
  params.each do |key, value|
227
223
  field = fields_by_database_id[key]
@@ -239,16 +235,16 @@ module Avo
239
235
  end
240
236
 
241
237
  def file_hash
242
- content_to_be_hashed = ''
238
+ content_to_be_hashed = ""
243
239
 
244
240
  # resource file hash
245
- resource_path = Rails.root.join('app', 'avo', 'resources', "#{name.underscore}.rb").to_s
241
+ resource_path = Rails.root.join("app", "avo", "resources", "#{self.class.name.underscore}_resource.rb").to_s
246
242
  if File.file? resource_path
247
243
  content_to_be_hashed += File.read(resource_path)
248
244
  end
249
245
 
250
246
  # policy file hash
251
- policy_path = Rails.root.join('app', 'policies', "#{name.underscore}_policy.rb").to_s
247
+ policy_path = Rails.root.join("app", "policies", "#{self.class.name.underscore.gsub("_resource", "")}_policy.rb").to_s
252
248
  if File.file? policy_path
253
249
  content_to_be_hashed += File.read(policy_path)
254
250
  end
@@ -258,9 +254,9 @@ module Avo
258
254
 
259
255
  def cache_hash(parent_model)
260
256
  if parent_model.present?
261
- [self.model, self.file_hash, parent_model]
257
+ [model, file_hash, parent_model]
262
258
  else
263
- [self.model, self.file_hash]
259
+ [model, file_hash]
264
260
  end
265
261
  end
266
262
 
@@ -270,24 +266,24 @@ module Avo
270
266
  default_values = get_fields.select do |field|
271
267
  !field.computed
272
268
  end
273
- .map do |field|
274
- id = field.id
275
- value = field.value
269
+ .map do |field|
270
+ id = field.id
271
+ value = field.value
276
272
 
277
- if field.respond_to? :foreign_key
278
- id = field.foreign_key.to_sym
273
+ if field.respond_to? :foreign_key
274
+ id = field.foreign_key.to_sym
279
275
 
280
- reflection = @model._reflections[@params[:via_relation]]
276
+ reflection = @model._reflections[@params[:via_relation]]
281
277
 
282
- if reflection.present? && reflection.foreign_key.present?
283
- value = @params[:via_resource_id]
284
- end
285
- end
278
+ if reflection.present? && reflection.foreign_key.present?
279
+ value = @params[:via_resource_id]
280
+ end
281
+ end
286
282
 
287
- [id, value]
288
- end
289
- .to_h
290
- .select do |id, value|
283
+ [id, value]
284
+ end
285
+ .to_h
286
+ .select do |id, value|
291
287
  value.present?
292
288
  end
293
289
 
@@ -21,27 +21,27 @@ module Avo
21
21
  attr_accessor :context
22
22
 
23
23
  def initialize
24
- @root_path = '/avo'
25
- @app_name = Rails.application.class.to_s.split('::').first.underscore.humanize(keep_id_suffix: true)
26
- @timezone = 'UTC'
24
+ @root_path = "/avo"
25
+ @app_name = Rails.application.class.to_s.split("::").first.underscore.humanize(keep_id_suffix: true)
26
+ @timezone = "UTC"
27
27
  @per_page = 24
28
28
  @per_page_steps = [12, 24, 48, 72]
29
29
  @via_per_page = 8
30
- @locale = 'en-US'
31
- @currency = 'USD'
30
+ @locale = "en-US"
31
+ @currency = "USD"
32
32
  @default_view_type = :table
33
- @license = 'community'
33
+ @license = "community"
34
34
  @license_key = nil
35
35
  @current_user = proc {}
36
36
  @authenticate = proc {}
37
37
  @authorization_methods = {
38
- index: 'index?',
39
- show: 'show?',
40
- edit: 'edit?',
41
- new: 'new?',
42
- update: 'update?',
43
- create: 'create?',
44
- destroy: 'destroy?',
38
+ index: "index?",
39
+ show: "show?",
40
+ edit: "edit?",
41
+ new: "new?",
42
+ update: "update?",
43
+ create: "create?",
44
+ destroy: "destroy?"
45
45
  }
46
46
  @id_links_to_resource = false
47
47
  @full_width_container = false
@@ -55,11 +55,9 @@ module Avo
55
55
  end
56
56
 
57
57
  def language_code
58
- begin
59
- locale_tag.language.code
60
- rescue => exception
61
- 'en'
62
- end
58
+ locale_tag.language.code
59
+ rescue
60
+ "en"
63
61
  end
64
62
 
65
63
  def current_user_method(&block)