activeadmin 2.4.0 → 2.9.0

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

Potentially problematic release.


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

Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +192 -30
  3. data/CONTRIBUTING.md +42 -62
  4. data/README.md +4 -4
  5. data/app/assets/javascripts/active_admin/base.js +517 -0
  6. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  7. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  8. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  9. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  10. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  11. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  12. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
  13. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  15. data/app/javascript/active_admin/base.js +28 -0
  16. data/app/{assets/javascripts/active_admin/lib/batch_actions.es6 → javascript/active_admin/initializers/batch-actions.js} +4 -2
  17. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  18. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  19. data/app/javascript/active_admin/initializers/filters.js +10 -0
  20. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  21. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  22. data/app/{assets/javascripts/active_admin/lib/checkbox-toggler.es6 → javascript/active_admin/lib/checkbox-toggler.js} +5 -5
  23. data/app/{assets/javascripts/active_admin/lib/dropdown-menu.es6 → javascript/active_admin/lib/dropdown-menu.js} +3 -10
  24. data/app/javascript/active_admin/lib/filters.js +39 -0
  25. data/app/{assets/javascripts/active_admin/lib/modal_dialog.es6 → javascript/active_admin/lib/modal-dialog.js} +10 -8
  26. data/app/javascript/active_admin/lib/per-page.js +38 -0
  27. data/app/{assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 → javascript/active_admin/lib/table-checkbox-toggler.js} +5 -3
  28. data/app/javascript/active_admin/lib/utils.js +40 -0
  29. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  30. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  31. data/app/views/layouts/active_admin_logged_out.html.erb +15 -5
  32. data/config/locales/ar.yml +6 -6
  33. data/config/locales/az.yml +138 -0
  34. data/config/locales/en-CA.yml +3 -3
  35. data/config/locales/en-GB.yml +3 -3
  36. data/config/locales/en.yml +3 -3
  37. data/config/locales/es-MX.yml +2 -1
  38. data/config/locales/es.yml +5 -5
  39. data/config/locales/fr.yml +4 -4
  40. data/config/locales/it.yml +18 -0
  41. data/config/locales/ja.yml +3 -3
  42. data/config/locales/lv.yml +2 -2
  43. data/config/locales/vi.yml +6 -5
  44. data/docs/0-installation.md +26 -2
  45. data/docs/1-general-configuration.md +20 -0
  46. data/docs/11-decorators.md +16 -5
  47. data/docs/2-resource-customization.md +10 -1
  48. data/docs/3-index-pages.md +1 -1
  49. data/docs/5-forms.md +6 -1
  50. data/docs/6-show-pages.md +12 -0
  51. data/docs/9-batch-actions.md +2 -2
  52. data/docs/Gemfile +2 -2
  53. data/docs/Gemfile.lock +124 -113
  54. data/docs/_includes/top-menu.html +1 -1
  55. data/docs/documentation.md +1 -1
  56. data/docs/index.html +6 -6
  57. data/lib/active_admin/application.rb +14 -14
  58. data/lib/active_admin/application_settings.rb +3 -3
  59. data/lib/active_admin/authorization_adapter.rb +3 -3
  60. data/lib/active_admin/base_controller/authorization.rb +13 -12
  61. data/lib/active_admin/base_controller.rb +4 -4
  62. data/lib/active_admin/batch_actions/controller.rb +3 -3
  63. data/lib/active_admin/batch_actions/resource_extension.rb +9 -8
  64. data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
  65. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
  66. data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
  67. data/lib/active_admin/cancan_adapter.rb +1 -1
  68. data/lib/active_admin/collection_decorator.rb +31 -0
  69. data/lib/active_admin/csv_builder.rb +11 -7
  70. data/lib/active_admin/dependency.rb +11 -11
  71. data/lib/active_admin/devise.rb +5 -5
  72. data/lib/active_admin/dsl.rb +1 -1
  73. data/lib/active_admin/dynamic_settings_node.rb +2 -2
  74. data/lib/active_admin/engine.rb +10 -8
  75. data/lib/active_admin/error.rb +0 -2
  76. data/lib/active_admin/filters/active.rb +1 -1
  77. data/lib/active_admin/filters/active_filter.rb +6 -7
  78. data/lib/active_admin/filters/active_sidebar.rb +5 -5
  79. data/lib/active_admin/filters/forms.rb +6 -6
  80. data/lib/active_admin/filters/formtastic_addons.rb +1 -6
  81. data/lib/active_admin/filters/resource_extension.rb +1 -1
  82. data/lib/active_admin/filters.rb +7 -7
  83. data/lib/active_admin/form_builder.rb +24 -20
  84. data/lib/active_admin/generators/boilerplate.rb +1 -1
  85. data/lib/active_admin/helpers/optional_display.rb +2 -2
  86. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  87. data/lib/active_admin/inputs/filters/base/search_method_select.rb +4 -4
  88. data/lib/active_admin/inputs/filters/base.rb +1 -1
  89. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  90. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  91. data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
  92. data/lib/active_admin/inputs/filters/select_input.rb +2 -2
  93. data/lib/active_admin/localizers/resource_localizer.rb +3 -3
  94. data/lib/active_admin/localizers.rb +1 -1
  95. data/lib/active_admin/menu.rb +6 -3
  96. data/lib/active_admin/menu_item.rb +7 -7
  97. data/lib/active_admin/namespace.rb +12 -12
  98. data/lib/active_admin/namespace_settings.rb +8 -5
  99. data/lib/active_admin/order_clause.rb +1 -1
  100. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -3
  101. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -19
  102. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  103. data/lib/active_admin/orm/active_record/comments.rb +19 -19
  104. data/lib/active_admin/orm/active_record.rb +1 -1
  105. data/lib/active_admin/page.rb +1 -1
  106. data/lib/active_admin/pundit_adapter.rb +5 -5
  107. data/lib/active_admin/resource/action_items.rb +5 -5
  108. data/lib/active_admin/resource/attributes.rb +1 -1
  109. data/lib/active_admin/resource/belongs_to.rb +2 -2
  110. data/lib/active_admin/resource/controllers.rb +1 -1
  111. data/lib/active_admin/resource/menu.rb +4 -4
  112. data/lib/active_admin/resource/naming.rb +5 -5
  113. data/lib/active_admin/resource/routes.rb +5 -7
  114. data/lib/active_admin/resource/scope_to.rb +7 -7
  115. data/lib/active_admin/resource/sidebars.rb +1 -1
  116. data/lib/active_admin/resource.rb +18 -18
  117. data/lib/active_admin/resource_controller/data_access.rb +1 -1
  118. data/lib/active_admin/resource_controller/decorators.rb +6 -28
  119. data/lib/active_admin/resource_controller/polymorphic_routes.rb +3 -2
  120. data/lib/active_admin/resource_controller/streaming.rb +7 -6
  121. data/lib/active_admin/resource_controller.rb +12 -11
  122. data/lib/active_admin/resource_dsl.rb +5 -5
  123. data/lib/active_admin/scope.rb +6 -6
  124. data/lib/active_admin/version.rb +1 -1
  125. data/lib/active_admin/view_factory.rb +17 -17
  126. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +3 -3
  127. data/lib/active_admin/view_helpers/display_helper.rb +5 -5
  128. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -1
  129. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  130. data/lib/active_admin/view_helpers.rb +1 -1
  131. data/lib/active_admin/views/components/active_admin_form.rb +5 -5
  132. data/lib/active_admin/views/components/attributes_table.rb +5 -5
  133. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  134. data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
  135. data/lib/active_admin/views/components/index_list.rb +3 -3
  136. data/lib/active_admin/views/components/menu.rb +1 -1
  137. data/lib/active_admin/views/components/menu_item.rb +4 -4
  138. data/lib/active_admin/views/components/paginated_collection.rb +19 -18
  139. data/lib/active_admin/views/components/panel.rb +1 -1
  140. data/lib/active_admin/views/components/scopes.rb +7 -5
  141. data/lib/active_admin/views/components/site_title.rb +1 -1
  142. data/lib/active_admin/views/components/status_tag.rb +11 -11
  143. data/lib/active_admin/views/components/table_for.rb +18 -17
  144. data/lib/active_admin/views/components/tabs.rb +3 -3
  145. data/lib/active_admin/views/footer.rb +2 -1
  146. data/lib/active_admin/views/header.rb +2 -2
  147. data/lib/active_admin/views/index_as_blog.rb +1 -1
  148. data/lib/active_admin/views/index_as_grid.rb +1 -1
  149. data/lib/active_admin/views/index_as_table.rb +16 -16
  150. data/lib/active_admin/views/pages/base.rb +15 -11
  151. data/lib/active_admin/views/pages/index.rb +15 -13
  152. data/lib/active_admin/views/tabbed_navigation.rb +2 -2
  153. data/lib/active_admin/views/title_bar.rb +1 -1
  154. data/lib/active_admin/views.rb +1 -1
  155. data/lib/active_admin.rb +61 -63
  156. data/lib/activeadmin.rb +1 -1
  157. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  158. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  159. data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
  160. data/lib/generators/active_admin/install/install_generator.rb +14 -8
  161. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +9 -2
  162. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  163. data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
  164. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  165. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  166. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  167. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  168. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  169. data/lib/ransack_ext.rb +8 -8
  170. metadata +46 -84
  171. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  172. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  173. data/app/assets/images/active_admin/orderable.png +0 -0
  174. data/app/assets/javascripts/active_admin/base.es6 +0 -23
  175. data/app/assets/javascripts/active_admin/initializers/filters.es6 +0 -45
  176. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +0 -41
  177. data/app/assets/javascripts/active_admin/lib/per_page.es6 +0 -47
  178. /data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  179. /data/app/{assets/javascripts/active_admin/ext/jquery-ui.es6 → javascript/active_admin/ext/jquery-ui.js} +0 -0
  180. /data/app/{assets/javascripts/active_admin/ext/jquery.es6 → javascript/active_admin/ext/jquery.js} +0 -0
  181. /data/app/{assets/javascripts/active_admin/initializers/datepicker.es6 → javascript/active_admin/initializers/datepicker.js} +0 -0
  182. /data/app/{assets/javascripts/active_admin/lib/has_many.es6 → javascript/active_admin/initializers/has-many.js} +0 -0
  183. /data/app/{assets/javascripts/active_admin/initializers/tabs.es6 → javascript/active_admin/initializers/tabs.js} +0 -0
