activeadmin 1.0.0 → 1.1.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 (276) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +20 -0
  3. data/.mdlrc +1 -0
  4. data/.rubocop.yml +52 -3
  5. data/.simplecov +13 -0
  6. data/.travis.yml +9 -24
  7. data/.yardopts +0 -1
  8. data/CHANGELOG.md +85 -4
  9. data/CONTRIBUTING.md +33 -57
  10. data/Gemfile +26 -17
  11. data/Rakefile +1 -12
  12. data/activeadmin.gemspec +9 -11
  13. data/app/assets/javascripts/active_admin/base.js.coffee +6 -2
  14. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +5 -1
  15. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +5 -1
  16. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +5 -1
  17. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +5 -1
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +6 -3
  19. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +9 -7
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +5 -2
  21. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +6 -2
  22. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +3 -5
  23. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  24. data/app/assets/stylesheets/active_admin/_forms.scss +6 -12
  25. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  26. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  27. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -0
  28. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  29. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  32. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  33. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  34. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  35. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  36. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  37. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  38. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  39. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  40. data/codecov.yml +14 -12
  41. data/config/i18n-tasks.yml +26 -0
  42. data/config/locales/ar.yml +1 -3
  43. data/config/locales/bg.yml +0 -2
  44. data/config/locales/bs.yml +0 -2
  45. data/config/locales/ca.yml +0 -2
  46. data/config/locales/cs.yml +0 -2
  47. data/config/locales/da.yml +1 -3
  48. data/config/locales/de-CH.yml +1 -3
  49. data/config/locales/de.yml +1 -3
  50. data/config/locales/el.yml +1 -3
  51. data/config/locales/en-CA.yml +138 -0
  52. data/config/locales/en-GB.yml +43 -3
  53. data/config/locales/en.yml +8 -4
  54. data/config/locales/es-MX.yml +3 -2
  55. data/config/locales/es.yml +10 -4
  56. data/config/locales/fa.yml +0 -2
  57. data/config/locales/fi.yml +0 -2
  58. data/config/locales/fr.yml +9 -2
  59. data/config/locales/he.yml +53 -7
  60. data/config/locales/hr.yml +0 -2
  61. data/config/locales/hu.yml +0 -2
  62. data/config/locales/id.yml +1 -3
  63. data/config/locales/it.yml +2 -4
  64. data/config/locales/ja.yml +1 -3
  65. data/config/locales/ko.yml +0 -2
  66. data/config/locales/lt.yml +24 -4
  67. data/config/locales/lv.yml +0 -2
  68. data/config/locales/nb.yml +0 -2
  69. data/config/locales/nl.yml +1 -3
  70. data/config/locales/pl.yml +3 -2
  71. data/config/locales/pt-BR.yml +1 -3
  72. data/config/locales/pt-PT.yml +0 -2
  73. data/config/locales/ro.yml +0 -2
  74. data/config/locales/ru.yml +1 -3
  75. data/config/locales/sk.yml +0 -2
  76. data/config/locales/sv-SE.yml +1 -3
  77. data/config/locales/tr.yml +0 -2
  78. data/config/locales/uk.yml +1 -3
  79. data/config/locales/vi.yml +0 -2
  80. data/config/locales/zh-CN.yml +0 -2
  81. data/config/locales/zh-TW.yml +1 -3
  82. data/config/mdl_style.rb +9 -0
  83. data/cucumber.yml +3 -3
  84. data/docs/0-installation.md +15 -12
  85. data/docs/1-general-configuration.md +10 -3
  86. data/docs/10-custom-pages.md +10 -5
  87. data/docs/11-decorators.md +1 -0
  88. data/docs/12-arbre-components.md +7 -9
  89. data/docs/13-authorization-adapter.md +39 -24
  90. data/docs/14-gotchas.md +41 -22
  91. data/docs/2-resource-customization.md +41 -18
  92. data/docs/3-index-pages.md +30 -12
  93. data/docs/3-index-pages/custom-index.md +1 -0
  94. data/docs/3-index-pages/index-as-block.md +0 -5
  95. data/docs/3-index-pages/index-as-blog.md +0 -5
  96. data/docs/3-index-pages/index-as-grid.md +0 -5
  97. data/docs/3-index-pages/index-as-table.md +1 -9
  98. data/docs/4-csv-format.md +2 -1
  99. data/docs/5-forms.md +45 -21
  100. data/docs/6-show-pages.md +2 -1
  101. data/docs/7-sidebars.md +2 -1
  102. data/docs/8-custom-actions.md +4 -1
  103. data/docs/9-batch-actions.md +4 -2
  104. data/docs/documentation.md +19 -21
  105. data/features/comments/commenting.feature +20 -0
  106. data/features/index/filters.feature +41 -1
  107. data/features/index/format_as_csv.feature +17 -0
  108. data/features/index/index_scopes.feature +15 -0
  109. data/features/registering_assets.feature +8 -4
  110. data/features/show/attributes_table_title.feature +54 -0
  111. data/features/show/tabs.feature +10 -4
  112. data/features/step_definitions/action_link_steps.rb +0 -1
  113. data/features/step_definitions/attributes_table_title_steps.rb +11 -0
  114. data/features/step_definitions/batch_action_steps.rb +2 -2
  115. data/features/step_definitions/comment_steps.rb +21 -1
  116. data/features/step_definitions/configuration_steps.rb +1 -1
  117. data/features/step_definitions/filter_steps.rb +9 -0
  118. data/features/step_definitions/format_steps.rb +1 -1
  119. data/features/step_definitions/index_scope_steps.rb +4 -0
  120. data/features/support/env.rb +5 -4
  121. data/features/support/regular_env.rb +7 -0
  122. data/features/support/reload_env.rb +7 -0
  123. data/gemfiles/rails_42.gemfile +2 -37
  124. data/gemfiles/rails_50.gemfile +5 -40
  125. data/gemfiles/rails_51.gemfile +5 -40
  126. data/lib/active_admin.rb +0 -3
  127. data/lib/active_admin/application.rb +6 -4
  128. data/lib/active_admin/asset_registration.rb +8 -0
  129. data/lib/active_admin/authorization_adapter.rb +0 -3
  130. data/lib/active_admin/base_controller.rb +1 -2
  131. data/lib/active_admin/base_controller/authorization.rb +0 -1
  132. data/lib/active_admin/base_controller/menu.rb +9 -9
  133. data/lib/active_admin/batch_actions/controller.rb +1 -1
  134. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  135. data/lib/active_admin/csv_builder.rb +3 -3
  136. data/lib/active_admin/dependency.rb +1 -1
  137. data/lib/active_admin/devise.rb +2 -2
  138. data/lib/active_admin/dsl.rb +2 -2
  139. data/lib/active_admin/filters.rb +2 -0
  140. data/lib/active_admin/filters/active.rb +13 -14
  141. data/lib/active_admin/filters/active_filter.rb +87 -0
  142. data/lib/active_admin/filters/active_sidebar.rb +50 -0
  143. data/lib/active_admin/filters/forms.rb +1 -2
  144. data/lib/active_admin/filters/resource_extension.rb +2 -30
  145. data/lib/active_admin/helpers/settings.rb +0 -1
  146. data/lib/active_admin/inputs/datepicker_input.rb +5 -5
  147. data/lib/active_admin/inputs/filters/date_range_input.rb +12 -4
  148. data/lib/active_admin/inputs/filters/text_input.rb +0 -1
  149. data/lib/active_admin/menu.rb +4 -4
  150. data/lib/active_admin/menu_collection.rb +0 -2
  151. data/lib/active_admin/namespace.rb +1 -1
  152. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -5
  153. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -2
  154. data/lib/active_admin/page_controller.rb +1 -1
  155. data/lib/active_admin/resource/action_items.rb +4 -0
  156. data/lib/active_admin/resource/attributes.rb +1 -1
  157. data/lib/active_admin/resource/page_presenters.rb +1 -1
  158. data/lib/active_admin/resource/routes.rb +0 -1
  159. data/lib/active_admin/resource/scopes.rb +2 -1
  160. data/lib/active_admin/resource_controller.rb +1 -1
  161. data/lib/active_admin/resource_controller/data_access.rb +8 -9
  162. data/lib/active_admin/resource_dsl.rb +10 -10
  163. data/lib/active_admin/router.rb +1 -1
  164. data/lib/active_admin/scope.rb +3 -3
  165. data/lib/active_admin/version.rb +1 -1
  166. data/lib/active_admin/view_helpers.rb +1 -0
  167. data/lib/active_admin/view_helpers/display_helper.rb +1 -1
  168. data/lib/active_admin/view_helpers/form_helper.rb +1 -1
  169. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  170. data/lib/active_admin/views/action_items.rb +1 -1
  171. data/lib/active_admin/views/components/active_admin_form.rb +1 -1
  172. data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
  173. data/lib/active_admin/views/components/index_list.rb +0 -2
  174. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  175. data/lib/active_admin/views/components/scopes.rb +2 -10
  176. data/lib/active_admin/views/components/status_tag.rb +19 -11
  177. data/lib/active_admin/views/components/tabs.rb +2 -2
  178. data/lib/active_admin/views/header.rb +0 -1
  179. data/lib/active_admin/views/index_as_blog.rb +1 -2
  180. data/lib/active_admin/views/index_as_grid.rb +2 -2
  181. data/lib/active_admin/views/index_as_table.rb +19 -1
  182. data/lib/active_admin/views/pages/base.rb +4 -4
  183. data/lib/active_admin/views/pages/show.rb +6 -1
  184. data/lib/active_admin/views/title_bar.rb +4 -4
  185. data/lib/bug_report_templates/{rails_5_master.rb → active_admin_master.rb} +35 -40
  186. data/lib/generators/active_admin/devise/devise_generator.rb +1 -1
  187. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +1 -1
  188. data/spec/bug_report_templates_spec.rb +2 -3
  189. data/spec/rails_helper.rb +0 -3
  190. data/spec/spec_helper.rb +1 -12
  191. data/spec/support/active_admin_integration_spec_helper.rb +1 -1
  192. data/spec/support/rails_template.rb +5 -37
  193. data/spec/support/rails_template_with_data.rb +262 -3
  194. data/spec/support/templates/policies/active_admin/comment_policy.rb +1 -1
  195. data/spec/support/templates/policies/active_admin/page_policy.rb +1 -1
  196. data/spec/support/templates/policies/application_policy.rb +1 -2
  197. data/spec/support/templates/post_decorator.rb +0 -1
  198. data/spec/unit/abstract_view_factory_spec.rb +0 -1
  199. data/spec/unit/application_spec.rb +4 -0
  200. data/spec/unit/asset_registration_spec.rb +29 -0
  201. data/spec/unit/belongs_to_spec.rb +1 -2
  202. data/spec/unit/config_shared_examples.rb +1 -1
  203. data/spec/unit/csv_builder_spec.rb +2 -4
  204. data/spec/unit/dependency_spec.rb +7 -7
  205. data/spec/unit/dsl_spec.rb +0 -2
  206. data/spec/unit/filters/active_filter_spec.rb +135 -0
  207. data/spec/unit/filters/active_spec.rb +11 -1
  208. data/spec/unit/filters/filter_form_builder_spec.rb +9 -7
  209. data/spec/unit/form_builder_spec.rb +14 -14
  210. data/spec/unit/helpers/scope_chain_spec.rb +0 -1
  211. data/spec/unit/i18n_spec.rb +17 -0
  212. data/spec/unit/menu_item_spec.rb +1 -3
  213. data/spec/unit/namespace/register_page_spec.rb +1 -1
  214. data/spec/unit/namespace_spec.rb +0 -1
  215. data/spec/unit/page_spec.rb +0 -3
  216. data/spec/unit/resource/action_items_spec.rb +5 -1
  217. data/spec/unit/resource/attributes_spec.rb +1 -2
  218. data/spec/unit/resource/ordering_spec.rb +0 -3
  219. data/spec/unit/resource/scopes_spec.rb +1 -1
  220. data/spec/unit/resource_controller/data_access_spec.rb +2 -2
  221. data/spec/unit/resource_controller_spec.rb +1 -2
  222. data/spec/unit/resource_spec.rb +9 -2
  223. data/spec/unit/routing_spec.rb +0 -2
  224. data/spec/unit/scope_spec.rb +3 -3
  225. data/spec/unit/settings_spec.rb +0 -1
  226. data/spec/unit/view_factory_spec.rb +1 -1
  227. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -1
  228. data/spec/unit/view_helpers/form_helper_spec.rb +3 -4
  229. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -1
  230. data/spec/unit/views/components/attributes_table_spec.rb +0 -1
  231. data/spec/unit/views/components/columns_spec.rb +0 -2
  232. data/spec/unit/views/components/site_title_spec.rb +0 -2
  233. data/spec/unit/views/components/status_tag_spec.rb +23 -7
  234. data/spec/unit/views/components/tabs_spec.rb +29 -1
  235. data/spec/unit/views/pages/index_spec.rb +1 -1
  236. data/tasks/docs.rake +37 -10
  237. data/tasks/lint.rake +14 -1
  238. data/tasks/local.rake +2 -2
  239. data/tasks/test.rake +8 -25
  240. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  241. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  242. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  243. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  244. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  245. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  246. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  247. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  248. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  249. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  250. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  251. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  252. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  253. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  254. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  255. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  256. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +300 -0
  257. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  258. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  259. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  260. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  261. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  262. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  263. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  264. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  265. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  266. metadata +62 -51
  267. data/.hound.yml +0 -14
  268. data/Appraisals +0 -41
  269. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  270. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  271. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  272. data/lib/active_admin/filters/humanized.rb +0 -68
  273. data/spec/requests/javascript_spec.rb +0 -22
  274. data/spec/support/jslint.yml +0 -80
  275. data/spec/unit/filters/humanized_spec.rb +0 -64
  276. data/tasks/yard.rake +0 -9
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/2-resource-customization.html
3
3
  ---
