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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +20 -0
- data/.mdlrc +1 -0
- data/.rubocop.yml +52 -3
- data/.simplecov +13 -0
- data/.travis.yml +9 -24
- data/.yardopts +0 -1
- data/CHANGELOG.md +85 -4
- data/CONTRIBUTING.md +33 -57
- data/Gemfile +26 -17
- data/Rakefile +1 -12
- data/activeadmin.gemspec +9 -11
- data/app/assets/javascripts/active_admin/base.js.coffee +6 -2
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +6 -3
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +9 -7
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +5 -2
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +6 -2
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +3 -5
- data/app/assets/stylesheets/active_admin/_base.scss +2 -2
- data/app/assets/stylesheets/active_admin/_forms.scss +6 -12
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -0
- data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
- data/app/assets/stylesheets/active_admin/print.scss +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_links.erb +12 -6
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/codecov.yml +14 -12
- data/config/i18n-tasks.yml +26 -0
- data/config/locales/ar.yml +1 -3
- data/config/locales/bg.yml +0 -2
- data/config/locales/bs.yml +0 -2
- data/config/locales/ca.yml +0 -2
- data/config/locales/cs.yml +0 -2
- data/config/locales/da.yml +1 -3
- data/config/locales/de-CH.yml +1 -3
- data/config/locales/de.yml +1 -3
- data/config/locales/el.yml +1 -3
- data/config/locales/en-CA.yml +138 -0
- data/config/locales/en-GB.yml +43 -3
- data/config/locales/en.yml +8 -4
- data/config/locales/es-MX.yml +3 -2
- data/config/locales/es.yml +10 -4
- data/config/locales/fa.yml +0 -2
- data/config/locales/fi.yml +0 -2
- data/config/locales/fr.yml +9 -2
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +0 -2
- data/config/locales/hu.yml +0 -2
- data/config/locales/id.yml +1 -3
- data/config/locales/it.yml +2 -4
- data/config/locales/ja.yml +1 -3
- data/config/locales/ko.yml +0 -2
- data/config/locales/lt.yml +24 -4
- data/config/locales/lv.yml +0 -2
- data/config/locales/nb.yml +0 -2
- data/config/locales/nl.yml +1 -3
- data/config/locales/pl.yml +3 -2
- data/config/locales/pt-BR.yml +1 -3
- data/config/locales/pt-PT.yml +0 -2
- data/config/locales/ro.yml +0 -2
- data/config/locales/ru.yml +1 -3
- data/config/locales/sk.yml +0 -2
- data/config/locales/sv-SE.yml +1 -3
- data/config/locales/tr.yml +0 -2
- data/config/locales/uk.yml +1 -3
- data/config/locales/vi.yml +0 -2
- data/config/locales/zh-CN.yml +0 -2
- data/config/locales/zh-TW.yml +1 -3
- data/config/mdl_style.rb +9 -0
- data/cucumber.yml +3 -3
- data/docs/0-installation.md +15 -12
- data/docs/1-general-configuration.md +10 -3
- data/docs/10-custom-pages.md +10 -5
- data/docs/11-decorators.md +1 -0
- data/docs/12-arbre-components.md +7 -9
- data/docs/13-authorization-adapter.md +39 -24
- data/docs/14-gotchas.md +41 -22
- data/docs/2-resource-customization.md +41 -18
- data/docs/3-index-pages.md +30 -12
- data/docs/3-index-pages/custom-index.md +1 -0
- data/docs/3-index-pages/index-as-block.md +0 -5
- data/docs/3-index-pages/index-as-blog.md +0 -5
- data/docs/3-index-pages/index-as-grid.md +0 -5
- data/docs/3-index-pages/index-as-table.md +1 -9
- data/docs/4-csv-format.md +2 -1
- data/docs/5-forms.md +45 -21
- data/docs/6-show-pages.md +2 -1
- data/docs/7-sidebars.md +2 -1
- data/docs/8-custom-actions.md +4 -1
- data/docs/9-batch-actions.md +4 -2
- data/docs/documentation.md +19 -21
- data/features/comments/commenting.feature +20 -0
- data/features/index/filters.feature +41 -1
- data/features/index/format_as_csv.feature +17 -0
- data/features/index/index_scopes.feature +15 -0
- data/features/registering_assets.feature +8 -4
- data/features/show/attributes_table_title.feature +54 -0
- data/features/show/tabs.feature +10 -4
- data/features/step_definitions/action_link_steps.rb +0 -1
- data/features/step_definitions/attributes_table_title_steps.rb +11 -0
- data/features/step_definitions/batch_action_steps.rb +2 -2
- data/features/step_definitions/comment_steps.rb +21 -1
- data/features/step_definitions/configuration_steps.rb +1 -1
- data/features/step_definitions/filter_steps.rb +9 -0
- data/features/step_definitions/format_steps.rb +1 -1
- data/features/step_definitions/index_scope_steps.rb +4 -0
- data/features/support/env.rb +5 -4
- data/features/support/regular_env.rb +7 -0
- data/features/support/reload_env.rb +7 -0
- data/gemfiles/rails_42.gemfile +2 -37
- data/gemfiles/rails_50.gemfile +5 -40
- data/gemfiles/rails_51.gemfile +5 -40
- data/lib/active_admin.rb +0 -3
- data/lib/active_admin/application.rb +6 -4
- data/lib/active_admin/asset_registration.rb +8 -0
- data/lib/active_admin/authorization_adapter.rb +0 -3
- data/lib/active_admin/base_controller.rb +1 -2
- data/lib/active_admin/base_controller/authorization.rb +0 -1
- data/lib/active_admin/base_controller/menu.rb +9 -9
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
- data/lib/active_admin/csv_builder.rb +3 -3
- data/lib/active_admin/dependency.rb +1 -1
- data/lib/active_admin/devise.rb +2 -2
- data/lib/active_admin/dsl.rb +2 -2
- data/lib/active_admin/filters.rb +2 -0
- data/lib/active_admin/filters/active.rb +13 -14
- data/lib/active_admin/filters/active_filter.rb +87 -0
- data/lib/active_admin/filters/active_sidebar.rb +50 -0
- data/lib/active_admin/filters/forms.rb +1 -2
- data/lib/active_admin/filters/resource_extension.rb +2 -30
- data/lib/active_admin/helpers/settings.rb +0 -1
- data/lib/active_admin/inputs/datepicker_input.rb +5 -5
- data/lib/active_admin/inputs/filters/date_range_input.rb +12 -4
- data/lib/active_admin/inputs/filters/text_input.rb +0 -1
- data/lib/active_admin/menu.rb +4 -4
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/namespace.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/comment.rb +1 -5
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -2
- data/lib/active_admin/page_controller.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +4 -0
- data/lib/active_admin/resource/attributes.rb +1 -1
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +0 -1
- data/lib/active_admin/resource/scopes.rb +2 -1
- data/lib/active_admin/resource_controller.rb +1 -1
- data/lib/active_admin/resource_controller/data_access.rb +8 -9
- data/lib/active_admin/resource_dsl.rb +10 -10
- data/lib/active_admin/router.rb +1 -1
- data/lib/active_admin/scope.rb +3 -3
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +1 -0
- data/lib/active_admin/view_helpers/display_helper.rb +1 -1
- data/lib/active_admin/view_helpers/form_helper.rb +1 -1
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +1 -1
- data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
- data/lib/active_admin/views/components/index_list.rb +0 -2
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +2 -10
- data/lib/active_admin/views/components/status_tag.rb +19 -11
- data/lib/active_admin/views/components/tabs.rb +2 -2
- data/lib/active_admin/views/header.rb +0 -1
- data/lib/active_admin/views/index_as_blog.rb +1 -2
- data/lib/active_admin/views/index_as_grid.rb +2 -2
- data/lib/active_admin/views/index_as_table.rb +19 -1
- data/lib/active_admin/views/pages/base.rb +4 -4
- data/lib/active_admin/views/pages/show.rb +6 -1
- data/lib/active_admin/views/title_bar.rb +4 -4
- data/lib/bug_report_templates/{rails_5_master.rb → active_admin_master.rb} +35 -40
- data/lib/generators/active_admin/devise/devise_generator.rb +1 -1
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +1 -1
- data/spec/bug_report_templates_spec.rb +2 -3
- data/spec/rails_helper.rb +0 -3
- data/spec/spec_helper.rb +1 -12
- data/spec/support/active_admin_integration_spec_helper.rb +1 -1
- data/spec/support/rails_template.rb +5 -37
- data/spec/support/rails_template_with_data.rb +262 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +1 -1
- data/spec/support/templates/policies/active_admin/page_policy.rb +1 -1
- data/spec/support/templates/policies/application_policy.rb +1 -2
- data/spec/support/templates/post_decorator.rb +0 -1
- data/spec/unit/abstract_view_factory_spec.rb +0 -1
- data/spec/unit/application_spec.rb +4 -0
- data/spec/unit/asset_registration_spec.rb +29 -0
- data/spec/unit/belongs_to_spec.rb +1 -2
- data/spec/unit/config_shared_examples.rb +1 -1
- data/spec/unit/csv_builder_spec.rb +2 -4
- data/spec/unit/dependency_spec.rb +7 -7
- data/spec/unit/dsl_spec.rb +0 -2
- data/spec/unit/filters/active_filter_spec.rb +135 -0
- data/spec/unit/filters/active_spec.rb +11 -1
- data/spec/unit/filters/filter_form_builder_spec.rb +9 -7
- data/spec/unit/form_builder_spec.rb +14 -14
- data/spec/unit/helpers/scope_chain_spec.rb +0 -1
- data/spec/unit/i18n_spec.rb +17 -0
- data/spec/unit/menu_item_spec.rb +1 -3
- data/spec/unit/namespace/register_page_spec.rb +1 -1
- data/spec/unit/namespace_spec.rb +0 -1
- data/spec/unit/page_spec.rb +0 -3
- data/spec/unit/resource/action_items_spec.rb +5 -1
- data/spec/unit/resource/attributes_spec.rb +1 -2
- data/spec/unit/resource/ordering_spec.rb +0 -3
- data/spec/unit/resource/scopes_spec.rb +1 -1
- data/spec/unit/resource_controller/data_access_spec.rb +2 -2
- data/spec/unit/resource_controller_spec.rb +1 -2
- data/spec/unit/resource_spec.rb +9 -2
- data/spec/unit/routing_spec.rb +0 -2
- data/spec/unit/scope_spec.rb +3 -3
- data/spec/unit/settings_spec.rb +0 -1
- data/spec/unit/view_factory_spec.rb +1 -1
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -1
- data/spec/unit/view_helpers/form_helper_spec.rb +3 -4
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -1
- data/spec/unit/views/components/attributes_table_spec.rb +0 -1
- data/spec/unit/views/components/columns_spec.rb +0 -2
- data/spec/unit/views/components/site_title_spec.rb +0 -2
- data/spec/unit/views/components/status_tag_spec.rb +23 -7
- data/spec/unit/views/components/tabs_spec.rb +29 -1
- data/spec/unit/views/pages/index_spec.rb +1 -1
- data/tasks/docs.rake +37 -10
- data/tasks/lint.rake +14 -1
- data/tasks/local.rake +2 -2
- data/tasks/test.rake +8 -25
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +62 -51
- data/.hound.yml +0 -14
- data/Appraisals +0 -41
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
- data/lib/active_admin/filters/humanized.rb +0 -68
- data/spec/requests/javascript_spec.rb +0 -22
- data/spec/support/jslint.yml +0 -80
- data/spec/unit/filters/humanized_spec.rb +0 -64
- 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
|
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
|
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
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
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",
|
266
|
-
|
267
|
-
|
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
|
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
|
317
|
-
|
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
|
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
|
332
|
-
`to_param` implementation in your models), override the `resource` method
|
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
|
345
|
-
write code like this, otherwise **your authorization rules won't be
|
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
|
data/docs/3-index-pages.md
CHANGED
@@ -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* -
|
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',
|
113
|
-
just add the option to the filter name with an
|
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
|
-
|
132
|
-
|
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
|
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:
|
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.
|
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
|
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
|
310
|
+
You'll need to use a PDF rendering library like PDFKit or WickedPDF to get the
|
311
|
+
PDF generation you want.
|
@@ -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
|
data/docs/4-csv-format.md
CHANGED
@@ -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.
|
data/docs/5-forms.md
CHANGED
@@ -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
|
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
|
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',
|
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,
|
103
|
-
|
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
|
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
|
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
|
120
|
-
If you pass a string, it will be used as the text for the new
|
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
|
123
|
-
expects the name of the column that will store the index of
|
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
|
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
|
130
|
-
The datepicker input accepts any
|
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,
|
135
|
-
|
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
|
-
|
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
|