@@ -1,10 +1,10 @@
1
- require_relative 'components/menu'
1
+ require_relative "components/menu"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Views
5
5
  class TabbedNavigation < Menu
6
6
  def build(menu, options = {})
7
- super(menu, options.reverse_merge(id: 'tabs'))
7
+ super(menu, options.reverse_merge(id: "tabs"))
8
8
  end
9
9
  end
10
10
  end
@@ -43,7 +43,7 @@ module ActiveAdmin
43
43
  end
44
44
 
45
45
  def build_title_tag
46
- h2(@title, id: 'page_title')
46
+ h2(@title, id: "page_title")
47
47
  end
48
48
 
49
49
  def build_action_items
@@ -2,7 +2,7 @@ module ActiveAdmin
2
2
  module Views
3
3
 
4
4
  # Loads all the classes in views/*.rb
5
- Dir[File.expand_path('views', __dir__) + "/**/*.rb"].sort.each { |f| require f }
5
+ Dir[File.expand_path("views", __dir__) + "/**/*.rb"].sort.each { |f| require f }
6
6
 
7
7
  end
8
8
  end
data/lib/active_admin.rb CHANGED
@@ -1,59 +1,57 @@
1
- require 'active_support/core_ext'
2
- require 'set'
3
-
4
- require 'ransack'
5
- require 'ransack_ext'
6
- require 'kaminari'
7
- require 'formtastic'
8
- require 'formtastic_i18n'
9
- require 'inherited_resources'
10
- require 'jquery-rails'
11
- require 'sassc-rails'
12
- require 'arbre'
13
- require 'sprockets/es6'
14
-
15
- require 'active_admin/helpers/i18n'
1
+ require "active_support/core_ext"
2
+ require "set"
3
+
4
+ require "ransack"
5
+ require "ransack_ext"
6
+ require "kaminari"
7
+ require "formtastic"
8
+ require "formtastic_i18n"
9
+ require "inherited_resources"
10
+ require "jquery-rails"
11
+ require "arbre"
12
+
13
+ require "active_admin/helpers/i18n"
16
14
 
