activeadmin 2.9.0 → 2.13.0

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.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +161 -1
  3. data/CONTRIBUTING.md +1 -1
  4. data/app/assets/javascripts/active_admin/base.js +13 -6
  5. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  6. data/app/assets/stylesheets/active_admin/_forms.scss +0 -10
  7. data/app/assets/stylesheets/active_admin/_normalize.scss +25 -123
  8. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
  9. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  10. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  11. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -0
  12. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  13. data/app/javascript/active_admin/initializers/has-many.js +4 -1
  14. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  15. data/app/views/active_admin/page/index.html.arb +1 -0
  16. data/app/views/active_admin/resource/edit.html.arb +1 -0
  17. data/app/views/active_admin/resource/index.html.arb +1 -0
  18. data/app/views/active_admin/resource/new.html.arb +1 -0
  19. data/app/views/active_admin/resource/show.html.arb +1 -0
  20. data/app/views/layouts/active_admin.html.arb +1 -0
  21. data/config/locales/ko.yml +1 -1
  22. data/config/locales/nl.yml +1 -1
  23. data/config/locales/ro.yml +3 -2
  24. data/docs/0-installation.md +2 -2
  25. data/docs/5-forms.md +3 -2
  26. data/docs/8-custom-actions.md +1 -1
  27. data/docs/Gemfile +1 -0
  28. data/docs/Gemfile.lock +116 -92
  29. data/lib/active_admin/abstract_view_factory.rb +1 -0
  30. data/lib/active_admin/application.rb +9 -9
  31. data/lib/active_admin/application_settings.rb +1 -0
  32. data/lib/active_admin/asset_registration.rb +1 -0
  33. data/lib/active_admin/authorization_adapter.rb +1 -0
  34. data/lib/active_admin/base_controller/authorization.rb +2 -1
  35. data/lib/active_admin/base_controller/menu.rb +1 -0
  36. data/lib/active_admin/base_controller.rb +2 -1
  37. data/lib/active_admin/batch_actions/controller.rb +1 -0
  38. data/lib/active_admin/batch_actions/resource_extension.rb +1 -0
  39. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -0
  40. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -0
  41. data/lib/active_admin/batch_actions/views/selection_cells.rb +1 -0
  42. data/lib/active_admin/batch_actions.rb +1 -0
  43. data/lib/active_admin/callbacks.rb +1 -0
  44. data/lib/active_admin/cancan_adapter.rb +1 -0
  45. data/lib/active_admin/collection_decorator.rb +1 -0
  46. data/lib/active_admin/component.rb +1 -0
  47. data/lib/active_admin/controller_action.rb +1 -0
  48. data/lib/active_admin/csv_builder.rb +5 -18
  49. data/lib/active_admin/dependency.rb +2 -1
  50. data/lib/active_admin/deprecation.rb +1 -0
  51. data/lib/active_admin/devise.rb +11 -0
  52. data/lib/active_admin/dsl.rb +1 -0
  53. data/lib/active_admin/dynamic_setting.rb +1 -0
  54. data/lib/active_admin/dynamic_settings_node.rb +1 -0
  55. data/lib/active_admin/engine.rb +3 -1
  56. data/lib/active_admin/error.rb +1 -0
  57. data/lib/active_admin/filters/active.rb +1 -0
  58. data/lib/active_admin/filters/active_filter.rb +1 -0
  59. data/lib/active_admin/filters/active_sidebar.rb +2 -28
  60. data/lib/active_admin/filters/dsl.rb +1 -0
  61. data/lib/active_admin/filters/forms.rb +1 -0
  62. data/lib/active_admin/filters/formtastic_addons.rb +1 -0
  63. data/lib/active_admin/filters/resource_extension.rb +1 -0
  64. data/lib/active_admin/filters.rb +1 -0
  65. data/lib/active_admin/form_builder.rb +1 -0
  66. data/lib/active_admin/generators/boilerplate.rb +1 -0
  67. data/lib/active_admin/helpers/collection.rb +2 -0
  68. data/lib/active_admin/helpers/i18n.rb +1 -0
  69. data/lib/active_admin/helpers/optional_display.rb +1 -0
  70. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  71. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  72. data/lib/active_admin/inputs/datepicker_input.rb +1 -0
  73. data/lib/active_admin/inputs/filters/base/search_method_select.rb +1 -0
  74. data/lib/active_admin/inputs/filters/base.rb +1 -0
  75. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -0
  76. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -0
  77. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  78. data/lib/active_admin/inputs/filters/date_range_input.rb +1 -0
  79. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  80. data/lib/active_admin/inputs/filters/select_input.rb +1 -0
  81. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  82. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  83. data/lib/active_admin/inputs.rb +1 -0
  84. data/lib/active_admin/localizers/resource_localizer.rb +1 -0
  85. data/lib/active_admin/localizers.rb +1 -0
  86. data/lib/active_admin/menu.rb +1 -0
  87. data/lib/active_admin/menu_collection.rb +1 -0
  88. data/lib/active_admin/menu_item.rb +1 -0
  89. data/lib/active_admin/namespace.rb +2 -1
  90. data/lib/active_admin/namespace_settings.rb +1 -0
  91. data/lib/active_admin/order_clause.rb +1 -0
  92. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -0
  93. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  94. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  95. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  96. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +1 -0
  97. data/lib/active_admin/orm/active_record/comments/views.rb +1 -0
  98. data/lib/active_admin/orm/active_record/comments.rb +1 -0
  99. data/lib/active_admin/orm/active_record.rb +1 -0
  100. data/lib/active_admin/orm/mongoid.rb +1 -0
  101. data/lib/active_admin/page.rb +1 -0
  102. data/lib/active_admin/page_controller.rb +1 -0
  103. data/lib/active_admin/page_dsl.rb +1 -0
  104. data/lib/active_admin/page_presenter.rb +1 -0
  105. data/lib/active_admin/pundit_adapter.rb +55 -11
  106. data/lib/active_admin/resource/action_items.rb +1 -0
  107. data/lib/active_admin/resource/attributes.rb +1 -0
  108. data/lib/active_admin/resource/belongs_to.rb +1 -0
  109. data/lib/active_admin/resource/controllers.rb +1 -0
  110. data/lib/active_admin/resource/includes.rb +1 -0
  111. data/lib/active_admin/resource/menu.rb +1 -0
  112. data/lib/active_admin/resource/model.rb +1 -0
  113. data/lib/active_admin/resource/naming.rb +1 -0
  114. data/lib/active_admin/resource/ordering.rb +1 -0
  115. data/lib/active_admin/resource/page_presenters.rb +1 -0
  116. data/lib/active_admin/resource/pagination.rb +1 -0
  117. data/lib/active_admin/resource/routes.rb +1 -0
  118. data/lib/active_admin/resource/scope_to.rb +1 -0
  119. data/lib/active_admin/resource/scopes.rb +1 -0
  120. data/lib/active_admin/resource/sidebars.rb +1 -0
  121. data/lib/active_admin/resource.rb +3 -2
  122. data/lib/active_admin/resource_collection.rb +1 -0
  123. data/lib/active_admin/resource_controller/action_builder.rb +1 -0
  124. data/lib/active_admin/resource_controller/data_access.rb +30 -4
  125. data/lib/active_admin/resource_controller/decorators.rb +1 -0
  126. data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
  127. data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
  128. data/lib/active_admin/resource_controller/scoping.rb +1 -0
  129. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  130. data/lib/active_admin/resource_controller/streaming.rb +3 -2
  131. data/lib/active_admin/resource_controller.rb +1 -0
  132. data/lib/active_admin/resource_dsl.rb +7 -21
  133. data/lib/active_admin/router.rb +1 -0
  134. data/lib/active_admin/scope.rb +1 -0
  135. data/lib/active_admin/settings_node.rb +1 -0
  136. data/lib/active_admin/sidebar_section.rb +1 -0
  137. data/lib/active_admin/version.rb +2 -1
  138. data/lib/active_admin/view_factory.rb +1 -0
  139. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  140. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  141. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +1 -0
  142. data/lib/active_admin/view_helpers/display_helper.rb +11 -3
  143. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  144. data/lib/active_admin/view_helpers/fields_for.rb +1 -0
  145. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  146. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  147. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
  148. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  149. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  150. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  151. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  152. data/lib/active_admin/view_helpers.rb +1 -0
  153. data/lib/active_admin/views/action_items.rb +1 -0
  154. data/lib/active_admin/views/components/active_admin_form.rb +2 -1
  155. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  156. data/lib/active_admin/views/components/attributes_table.rb +1 -0
  157. data/lib/active_admin/views/components/blank_slate.rb +1 -0
  158. data/lib/active_admin/views/components/columns.rb +1 -0
  159. data/lib/active_admin/views/components/dropdown_menu.rb +3 -5
  160. data/lib/active_admin/views/components/index_list.rb +1 -0
  161. data/lib/active_admin/views/components/menu.rb +1 -0
  162. data/lib/active_admin/views/components/menu_item.rb +1 -0
  163. data/lib/active_admin/views/components/paginated_collection.rb +1 -0
  164. data/lib/active_admin/views/components/panel.rb +1 -0
  165. data/lib/active_admin/views/components/scopes.rb +1 -0
  166. data/lib/active_admin/views/components/sidebar.rb +1 -0
  167. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  168. data/lib/active_admin/views/components/site_title.rb +1 -0
  169. data/lib/active_admin/views/components/status_tag.rb +1 -0
  170. data/lib/active_admin/views/components/table_for.rb +1 -0
  171. data/lib/active_admin/views/components/tabs.rb +1 -0
  172. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  173. data/lib/active_admin/views/footer.rb +1 -0
  174. data/lib/active_admin/views/header.rb +1 -0
  175. data/lib/active_admin/views/index_as_block.rb +1 -0
  176. data/lib/active_admin/views/index_as_blog.rb +1 -0
  177. data/lib/active_admin/views/index_as_grid.rb +1 -0
  178. data/lib/active_admin/views/index_as_table.rb +1 -0
  179. data/lib/active_admin/views/pages/base.rb +4 -1
  180. data/lib/active_admin/views/pages/form.rb +1 -0
  181. data/lib/active_admin/views/pages/index.rb +1 -0
  182. data/lib/active_admin/views/pages/layout.rb +1 -0
  183. data/lib/active_admin/views/pages/page.rb +1 -0
  184. data/lib/active_admin/views/pages/show.rb +1 -0
  185. data/lib/active_admin/views/tabbed_navigation.rb +1 -0
  186. data/lib/active_admin/views/title_bar.rb +1 -0
  187. data/lib/active_admin/views.rb +1 -0
  188. data/lib/active_admin.rb +2 -1
  189. data/lib/activeadmin.rb +1 -0
  190. data/lib/generators/active_admin/assets/assets_generator.rb +1 -0
  191. data/lib/generators/active_admin/devise/devise_generator.rb +1 -0
  192. data/lib/generators/active_admin/install/install_generator.rb +1 -0
  193. data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
  194. data/lib/generators/active_admin/page/page_generator.rb +1 -0
  195. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  196. data/lib/generators/active_admin/resource/resource_generator.rb +1 -0
  197. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +1 -0
  198. data/lib/ransack_ext.rb +1 -0
  199. metadata +19 -18
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -23,9 +24,9 @@ module ActiveAdmin
23
24
 
