activeadmin 0.6.6 → 1.0.0.pre1
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/.gitignore +11 -8
- data/.hound.yml +11 -0
- data/.travis.yml +36 -10
- data/.yardopts +2 -1
- data/CHANGELOG.md +118 -67
- data/CONTRIBUTING.md +96 -73
- data/Gemfile +35 -35
- data/Guardfile +1 -0
- data/LICENSE +1 -1
- data/README.md +98 -0
- data/Rakefile +12 -4
- data/activeadmin.gemspec +21 -24
- data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
- data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
- data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
- data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
- data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
- data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
- data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
- data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
- data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
- data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
- data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
- data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
- data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
- data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
- data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
- data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
- data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
- data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
- data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
- data/app/views/active_admin/devise/shared/_links.erb +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
- data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
- data/config/locales/ar.yml +120 -0
- data/config/locales/bg.yml +26 -6
- data/config/locales/bs.yml +122 -0
- data/config/locales/ca.yml +10 -1
- data/config/locales/cs.yml +7 -2
- data/config/locales/da.yml +7 -3
- data/config/locales/de-CH.yml +14 -31
- data/config/locales/de.yml +33 -33
- data/config/locales/el.yml +28 -2
- data/config/locales/en-GB.yml +12 -4
- data/config/locales/en.yml +29 -3
- data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
- data/config/locales/es.yml +32 -25
- data/config/locales/fa.yml +120 -0
- data/config/locales/fi.yml +113 -0
- data/config/locales/fr.yml +21 -11
- data/config/locales/he.yml +7 -3
- data/config/locales/hr.yml +42 -11
- data/config/locales/hu.yml +10 -3
- data/config/locales/it.yml +31 -3
- data/config/locales/ja.yml +8 -3
- data/config/locales/ko.yml +7 -1
- data/config/locales/lt.yml +42 -11
- data/config/locales/lv.yml +7 -3
- data/config/locales/{no-NB.yml → nb.yml} +46 -15
- data/config/locales/nl.yml +36 -5
- data/config/locales/pl.yml +13 -8
- data/config/locales/pt-BR.yml +37 -5
- data/config/locales/pt-PT.yml +8 -4
- data/config/locales/ro.yml +7 -3
- data/config/locales/ru.yml +26 -5
- data/config/locales/sv-SE.yml +9 -5
- data/config/locales/tr.yml +10 -3
- data/config/locales/uk.yml +36 -12
- data/config/locales/vi.yml +7 -3
- data/config/locales/zh-CN.yml +26 -10
- data/config/locales/zh-TW.yml +19 -13
- data/docs/0-installation.md +65 -29
- data/docs/1-general-configuration.md +92 -81
- data/docs/10-custom-pages.md +68 -68
- data/docs/11-decorators.md +48 -59
- data/docs/12-arbre-components.md +80 -74
- data/docs/13-authorization-adapter.md +128 -107
- data/docs/14-gotchas.md +92 -0
- data/docs/2-resource-customization.md +293 -178
- data/docs/3-index-pages.md +160 -86
- data/docs/3-index-pages/custom-index.md +31 -0
- data/docs/3-index-pages/index-as-block.md +14 -9
- data/docs/3-index-pages/index-as-blog.md +41 -31
- data/docs/3-index-pages/index-as-grid.md +16 -8
- data/docs/3-index-pages/index-as-table.md +129 -52
- data/docs/4-csv-format.md +31 -24
- data/docs/5-forms.md +133 -56
- data/docs/6-show-pages.md +89 -27
- data/docs/7-sidebars.md +48 -27
- data/docs/8-custom-actions.md +98 -77
- data/docs/9-batch-actions.md +210 -146
- data/docs/README.md +24 -0
- data/features/action_item.feature +3 -3
- data/features/authorization_pundit.feature +37 -0
- data/features/breadcrumb.feature +48 -0
- data/features/comments/commenting.feature +56 -13
- data/features/development_reloading.feature +17 -30
- data/features/edit_page.feature +12 -1
- data/features/favicon.feature +3 -3
- data/features/i18n.feature +5 -4
- data/features/index/batch_actions.feature +41 -0
- data/features/index/filters.feature +67 -0
- data/features/index/format_as_csv.feature +90 -4
- data/features/index/formats.feature +27 -0
- data/features/index/index_as_blog.feature +4 -4
- data/features/index/index_as_table.feature +102 -6
- data/features/index/index_blank_slate.feature +22 -0
- data/features/index/index_scope_to.feature +16 -16
- data/features/index/page_title.feature +11 -0
- data/features/index/pagination.feature +1 -1
- data/features/index/switch_index_view.feature +14 -14
- data/features/new_page.feature +13 -2
- data/features/registering_pages.feature +1 -1
- data/features/renamed_resource.feature +32 -0
- data/features/show/page_title.feature +11 -0
- data/features/show/tabs.feature +27 -0
- data/features/sidebar_sections.feature +12 -0
- data/features/site_title.feature +2 -2
- data/features/specifying_actions.feature +3 -3
- data/features/step_definitions/action_item_steps.rb +2 -2
- data/features/step_definitions/action_link_steps.rb +14 -1
- data/features/step_definitions/additional_web_steps.rb +19 -20
- data/features/step_definitions/asset_steps.rb +3 -3
- data/features/step_definitions/attribute_steps.rb +8 -3
- data/features/step_definitions/batch_action_steps.rb +26 -9
- data/features/step_definitions/blog_steps.rb +3 -0
- data/features/step_definitions/breadcrumb_steps.rb +1 -1
- data/features/step_definitions/comment_steps.rb +1 -1
- data/features/step_definitions/configuration_steps.rb +9 -2
- data/features/step_definitions/dashboard_steps.rb +2 -2
- data/features/step_definitions/factory_steps.rb +9 -8
- data/features/step_definitions/filter_steps.rb +25 -3
- data/features/step_definitions/flash_steps.rb +3 -3
- data/features/step_definitions/format_steps.rb +18 -18
- data/features/step_definitions/index_scope_steps.rb +5 -5
- data/features/step_definitions/layout_steps.rb +1 -1
- data/features/step_definitions/member_link_steps.rb +2 -2
- data/features/step_definitions/menu_steps.rb +3 -3
- data/features/step_definitions/pagination_steps.rb +2 -3
- data/features/step_definitions/sidebar_steps.rb +8 -3
- data/features/step_definitions/site_title_steps.rb +6 -4
- data/features/step_definitions/symbol_leak_steps.rb +3 -0
- data/features/step_definitions/tab_steps.rb +5 -0
- data/features/step_definitions/table_steps.rb +4 -4
- data/features/step_definitions/user_steps.rb +10 -7
- data/features/step_definitions/web_steps.rb +14 -11
- data/features/sti_resource.feature +6 -2
- data/features/strong_parameters.feature +73 -0
- data/features/support/env.rb +34 -9
- data/features/support/paths.rb +14 -6
- data/features/support/selectors.rb +1 -1
- data/features/symbol_leak.feature +35 -0
- data/features/users/resetting_password.feature +5 -6
- data/lib/active_admin.rb +26 -25
- data/lib/active_admin/abstract_view_factory.rb +7 -17
- data/lib/active_admin/application.rb +72 -59
- data/lib/active_admin/asset_registration.rb +2 -2
- data/lib/active_admin/authorization_adapter.rb +2 -2
- data/lib/active_admin/base_controller.rb +2 -3
- data/lib/active_admin/base_controller/authorization.rb +13 -31
- data/lib/active_admin/batch_actions.rb +1 -1
- data/lib/active_admin/batch_actions/controller.rb +24 -8
- data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
- data/lib/active_admin/callbacks.rb +25 -24
- data/lib/active_admin/cancan_adapter.rb +7 -11
- data/lib/active_admin/csv_builder.rb +92 -15
- data/lib/active_admin/dependency.rb +93 -0
- data/lib/active_admin/deprecation.rb +6 -7
- data/lib/active_admin/devise.rb +28 -18
- data/lib/active_admin/dsl.rb +18 -11
- data/lib/active_admin/engine.rb +10 -8
- data/lib/active_admin/error.rb +62 -0
- data/lib/active_admin/filters/dsl.rb +2 -2
- data/lib/active_admin/filters/forms.rb +17 -27
- data/lib/active_admin/filters/formtastic_addons.rb +49 -15
- data/lib/active_admin/filters/resource_extension.rb +43 -34
- data/lib/active_admin/form_builder.rb +93 -154
- data/lib/active_admin/helpers/collection.rb +7 -13
- data/lib/active_admin/helpers/i18n.rb +7 -0
- data/lib/active_admin/helpers/optional_display.rb +5 -5
- data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -1
- data/lib/active_admin/helpers/settings.rb +16 -9
- data/lib/active_admin/iconic.rb +17 -15
- data/lib/active_admin/iconic/icons.rb +136 -136
- data/lib/active_admin/inputs.rb +11 -7
- data/lib/active_admin/inputs/datepicker_input.rb +12 -3
- data/lib/active_admin/inputs/filters/base.rb +42 -0
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
- data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
- data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
- data/lib/active_admin/inputs/filters/select_input.rb +54 -0
- data/lib/active_admin/inputs/filters/string_input.rb +26 -0
- data/lib/active_admin/menu.rb +6 -4
- data/lib/active_admin/menu_collection.rb +1 -4
- data/lib/active_admin/namespace.rb +55 -29
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +5 -0
- data/lib/active_admin/orm/active_record/comments.rb +81 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
- data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
- data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
- data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
- data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
- data/lib/active_admin/page.rb +7 -3
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -2
- data/lib/active_admin/pundit_adapter.rb +68 -0
- data/lib/active_admin/resource.rb +16 -17
- data/lib/active_admin/resource/action_items.rb +23 -18
- data/lib/active_admin/resource/belongs_to.rb +7 -3
- data/lib/active_admin/resource/controllers.rb +1 -0
- data/lib/active_admin/resource/includes.rb +12 -0
- data/lib/active_admin/resource/menu.rb +5 -5
- data/lib/active_admin/resource/naming.rb +27 -43
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +27 -11
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/sidebars.rb +1 -0
- data/lib/active_admin/resource_controller.rb +6 -7
- data/lib/active_admin/resource_controller/data_access.rb +101 -93
- data/lib/active_admin/resource_controller/decorators.rb +91 -9
- data/lib/active_admin/resource_controller/streaming.rb +37 -0
- data/lib/active_admin/resource_dsl.rb +53 -10
- data/lib/active_admin/router.rb +7 -7
- data/lib/active_admin/scope.rb +6 -6
- data/lib/active_admin/sidebar_section.rb +10 -2
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +17 -17
- data/lib/active_admin/view_helpers.rb +0 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
- data/lib/active_admin/view_helpers/display_helper.rb +30 -15
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
- data/lib/active_admin/view_helpers/fields_for.rb +4 -4
- data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
- data/lib/active_admin/view_helpers/form_helper.rb +5 -9
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
- data/lib/active_admin/views/action_items.rb +2 -2
- data/lib/active_admin/views/components/action_list_popover.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +123 -0
- data/lib/active_admin/views/components/attributes_table.rb +63 -21
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/columns.rb +13 -7
- data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
- data/lib/active_admin/views/components/index_list.rb +7 -7
- data/lib/active_admin/views/components/paginated_collection.rb +38 -20
- data/lib/active_admin/views/components/panel.rb +8 -2
- data/lib/active_admin/views/components/popover.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +5 -4
- data/lib/active_admin/views/components/sidebar_section.rb +3 -2
- data/lib/active_admin/views/components/site_title.rb +2 -2
- data/lib/active_admin/views/components/status_tag.rb +34 -11
- data/lib/active_admin/views/components/table_for.rb +90 -45
- data/lib/active_admin/views/components/tabs.rb +28 -0
- data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
- data/lib/active_admin/views/footer.rb +3 -3
- data/lib/active_admin/views/header.rb +3 -3
- data/lib/active_admin/views/index_as_block.rb +10 -10
- data/lib/active_admin/views/index_as_blog.rb +45 -39
- data/lib/active_admin/views/index_as_grid.rb +14 -10
- data/lib/active_admin/views/index_as_table.rb +242 -129
- data/lib/active_admin/views/pages/base.rb +22 -18
- data/lib/active_admin/views/pages/form.rb +21 -11
- data/lib/active_admin/views/pages/index.rb +40 -35
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +4 -4
- data/lib/active_admin/views/tabbed_navigation.rb +7 -3
- data/lib/active_admin/views/title_bar.rb +10 -8
- data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
- data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
- data/lib/generators/active_admin/install/install_generator.rb +8 -9
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
- data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
- data/lib/generators/active_admin/page/USAGE +8 -0
- data/lib/generators/active_admin/page/page_generator.rb +12 -0
- data/lib/generators/active_admin/page/templates/page.rb +5 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
- data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
- data/lib/ransack_ext.rb +12 -0
- data/script/local +2 -2
- data/script/travis_cache +107 -0
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
- data/spec/javascripts/fixtures/flashes.html +2 -0
- data/spec/rails_helper.rb +154 -0
- data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
- data/spec/{integration → requests}/javascript_spec.rb +5 -5
- data/spec/requests/memory_spec.rb +23 -0
- data/spec/requests/stylesheets_spec.rb +18 -0
- data/spec/spec_helper.rb +12 -173
- data/spec/support/detect_rails_version.rb +9 -17
- data/spec/support/rails_template.rb +64 -35
- data/spec/support/rails_template_with_data.rb +14 -14
- data/spec/support/templates/admin/stores.rb +5 -1
- data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
- data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
- data/spec/support/templates/policies/admin_user_policy.rb +11 -0
- data/spec/support/templates/policies/application_policy.rb +45 -0
- data/spec/support/templates/policies/category_policy.rb +7 -0
- data/spec/support/templates/policies/post_policy.rb +15 -0
- data/spec/support/templates/policies/store_policy.rb +11 -0
- data/spec/support/templates/policies/user_policy.rb +11 -0
- data/spec/support/templates/post_decorator.rb +4 -46
- data/spec/unit/abstract_view_factory_spec.rb +16 -16
- data/spec/unit/action_builder_spec.rb +24 -18
- data/spec/unit/active_admin_spec.rb +2 -2
- data/spec/unit/application_spec.rb +33 -34
- data/spec/unit/asset_registration_spec.rb +25 -29
- data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
- data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
- data/spec/unit/authorization/index_overriding_spec.rb +22 -0
- data/spec/unit/auto_link_spec.rb +43 -13
- data/spec/unit/batch_actions/resource_spec.rb +15 -14
- data/spec/unit/batch_actions/settings_spec.rb +18 -18
- data/spec/unit/belongs_to_spec.rb +28 -19
- data/spec/unit/cancan_adapter_spec.rb +8 -8
- data/spec/unit/comments_spec.rb +99 -39
- data/spec/unit/component_spec.rb +3 -3
- data/spec/unit/config_shared_examples.rb +10 -10
- data/spec/unit/controller_filters_spec.rb +23 -16
- data/spec/unit/csv_builder_spec.rb +165 -24
- data/spec/unit/dependency_spec.rb +135 -0
- data/spec/unit/devise_spec.rb +17 -37
- data/spec/unit/dsl_spec.rb +70 -9
- data/spec/unit/event_spec.rb +11 -11
- data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
- data/spec/unit/filters/resource_spec.rb +60 -26
- data/spec/unit/form_builder_spec.rb +419 -145
- data/spec/unit/generators/install_spec.rb +23 -0
- data/spec/unit/helpers/collection_spec.rb +18 -18
- data/spec/unit/helpers/scope_chain_spec.rb +6 -6
- data/spec/unit/helpers/settings_spec.rb +4 -4
- data/spec/unit/i18n_spec.rb +12 -0
- data/spec/unit/menu_collection_spec.rb +14 -14
- data/spec/unit/menu_item_spec.rb +42 -42
- data/spec/unit/menu_spec.rb +20 -20
- data/spec/unit/namespace/authorization_spec.rb +8 -8
- data/spec/unit/namespace/register_page_spec.rb +11 -11
- data/spec/unit/namespace/register_resource_spec.rb +28 -30
- data/spec/unit/namespace_spec.rb +20 -20
- data/spec/unit/order_clause_spec.rb +81 -0
- data/spec/unit/page_controller_spec.rb +1 -1
- data/spec/unit/page_spec.rb +18 -12
- data/spec/unit/pretty_format_spec.rb +42 -14
- data/spec/unit/pundit_adapter_spec.rb +98 -0
- data/spec/unit/resource/action_items_spec.rb +15 -12
- data/spec/unit/resource/includes_spec.rb +21 -0
- data/spec/unit/resource/menu_spec.rb +1 -1
- data/spec/unit/resource/naming_spec.rb +35 -21
- data/spec/unit/resource/page_presenters_spec.rb +8 -8
- data/spec/unit/resource/pagination_spec.rb +6 -6
- data/spec/unit/resource/routes_spec.rb +10 -10
- data/spec/unit/resource/scopes_spec.rb +14 -7
- data/spec/unit/resource/sidebars_spec.rb +6 -6
- data/spec/unit/resource_collection_spec.rb +31 -38
- data/spec/unit/resource_controller/data_access_spec.rb +96 -30
- data/spec/unit/resource_controller/decorators_spec.rb +83 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
- data/spec/unit/resource_controller_spec.rb +73 -70
- data/spec/unit/resource_registration_spec.rb +12 -12
- data/spec/unit/resource_spec.rb +77 -42
- data/spec/unit/routing_spec.rb +39 -31
- data/spec/unit/scope_spec.rb +112 -30
- data/spec/unit/settings_spec.rb +51 -21
- data/spec/unit/view_factory_spec.rb +2 -3
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
- data/spec/unit/view_helpers/display_name_spec.rb +49 -21
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
- data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
- data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
- data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
- data/spec/unit/views/components/attributes_table_spec.rb +171 -30
- data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
- data/spec/unit/views/components/blank_slate_spec.rb +14 -4
- data/spec/unit/views/components/columns_spec.rb +52 -22
- data/spec/unit/views/components/index_list_spec.rb +11 -8
- data/spec/unit/views/components/index_table_for_spec.rb +46 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
- data/spec/unit/views/components/panel_spec.rb +32 -21
- data/spec/unit/views/components/popover_spec.rb +7 -7
- data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
- data/spec/unit/views/components/site_title_spec.rb +26 -26
- data/spec/unit/views/components/status_tag_spec.rb +178 -38
- data/spec/unit/views/components/table_for_spec.rb +237 -35
- data/spec/unit/views/components/tabs_spec.rb +39 -0
- data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
- data/spec/unit/views/pages/form_spec.rb +17 -10
- data/spec/unit/views/pages/index_spec.rb +60 -0
- data/spec/unit/views/pages/layout_spec.rb +17 -21
- data/spec/unit/views/pages/show_spec.rb +18 -6
- data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
- data/tasks/docs.rake +9 -11
- data/tasks/parallel_tests.rake +8 -2
- data/tasks/test.rake +13 -9
- data/tasks/yard.rake +7 -4
- metadata +219 -163
- data/.document +0 -5
- data/README.rdoc +0 -88
- data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/javascripts/active_admin/application.js +0 -3
- data/app/assets/javascripts/active_admin/base.js +0 -5
- data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
- data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
- data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
- data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
- data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
- data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
- data/app/views/active_admin/dashboard/index.html.arb +0 -1
- data/app/views/active_admin/resource/index.csv.erb +0 -23
- data/docs/3-index-pages/create-an-index.md +0 -29
- data/lib/active_admin/comments.rb +0 -83
- data/lib/active_admin/comments/comment.rb +0 -42
- data/lib/active_admin/comments/views.rb +0 -2
- data/lib/active_admin/dependency_checker.rb +0 -46
- data/lib/active_admin/inputs/filter_base.rb +0 -33
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
- data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
- data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
- data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
- data/lib/active_admin/inputs/filter_select_input.rb +0 -49
- data/lib/active_admin/inputs/filter_string_input.rb +0 -24
- data/lib/active_admin/reloader.rb +0 -130
- data/lib/active_admin/resource_controller/actions.rb +0 -81
- data/lib/active_admin/sass/active_admin.scss +0 -3
- data/lib/active_admin/sass/css_loader.rb +0 -16
- data/lib/active_admin/sass/helpers.rb +0 -45
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
- data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
- data/lib/active_admin/views/pages/dashboard.rb +0 -62
- data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
- data/lib/meta_search_ext.rb +0 -10
- data/spec/integration/memory_spec.rb +0 -29
- data/spec/integration/stylesheets_spec.rb +0 -41
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
- data/spec/javascripts/support/jquery.min.js +0 -4
- data/spec/spec_helper_without_rails.rb +0 -11
- data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
- data/spec/unit/rails_spec.rb +0 -43
- data/spec/unit/reloader_spec.rb +0 -124
- data/spec/unit/sass/helpers_spec.rb +0 -47
- data/tasks/js.rake +0 -32
@@ -1,4 +1,8 @@
|
|
1
|
-
<!--
|
1
|
+
<!--
|
2
|
+
WARNING: Please DO NOT edit this file! Update
|
3
|
+
source documentation in lib/active_admin/views
|
4
|
+
and execute rake yard to regenerate it.
|
5
|
+
-->
|
2
6
|
|
3
7
|
# Index as a Grid
|
4
8
|
|
@@ -6,16 +10,20 @@ Sometimes you want to display the index screen for a set of resources as a grid
|
|
6
10
|
(possibly a grid of thumbnail images). To do so, use the :grid option for the
|
7
11
|
index block.
|
8
12
|
|
9
|
-
|
10
|
-
|
11
|
-
|
13
|
+
```ruby
|
14
|
+
index as: :grid do |product|
|
15
|
+
link_to image_tag(product.image_path), admin_product_path(product)
|
16
|
+
end
|
17
|
+
```
|
12
18
|
|
13
19
|
The block is rendered within a cell in the grid once for each resource in the
|
14
20
|
collection. The resource is passed into the block for you to use in the view.
|
15
21
|
|
16
|
-
You can customize the number of
|
22
|
+
You can customize the number of columns that are rendered using the columns
|
17
23
|
option:
|
18
24
|
|
19
|
-
|
20
|
-
|
21
|
-
|
25
|
+
```ruby
|
26
|
+
index as: :grid, columns: 5 do |product|
|
27
|
+
link_to image_tag(product.image_path), admin_product_path(product)
|
28
|
+
end
|
29
|
+
```
|
@@ -1,4 +1,8 @@
|
|
1
|
-
<!--
|
1
|
+
<!--
|
2
|
+
WARNING: Please DO NOT edit this file! Update
|
3
|
+
source documentation in lib/active_admin/views
|
4
|
+
and execute rake yard to regenerate it.
|
5
|
+
-->
|
2
6
|
|
3
7
|
# Index as a Table
|
4
8
|
|
@@ -11,22 +15,30 @@ displayed.
|
|
11
15
|
To display an attribute or a method on a resource, simply pass a symbol into the
|
12
16
|
column method:
|
13
17
|
|
14
|
-
|
15
|
-
|
16
|
-
|
18
|
+
```ruby
|
19
|
+
index do
|
20
|
+
selectable_column
|
21
|
+
column :title
|
22
|
+
end
|
23
|
+
```
|
17
24
|
|
18
25
|
For association columns we make an educated guess on what to display by
|
19
26
|
calling the following methods in the following order:
|
20
27
|
|
21
|
-
|
28
|
+
```ruby
|
29
|
+
:display_name, :full_name, :name, :username, :login, :title, :email, :to_s
|
30
|
+
```
|
22
31
|
|
23
|
-
This can be customized in config/initializers/active_admin.rb
|
32
|
+
This can be customized in `config/initializers/active_admin.rb`.
|
24
33
|
|
25
34
|
If the default title does not work for you, pass it as the first argument:
|
26
35
|
|
27
|
-
|
28
|
-
|
29
|
-
|
36
|
+
```ruby
|
37
|
+
index do
|
38
|
+
selectable_column
|
39
|
+
column "My Custom Title", :title
|
40
|
+
end
|
41
|
+
```
|
30
42
|
|
31
43
|
Sometimes that just isn't enough and you need to write some view-specific code.
|
32
44
|
For example, say we wanted a "Title" column that links to the posts admin screen.
|
@@ -34,36 +46,70 @@ For example, say we wanted a "Title" column that links to the posts admin screen
|
|
34
46
|
`column` accepts a block that will be rendered for each of the objects in the collection.
|
35
47
|
The block is called once for each resource, which is passed as an argument to the block.
|
36
48
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
49
|
+
```ruby
|
50
|
+
index do
|
51
|
+
selectable_column
|
52
|
+
column "Title" do |post|
|
53
|
+
link_to post.title, admin_post_path(post)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
```
|
42
57
|
|
43
58
|
To setup links to View, Edit and Delete a resource, use the `actions` method:
|
44
59
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
60
|
+
```ruby
|
61
|
+
index do
|
62
|
+
selectable_column
|
63
|
+
column :title
|
64
|
+
actions
|
65
|
+
end
|
66
|
+
```
|
49
67
|
|
50
68
|
You can also append custom links to the default links:
|
51
69
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
70
|
+
```ruby
|
71
|
+
index do
|
72
|
+
selectable_column
|
73
|
+
column :title
|
74
|
+
actions do |post|
|
75
|
+
item "Preview", admin_preview_post_path(post), class: "member_link"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
```
|
58
79
|
|
59
80
|
Or forego the default links entirely:
|
60
81
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
82
|
+
```ruby
|
83
|
+
index do
|
84
|
+
column :title
|
85
|
+
actions defaults: false do |post|
|
86
|
+
item "View", admin_post_path(post)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
```
|
90
|
+
|
91
|
+
Or append custom action with custom html via arbre:
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
index do
|
95
|
+
column :title
|
96
|
+
actions do |post|
|
97
|
+
a link_to "View", admin_post_path(post)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
```
|
101
|
+
|
102
|
+
In case you prefer to list actions links in a dropdown menu:
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
index do
|
106
|
+
selectable_column
|
107
|
+
column :title
|
108
|
+
actions dropdown: true do |post|
|
109
|
+
item "Preview", admin_preview_post_path(post)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
```
|
67
113
|
|
68
114
|
## Sorting
|
69
115
|
|
@@ -74,17 +120,33 @@ Active Admin a hint for how to sort the table.
|
|
74
120
|
If a column is defined using a block, you must pass the key to turn on sorting. The key
|
75
121
|
is the attribute which gets used to sort objects using Active Record.
|
76
122
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
123
|
+
By default, this is the column on the resource's table that the attribute corresponds to.
|
124
|
+
Otherwise, any attribute that the resource collection responds to can be used.
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
index do
|
128
|
+
column :title, sortable: :title do |post|
|
129
|
+
link_to post.title, admin_post_path(post)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
```
|
82
133
|
|
83
134
|
You can turn off sorting on any column by passing false:
|
84
135
|
|
85
|
-
|
86
|
-
|
87
|
-
|
136
|
+
```ruby
|
137
|
+
index do
|
138
|
+
column :title, sortable: false
|
139
|
+
end
|
140
|
+
```
|
141
|
+
|
142
|
+
It's also possible to sort by PostgreSQL's hstore column key. You should set `sortable`
|
143
|
+
option to a `column->'key'` value:
|
144
|
+
|
145
|
+
```ruby
|
146
|
+
index do
|
147
|
+
column :keywords, sortable: "meta->'keywords'"
|
148
|
+
end
|
149
|
+
```
|
88
150
|
|
89
151
|
## Associated Sorting
|
90
152
|
|
@@ -93,17 +155,21 @@ can't sort by associated objects. Though with a few simple changes, you can.
|
|
93
155
|
|
94
156
|
Assuming you're on the Books index page, and Book has_one Publisher:
|
95
157
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
158
|
+
```ruby
|
159
|
+
controller do
|
160
|
+
def scoped_collection
|
161
|
+
super.includes :publisher # prevents N+1 queries to your database
|
162
|
+
end
|
163
|
+
end
|
164
|
+
```
|
101
165
|
|
102
166
|
Then it's simple to sort by any Publisher attribute from within the index table:
|
103
167
|
|
104
|
-
|
105
|
-
|
106
|
-
|
168
|
+
```ruby
|
169
|
+
index do
|
170
|
+
column :publisher, sortable: 'publishers.name'
|
171
|
+
end
|
172
|
+
```
|
107
173
|
|
108
174
|
## Showing and Hiding Columns
|
109
175
|
|
@@ -112,9 +178,20 @@ easily do things that show or hide columns based on the current context.
|
|
112
178
|
|
113
179
|
For example, if you were using CanCan:
|
114
180
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
181
|
+
```ruby
|
182
|
+
index do
|
183
|
+
column :title, sortable: false
|
184
|
+
column :secret_data if can? :manage, Post
|
185
|
+
end
|
186
|
+
```
|
187
|
+
|
188
|
+
## Custom row class
|
189
|
+
|
190
|
+
In order to add special class to table rows pass the proc object as a `:row_class` option
|
191
|
+
of the `index` method.
|
192
|
+
|
193
|
+
```ruby
|
194
|
+
index row_class: ->elem { 'active' if elem.active? } do
|
195
|
+
# columns
|
196
|
+
end
|
197
|
+
```
|
data/docs/4-csv-format.md
CHANGED
@@ -6,27 +6,34 @@ registered model.
|
|
6
6
|
|
7
7
|
Customizing the CSV format is as simple as customizing the index page.
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
9
|
+
```ruby
|
10
|
+
ActiveAdmin.register Post do
|
11
|
+
csv do
|
12
|
+
column :title
|
13
|
+
column(:author) { |post| post.author.full_name }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
```
|
17
|
+
|
18
|
+
You can also set custom CSV settings for an individual resource:
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
ActiveAdmin.register Post do
|
22
|
+
csv force_quotes: true, col_sep: ';', column_names: false do
|
23
|
+
column :title
|
24
|
+
column(:author) { |post| post.author.full_name }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
```
|
28
|
+
|
29
|
+
Or system-wide:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
# config/initializers/active_admin.rb
|
33
|
+
|
34
|
+
# Set the CSV builder separator
|
35
|
+
config.csv_options = { col_sep: ';' }
|
36
|
+
|
37
|
+
# Force the use of quotes
|
38
|
+
config.csv_options = { force_quotes: true }
|
39
|
+
```
|
data/docs/5-forms.md
CHANGED
@@ -1,82 +1,159 @@
|
|
1
|
-
#
|
1
|
+
# Forms
|
2
2
|
|
3
|
-
Active Admin gives complete control over the output of the form by creating
|
4
|
-
|
3
|
+
Active Admin gives you complete control over the output of the form by creating
|
4
|
+
a thin DSL on top of [Formtastic](https://github.com/justinfrench/formtastic):
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
form do |f|
|
9
|
-
f.inputs "Details" do
|
10
|
-
f.input :title
|
11
|
-
f.input :published_at, :label => "Publish Post At"
|
12
|
-
f.input :category
|
13
|
-
end
|
14
|
-
f.inputs "Content" do
|
15
|
-
f.input :body
|
16
|
-
end
|
17
|
-
f.actions
|
18
|
-
end
|
6
|
+
```ruby
|
7
|
+
ActiveAdmin.register Post do
|
19
8
|
|
9
|
+
form do |f|
|
10
|
+
inputs 'Details' do
|
11
|
+
input :title
|
12
|
+
input :published_at, label: "Publish Post At"
|
13
|
+
li "Created at #{f.object.created_at}" unless f.object.new_record?
|
14
|
+
input :category
|
15
|
+
end
|
16
|
+
panel 'Markup' do
|
17
|
+
"The following can be used in the content below..."
|
20
18
|
end
|
19
|
+
inputs 'Content', :body
|
20
|
+
para "Press cancel to return to the list without saving."
|
21
|
+
actions
|
22
|
+
end
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
+
end
|
25
|
+
```
|
24
26
|
|
25
|
-
|
26
|
-
a partial in to render the form yourself.
|
27
|
+
For more details, please see Formtastic's documentation.
|
27
28
|
|
28
|
-
|
29
|
+
## Default
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
Resources come with a default form defined as such:
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
form do |f|
|
35
|
+
f.semantic_errors # shows errors on :base
|
36
|
+
f.inputs # builds an input field for every attribute
|
37
|
+
f.actions # adds the 'Submit' and 'Cancel' buttons
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
## Partials
|
42
|
+
|
43
|
+
If you want to split a custom form into a separate partial use:
|
33
44
|
|
34
|
-
|
45
|
+
```ruby
|
46
|
+
ActiveAdmin.register Post do
|
47
|
+
form partial: 'form'
|
48
|
+
end
|
49
|
+
```
|
35
50
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
51
|
+
Which looks for something like this:
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
# app/views/admin/posts/_form.html.arb
|
55
|
+
insert_tag active_admin_form_for resource do |f|
|
56
|
+
inputs :title, :body
|
57
|
+
actions
|
58
|
+
end
|
59
|
+
```
|
60
|
+
|
61
|
+
This is a regular Rails partial so any template engine may be used.
|
40
62
|
|
41
63
|
## Nested Resources
|
42
64
|
|
43
|
-
You can create forms with nested models using the `has_many` method
|
65
|
+
You can create forms with nested models using the `has_many` method, even if your model uses `has_one`:
|
44
66
|
|
45
|
-
|
67
|
+
```ruby
|
68
|
+
ActiveAdmin.register Post do
|
46
69
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
70
|
+
form do |f|
|
71
|
+
f.inputs 'Details' do
|
72
|
+
f.input :title
|
73
|
+
f.input :published_at, label: 'Publish Post At'
|
74
|
+
end
|
75
|
+
f.inputs 'Content', :body
|
76
|
+
f.inputs do
|
77
|
+
f.has_many :categories, heading: 'Themes', allow_destroy: true, new_record: false do |a|
|
78
|
+
a.input :title
|
79
|
+
end
|
80
|
+
end
|
81
|
+
f.inputs do
|
82
|
+
f.has_many :taggings, sortable: :position, sortable_start: 1 do |t|
|
83
|
+
t.input :tag
|
61
84
|
end
|
62
|
-
|
63
85
|
end
|
86
|
+
f.inputs do
|
87
|
+
f.has_many :comment, new_record: 'Leave Comment' do |b|
|
88
|
+
b.input :body
|
89
|
+
end
|
90
|
+
end
|
91
|
+
f.actions
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
```
|
64
96
|
|
65
|
-
The `:allow_destroy` option
|
66
|
-
removal of the child object upon submission. Be sure to set
|
97
|
+
The `:allow_destroy` option adds a checkbox to the end of the nested form allowing
|
98
|
+
removal of the child object upon submission. Be sure to set `allow_destroy: true`
|
67
99
|
on the association to use this option.
|
68
100
|
|
69
|
-
The `:heading` option
|
101
|
+
The `:heading` option adds a custom heading. You can hide it entirely by passing `false`.
|
102
|
+
|
103
|
+
The `:new_record` option controls the visibility of the new record button (shown by default).
|
104
|
+
If you pass a string, it will be used as the text for the new record button.
|
105
|
+
|
106
|
+
The `:sortable` option adds a hidden field and will enable drag & drop sorting of the children. It
|
107
|
+
expects the name of the column that will store the index of each child.
|
70
108
|
|
71
|
-
The `:
|
109
|
+
The `:sortable_start` option sets the value (0 by default) of the first position in the list.
|
110
|
+
|
111
|
+
## Datepicker
|
112
|
+
|
113
|
+
ActiveAdmin offers the `datepicker` input, which uses the [jQuery UI datepicker](http://jqueryui.com/datepicker/).
|
114
|
+
The datepicker input accepts any of the options available to the standard jQueryUI Datepicker. For example:
|
115
|
+
|
116
|
+
```ruby
|
117
|
+
form do |f|
|
118
|
+
f.input :starts_at, as: :datepicker, datepicker_options: { min_date: "2013-10-8", max_date: "+3D" }
|
119
|
+
f.input :ends_at, as: :datepicker, datepicker_options: { min_date: 3.days.ago.to_date, max_date: "+1W +5D" }
|
120
|
+
end
|
121
|
+
```
|
72
122
|
|
73
123
|
## Displaying Errors
|
74
124
|
|
75
|
-
To display a list of all
|
125
|
+
To display a list of all validation errors:
|
76
126
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
127
|
+
```ruby
|
128
|
+
form do |f|
|
129
|
+
f.semantic_errors *f.object.errors.keys
|
130
|
+
# ...
|
131
|
+
end
|
132
|
+
```
|
82
133
|
|
134
|
+
This is particularly useful to display errors on virtual or hidden attributes.
|
135
|
+
|
136
|
+
# Tabs
|
137
|
+
|
138
|
+
You can arrage content in tabs as shown below:
|
139
|
+
|
140
|
+
```ruby
|
141
|
+
form do |f|
|
142
|
+
tabs do
|
143
|
+
tab 'Basic' do
|
144
|
+
f.inputs 'Basic Details' do
|
145
|
+
f.input :email
|
146
|
+
f.input :password
|
147
|
+
f.input :password_confirmation
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
tab 'Advanced' do
|
152
|
+
f.inputs 'Advanced Details' do
|
153
|
+
f.input :role
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
f.actions
|
158
|
+
end
|
159
|
+
```
|