17
15
  module ActiveAdmin
18
16
 
19
- autoload :VERSION, 'active_admin/version'
20
- autoload :Application, 'active_admin/application'
21
- autoload :AssetRegistration, 'active_admin/asset_registration'
22
- autoload :Authorization, 'active_admin/authorization_adapter'
23
- autoload :AuthorizationAdapter, 'active_admin/authorization_adapter'
24
- autoload :Callbacks, 'active_admin/callbacks'
25
- autoload :Component, 'active_admin/component'
26
- autoload :BaseController, 'active_admin/base_controller'
27
- autoload :CanCanAdapter, 'active_admin/cancan_adapter'
28
- autoload :ControllerAction, 'active_admin/controller_action'
29
- autoload :CSVBuilder, 'active_admin/csv_builder'
30
- autoload :Dependency, 'active_admin/dependency'
31
- autoload :Deprecation, 'active_admin/deprecation'
32
- autoload :Devise, 'active_admin/devise'
33
- autoload :DSL, 'active_admin/dsl'
34
- autoload :FormBuilder, 'active_admin/form_builder'
35
- autoload :Inputs, 'active_admin/inputs'
36
- autoload :Localizers, 'active_admin/localizers'
37
- autoload :Menu, 'active_admin/menu'
38
- autoload :MenuCollection, 'active_admin/menu_collection'
39
- autoload :MenuItem, 'active_admin/menu_item'
40
- autoload :Namespace, 'active_admin/namespace'
41
- autoload :OrderClause, 'active_admin/order_clause'
42
- autoload :Page, 'active_admin/page'
43
- autoload :PagePresenter, 'active_admin/page_presenter'
44
- autoload :PageController, 'active_admin/page_controller'
45
- autoload :PageDSL, 'active_admin/page_dsl'
46
- autoload :PunditAdapter, 'active_admin/pundit_adapter'
47
- autoload :Resource, 'active_admin/resource'
48
- autoload :ResourceController, 'active_admin/resource_controller'
49
- autoload :ResourceDSL, 'active_admin/resource_dsl'
50
- autoload :Scope, 'active_admin/scope'
51
- autoload :ScopeChain, 'active_admin/helpers/scope_chain'
52
- autoload :SidebarSection, 'active_admin/sidebar_section'
53
- autoload :TableBuilder, 'active_admin/table_builder'
54
- autoload :ViewFactory, 'active_admin/view_factory'
55
- autoload :ViewHelpers, 'active_admin/view_helpers'
56
- autoload :Views, 'active_admin/views'
17
+ autoload :VERSION, "active_admin/version"
18
+ autoload :Application, "active_admin/application"
19
+ autoload :AssetRegistration, "active_admin/asset_registration"
20
+ autoload :Authorization, "active_admin/authorization_adapter"
21
+ autoload :AuthorizationAdapter, "active_admin/authorization_adapter"
22
+ autoload :Callbacks, "active_admin/callbacks"
23
+ autoload :Component, "active_admin/component"
24
+ autoload :BaseController, "active_admin/base_controller"
25
+ autoload :CanCanAdapter, "active_admin/cancan_adapter"
26
+ autoload :ControllerAction, "active_admin/controller_action"
27
+ autoload :CSVBuilder, "active_admin/csv_builder"
28
+ autoload :Dependency, "active_admin/dependency"
29
+ autoload :Deprecation, "active_admin/deprecation"
30
+ autoload :Devise, "active_admin/devise"
31
+ autoload :DSL, "active_admin/dsl"
32
+ autoload :FormBuilder, "active_admin/form_builder"
33
+ autoload :Inputs, "active_admin/inputs"
34
+ autoload :Localizers, "active_admin/localizers"
35
+ autoload :Menu, "active_admin/menu"
36
+ autoload :MenuCollection, "active_admin/menu_collection"
37
+ autoload :MenuItem, "active_admin/menu_item"
38
+ autoload :Namespace, "active_admin/namespace"
39
+ autoload :OrderClause, "active_admin/order_clause"
40
+ autoload :Page, "active_admin/page"
41
+ autoload :PagePresenter, "active_admin/page_presenter"
42
+ autoload :PageController, "active_admin/page_controller"
43
+ autoload :PageDSL, "active_admin/page_dsl"
44
+ autoload :PunditAdapter, "active_admin/pundit_adapter"
45
+ autoload :Resource, "active_admin/resource"
46
+ autoload :ResourceController, "active_admin/resource_controller"
47
+ autoload :ResourceDSL, "active_admin/resource_dsl"
48
+ autoload :Scope, "active_admin/scope"
49
+ autoload :ScopeChain, "active_admin/helpers/scope_chain"
50
+ autoload :SidebarSection, "active_admin/sidebar_section"
51
+ autoload :TableBuilder, "active_admin/table_builder"
52
+ autoload :ViewFactory, "active_admin/view_factory"
53
+ autoload :ViewHelpers, "active_admin/view_helpers"
54
+ autoload :Views, "active_admin/views"
57
55
 