4
+
4
5
  # Working with Resources
5
6
 
6
7
  Every Active Admin resource corresponds to a Rails model. So before creating a
@@ -27,8 +28,8 @@ ActiveAdmin.register Post do
27
28
  end
28
29
  ```
29
30
 
30
- Any form field that sends multiple values (such as a HABTM association, or an array attribute)
31
- needs to pass an empty array to `permit_params`:
31
+ Any form field that sends multiple values (such as a HABTM association, or an
32
+ array attribute) needs to pass an empty array to `permit_params`:
32
33
 
33
34
  If your HABTM is `roles`, you should permit `role_ids: []`
34
35
 
@@ -74,7 +75,8 @@ ActiveAdmin.register Post do
74
75
  end
75
76
  ```
76
77
 
77
- The `permit_params` call creates a method called `permitted_params`. You should use this method when overriding `create` or `update` actions:
78
+ The `permit_params` call creates a method called `permitted_params`. You should
79
+ use this method when overriding `create` or `update` actions:
78
80
 
79
81
  ```ruby
80
82
  ActiveAdmin.register Post do
@@ -105,10 +107,18 @@ end
105
107
 
106
108
  ## Renaming Action Items
107
109
 
108
- One can set custom button name and page title for new, edit, and destroy actions/pages
109
- at the resource level by providing a resource specific translation.
110
- For example to change 'New Offer' to 'Make an Offer'
111
- set `active_admin.resources.offer.new_model`.
110
+ You can use translations to override labels and page titles for actions such as
111
+ new, edit, and destroy by providing a resource specific translation. For
112
+ example, to change 'New Offer' to 'Make an Offer' add the following in
113
+ config/locales/[en].yml:
114
+
115
+ ```yaml
116
+ en:
117
+ active_admin:
118
+ resources:
119
+ offer:
120
+ new_model: 'Make an Offer'
121
+ ```
112
122
 
113
123
  ## Rename the Resource
114
124
 
@@ -188,6 +198,7 @@ end
188
198
  ### Conditionally Showing / Hiding Menu Items
189
199
 
190
200
  Menu items can be shown or hidden at runtime using the `:if` option.
201
+
191
202
  ```ruby