24
25
  COLLECTION_APPLIES = [
25
26
  :authorization_scope,
26
- :sorting,
27
27
  :filtering,
28
28
  :scoping,
29
+ :sorting,
29
30
  :includes,
30
31
  :pagination,
31
32
  :collection_decorator
@@ -128,7 +129,7 @@ module ActiveAdmin
128
129
  #
129
130
  # @return [ActiveRecord::Base] An un-saved active record base object
130
131
  def build_new_resource
131
- scoped_collection.send(
132
+ apply_authorization_scope(scoped_collection).send(
132
133
  method_for_build,
133
134
  *resource_params.map { |params| params.slice(active_admin_config.resource_class.inheritance_column) }
134
135
  )
@@ -249,12 +250,13 @@ module ActiveAdmin
249
250
  end
250
251
 
251
252
  def apply_pagination(chain)
253
+ # skip pagination if CSV format was requested
254
+ return chain if params["format"] == "csv"
252
255
  # skip pagination if already was paginated by scope
253
256
  return chain if chain.respond_to?(:total_pages)
254
- page_method_name = Kaminari.config.page_method_name
255
257
  page = params[Kaminari.config.param_name]
256
258
 
257
- chain.public_send(page_method_name, page).per(per_page)
259
+ paginate(chain, page, per_page)
258
260
  end
259
261
 
260
262
  def collection_applies(options = {})
@@ -264,6 +266,16 @@ module ActiveAdmin
264
266
  COLLECTION_APPLIES & only - except
265
267
  end
266
268
 
269
+ def in_paginated_batches(&block)
270
+ ActiveRecord::Base.uncached do
271
+ (1..paginated_collection.total_pages).each do |page|
272
+ paginated_collection(page).each do |resource|
273
+ yield apply_decorator(resource)
274
+ end
275
+ end
276
+ end
277
+ end
278
+
267
279
  def per_page
268
280
  if active_admin_config.paginate
269
281
  dynamic_per_page || configured_per_page
@@ -317,6 +329,20 @@ module ActiveAdmin
317
329
  def create_another?
318
330
  params[:create_another].present?
319
331
  end
332
+
333
+ def paginated_collection(page_no = 1)
334
+ paginate(collection, page_no, batch_size)
335
+ end
336
+
337
+ def paginate(chain, page, per_page)
338
+ page_method_name = Kaminari.config.page_method_name
339
+
340
+ chain.public_send(page_method_name, page).per(per_page)
341
+ end
342
+
343
+ def batch_size
344
+ 1000
345
+ end
320
346
  end
321
347
  end
322
348
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
  module Decorators
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/resource"
2
3
  require "active_admin/resource/model"
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
  module ResourceClassMethods
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "csv"
2
3
 
3
4
  module ActiveAdmin
@@ -23,14 +24,14 @@ module ActiveAdmin
23
24
  headers["Last-Modified"] = Time.current.httpdate
24
25
 
25
26
  if ActiveAdmin.application.disable_streaming_in.include? Rails.env
26
- self.response_body = block[""]
27
+ self.response_body = block[String.new]
27
28
  else
28
29
  self.response_body = Enumerator.new &block
29
30
  end
30
31
  end
31
32
 
32
33
  def csv_filename
33
- "#{resource_collection_name.to_s.gsub('_', '-')}-#{Time.zone.now.to_date.to_s(:default)}.csv"
34
+ "#{resource_collection_name.to_s.gsub('_', '-')}-#{Time.zone.now.to_date.to_formatted_s(:default)}.csv"
34
35
  end
35
36
 
36
37
  def stream_csv
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/collection_decorator"
2
3
  require "active_admin/resource_controller/action_builder"
3
4
  require "active_admin/resource_controller/data_access"
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # This is the class where all the register blocks are evaluated.
3
4
  class ResourceDSL < DSL
@@ -62,11 +63,12 @@ module ActiveAdmin
62
63
  #
63
64
  def permit_params(*args, &block)
64
65
  param_key = config.param_key.to_sym
65
- belongs_to_param = config.belongs_to_param
66
- create_another_param = :create_another if config.create_another
67
66
 
68
67
  controller do
69
68
  define_method :permitted_params do
69
+ belongs_to_param = active_admin_config.belongs_to_param
70
+ create_another_param = :create_another if active_admin_config.create_another
71
+
70
72
  permitted_params =
71
73
  active_admin_namespace.permitted_params +
72
74
  Array.wrap(belongs_to_param) +
@@ -189,25 +191,9 @@ module ActiveAdmin
189
191
  delegate :before_save, :after_save, to: :controller
190
192
  delegate :before_destroy, :after_destroy, to: :controller
191
193
 
192
- # This code defines both *_filter and *_action for Rails 5.0 and *_action for Rails >= 5.1
193
- phases = [
194
- :before, :skip_before,
195
- :after, :skip_after,
196
- :around, :skip
197
- ]
198
- keywords = if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 1
199
- [:action]
200
- else
201
- [:action, :filter]
202
- end
203
-
204
- keywords.each do |name|
205
- phases.each do |action|
206
- define_method "#{action}_#{name}" do |*args, &block|
207
- controller.public_send "#{action}_action", *args, &block
208
- end
209
- end
210
- end
194
+ standard_rails_filters =
195
+ AbstractController::Callbacks::ClassMethods.public_instance_methods.select { |m| m.match(/_action\z/) }
196
+ delegate *standard_rails_filters, to: :controller
211
197
 
212
198
  # Specify which actions to create in the controller
213
199
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # @private
3
4
  class Router
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Scope
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  class SettingsNode
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  class SidebarSection
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
- VERSION = "2.9.0"
3
+ VERSION = "2.13.0"
3
4
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/abstract_view_factory"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ActiveAdminApplicationHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module AutoLinkHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module BreadcrumbHelper
@@ -1,14 +1,22 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module DisplayHelper
4
5
 
5
6
  DISPLAY_NAME_FALLBACK = -> {
6
- name = ""
7
7
  klass = self.class
8
- name << klass.model_name.human if klass.respond_to? :model_name
9
- name << " ##{send(klass.primary_key)}" if klass.respond_to? :primary_key
8
+ name = if klass.respond_to?(:model_name)
9
+ if klass.respond_to?(:primary_key)
10
+ "#{klass.model_name.human} ##{send(klass.primary_key)}"
11
+ else
12
+ klass.model_name.human
13
+ end
14
+ elsif klass.respond_to?(:primary_key)
15
+ " ##{send(klass.primary_key)}"
16
+ end
10
17
  name.present? ? name : to_s
11
18
  }
19
+
12
20
  def DISPLAY_NAME_FALLBACK.inspect
13
21
  "DISPLAY_NAME_FALLBACK"
14
22
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module DownloadFormatLinksHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module FormHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module FlashHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module FormHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Utility methods for internal use.
2
3
  # @private
3
4
  module MethodOrProcHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ScopeNameHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module SidebarHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module TitleHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ViewFactoryHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class FormtasticProxy < ::Arbre::Rails::Forms::FormBuilderProxy
@@ -16,7 +17,7 @@ module ActiveAdmin
16
17
  end
17
18
 
18
19
  def to_s
19
- opening_tag << children.to_s << closing_tag
20
+ opening_tag + children.to_s + closing_tag
20
21
  end
21
22
  end
22
23
 
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/filters/active"
3
+
4
+ module ActiveAdmin
5
+ module Views
6
+
7
+ class ActiveFiltersSidebarContent < ActiveAdmin::Component
8
+ builder_method :active_filters_sidebar_content
9
+
10
+ def build
11
+ active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
12
+ active_scopes = assigns[:search].instance_variable_get("@scope_args")
13
+
14
+ scope_block(current_scope)
15
+ filters_list(active_filters, active_scopes)
16
+ end
17
+
18
+ def scope_block(current_scope)
19
+ return unless current_scope
20
+
21
+ h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
22
+ b scope_name(current_scope), class: "current_scope_name"
23
+ end
24
+
25
+ def filters_list(active_filters, active_scopes)
26
+ div style: "margin-top: 10px" do
27
+ h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
28
+ ul do
29
+ if active_filters.filters.blank? && active_scopes.blank?
30
+ li I18n.t("active_admin.search_status.no_current_filters")
31
+ else
32
+ active_filters.filters.each { |filter| filter_item(filter) }
33
+ active_scopes.each { |name, value| scope_item(name, value) }
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ def filter_item(filter)
40
+ li filter.html_options do
41
+ span filter.label
42
+ b to_sentence(filter.values.map { |v| pretty_format(v) })
43
+ end
44
+ end
45
+
46
+ def scope_item(name, value)
47
+ filter_name = name.gsub(/_eq$/, "")
48
+ filter = active_admin_config.filters[filter_name.to_sym]
49
+ label = filter.try(:[], :label) || filter_name.titleize
50
+
51
+ li class: "current_filter_#{name}" do
52
+ span "#{label} #{Ransack::Translate.predicate('eq')}"
53
+ b value
54
+ end
55
+ end
56
+ end
57
+
58
+ end
59
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  # Build a Blank Slate
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -44,17 +45,14 @@ module ActiveAdmin
44
45
  private
45
46
 
46
47
  def build_button(name, button_options)
47
- button_options[:class] ||= ""
48
- button_options[:class] << " dropdown_menu_button"
49
-
48
+ button_options[:class] = "#{button_options[:class]} dropdown_menu_button"
50
49
  button_options[:href] = "#"
51
50
 
52
51
  a name, button_options
53
52
  end
54
53
 
55
54
  def build_menu(options)
56
- options[:class] ||= ""
57
- options[:class] << " dropdown_menu_list"
55
+ options[:class] = "#{options[:class]} dropdown_menu_list"
58
56
 
59
57
  menu_list = nil
60
58
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/helpers/collection"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/helpers/collection"
2
3
  require "active_admin/view_helpers/download_format_links_helper"
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/helpers/collection"
2
3
  require "active_admin/view_helpers/method_or_proc_helper"
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  # Build a StatusTag
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class TableFor < Arbre::HTML::Table
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Tabs < ActiveAdmin::Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class UnsupportedBrowser < Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Footer < Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Header < Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  module Pages
@@ -43,7 +44,9 @@ module ActiveAdmin
43
44
  end
44
45
 
45
46
  if active_admin_namespace.favicon
46
- text_node(favicon_link_tag(active_admin_namespace.favicon))
47
+ favicon = active_admin_namespace.favicon
48
+ favicon_tag = active_admin_namespace.use_webpacker ? favicon_pack_tag(favicon) : favicon_link_tag(favicon)
49
+ text_node(favicon_tag)
47
50
  end
48
51
 
49
52
  text_node csrf_meta_tag
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  module Pages
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/helpers/collection"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  module Pages
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  module Pages
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  module Pages
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require_relative "components/menu"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class TitleBar < Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4