58
56
  class << self
59
57
 
@@ -70,11 +68,11 @@ module ActiveAdmin
70
68
  application.prepare!
71
69
  end
72
70
 
73
- delegate :register, to: :application
71
+ delegate :register, to: :application
74
72
  delegate :register_page, to: :application
75
- delegate :unload!, to: :application
76
- delegate :load!, to: :application
77
- delegate :routes, to: :application
73
+ delegate :unload!, to: :application
74
+ delegate :load!, to: :application
75
+ delegate :routes, to: :application
78
76
 
79
77
  # A callback is triggered each time (before) Active Admin loads the configuration files.
80
78
  # In development mode, this will happen whenever the user changes files. In production
@@ -122,13 +120,13 @@ module ActiveAdmin
122
120
  end
123
121
 
124
122
  # Require things that don't support autoload
125
- require 'active_admin/engine'
126
- require 'active_admin/error'
123
+ require "active_admin/engine"
124
+ require "active_admin/error"
127
125
 
128
126
  # Require internal plugins
129
- require 'active_admin/batch_actions'
130
- require 'active_admin/filters'
127
+ require "active_admin/batch_actions"
128
+ require "active_admin/filters"
131
129
 
132
130
  # Require ORM-specific plugins
133
- require 'active_admin/orm/active_record' if defined? ActiveRecord
134
- require 'active_admin/orm/mongoid' if defined? Mongoid
131
+ require "active_admin/orm/active_record" if defined? ActiveRecord
132
+ require "active_admin/orm/mongoid" if defined? Mongoid
data/lib/activeadmin.rb CHANGED
@@ -1 +1 @@
1
- require 'active_admin'
1
+ require "active_admin"
@@ -2,10 +2,10 @@ module ActiveAdmin
2
2
  module Generators