192
203
  ActiveAdmin.register Post do
193
204
  menu if: proc{ current_user.can_edit_posts? }
@@ -262,9 +273,15 @@ config.namespace :admin do |admin|
262
273
  menu.add label: "The Application", url: "/", priority: 0
263
274
 
264
275
  menu.add label: "Sites" do |sites|
265
- sites.add label: "Google", url: "http://google.com", html_options: { target: :blank }
266
- sites.add label: "Facebook", url: "http://facebook.com"
267
- sites.add label: "Github", url: "http://github.com"
276
+ sites.add label: "Google",
277
+ url: "http://google.com",
278
+ html_options: { target: :blank }
279
+
280
+ sites.add label: "Facebook",
281
+ url: "http://facebook.com"
282
+
283
+ sites.add label: "Github",
284
+ url: "http://github.com"
268
285
  end
269
286
  end
270
287
  end
@@ -303,7 +320,8 @@ end
303
320
 
304
321
  ## Eager loading
305
322
 
306
- A common way to increase page performance is to elimate N+1 queries by eager loading associations:
323
+ A common way to increase page performance is to elimate N+1 queries by eager
324
+ loading associations:
307
325
 
308
326
  ```ruby
309
327
  ActiveAdmin.register Post do
@@ -313,10 +331,13 @@ end
313
331
 
314
332
  ## Customizing resource retrieval
315
333
 
316
- Our controllers are built on [Inherited Resources](https://github.com/activeadmin/inherited_resources),
317
- so you can use [all of its features](https://github.com/activeadmin/inherited_resources#overwriting-defaults).
334
+ Our controllers are built on [Inherited
335
+ Resources](https://github.com/activeadmin/inherited_resources), so you can use
336
+ [all of its
337
+ features](https://github.com/activeadmin/inherited_resources#overwriting-defaults).
318
338
 
319
- If you need to customize the collection properties, you can overwrite the `scoped_collection` method.
339
+ If you need to customize the collection properties, you can overwrite the
340
+ `scoped_collection` method.
320
341
 
321
342
  ```ruby
