yousty-activeadmin 1.0.4.pre → 1.0.5.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +261 -211
- data/CONTRIBUTING.md +73 -39
- data/Gemfile +38 -20
- data/Guardfile +1 -0
- data/LICENSE +1 -1
- data/README.md +48 -24
- data/Rakefile +12 -4
- data/activeadmin.gemspec +21 -26
- data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
- data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
- 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/lib/checkbox-toggler.js.coffee +3 -4
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
- 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 +29 -58
- data/app/assets/javascripts/active_admin/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} +51 -15
- 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/_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 -12
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
- 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} +0 -0
- 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} +1 -0
- 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 -0
- data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
- 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.css.scss → _rounded.scss} +0 -0
- data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
- data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
- 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/_title_bar.scss +10 -7
- 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 +8 -8
- 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 +127 -0
- data/config/locales/en-GB.yml +11 -4
- data/config/locales/en.yml +21 -4
- data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
- data/config/locales/es.yml +32 -25
- data/config/locales/fa.yml +120 -0
- data/config/locales/fi.yml +9 -5
- data/config/locales/fr.yml +28 -12
- 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 +17 -4
- 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 +36 -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 +14 -6
- data/docs/1-general-configuration.md +8 -5
- data/docs/10-custom-pages.md +68 -70
- data/docs/11-decorators.md +48 -59
- data/docs/12-arbre-components.md +79 -73
- data/docs/13-authorization-adapter.md +128 -107
- data/docs/14-gotchas.md +90 -0
- data/docs/2-resource-customization.md +82 -15
- data/docs/3-index-pages.md +71 -12
- data/docs/3-index-pages/custom-index.md +31 -0
- data/docs/3-index-pages/index-as-table.md +45 -2
- data/docs/4-csv-format.md +1 -1
- data/docs/5-forms.md +78 -29
- data/docs/6-show-pages.md +31 -3
- data/docs/7-sidebars.md +46 -25
- data/docs/8-custom-actions.md +98 -77
- data/docs/9-batch-actions.md +211 -133
- data/docs/README.md +24 -0
- data/features/action_item.feature +3 -3
- data/features/authorization_pundit.feature +37 -0
- data/features/belongs_to.feature +3 -0
- data/features/breadcrumb.feature +48 -0
- data/features/comments/commenting.feature +44 -13
- data/features/development_reloading.feature +3 -4
- data/features/edit_page.feature +9 -19
- data/features/favicon.feature +3 -3
- data/features/i18n.feature +5 -0
- data/features/index/batch_actions.feature +41 -0
- data/features/index/filters.feature +23 -0
- data/features/index/format_as_csv.feature +90 -4
- 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 +10 -20
- 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/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 +17 -18
- 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 +1 -1
- data/features/step_definitions/dashboard_steps.rb +2 -2
- data/features/step_definitions/factory_steps.rb +6 -6
- 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 +17 -10
- 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 +1 -1
- 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 +15 -9
- data/features/step_definitions/web_steps.rb +10 -11
- data/features/sti_resource.feature +2 -10
- data/features/strong_parameters.feature +73 -0
- data/features/support/env.rb +35 -2
- data/features/support/paths.rb +2 -2
- data/features/support/selectors.rb +1 -1
- data/features/users/resetting_password.feature +7 -7
- data/lib/active_admin.rb +18 -13
- data/lib/active_admin/abstract_view_factory.rb +7 -17
- data/lib/active_admin/application.rb +50 -25
- 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 +13 -7
- data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
- 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 +26 -14
- data/lib/active_admin/dsl.rb +18 -11
- data/lib/active_admin/engine.rb +7 -2
- data/lib/active_admin/error.rb +59 -0
- data/lib/active_admin/filters/dsl.rb +2 -2
- data/lib/active_admin/filters/forms.rb +19 -30
- data/lib/active_admin/filters/formtastic_addons.rb +20 -11
- data/lib/active_admin/filters/resource_extension.rb +16 -9
- data/lib/active_admin/form_builder.rb +94 -105
- 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/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 +1 -1
- 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 +3 -3
- data/lib/active_admin/menu_collection.rb +1 -4
- data/lib/active_admin/namespace.rb +52 -29
- data/lib/active_admin/order_clause.rb +26 -0
- data/lib/active_admin/orm/active_record.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +48 -51
- data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
- data/lib/active_admin/page.rb +5 -1
- 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 +12 -3
- data/lib/active_admin/resource/action_items.rb +15 -8
- 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 +25 -47
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +26 -10
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/sidebars.rb +1 -0
- data/lib/active_admin/resource_collection.rb +44 -16
- data/lib/active_admin/resource_controller.rb +6 -5
- data/lib/active_admin/resource_controller/data_access.rb +87 -82
- 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 +54 -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 -16
- 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 +13 -6
- data/lib/active_admin/view_helpers/display_helper.rb +30 -17
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
- data/lib/active_admin/view_helpers/fields_for.rb +2 -2
- 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 +22 -13
- 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 +33 -17
- 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 +1 -1
- 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 +67 -22
- 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_blog.rb +6 -6
- data/lib/active_admin/views/index_as_grid.rb +2 -2
- data/lib/active_admin/views/index_as_table.rb +127 -40
- data/lib/active_admin/views/pages/base.rb +22 -18
- data/lib/active_admin/views/pages/form.rb +16 -6
- data/lib/active_admin/views/pages/index.rb +36 -20
- 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 +1 -3
- data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
- data/lib/generators/active_admin/install/install_generator.rb +8 -9
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
- 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 +2 -4
- data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
- data/lib/ransack_ext.rb +4 -4
- 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 -170
- data/spec/support/detect_rails_version.rb +31 -39
- data/spec/support/rails_template.rb +61 -34
- data/spec/support/rails_template_with_data.rb +14 -14
- data/spec/support/templates/admin/stores.rb +3 -5
- 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 +11 -11
- data/spec/unit/action_builder_spec.rb +24 -18
- data/spec/unit/active_admin_spec.rb +2 -2
- data/spec/unit/application_spec.rb +30 -31
- data/spec/unit/asset_registration_spec.rb +11 -11
- data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
- 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 +42 -5
- 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 +26 -17
- data/spec/unit/cancan_adapter_spec.rb +4 -4
- data/spec/unit/comments_spec.rb +99 -39
- data/spec/unit/component_spec.rb +3 -3
- data/spec/unit/config_shared_examples.rb +8 -8
- data/spec/unit/controller_filters_spec.rb +26 -14
- data/spec/unit/csv_builder_spec.rb +152 -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 +9 -9
- data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
- data/spec/unit/filters/resource_spec.rb +35 -33
- data/spec/unit/form_builder_spec.rb +383 -145
- data/spec/unit/generators/install_spec.rb +5 -5
- data/spec/unit/helpers/collection_spec.rb +18 -18
- data/spec/unit/helpers/scope_chain_spec.rb +5 -5
- 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 +5 -5
- data/spec/unit/namespace/register_page_spec.rb +9 -9
- data/spec/unit/namespace/register_resource_spec.rb +26 -28
- 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 +13 -10
- 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 +23 -23
- 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 +66 -68
- data/spec/unit/resource_controller/data_access_spec.rb +39 -21
- 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 +66 -62
- data/spec/unit/resource_registration_spec.rb +12 -12
- data/spec/unit/resource_spec.rb +75 -40
- 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 -2
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
- 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 +9 -22
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
- data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
- data/spec/unit/views/components/attributes_table_spec.rb +94 -52
- 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 +68 -59
- 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 +8 -8
- data/spec/unit/views/components/status_tag_spec.rb +178 -38
- data/spec/unit/views/components/table_for_spec.rb +227 -44
- 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 +16 -3
- data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
- data/tasks/docs.rake +1 -1
- data/tasks/parallel_tests.rake +8 -2
- data/tasks/test.rake +8 -4
- data/tasks/yard.rake +7 -5
- metadata +180 -101
- 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/components/application.js.coffee +0 -23
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
- 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 -39
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
- data/app/views/active_admin/dashboard/index.html.arb +0 -1
- data/app/views/active_admin/resource/index.csv.erb +0 -17
- data/docs/3-index-pages/create-an-index.md +0 -29
- 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 -32
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
- 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 -61
- data/lib/active_admin/inputs/filter_string_input.rb +0 -24
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
- 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 -16
- data/tasks/js.rake +0 -32
data/docs/3-index-pages.md
CHANGED
|
@@ -26,7 +26,7 @@ your resource.
|
|
|
26
26
|
index do
|
|
27
27
|
id_column
|
|
28
28
|
column :image_title
|
|
29
|
-
|
|
29
|
+
actions
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
index as: :grid do |product|
|
|
@@ -35,12 +35,12 @@ end
|
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
The first index component will be the default index page unless you indicate
|
|
38
|
-
otherwise by setting
|
|
38
|
+
otherwise by setting `:default` to true.
|
|
39
39
|
|
|
40
40
|
```ruby
|
|
41
41
|
index do
|
|
42
42
|
column :image_title
|
|
43
|
-
|
|
43
|
+
actions
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
index as: :grid, default: true do |product|
|
|
@@ -48,14 +48,16 @@ index as: :grid, default: true do |product|
|
|
|
48
48
|
end
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
## Custom Index
|
|
52
|
+
|
|
51
53
|
Active Admin does not limit the index page to be a table, block, blog or grid.
|
|
52
|
-
If you've
|
|
53
|
-
can be included by setting
|
|
54
|
+
If you've created your own [custom index](3-index-pages/custom-index.md) page it
|
|
55
|
+
can be included by setting `:as` to the class of the index component you created.
|
|
54
56
|
|
|
55
57
|
```ruby
|
|
56
|
-
index as: ActiveAdmin::Views::
|
|
58
|
+
index as: ActiveAdmin::Views::IndexAsMyIdea do
|
|
57
59
|
column :image_title
|
|
58
|
-
|
|
60
|
+
actions
|
|
59
61
|
end
|
|
60
62
|
```
|
|
61
63
|
|
|
@@ -65,7 +67,7 @@ By default the index screen includes a "Filters" sidebar on the right hand side
|
|
|
65
67
|
with a filter for each attribute of the registered model. You can customize the
|
|
66
68
|
filters that are displayed as well as the type of widgets they use.
|
|
67
69
|
|
|
68
|
-
To display a filter for an attribute, use the filter method
|
|
70
|
+
To display a filter for an attribute, use the `filter` method
|
|
69
71
|
|
|
70
72
|
```ruby
|
|
71
73
|
ActiveAdmin.register Post do
|
|
@@ -84,13 +86,13 @@ Out of the box, Active Admin supports the following filter types:
|
|
|
84
86
|
* *:check_boxes* - A list of check boxes users can turn on and off to filter
|
|
85
87
|
|
|
86
88
|
By default, Active Admin will pick the most relevant filter based on the
|
|
87
|
-
attribute type. You can force the type by passing the
|
|
89
|
+
attribute type. You can force the type by passing the `:as` option.
|
|
88
90
|
|
|
89
91
|
```ruby
|
|
90
92
|
filter :author, as: :check_boxes
|
|
91
93
|
```
|
|
92
94
|
|
|
93
|
-
The
|
|
95
|
+
The `:check_boxes` and `:select` types accept options for the collection. By default
|
|
94
96
|
it attempts to create a collection based on an association. But you can pass in
|
|
95
97
|
the collection as a proc to be called at render time.
|
|
96
98
|
|
|
@@ -106,6 +108,14 @@ filter :author, label: 'Something else'
|
|
|
106
108
|
|
|
107
109
|
By default, Active Admin will try to use ActiveModel I18n to determine the label.
|
|
108
110
|
|
|
111
|
+
You can also filter on more than one attribute of a model using the
|
|
112
|
+
[Ransack search predicate syntax](https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching). If using a custom search method, you will
|
|
113
|
+
also need to specify the field type using `:as` and the label.
|
|
114
|
+
|
|
115
|
+
```ruby
|
|
116
|
+
filter :first_name_or_last_name_cont, as: :string, label: "Name"
|
|
117
|
+
```
|
|
118
|
+
|
|
109
119
|
Filters can also be disabled for a resource, a namespace or the entire
|
|
110
120
|
application.
|
|
111
121
|
|
|
@@ -142,18 +152,53 @@ preserve_default_filters!
|
|
|
142
152
|
filter :author
|
|
143
153
|
```
|
|
144
154
|
|
|
155
|
+
## Index Scopes
|
|
156
|
+
|
|
157
|
+
You can define custom scopes for your index page. This will add a tab bar above
|
|
158
|
+
the index table to quickly filter your collection on pre-defined scopes. There are
|
|
159
|
+
a number of ways to define your scopes:
|
|
160
|
+
|
|
161
|
+
```ruby
|
|
162
|
+
scope :all, default: true
|
|
163
|
+
|
|
164
|
+
# assumes the model has a scope called ':active'
|
|
165
|
+
scope :active
|
|
166
|
+
|
|
167
|
+
# renames model scope ':leaves' to ':subcategories'
|
|
168
|
+
scope "Subcategories", :leaves
|
|
169
|
+
|
|
170
|
+
# Dynamic scope name
|
|
171
|
+
scope ->{ Date.today.strftime '%A' }, :published_today
|
|
172
|
+
|
|
173
|
+
# custom scope not defined on the model
|
|
174
|
+
scope("Inactive") { |scope| scope.where(active: false) }
|
|
175
|
+
|
|
176
|
+
# conditionally show a custom controller scope
|
|
177
|
+
scope "Published", if: proc { current_admin_user.can? :manage, Posts } do |posts|
|
|
178
|
+
posts.published
|
|
179
|
+
end
|
|
180
|
+
```
|
|
181
|
+
|
|
145
182
|
## Index default sort order
|
|
146
183
|
|
|
147
184
|
You can define the default sort order for index pages:
|
|
148
185
|
|
|
149
186
|
```ruby
|
|
150
187
|
ActiveAdmin.register Post do
|
|
151
|
-
config.sort_order = '
|
|
188
|
+
config.sort_order = 'name_asc'
|
|
152
189
|
end
|
|
153
190
|
```
|
|
154
191
|
|
|
155
192
|
## Index pagination
|
|
156
193
|
|
|
194
|
+
You can set the number of records per page as default:
|
|
195
|
+
|
|
196
|
+
```ruby
|
|
197
|
+
ActiveAdmin.setup do |config|
|
|
198
|
+
config.default_per_page = 30
|
|
199
|
+
end
|
|
200
|
+
```
|
|
201
|
+
|
|
157
202
|
You can set the number of records per page per resources:
|
|
158
203
|
|
|
159
204
|
```ruby
|
|
@@ -162,6 +207,16 @@ ActiveAdmin.register Post do
|
|
|
162
207
|
end
|
|
163
208
|
```
|
|
164
209
|
|
|
210
|
+
You can change it per request / action too:
|
|
211
|
+
|
|
212
|
+
```ruby
|
|
213
|
+
controller do
|
|
214
|
+
before_filter :only => :index do
|
|
215
|
+
@per_page = 100
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
```
|
|
219
|
+
|
|
165
220
|
You can also disable pagination:
|
|
166
221
|
|
|
167
222
|
```ruby
|
|
@@ -170,7 +225,7 @@ ActiveAdmin.register Post do
|
|
|
170
225
|
end
|
|
171
226
|
```
|
|
172
227
|
|
|
173
|
-
If you have a very large database, you might want to disable SELECT COUNT(*)
|
|
228
|
+
If you have a very large database, you might want to disable `SELECT COUNT(*)`
|
|
174
229
|
queries caused by the pagination info at the bottom of the page:
|
|
175
230
|
|
|
176
231
|
```ruby
|
|
@@ -204,3 +259,7 @@ ActiveAdmin.setup do |config|
|
|
|
204
259
|
|
|
205
260
|
end
|
|
206
261
|
```
|
|
262
|
+
|
|
263
|
+
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.
|
|
264
|
+
|
|
265
|
+
You'll need to use a PDF rendering library like PDFKit or WickedPDF to get the PDF generation you want.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Custom Index
|
|
2
|
+
|
|
3
|
+
If the supplied Active Admin index components are insufficient for your project
|
|
4
|
+
feel free to define your own. Index classes inherit from `ActiveAdmin::Component`
|
|
5
|
+
and require a `build` method and an `index_name` class method.
|
|
6
|
+
|
|
7
|
+
```ruby
|
|
8
|
+
module ActiveAdmin
|
|
9
|
+
module Views
|
|
10
|
+
class IndexAsMyIdea < ActiveAdmin::Component
|
|
11
|
+
|
|
12
|
+
def build(page_presenter, collection)
|
|
13
|
+
# ...
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.index_name
|
|
17
|
+
"my_idea"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The build method takes a PagePresenter object and collection of whatever you
|
|
26
|
+
choose.
|
|
27
|
+
|
|
28
|
+
The `index_name` class method takes no arguments and returns a string that should
|
|
29
|
+
be representative of the the class name. If this method is not defined, your
|
|
30
|
+
index component will not be able take advantage of Active Admin's
|
|
31
|
+
*multiple index pages* feature.
|
|
@@ -72,7 +72,7 @@ index do
|
|
|
72
72
|
selectable_column
|
|
73
73
|
column :title
|
|
74
74
|
actions do |post|
|
|
75
|
-
|
|
75
|
+
item "Preview", admin_preview_post_path(post), class: "member_link"
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
```
|
|
@@ -83,7 +83,30 @@ Or forego the default links entirely:
|
|
|
83
83
|
index do
|
|
84
84
|
column :title
|
|
85
85
|
actions defaults: false do |post|
|
|
86
|
-
|
|
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)
|
|
87
110
|
end
|
|
88
111
|
end
|
|
89
112
|
```
|
|
@@ -116,6 +139,15 @@ index do
|
|
|
116
139
|
end
|
|
117
140
|
```
|
|
118
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
|
+
```
|
|
150
|
+
|
|
119
151
|
## Associated Sorting
|
|
120
152
|
|
|
121
153
|
You're normally able to sort columns alphabetically, but by default you
|
|
@@ -152,3 +184,14 @@ index do
|
|
|
152
184
|
column :secret_data if can? :manage, Post
|
|
153
185
|
end
|
|
154
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
|
@@ -19,7 +19,7 @@ You can also set custom CSV settings for an individual resource:
|
|
|
19
19
|
|
|
20
20
|
```ruby
|
|
21
21
|
ActiveAdmin.register Post do
|
|
22
|
-
csv force_quotes: true, col_sep: ';' do
|
|
22
|
+
csv force_quotes: true, col_sep: ';', column_names: false do
|
|
23
23
|
column :title
|
|
24
24
|
column(:author) { |post| post.author.full_name }
|
|
25
25
|
end
|
data/docs/5-forms.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Forms
|
|
2
2
|
|
|
3
3
|
Active Admin gives you complete control over the output of the form by creating
|
|
4
4
|
a thin DSL on top of [Formtastic](https://github.com/justinfrench/formtastic):
|
|
@@ -7,23 +7,40 @@ a thin DSL on top of [Formtastic](https://github.com/justinfrench/formtastic):
|
|
|
7
7
|
ActiveAdmin.register Post do
|
|
8
8
|
|
|
9
9
|
form do |f|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
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
|
|
14
15
|
end
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
panel 'Markup' do
|
|
17
|
+
"The following can be used in the content below..."
|
|
18
|
+
end
|
|
19
|
+
inputs 'Content', :body
|
|
20
|
+
para "Press cancel to return to the list without saving."
|
|
21
|
+
actions
|
|
17
22
|
end
|
|
18
23
|
|
|
19
24
|
end
|
|
20
25
|
```
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
for Formtastic to see all the wonderful things you can do.
|
|
27
|
+
For more details, please see Formtastic's documentation.
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
## Default
|
|
30
|
+
|
|
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:
|
|
27
44
|
|
|
28
45
|
```ruby
|
|
29
46
|
ActiveAdmin.register Post do
|
|
@@ -33,20 +50,19 @@ end
|
|
|
33
50
|
|
|
34
51
|
Which looks for something like this:
|
|
35
52
|
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<li class="cancel"><%= link_to 'Cancel', collection_path %></li>
|
|
43
|
-
<% end %>
|
|
44
|
-
<% end %>
|
|
53
|
+
```ruby
|
|
54
|
+
# app/views/admin/posts/_form.html.arb
|
|
55
|
+
active_admin_form_for resource do |f|
|
|
56
|
+
inputs :title, :body
|
|
57
|
+
actions
|
|
58
|
+
end
|
|
45
59
|
```
|
|
46
60
|
|
|
61
|
+
This is a regular Rails partial so any template engine may be used.
|
|
62
|
+
|
|
47
63
|
## Nested Resources
|
|
48
64
|
|
|
49
|
-
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`:
|
|
50
66
|
|
|
51
67
|
```ruby
|
|
52
68
|
ActiveAdmin.register Post do
|
|
@@ -62,6 +78,11 @@ ActiveAdmin.register Post do
|
|
|
62
78
|
a.input :title
|
|
63
79
|
end
|
|
64
80
|
end
|
|
81
|
+
f.inputs do
|
|
82
|
+
f.has_many :taggings, sortable: :position, sortable_start: 1 do |t|
|
|
83
|
+
t.input :tag
|
|
84
|
+
end
|
|
85
|
+
end
|
|
65
86
|
f.inputs do
|
|
66
87
|
f.has_many :comment, new_record: 'Leave Comment' do |b|
|
|
67
88
|
b.input :body
|
|
@@ -82,16 +103,20 @@ The `:heading` option adds a custom heading. You can hide it entirely by passing
|
|
|
82
103
|
The `:new_record` option controls the visibility of the new record button (shown by default).
|
|
83
104
|
If you pass a string, it will be used as the text for the new record button.
|
|
84
105
|
|
|
85
|
-
|
|
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.
|
|
108
|
+
|
|
109
|
+
The `:sortable_start` option sets the value (0 by default) of the first position in the list.
|
|
110
|
+
|
|
111
|
+
## Datepicker
|
|
86
112
|
|
|
87
|
-
ActiveAdmin offers the `datepicker` input, which uses the [
|
|
88
|
-
The datepicker input accepts any of the options available to the standard
|
|
89
|
-
jQueryUI Datepicker, e.g.
|
|
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:
|
|
90
115
|
|
|
91
116
|
```ruby
|
|
92
117
|
form do |f|
|
|
93
|
-
f.input :starts_at, as: :datepicker, datepicker_options: { min_date: "2013-10-8",
|
|
94
|
-
f.input :ends_at,
|
|
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" }
|
|
95
120
|
end
|
|
96
121
|
```
|
|
97
122
|
|
|
@@ -102,9 +127,33 @@ To display a list of all validation errors:
|
|
|
102
127
|
```ruby
|
|
103
128
|
form do |f|
|
|
104
129
|
f.semantic_errors *f.object.errors.keys
|
|
105
|
-
|
|
106
|
-
f.actions
|
|
130
|
+
# ...
|
|
107
131
|
end
|
|
108
132
|
```
|
|
109
133
|
|
|
110
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
|
+
```
|
data/docs/6-show-pages.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Customize the Show Page
|
|
2
2
|
|
|
3
|
-
The show block is rendered within the context of the view and uses [Arbre](https://github.com/
|
|
3
|
+
The show block is rendered within the context of the view and uses [Arbre](https://github.com/activeadmin/arbre) syntax.
|
|
4
4
|
|
|
5
5
|
With the `show` block, you can render anything you want.
|
|
6
6
|
|
|
@@ -33,7 +33,7 @@ ActiveAdmin.register Ad do
|
|
|
33
33
|
show do
|
|
34
34
|
attributes_table do
|
|
35
35
|
row :title
|
|
36
|
-
row :image do
|
|
36
|
+
row :image do |ad|
|
|
37
37
|
image_tag ad.image.url
|
|
38
38
|
end
|
|
39
39
|
end
|
|
@@ -70,8 +70,36 @@ ActiveAdmin.register Book do
|
|
|
70
70
|
row :title
|
|
71
71
|
row :author
|
|
72
72
|
row :publisher
|
|
73
|
-
row('Published?') { |b| status_tag b.published?
|
|
73
|
+
row('Published?') { |b| status_tag b.published? }
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
```
|
|
78
|
+
|
|
79
|
+
# Tabs
|
|
80
|
+
|
|
81
|
+
You can arrage content in tabs as shown below:
|
|
82
|
+
|
|
83
|
+
```ruby
|
|
84
|
+
ActiveAdmin.register Order do
|
|
85
|
+
show do
|
|
86
|
+
tabs do
|
|
87
|
+
tab 'Overview' do
|
|
88
|
+
attributes_table do
|
|
89
|
+
row(:status) { status_tag(order.status) }
|
|
90
|
+
row(:paid) { number_to_currency(order.amount_paid_in_dollars) }
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
tab 'Payments' do
|
|
95
|
+
table_for order.payments do
|
|
96
|
+
column('Payment Type') { |p| p.payment_type.titleize }
|
|
97
|
+
column('Received On', :created_at)
|
|
98
|
+
column('Payment Details & Notes', :notes)
|
|
99
|
+
column('Amount') { |p| number_to_currency(p.amount_in_dollars) }
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
```
|