3
3
  class AssetsGenerator < Rails::Generators::Base
4
4
 
5
- source_root File.expand_path('templates', __dir__)
5
+ source_root File.expand_path("templates", __dir__)
6
6
 
7
7
  def install_assets
8
- template 'active_admin.js', 'app/assets/javascripts/active_admin.js'
8
+ template "active_admin.js", "app/assets/javascripts/active_admin.js"
9
9
  template "active_admin.scss", "app/assets/stylesheets/active_admin.scss"
10
10
  end
11
11
 
@@ -1,4 +1,4 @@
1
- // SASS variable overrides must be declared before loading up Active Admin's styles.
1
+ // Sass variable overrides must be declared before loading up Active Admin's styles.
2
2
  //
3
3
  // To view the variables that Active Admin provides, take a look at
4
4
  // `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
@@ -11,7 +11,7 @@
11
11
  @import "active_admin/mixins";
12
12
  @import "active_admin/base";
13
13
 
14
- // Overriding any non-variable SASS must be done after the fact.
14
+ // Overriding any non-variable Sass must be done after the fact.
15
15
  // For example, to change the default status-tag color:
16
16
  //
17
17
  // .status_tag { background: #6090DB; }
@@ -7,13 +7,13 @@ module ActiveAdmin
7
7
  desc "Creates an admin user and uses Devise for authentication"