322
343
  ActiveAdmin.register Post do
@@ -328,8 +349,9 @@ ActiveAdmin.register Post do
328
349
  end
329
350
  ```
330
351
 
331
- If you need to completely replace the record retrieving code (e.g., you have a custom
332
- `to_param` implementation in your models), override the `resource` method on the controller:
352
+ If you need to completely replace the record retrieving code (e.g., you have a
353
+ custom `to_param` implementation in your models), override the `resource` method
354
+ on the controller:
333
355
 
334
356
  ```ruby
335
357
  ActiveAdmin.register Post do
@@ -341,8 +363,9 @@ ActiveAdmin.register Post do
341
363
  end
342
364
  ```
343
365
 
344
- Note that if you use an authorization library like CanCan, you should be careful to not
345
- write code like this, otherwise **your authorization rules won't be applied**:
366
+ Note that if you use an authorization library like CanCan, you should be careful
367
+ to not write code like this, otherwise **your authorization rules won't be
368
+ applied**:
346
369
 
347
370
  ```ruby
348
371
  ActiveAdmin.register Post do
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages.html
3
3
  ---
4
+
4
5
  # Customizing the Index Page
5
6
 
6
7
  Filtering and listing resources is one of the most important tasks for
@@ -80,7 +81,8 @@ end
80
81
 