8
8
  argument :name, type: :string, default: "AdminUser"
9
9
 
10
- class_option :registerable, type: :boolean, default: false,
11
- desc: "Should the generated resource be registerable?"
10
+ class_option :registerable, type: :boolean, default: false,
11
+ desc: "Should the generated resource be registerable?"
12
12
 
13
13
  RESERVED_NAMES = [:active_admin_user]
14
14
 
15
- class_option :default_user, type: :boolean, default: true,
16
- desc: "Should a default user be created inside the migration?"
15
+ class_option :default_user, type: :boolean, default: true,
16
+ desc: "Should a default user be created inside the migration?"
17
17
 
18
18
  def install_devise
19
19
  begin
@@ -22,7 +22,7 @@ module ActiveAdmin
22
22
  raise ActiveAdmin::GeneratorError, "#{e.message} If you don't want to use devise, run the generator with --skip-users."
23
23
  end
24
24
 
25
- require 'devise'
25
+ require "devise"
26
26
 
27
27
  initializer_file =
28
28
  File.join(destination_root, "config", "initializers", "devise.rb")
@@ -1,4 +1,4 @@
1
- require 'rails/generators/active_record'
1
+ require "rails/generators/active_record"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Generators
@@ -8,22 +8,24 @@ module ActiveAdmin
8
8
 
9
9
  hook_for :users, default: "devise", desc: "Admin user generator to run. Skip with --skip-users"
10
10
  class_option :skip_comments, type: :boolean, default: false, desc: "Skip installation of comments"
11
+ class_option :use_webpacker, type: :boolean, default: false, desc: "Use Webpacker assets instead of Sprockets"
11
12
 
12
- source_root File.expand_path('templates', __dir__)
13
+ source_root File.expand_path("templates", __dir__)
13
14
 
14
15
  def copy_initializer
15
- @underscored_user_name = name.underscore.gsub('/', '_')
16
+ @underscored_user_name = name.underscore.gsub("/", "_")
16
17
  @use_authentication_method = options[:users].present?
17
18
  @skip_comments = options[:skip_comments]
18
- template 'active_admin.rb.erb', 'config/initializers/active_admin.rb'
19
+ @use_webpacker = options[:use_webpacker]
20
+ template "active_admin.rb.erb", "config/initializers/active_admin.rb"
19
21
  end
20
22
 
21
23
  def setup_directory
22
24
  empty_directory "app/admin"