81
82
  Out of the box, Active Admin supports the following filter types:
82
83
 
83
- * *:string* - A search field
84
+ * *:string* - A drop down for selecting "Contains", "Equals", "Starts with",
85
+ "Ends with" and an input for a value.
84
86
  * *:date_range* - A start and end date field with calendar inputs
85
87
  * *:numeric* - A drop down for selecting "Equal To", "Greater Than" or "Less
86
88
  Than" and an input for a value.
@@ -109,10 +111,12 @@ To override options for string or numeric filter pass `filters` option.
109
111
  filter :title, filters: [:starts_with, :ends_with]
110
112
  ```
111
113
 
112
- Also, if you don't need the select with the options 'contains', 'equals', 'starts_with' or 'ends_with'
113
- just add the option to the filter name with an underscore.
114
+ Also, if you don't need the select with the options 'contains', 'equals',
115
+ 'starts_with' or 'ends_with' just add the option to the filter name with an
116
+ underscore.
114
117
 
115
118
  For example:
119
+
116
120
  ```ruby
117
121
  filter :name_equals
118
122
  # or
@@ -127,9 +131,11 @@ filter :author, label: 'Something else'
127
131
 
128
132
  By default, Active Admin will try to use ActiveModel I18n to determine the label.
129
133
 
130
- You can also filter on more than one attribute of a model using the
131
- [Ransack search predicate syntax](https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching). If using a custom search method, you will
132
- also need to specify the field type using `:as` and the label.
134
+ You can also filter on more than one attribute of a model using the [Ransack
135
+ search predicate
136
+ syntax](https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching).
137
+ If using a custom search method, you will also need to specify the field type
138
+ using `:as` and the label.
133
139
 
134
140
  ```ruby
135
141
  filter :first_name_or_last_name_cont, as: :string, label: "Name"
@@ -181,8 +187,8 @@ remove_filter :id
181
187
  ## Index Scopes
182
188
 
183
189
  You can define custom scopes for your index page. This will add a tab bar above
184
- the index table to quickly filter your collection on pre-defined scopes. There are
185
- a number of ways to define your scopes:
190
+ the index table to quickly filter your collection on pre-defined scopes. There
191
+ are a number of ways to define your scopes:
186
192
 
187
193
  ```ruby
188
194
  scope :all, default: true
@@ -200,12 +206,13 @@ scope ->{ Date.today.strftime '%A' }, :published_today
200
206
  scope("Inactive") { |scope| scope.where(active: false) }
201
207
 
202
208
  # conditionally show a custom controller scope
203
- scope "Published", if: proc { current_admin_user.can? :manage, Posts } do |posts|
209
+ scope "Published", if: -> { current_admin_user.can? :manage, Posts } do |posts|
204
210
  posts.published
205
211
  end
206
212
  ```
207
213
 
208
- Scopes can be labelled with a translation, e.g. `activerecord.scopes.invoice.expired`.
214
+ Scopes can be labelled with a translation, e.g.
215
+ `activerecord.scopes.invoice.expired`.
209
216
 
210
217
  ## Index default sort order
211
218
 
@@ -235,6 +242,14 @@ ActiveAdmin.register Post do
235
242
  end
236
243
  ```
237
244
 
245
+ Or allow users to choose themselves using dropdown with values
246
+
247
+ ```ruby
248
+ ActiveAdmin.register Post do
249
+ config.per_page = [10, 50, 100]
250
+ end
251
+ ```
252
+
238
253
  You can change it per request / action too:
239
254
 
240
255
  ```ruby
@@ -288,6 +303,9 @@ ActiveAdmin.setup do |config|
288
303
  end
289
304
  ```
290
305
 
291
- Note: you have to actually implement PDF rendering for your action, ActiveAdmin does not provide this feature. This setting just allows you to specify formats that you want to show up under the index collection.
306
+ Note: you have to actually implement PDF rendering for your action, ActiveAdmin
307
+ does not provide this feature. This setting just allows you to specify formats
308
+ that you want to show up under the index collection.
292
309
 
293
- You'll need to use a PDF rendering library like PDFKit or WickedPDF to get the PDF generation you want.
310
+ You'll need to use a PDF rendering library like PDFKit or WickedPDF to get the
311
+ PDF generation you want.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/custom-index.html
3
3
  ---
4
+
4
5
  # Custom Index
5
6
 
6
7
  If the supplied Active Admin index components are insufficient for your project
@@ -1,11 +1,6 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/index-as-block.html
3
3
  ---
4
- <!--
5
- WARNING: Please DO NOT edit this file! Update
6
- source documentation in lib/active_admin/views
7
- and execute rake yard to regenerate it.
8
- -->
9
4
 
10
5
  # Index as a Block
11
6
 
@@ -1,11 +1,6 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/index-as-blog.html
3
3
  ---
4
- <!--
5
- WARNING: Please DO NOT edit this file! Update
6
- source documentation in lib/active_admin/views
7
- and execute rake yard to regenerate it.
8
- -->
9
4
 
10
5
  # Index as Blog
11
6
 
@@ -1,11 +1,6 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/index-as-grid.html
3
3
  ---
4
- <!--
5
- WARNING: Please DO NOT edit this file! Update
6
- source documentation in lib/active_admin/views
7
- and execute rake yard to regenerate it.
8
- -->
9
4
 