23
- template 'dashboard.rb', 'app/admin/dashboard.rb'
25
+ template "dashboard.rb", "app/admin/dashboard.rb"
24
26
  if options[:users].present?
25
27
  @user_class = name
26
- template 'admin_users.rb.erb', "app/admin/#{name.underscore.pluralize}.rb"
28
+ template "admin_users.rb.erb", "app/admin/#{name.underscore.pluralize}.rb"
27
29
  end
28
30
  end
29
31
 
@@ -36,12 +38,16 @@ module ActiveAdmin
36
38
  end
37
39
 
38
40
  def create_assets
39
- generate "active_admin:assets"
41
+ if options[:use_webpacker]
42
+ generate "active_admin:webpacker"
43
+ else
44
+ generate "active_admin:assets"
45
+ end
40
46
  end
41
47
 
42
48
  def create_migrations
43
49
  unless options[:skip_comments]
44
- migration_template 'migrations/create_active_admin_comments.rb.erb', 'db/migrate/create_active_admin_comments.rb'
50
+ migration_template "migrations/create_active_admin_comments.rb.erb", "db/migrate/create_active_admin_comments.rb"
45
51
  end
46
52
  end
47
53
  end
@@ -294,7 +294,7 @@ ActiveAdmin.setup do |config|
294
294
  # config.include_default_association_filters = true
295
295
 
296
296
  # config.maximum_association_filter_arity = 256 # default value of :unlimited will change to 256 in a future version
297
- # config.filter_columns_for_large_association, [
297
+ # config.filter_columns_for_large_association = [
298
298
  # :display_name,
299
299
  # :full_name,
300
300
  # :name,
@@ -303,7 +303,7 @@ ActiveAdmin.setup do |config|
303
303
  # :title,
304
304
  # :email,
305
305
  # ]
306
- # config.filter_method_for_large_association, '_starts_with'
306
+ # config.filter_method_for_large_association = '_starts_with'
307
307
 
308
308
  # == Head
309
309
  #
@@ -325,4 +325,11 @@ ActiveAdmin.setup do |config|
325
325
  # You can inherit it with own class and inject it for all resources
326
326
  #
327
327
  # config.order_clause = MyOrderClause
328
+
329
+ # == Webpacker
330
+ #
331
+ # By default, Active Admin uses Sprocket's asset pipeline.
332
+ # You can switch to using Webpacker here.
333
+ #
334
+ <% unless @use_webpacker %># <% end %>config.use_webpacker = true
328
335
  end
@@ -1,7 +1,7 @@
1
1
  module ActiveAdmin
2
2
  module Generators
3
3
  class PageGenerator < Rails::Generators::NamedBase
4
- source_root File.expand_path('templates', __dir__)
4
+ source_root File.expand_path("templates", __dir__)
5
5
 
6
6
  def generate_config_file
7
7
  template "page.rb", "app/admin/#{file_path.tr('/', '_')}.rb"
@@ -1,4 +1,4 @@
1
- require 'active_admin/generators/boilerplate'
1
+ require "active_admin/generators/boilerplate"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Generators
@@ -6,9 +6,9 @@ module ActiveAdmin
6
6
  desc "Registers resources with Active Admin"
7
7
 
8
8
  class_option :include_boilerplate, type: :boolean, default: false,
9
- desc: "Generate boilerplate code for your resource."
9
+ desc: "Generate boilerplate code for your resource."
10
10
 
11
- source_root File.expand_path('templates', __dir__)
11
+ source_root File.expand_path("templates", __dir__)
12
12
 
13
13
  def generate_config_file
14
14
  @boilerplate = ActiveAdmin::Generators::Boilerplate.new(class_name)