10
5
  # Index as a Grid
11
6
 
@@ -1,11 +1,6 @@
1
1
  ---
2
2
  redirect_from: /docs/3-index-pages/index-as-table.html
3
3
  ---
4
- <!--
5
- WARNING: Please DO NOT edit this file! Update
6
- source documentation in lib/active_admin/views
7
- and execute rake yard to regenerate it.
8
- -->
9
4
 
10
5
  # Index as a Table
11
6
 
@@ -89,8 +84,6 @@ index do
89
84
  column :title
90
85
  actions defaults: false do |post|
91
86
  item "View", admin_post_path(post)
92
- item "Edit", edit_admin_post_path(post)
93
- item "Delete", admin_post_path(post), method: :delete
94
87
  end
95
88
  end
96
89
  ```
@@ -167,7 +160,7 @@ index do
167
160
  end
168
161
  ```
169
162
 
170
- ## Custom sorting
163
+ ## Custom sorting
171
164
 
172
165
  It is also possible to use database specific expressions and options for sorting by column
173
166
 
@@ -208,7 +201,6 @@ index do
208
201
  end
209
202
  ```
210
203
 
211
-
212
204
  ## Showing and Hiding Columns
213
205
 
214
206
  The entire index block is rendered within the context of the view, so you can
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/4-csv-format.html
3
3
  ---
4
+
4
5
  # Customizing the CSV format
5
6
 
6
7
  Active Admin provides CSV file downloads on the index screen for each Resource.
@@ -43,6 +44,7 @@ config.csv_options = { force_quotes: true }
43
44
  ```
44
45
 
45
46
  You can customize the filename by overriding `csv_filename` in the controller block.
47
+
46
48
  ```ruby
47
49
  ActiveAdmin.register User do
48
50
  controller do
@@ -53,7 +55,6 @@ ActiveAdmin.register User do
53
55
  end
54
56
  ```
55
57
 
56
-
57
58
  ## Streaming
58
59
 
59
60
  By default Active Admin streams the CSV response to your browser as it's generated.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/5-forms.html
3
3
  ---
4
+
4
5
  # Forms
5
6
 
6
7
  Active Admin gives you complete control over the output of the form by creating
@@ -27,7 +28,7 @@ ActiveAdmin.register Post do
27
28
  end
28
29
  ```
29
30
 
30
- For more details, please see Formtastic's documentation.
31
+ For more details, please see [Formtastic's documentation](https://github.com/justinfrench/formtastic/wiki).
31
32
 
32
33
  ## Default
33
34
 
@@ -63,7 +64,8 @@ end
63
64
 
64
65
  This is a regular Rails partial so any template engine may be used.
65
66
 
66
- You can also use the `ActiveAdmin::FormBuilder` as builder in your Formtastic Form for use the same helpers are used in the admin file:
67
+ You can also use the `ActiveAdmin::FormBuilder` as builder in your Formtastic
68
+ Form for use the same helpers are used in the admin file:
67
69
 
68
70
  ```ruby
69
71
  = semantic_form_for [:admin, @post], builder: ActiveAdmin::FormBuilder do |f|
@@ -77,7 +79,8 @@ You can also use the `ActiveAdmin::FormBuilder` as builder in your Formtastic Fo
77
79
 
78
80
  ## Nested Resources
79
81
 
80
- You can create forms with nested models using the `has_many` method, even if your model uses `has_one`:
82
+ You can create forms with nested models using the `has_many` method, even if
83
+ your model uses `has_one`:
81
84
 