@@ -0,0 +1,7 @@
1
+ const webpack = require('webpack')
2
+
3
+ module.exports = new webpack.ProvidePlugin({
4
+ "$":"jquery",
5
+ "jQuery":"jquery",
6
+ "window.jQuery":"jquery"
7
+ });
@@ -0,0 +1,5 @@
1
+ // Load Active Admin's styles into Webpacker,
2
+ // see `active_admin.scss` for customization.
3
+ import "../stylesheets/active_admin";
4
+
5
+ import "@activeadmin/activeadmin";
@@ -0,0 +1,17 @@
1
+ // Sass variable overrides must be declared before loading up Active Admin's styles.
2
+ //
3
+ // To view the variables that Active Admin provides, take a look at
4
+ // `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
5
+ // Active Admin source.
6
+ //
7
+ // For example, to change the sidebar width:
8
+ // $sidebar-width: 242px;
9
+
10
+ // Active Admin's got SASS!
11
+ @import "~@activeadmin/activeadmin/src/scss/mixins";
12
+ @import "~@activeadmin/activeadmin/src/scss/base";
13
+
14
+ // Overriding any non-variable Sass must be done after the fact.
15
+ // For example, to change the default status-tag color:
16
+ //
17
+ // .status_tag { background: #6090DB; }
@@ -0,0 +1,2 @@
1
+ /* Active Admin Print Stylesheet */
2
+ @import "~@activeadmin/activeadmin/src/scss/print";
@@ -0,0 +1,26 @@
1
+ module ActiveAdmin
2
+ module Generators
3
+ class WebpackerGenerator < Rails::Generators::Base
4
+
5
+ source_root File.expand_path("templates", __dir__)
6
+
7
+ def install_assets
8
+ template "active_admin.js", "app/javascript/packs/active_admin.js"
9
+ template "active_admin.scss", "app/javascript/stylesheets/active_admin.scss"
10
+ template "print.scss", "app/javascript/packs/active_admin/print.scss"
11
+
12
+ copy_file "#{__dir__}/plugins/jquery.js", Rails.root.join("config/webpack/plugins/jquery.js").to_s
13
+
14
+ insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
15
+ "const jquery = require('./plugins/jquery')\n",
16
+ after: /require\(('|")@rails\/webpacker\1\);?\n/
17
+
18
+ insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
19
+ "environment.plugins.prepend('jquery', jquery)\n",
20
+ before: "module.exports"
21
+
22
+ run "yarn add @activeadmin/activeadmin"
23
+ end
24
+ end
25
+ end
26
+ end
data/lib/ransack_ext.rb CHANGED
@@ -2,19 +2,19 @@
2
2
  # identically to the versions given in Ransack.
3
3
  #
4
4
  Ransack.configure do |config|
5
- { 'contains' => 'cont', 'starts_with' => 'start', 'ends_with' => 'end' }.each do |old, current|
5
+ { "contains" => "cont", "starts_with" => "start", "ends_with" => "end" }.each do |old, current|
6
6
  config.add_predicate old, Ransack::Constants::DERIVED_PREDICATES.detect { |q, _| q == current }[1]
7
7
  end
8
8
 
9
- { 'equals' => 'eq', 'greater_than' => 'gt', 'less_than' => 'lt' }.each do |old, current|
9
+ { "equals" => "eq", "greater_than" => "gt", "less_than" => "lt" }.each do |old, current|
10
10
  config.add_predicate old, arel_predicate: current
11
11
  end
12
12
 
13
- config.add_predicate 'gteq_datetime',
14
- arel_predicate: 'gteq',
15
- formatter: ->(v) { v.beginning_of_day }
13
+ config.add_predicate "gteq_datetime",
14
+ arel_predicate: "gteq",
15
+ formatter: ->(v) { v.beginning_of_day }
16
16
 
17
- config.add_predicate 'lteq_datetime',
18
- arel_predicate: 'lt',
19
- formatter: ->(v) { v + 1.day }
17
+ config.add_predicate "lteq_datetime",
18
+ arel_predicate: "lt",
19
+ formatter: ->(v) { v + 1.day }
20
20
  end