82
85
  ```ruby
83
86
  ActiveAdmin.register Post do
@@ -89,7 +92,9 @@ ActiveAdmin.register Post do
89
92
  end
90
93
  f.inputs 'Content', :body
91
94
  f.inputs do
92
- f.has_many :categories, heading: 'Themes', allow_destroy: true, new_record: false do |a|
95
+ f.has_many :categories, heading: 'Themes',
96
+ allow_destroy: true,
97
+ new_record: false do |a|
93
98
  a.input :title
94
99
  end
95
100
  end
@@ -99,8 +104,9 @@ ActiveAdmin.register Post do
99
104
  end
100
105
  end
101
106
  f.inputs do
102
- f.has_many :comment, new_record: 'Leave Comment',
103
- allow_destroy: proc { |comment| comment.author?(current_admin_user) } do |b|
107
+ f.has_many :comment,
108
+ new_record: 'Leave Comment',
109
+ allow_destroy: -> { |c| c.author?(current_admin_user) } do |b|
104
110
  b.input :body
105
111
  end
106
112
  end
@@ -112,27 +118,44 @@ end
112
118
 
113
119
  The `:allow_destroy` option adds a checkbox to the end of the nested form allowing
114
120
  removal of the child object upon submission. Be sure to set `allow_destroy: true`
115
- on the association to use this option. It is possible to associate `:allow_destroy` with a string or a symbol, corresponding to the name of a child object's method that will get called, or with a Proc object. The Proc object receives the child object as a parameter and should return either true or false.
121
+ on the association to use this option. It is possible to associate
122
+ `:allow_destroy` with a string or a symbol, corresponding to the name of a child
123
+ object's method that will get called, or with a Proc object. The Proc object
124
+ receives the child object as a parameter and should return either true or false.
116
125
 
117
- The `:heading` option adds a custom heading. You can hide it entirely by passing `false`.
126
+ The `:heading` option adds a custom heading. You can hide it entirely by passing
127
+ `false`.
118
128
 
119
- The `:new_record` option controls the visibility of the new record button (shown by default).
120
- If you pass a string, it will be used as the text for the new record button.
129
+ The `:new_record` option controls the visibility of the new record button (shown
130
+ by default). If you pass a string, it will be used as the text for the new
131
+ record button.
121
132
 
122
- The `:sortable` option adds a hidden field and will enable drag & drop sorting of the children. It
123
- expects the name of the column that will store the index of each child.
133
+ The `:sortable` option adds a hidden field and will enable drag & drop sorting
134
+ of the children. It expects the name of the column that will store the index of
135
+ each child.
124
136
 
125
- The `:sortable_start` option sets the value (0 by default) of the first position in the list.
137
+ The `:sortable_start` option sets the value (0 by default) of the first position
138
+ in the list.
126
139
 
127
140
  ## Datepicker
128
141
 
129
- ActiveAdmin offers the `datepicker` input, which uses the [jQuery UI datepicker](http://jqueryui.com/datepicker/).
130
- The datepicker input accepts any of the options available to the standard jQueryUI Datepicker. For example:
142
+ ActiveAdmin offers the `datepicker` input, which uses the [jQuery UI
143
+ datepicker](http://jqueryui.com/datepicker/). The datepicker input accepts any
144
+ of the options available to the standard jQueryUI Datepicker. For example:
131
145
 
132
146
  ```ruby
133
147
  form do |f|
134
- f.input :starts_at, as: :datepicker, datepicker_options: { min_date: "2013-10-8", max_date: "+3D" }
135
- f.input :ends_at, as: :datepicker, datepicker_options: { min_date: 3.days.ago.to_date, max_date: "+1W +5D" }
148
+ f.input :starts_at, as: :datepicker,
149
+ datepicker_options: {
150
+ min_date: "2013-10-8",
151
+ max_date: "+3D"
152
+ }
153
+
154
+ f.input :ends_at, as: :datepicker,
155
+ datepicker_options: {
156
+ min_date: 3.days.ago.to_date,
157
+ max_date: "+1W +5D"
158
+ }
136
159
  end
137
160
  ```
138
161
 
@@ -174,11 +197,12 @@ You can arrange content in tabs as shown below:
174
197
  end
175
198
  ```
176
199
 
177
- ## Customize the Create Another checkbox
200
+ # Customize the Create Another checkbox
201
+
202
+ In order to simplify creating multiple resources you may enable ActiveAdmin to
203
+ show nice "Create Another" checkbox alongside of Create Model button. It may be
204
+ enabled for the whole application:
178
205
 
179
- In order to simplify creating multiple resources you may enable ActiveAdmin to show nice "Create Another" checkbox alongside of Create Model
180
- button. It may be enabled for the whole application:
181
-
182
206
  ```ruby
183
207
  ActiveAdmin.setup do |config|
184
208
  config.create_another = true