yousty-activeadmin 1.0.0.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 +7 -0
- data/.gitignore +43 -0
- data/.travis.yml +8 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +1056 -0
- data/CONTRIBUTING.md +110 -0
- data/Gemfile +41 -0
- data/Guardfile +7 -0
- data/LICENSE +25 -0
- data/README.md +67 -0
- data/Rakefile +25 -0
- data/activeadmin.gemspec +33 -0
- 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-input-icon.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 +10 -0
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
- data/app/assets/images/active_admin/loading.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/application.js.coffee +6 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +5 -0
- data/app/assets/javascripts/active_admin/components/application.js.coffee +23 -0
- data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +26 -0
- data/app/assets/javascripts/active_admin/components/has_many.js.coffee +41 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +37 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +105 -0
- data/app/assets/javascripts/active_admin/lib/popover.js.coffee +97 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +25 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/_forms.css.scss +293 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
- data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +110 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
- data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +32 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -0
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
- data/app/views/active_admin/devise/shared/_links.erb +27 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.csv.erb +17 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
- data/config/locales/bg.yml +101 -0
- data/config/locales/ca.yml +98 -0
- data/config/locales/cs.yml +105 -0
- data/config/locales/da.yml +102 -0
- data/config/locales/de-CH.yml +117 -0
- data/config/locales/de.yml +119 -0
- data/config/locales/en-GB.yml +91 -0
- data/config/locales/en.yml +110 -0
- data/config/locales/es.yml +106 -0
- data/config/locales/es_MX.yml +104 -0
- data/config/locales/fi.yml +109 -0
- data/config/locales/fr.yml +97 -0
- data/config/locales/he.yml +91 -0
- data/config/locales/hr.yml +93 -0
- data/config/locales/hu.yml +92 -0
- data/config/locales/it.yml +89 -0
- data/config/locales/ja.yml +104 -0
- data/config/locales/ko.yml +84 -0
- data/config/locales/lt.yml +90 -0
- data/config/locales/lv.yml +89 -0
- data/config/locales/nl.yml +90 -0
- data/config/locales/no-NB.yml +85 -0
- data/config/locales/pl.yml +93 -0
- data/config/locales/pt-BR.yml +90 -0
- data/config/locales/pt-PT.yml +89 -0
- data/config/locales/ro.yml +93 -0
- data/config/locales/ru.yml +103 -0
- data/config/locales/sv-SE.yml +89 -0
- data/config/locales/tr.yml +90 -0
- data/config/locales/uk.yml +100 -0
- data/config/locales/vi.yml +90 -0
- data/config/locales/zh-CN.yml +90 -0
- data/config/locales/zh-TW.yml +90 -0
- data/cucumber.yml +3 -0
- data/docs/0-installation.md +84 -0
- data/docs/1-general-configuration.md +137 -0
- data/docs/10-custom-pages.md +98 -0
- data/docs/11-decorators.md +66 -0
- data/docs/12-arbre-components.md +144 -0
- data/docs/13-authorization-adapter.md +227 -0
- data/docs/2-resource-customization.md +340 -0
- data/docs/3-index-pages/create-an-index.md +29 -0
- data/docs/3-index-pages/index-as-block.md +21 -0
- data/docs/3-index-pages/index-as-blog.md +71 -0
- data/docs/3-index-pages/index-as-grid.md +29 -0
- data/docs/3-index-pages/index-as-table.md +154 -0
- data/docs/3-index-pages.md +206 -0
- data/docs/4-csv-format.md +39 -0
- data/docs/5-forms.md +110 -0
- data/docs/6-show-pages.md +77 -0
- data/docs/7-sidebars.md +42 -0
- data/docs/8-custom-actions.md +139 -0
- data/docs/9-batch-actions.md +155 -0
- data/features/action_item.feature +73 -0
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/belongs_to.feature +63 -0
- data/features/breadcrumb.feature +27 -0
- data/features/comments/commenting.feature +140 -0
- data/features/comments/viewing_index.feature +19 -0
- data/features/dashboard.feature +16 -0
- data/features/decorators.feature +41 -0
- data/features/development_reloading.feature +31 -0
- data/features/edit_page.feature +127 -0
- data/features/favicon.feature +20 -0
- data/features/first_boot.feature +16 -0
- data/features/global_navigation.feature +29 -0
- data/features/i18n.feature +38 -0
- data/features/index/batch_actions.feature +123 -0
- data/features/index/filters.feature +138 -0
- data/features/index/format_as_csv.feature +117 -0
- data/features/index/formats.feature +66 -0
- data/features/index/index_as_block.feature +15 -0
- data/features/index/index_as_blog.feature +69 -0
- data/features/index/index_as_grid.feature +45 -0
- data/features/index/index_as_table.feature +195 -0
- data/features/index/index_blank_slate.feature +61 -0
- data/features/index/index_parameters.feature +75 -0
- data/features/index/index_scope_to.feature +56 -0
- data/features/index/index_scopes.feature +251 -0
- data/features/index/page_title.feature +30 -0
- data/features/index/pagination.feature +59 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +53 -0
- data/features/new_page.feature +119 -0
- data/features/registering_assets.feature +35 -0
- data/features/registering_pages.feature +148 -0
- data/features/registering_resources.feature +33 -0
- data/features/root_to.feature +17 -0
- data/features/show/default_content.feature +43 -0
- data/features/show/page_title.feature +47 -0
- data/features/sidebar_sections.feature +198 -0
- data/features/site_title.feature +47 -0
- data/features/specifying_actions.feature +93 -0
- data/features/step_definitions/action_item_steps.rb +7 -0
- data/features/step_definitions/action_link_steps.rb +7 -0
- data/features/step_definitions/additional_web_steps.rb +82 -0
- data/features/step_definitions/asset_steps.rb +15 -0
- data/features/step_definitions/attribute_steps.rb +13 -0
- data/features/step_definitions/batch_action_steps.rb +55 -0
- data/features/step_definitions/breadcrumb_steps.rb +3 -0
- data/features/step_definitions/comment_steps.rb +12 -0
- data/features/step_definitions/configuration_steps.rb +100 -0
- data/features/step_definitions/dashboard_steps.rb +15 -0
- data/features/step_definitions/factory_steps.rb +34 -0
- data/features/step_definitions/filter_steps.rb +17 -0
- data/features/step_definitions/flash_steps.rb +11 -0
- data/features/step_definitions/format_steps.rb +45 -0
- data/features/step_definitions/i18n_steps.rb +3 -0
- data/features/step_definitions/index_scope_steps.rb +21 -0
- data/features/step_definitions/index_views_steps.rb +3 -0
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/member_link_steps.rb +7 -0
- data/features/step_definitions/menu_steps.rb +11 -0
- data/features/step_definitions/pagination_steps.rb +8 -0
- data/features/step_definitions/sidebar_steps.rb +8 -0
- data/features/step_definitions/site_title_steps.rb +15 -0
- data/features/step_definitions/symbol_leak_steps.rb +3 -0
- data/features/step_definitions/tab_steps.rb +3 -0
- data/features/step_definitions/table_steps.rb +119 -0
- data/features/step_definitions/user_steps.rb +39 -0
- data/features/step_definitions/web_steps.rb +86 -0
- data/features/sti_resource.feature +73 -0
- data/features/support/env.rb +112 -0
- data/features/support/paths.rb +71 -0
- data/features/support/selectors.rb +45 -0
- data/features/symbol_leak.feature +35 -0
- data/features/users/logging_in.feature +34 -0
- data/features/users/logging_out.feature +13 -0
- data/features/users/resetting_password.feature +34 -0
- data/lib/active_admin/abstract_view_factory.rb +95 -0
- data/lib/active_admin/application.rb +242 -0
- data/lib/active_admin/asset_registration.rb +29 -0
- data/lib/active_admin/authorization_adapter.rb +132 -0
- data/lib/active_admin/base_controller/authorization.rb +151 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/base_controller.rb +78 -0
- data/lib/active_admin/batch_actions/controller.rb +24 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/batch_actions.rb +17 -0
- data/lib/active_admin/callbacks.rb +87 -0
- data/lib/active_admin/cancan_adapter.rb +40 -0
- data/lib/active_admin/component.rb +5 -0
- data/lib/active_admin/controller_action.rb +12 -0
- data/lib/active_admin/csv_builder.rb +49 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +70 -0
- data/lib/active_admin/dsl.rb +166 -0
- data/lib/active_admin/engine.rb +7 -0
- data/lib/active_admin/event.rb +33 -0
- data/lib/active_admin/filters/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +89 -0
- data/lib/active_admin/filters/formtastic_addons.rb +70 -0
- data/lib/active_admin/filters/resource_extension.rb +136 -0
- data/lib/active_admin/filters.rb +9 -0
- data/lib/active_admin/form_builder.rb +152 -0
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/optional_display.rb +38 -0
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +108 -0
- data/lib/active_admin/iconic/icons.rb +142 -0
- data/lib/active_admin/iconic.rb +51 -0
- data/lib/active_admin/inputs/datepicker_input.rb +20 -0
- data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
- data/lib/active_admin/inputs/filter_base.rb +33 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
- data/lib/active_admin/inputs/filter_check_boxes_input.rb +51 -0
- data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
- data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
- data/lib/active_admin/inputs/filter_select_input.rb +61 -0
- data/lib/active_admin/inputs/filter_string_input.rb +24 -0
- data/lib/active_admin/inputs.rb +15 -0
- data/lib/active_admin/menu.rb +107 -0
- data/lib/active_admin/menu_collection.rb +96 -0
- data/lib/active_admin/menu_item.rb +97 -0
- data/lib/active_admin/namespace.rb +224 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +39 -0
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
- data/lib/active_admin/orm/active_record/comments.rb +84 -0
- data/lib/active_admin/orm/active_record.rb +3 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +88 -0
- data/lib/active_admin/page_controller.rb +29 -0
- data/lib/active_admin/page_dsl.rb +28 -0
- data/lib/active_admin/page_presenter.rb +32 -0
- data/lib/active_admin/resource/action_items.rb +91 -0
- data/lib/active_admin/resource/belongs_to.rb +36 -0
- data/lib/active_admin/resource/controllers.rb +18 -0
- data/lib/active_admin/resource/menu.rb +64 -0
- data/lib/active_admin/resource/naming.rb +84 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +19 -0
- data/lib/active_admin/resource/routes.rb +99 -0
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +50 -0
- data/lib/active_admin/resource/sidebars.rb +27 -0
- data/lib/active_admin/resource.rb +153 -0
- data/lib/active_admin/resource_collection.rb +42 -0
- data/lib/active_admin/resource_controller/action_builder.rb +21 -0
- data/lib/active_admin/resource_controller/data_access.rb +298 -0
- data/lib/active_admin/resource_controller/decorators.rb +20 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
- data/lib/active_admin/resource_controller/scoping.rb +31 -0
- data/lib/active_admin/resource_controller/sidebars.rb +18 -0
- data/lib/active_admin/resource_controller.rb +50 -0
- data/lib/active_admin/resource_dsl.rb +134 -0
- data/lib/active_admin/router.rb +106 -0
- data/lib/active_admin/scope.rb +57 -0
- data/lib/active_admin/sidebar_section.rb +37 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +27 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
- data/lib/active_admin/view_helpers/display_helper.rb +49 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +49 -0
- data/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
- data/lib/active_admin/view_helpers/form_helper.rb +24 -0
- data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
- data/lib/active_admin/view_helpers/title_helper.rb +11 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
- data/lib/active_admin/view_helpers.rb +21 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/lib/active_admin/views/components/attributes_table.rb +103 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +150 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
- data/lib/active_admin/views/components/index_list.rb +68 -0
- data/lib/active_admin/views/components/paginated_collection.rb +125 -0
- data/lib/active_admin/views/components/panel.rb +34 -0
- data/lib/active_admin/views/components/popover.rb +27 -0
- data/lib/active_admin/views/components/scopes.rb +66 -0
- data/lib/active_admin/views/components/sidebar_section.rb +28 -0
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +56 -0
- data/lib/active_admin/views/components/table_for.rb +191 -0
- data/lib/active_admin/views/footer.rb +20 -0
- data/lib/active_admin/views/header.rb +32 -0
- data/lib/active_admin/views/index_as_block.rb +36 -0
- data/lib/active_admin/views/index_as_blog.rb +156 -0
- data/lib/active_admin/views/index_as_grid.rb +80 -0
- data/lib/active_admin/views/index_as_table.rb +264 -0
- data/lib/active_admin/views/pages/base.rb +139 -0
- data/lib/active_admin/views/pages/form.rb +51 -0
- data/lib/active_admin/views/pages/index.rb +147 -0
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/page.rb +30 -0
- data/lib/active_admin/views/pages/show.rb +59 -0
- data/lib/active_admin/views/tabbed_navigation.rb +62 -0
- data/lib/active_admin/views/title_bar.rb +53 -0
- data/lib/active_admin/views.rb +8 -0
- data/lib/active_admin.rb +125 -0
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
- data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +86 -0
- data/lib/generators/active_admin/install/install_generator.rb +46 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +235 -0
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
- data/lib/ransack_ext.rb +12 -0
- data/script/local +44 -0
- data/script/use_rails +53 -0
- data/spec/integration/default_namespace_spec.rb +61 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/memory_spec.rb +29 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
- data/spec/javascripts/support/jasmine.yml +74 -0
- data/spec/javascripts/support/jasmine_config.rb +23 -0
- data/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
- data/spec/javascripts/support/jquery.min.js +4 -0
- data/spec/spec_helper.rb +175 -0
- data/spec/spec_helper_without_rails.rb +16 -0
- data/spec/support/deferred_garbage_collection.rb +19 -0
- data/spec/support/detect_rails_version.rb +42 -0
- data/spec/support/integration_example_group.rb +31 -0
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +111 -0
- data/spec/support/rails_template_with_data.rb +59 -0
- data/spec/support/templates/admin/stores.rb +11 -0
- data/spec/support/templates/cucumber.rb +24 -0
- data/spec/support/templates/cucumber_with_reloading.rb +5 -0
- data/spec/support/templates/en.yml +8 -0
- data/spec/support/templates/post_decorator.rb +53 -0
- data/spec/unit/abstract_view_factory_spec.rb +79 -0
- data/spec/unit/action_builder_spec.rb +126 -0
- data/spec/unit/active_admin_spec.rb +11 -0
- data/spec/unit/application_spec.rb +141 -0
- data/spec/unit/asset_registration_spec.rb +52 -0
- data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
- data/spec/unit/auto_link_spec.rb +32 -0
- data/spec/unit/batch_actions/resource_spec.rb +91 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/belongs_to_spec.rb +42 -0
- data/spec/unit/cancan_adapter_spec.rb +43 -0
- data/spec/unit/comments_spec.rb +106 -0
- data/spec/unit/component_spec.rb +18 -0
- data/spec/unit/config_shared_examples.rb +59 -0
- data/spec/unit/controller_filters_spec.rb +32 -0
- data/spec/unit/csv_builder_spec.rb +103 -0
- data/spec/unit/devise_spec.rb +116 -0
- data/spec/unit/dsl_spec.rb +61 -0
- data/spec/unit/event_spec.rb +47 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +423 -0
- data/spec/unit/filters/resource_spec.rb +119 -0
- data/spec/unit/form_builder_spec.rb +514 -0
- data/spec/unit/generators/install_spec.rb +23 -0
- data/spec/unit/helpers/collection_spec.rb +65 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_collection_spec.rb +62 -0
- data/spec/unit/menu_item_spec.rb +143 -0
- data/spec/unit/menu_spec.rb +71 -0
- data/spec/unit/namespace/authorization_spec.rb +27 -0
- data/spec/unit/namespace/register_page_spec.rb +74 -0
- data/spec/unit/namespace/register_resource_spec.rb +163 -0
- data/spec/unit/namespace_spec.rb +103 -0
- data/spec/unit/page_controller_spec.rb +5 -0
- data/spec/unit/page_spec.rb +72 -0
- data/spec/unit/pretty_format_spec.rb +35 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +18 -0
- data/spec/unit/resource/naming_spec.rb +122 -0
- data/spec/unit/resource/page_presenters_spec.rb +44 -0
- data/spec/unit/resource/pagination_spec.rb +38 -0
- data/spec/unit/resource/routes_spec.rb +73 -0
- data/spec/unit/resource/scopes_spec.rb +43 -0
- data/spec/unit/resource/sidebars_spec.rb +43 -0
- data/spec/unit/resource_collection_spec.rb +160 -0
- data/spec/unit/resource_controller/data_access_spec.rb +73 -0
- data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
- data/spec/unit/resource_controller_spec.rb +265 -0
- data/spec/unit/resource_registration_spec.rb +56 -0
- data/spec/unit/resource_spec.rb +243 -0
- data/spec/unit/routing_spec.rb +172 -0
- data/spec/unit/scope_spec.rb +108 -0
- data/spec/unit/settings_spec.rb +88 -0
- data/spec/unit/view_factory_spec.rb +21 -0
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +149 -0
- data/spec/unit/view_helpers/display_name_spec.rb +41 -0
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
- data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +101 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/spec/unit/views/components/attributes_table_spec.rb +230 -0
- data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
- data/spec/unit/views/components/blank_slate_spec.rb +17 -0
- data/spec/unit/views/components/columns_spec.rb +142 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/components/paginated_collection_spec.rb +227 -0
- data/spec/unit/views/components/panel_spec.rb +51 -0
- data/spec/unit/views/components/popover_spec.rb +33 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +95 -0
- data/spec/unit/views/components/table_for_spec.rb +201 -0
- data/spec/unit/views/pages/form_spec.rb +35 -0
- data/spec/unit/views/pages/layout_spec.rb +63 -0
- data/spec/unit/views/pages/show_spec.rb +20 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
- data/tasks/docs.rake +37 -0
- data/tasks/js.rake +32 -0
- data/tasks/parallel_tests.rake +60 -0
- data/tasks/test.rake +79 -0
- data/tasks/yard.rake +7 -0
- metadata +896 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
ActiveAdmin.setup do |config|
|
|
2
|
+
|
|
3
|
+
# == Site Title
|
|
4
|
+
#
|
|
5
|
+
# Set the title that is displayed on the main layout
|
|
6
|
+
# for each of the active admin pages.
|
|
7
|
+
#
|
|
8
|
+
config.site_title = "<%= Rails.application.class.name.split("::").first.titlecase %>"
|
|
9
|
+
|
|
10
|
+
# Set the link url for the title. For example, to take
|
|
11
|
+
# users to your main site. Defaults to no link.
|
|
12
|
+
#
|
|
13
|
+
# config.site_title_link = "/"
|
|
14
|
+
|
|
15
|
+
# Set an optional image to be displayed for the header
|
|
16
|
+
# instead of a string (overrides :site_title)
|
|
17
|
+
#
|
|
18
|
+
# Note: Aim for an image that's 21px high so it fits in the header.
|
|
19
|
+
#
|
|
20
|
+
# config.site_title_image = "logo.png"
|
|
21
|
+
|
|
22
|
+
# == Default Namespace
|
|
23
|
+
#
|
|
24
|
+
# Set the default namespace each administration resource
|
|
25
|
+
# will be added to.
|
|
26
|
+
#
|
|
27
|
+
# eg:
|
|
28
|
+
# config.default_namespace = :hello_world
|
|
29
|
+
#
|
|
30
|
+
# This will create resources in the HelloWorld module and
|
|
31
|
+
# will namespace routes to /hello_world/*
|
|
32
|
+
#
|
|
33
|
+
# To set no namespace by default, use:
|
|
34
|
+
# config.default_namespace = false
|
|
35
|
+
#
|
|
36
|
+
# Default:
|
|
37
|
+
# config.default_namespace = :admin
|
|
38
|
+
#
|
|
39
|
+
# You can customize the settings for each namespace by using
|
|
40
|
+
# a namespace block. For example, to change the site title
|
|
41
|
+
# within a namespace:
|
|
42
|
+
#
|
|
43
|
+
# config.namespace :admin do |admin|
|
|
44
|
+
# admin.site_title = "Custom Admin Title"
|
|
45
|
+
# end
|
|
46
|
+
#
|
|
47
|
+
# This will ONLY change the title for the admin section. Other
|
|
48
|
+
# namespaces will continue to use the main "site_title" configuration.
|
|
49
|
+
|
|
50
|
+
# == User Authentication
|
|
51
|
+
#
|
|
52
|
+
# Active Admin will automatically call an authentication
|
|
53
|
+
# method in a before filter of all controller actions to
|
|
54
|
+
# ensure that there is a currently logged in admin user.
|
|
55
|
+
#
|
|
56
|
+
# This setting changes the method which Active Admin calls
|
|
57
|
+
# within the controller.
|
|
58
|
+
config.authentication_method = :authenticate_<%= @underscored_user_name %>!
|
|
59
|
+
|
|
60
|
+
# == User Authorization
|
|
61
|
+
#
|
|
62
|
+
# Active Admin will automatically call an authorization
|
|
63
|
+
# method in a before filter of all controller actions to
|
|
64
|
+
# ensure that there is a user with proper rights. You can use
|
|
65
|
+
# CanCanAdapter or make your own. Please refer to documentation.
|
|
66
|
+
# config.authorization_adapter = ActiveAdmin::CanCanAdapter
|
|
67
|
+
|
|
68
|
+
# You can customize your CanCan Ability class name here.
|
|
69
|
+
# config.cancan_ability_class = "Ability"
|
|
70
|
+
|
|
71
|
+
# You can specify a method to be called on unauthorized access.
|
|
72
|
+
# This is necessary in order to prevent a redirect loop which happens
|
|
73
|
+
# because, by default, user gets redirected to Dashboard. If user
|
|
74
|
+
# doesn't have access to Dashboard, he'll end up in a redirect loop.
|
|
75
|
+
# Method provided here should be defined in application_controller.rb.
|
|
76
|
+
# config.on_unauthorized_access = :access_denied
|
|
77
|
+
|
|
78
|
+
# == Current User
|
|
79
|
+
#
|
|
80
|
+
# Active Admin will associate actions with the current
|
|
81
|
+
# user performing them.
|
|
82
|
+
#
|
|
83
|
+
# This setting changes the method which Active Admin calls
|
|
84
|
+
# to return the currently logged in user.
|
|
85
|
+
config.current_user_method = :current_<%= @underscored_user_name %>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# == Logging Out
|
|
89
|
+
#
|
|
90
|
+
# Active Admin displays a logout link on each screen. These
|
|
91
|
+
# settings configure the location and method used for the link.
|
|
92
|
+
#
|
|
93
|
+
# This setting changes the path where the link points to. If it's
|
|
94
|
+
# a string, the strings is used as the path. If it's a Symbol, we
|
|
95
|
+
# will call the method to return the path.
|
|
96
|
+
#
|
|
97
|
+
# Default:
|
|
98
|
+
config.logout_link_path = :destroy_<%= @underscored_user_name %>_session_path
|
|
99
|
+
|
|
100
|
+
# This setting changes the http method used when rendering the
|
|
101
|
+
# link. For example :get, :delete, :put, etc..
|
|
102
|
+
#
|
|
103
|
+
# Default:
|
|
104
|
+
# config.logout_link_method = :get
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# == Root
|
|
108
|
+
#
|
|
109
|
+
# Set the action to call for the root path. You can set different
|
|
110
|
+
# roots for each namespace.
|
|
111
|
+
#
|
|
112
|
+
# Default:
|
|
113
|
+
# config.root_to = 'dashboard#index'
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
# == Admin Comments
|
|
117
|
+
#
|
|
118
|
+
# This allows your users to comment on any resource registered with Active Admin.
|
|
119
|
+
#
|
|
120
|
+
# You can completely disable comments:
|
|
121
|
+
# config.allow_comments = false
|
|
122
|
+
#
|
|
123
|
+
# You can disable the menu item for the comments index page:
|
|
124
|
+
# config.show_comments_in_menu = false
|
|
125
|
+
#
|
|
126
|
+
# You can change the name under which comments are registered:
|
|
127
|
+
# config.comments_registration_name = 'AdminComment'
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
# == Batch Actions
|
|
131
|
+
#
|
|
132
|
+
# Enable and disable Batch Actions
|
|
133
|
+
#
|
|
134
|
+
config.batch_actions = true
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
# == Controller Filters
|
|
138
|
+
#
|
|
139
|
+
# You can add before, after and around filters to all of your
|
|
140
|
+
# Active Admin resources and pages from here.
|
|
141
|
+
#
|
|
142
|
+
# config.before_filter :do_something_awesome
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
# == Setting a Favicon
|
|
146
|
+
#
|
|
147
|
+
# config.favicon = '/assets/favicon.ico'
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
# == Register Stylesheets & Javascripts
|
|
151
|
+
#
|
|
152
|
+
# We recommend using the built in Active Admin layout and loading
|
|
153
|
+
# up your own stylesheets / javascripts to customize the look
|
|
154
|
+
# and feel.
|
|
155
|
+
#
|
|
156
|
+
# To load a stylesheet:
|
|
157
|
+
# config.register_stylesheet 'my_stylesheet.css'
|
|
158
|
+
#
|
|
159
|
+
# You can provide an options hash for more control, which is passed along to stylesheet_link_tag():
|
|
160
|
+
# config.register_stylesheet 'my_print_stylesheet.css', :media => :print
|
|
161
|
+
#
|
|
162
|
+
# To load a javascript file:
|
|
163
|
+
# config.register_javascript 'my_javascript.js'
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# == CSV options
|
|
167
|
+
#
|
|
168
|
+
# Set the CSV builder separator
|
|
169
|
+
# config.csv_options = { :col_sep => ';' }
|
|
170
|
+
#
|
|
171
|
+
# Force the use of quotes
|
|
172
|
+
# config.csv_options = { :force_quotes => true }
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
# == Menu System
|
|
176
|
+
#
|
|
177
|
+
# You can add a navigation menu to be used in your application, or configure a provided menu
|
|
178
|
+
#
|
|
179
|
+
# To change the default utility navigation to show a link to your website & a logout btn
|
|
180
|
+
#
|
|
181
|
+
# config.namespace :admin do |admin|
|
|
182
|
+
# admin.build_menu :utility_navigation do |menu|
|
|
183
|
+
# menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank }
|
|
184
|
+
# admin.add_logout_button_to_menu menu
|
|
185
|
+
# end
|
|
186
|
+
# end
|
|
187
|
+
#
|
|
188
|
+
# If you wanted to add a static menu item to the default menu provided:
|
|
189
|
+
#
|
|
190
|
+
# config.namespace :admin do |admin|
|
|
191
|
+
# admin.build_menu :default do |menu|
|
|
192
|
+
# menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank }
|
|
193
|
+
# end
|
|
194
|
+
# end
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
# == Download Links
|
|
198
|
+
#
|
|
199
|
+
# You can disable download links on resource listing pages,
|
|
200
|
+
# or customize the formats shown per namespace/globally
|
|
201
|
+
#
|
|
202
|
+
# To disable/customize for the :admin namespace:
|
|
203
|
+
#
|
|
204
|
+
# config.namespace :admin do |admin|
|
|
205
|
+
#
|
|
206
|
+
# # Disable the links entirely
|
|
207
|
+
# admin.download_links = false
|
|
208
|
+
#
|
|
209
|
+
# # Only show XML & PDF options
|
|
210
|
+
# admin.download_links = [:xml, :pdf]
|
|
211
|
+
#
|
|
212
|
+
# # Enable/disable the links based on block
|
|
213
|
+
# # (for example, with cancan)
|
|
214
|
+
# admin.download_links = proc { can?(:view_download_links) }
|
|
215
|
+
#
|
|
216
|
+
# end
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
# == Pagination
|
|
220
|
+
#
|
|
221
|
+
# Pagination is enabled by default for all resources.
|
|
222
|
+
# You can control the default per page count for all resources here.
|
|
223
|
+
#
|
|
224
|
+
# config.default_per_page = 30
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
# == Filters
|
|
228
|
+
#
|
|
229
|
+
# By default the index screen includes a “Filters” sidebar on the right
|
|
230
|
+
# hand side with a filter for each attribute of the registered model.
|
|
231
|
+
# You can enable or disable them for all resources here.
|
|
232
|
+
#
|
|
233
|
+
# config.filters = true
|
|
234
|
+
|
|
235
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
ActiveAdmin.register <%= @user_class %> do
|
|
2
|
+
index do
|
|
3
|
+
column :email
|
|
4
|
+
column :current_sign_in_at
|
|
5
|
+
column :last_sign_in_at
|
|
6
|
+
column :sign_in_count
|
|
7
|
+
default_actions
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
filter :email
|
|
11
|
+
|
|
12
|
+
form do |f|
|
|
13
|
+
f.inputs "Admin Details" do
|
|
14
|
+
f.input :email
|
|
15
|
+
f.input :password
|
|
16
|
+
f.input :password_confirmation
|
|
17
|
+
end
|
|
18
|
+
f.actions
|
|
19
|
+
end
|
|
20
|
+
<% unless Rails::VERSION::MAJOR < 4 -%>
|
|
21
|
+
controller do
|
|
22
|
+
def permitted_params
|
|
23
|
+
params.permit admin_user: [:email, :password, :password_confirmation]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
<% end -%>
|
|
27
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
ActiveAdmin.register_page "Dashboard" do
|
|
2
|
+
|
|
3
|
+
menu :priority => 1, :label => proc{ I18n.t("active_admin.dashboard") }
|
|
4
|
+
|
|
5
|
+
content :title => proc{ I18n.t("active_admin.dashboard") } do
|
|
6
|
+
div :class => "blank_slate_container", :id => "dashboard_default_message" do
|
|
7
|
+
span :class => "blank_slate" do
|
|
8
|
+
span I18n.t("active_admin.dashboard_welcome.welcome")
|
|
9
|
+
small I18n.t("active_admin.dashboard_welcome.call_to_action")
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Here is an example of a simple dashboard with columns and panels.
|
|
14
|
+
#
|
|
15
|
+
# columns do
|
|
16
|
+
# column do
|
|
17
|
+
# panel "Recent Posts" do
|
|
18
|
+
# ul do
|
|
19
|
+
# Post.recent(5).map do |post|
|
|
20
|
+
# li link_to(post.title, admin_post_path(post))
|
|
21
|
+
# end
|
|
22
|
+
# end
|
|
23
|
+
# end
|
|
24
|
+
# end
|
|
25
|
+
|
|
26
|
+
# column do
|
|
27
|
+
# panel "Info" do
|
|
28
|
+
# para "Welcome to ActiveAdmin."
|
|
29
|
+
# end
|
|
30
|
+
# end
|
|
31
|
+
# end
|
|
32
|
+
end # content
|
|
33
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class CreateActiveAdminComments < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :active_admin_comments do |t|
|
|
4
|
+
t.string :namespace
|
|
5
|
+
t.text :body
|
|
6
|
+
t.string :resource_id, :null => false
|
|
7
|
+
t.string :resource_type, :null => false
|
|
8
|
+
t.references :author, :polymorphic => true
|
|
9
|
+
t.timestamps
|
|
10
|
+
end
|
|
11
|
+
add_index :active_admin_comments, [:namespace]
|
|
12
|
+
add_index :active_admin_comments, [:author_type, :author_id]
|
|
13
|
+
add_index :active_admin_comments, [:resource_type, :resource_id]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.down
|
|
17
|
+
drop_table :active_admin_comments
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module ActiveAdmin
|
|
2
|
+
module Generators
|
|
3
|
+
class ResourceGenerator < Rails::Generators::NamedBase
|
|
4
|
+
desc "Registers resources with Active Admin"
|
|
5
|
+
|
|
6
|
+
def self.source_root
|
|
7
|
+
@_active_admin_source_root ||= File.expand_path("../templates", __FILE__)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def generate_config_file
|
|
11
|
+
template "admin.rb", "app/admin/#{file_path.gsub('/', '_')}.rb"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/ransack_ext.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# This sets up aliases for old Metasearch query methods so they behave
|
|
2
|
+
# identically to the versions given in Ransack.
|
|
3
|
+
#
|
|
4
|
+
Ransack.configure do |config|
|
|
5
|
+
{'contains'=>'cont', 'starts_with'=>'start', 'ends_with'=>'end'}.each do |old,new|
|
|
6
|
+
config.add_predicate old, Ransack::Constants::DERIVED_PREDICATES.detect{ |q, args| q == new }[1]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
{'equals'=>'eq', 'greater_than'=>'gt', 'less_than'=>'lt'}.each do |old,new|
|
|
10
|
+
config.add_predicate old, arel_predicate: new
|
|
11
|
+
end
|
|
12
|
+
end
|
data/script/local
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require File.expand_path('../../spec/support/detect_rails_version', __FILE__)
|
|
4
|
+
|
|
5
|
+
unless ARGV[0]
|
|
6
|
+
puts <<-EOF
|
|
7
|
+
Usage: ./script/#{__FILE__} COMMAND [ARGS]
|
|
8
|
+
|
|
9
|
+
The command will be run in the context of the local rails
|
|
10
|
+
app stored in test-rails-app.
|
|
11
|
+
|
|
12
|
+
Examples:
|
|
13
|
+
|
|
14
|
+
./script/local server
|
|
15
|
+
./script/local c
|
|
16
|
+
./script/local rake db:migrate
|
|
17
|
+
EOF
|
|
18
|
+
exit(1)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Set up some variables
|
|
22
|
+
rails_version = detect_rails_version || '3.0.0'
|
|
23
|
+
|
|
24
|
+
test_app_dir = ".test-rails-apps"
|
|
25
|
+
test_app_path = "#{test_app_dir}/test-rails-app-#{rails_version}"
|
|
26
|
+
|
|
27
|
+
# Ensure .test-rails-apps is created
|
|
28
|
+
system "mkdir #{test_app_dir}" unless File.exists?(test_app_dir)
|
|
29
|
+
|
|
30
|
+
# Create the sample rails app if it doesn't already exist
|
|
31
|
+
unless File.exists? test_app_path
|
|
32
|
+
system "RAILS='#{rails_version}' bundle exec rails new #{test_app_path} -m spec/support/rails_template_with_data.rb"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Link this rails app
|
|
36
|
+
system "rm test-rails-app"
|
|
37
|
+
system "ln -s #{test_app_path} test-rails-app"
|
|
38
|
+
|
|
39
|
+
# If it's a rails command, auto add the rails script
|
|
40
|
+
RAILS_COMMANDS = %w{generate console server dbconsole g c s runner}
|
|
41
|
+
args = RAILS_COMMANDS.include?(ARGV[0]) ? ["rails", ARGV].flatten : ARGV
|
|
42
|
+
|
|
43
|
+
# Run the command
|
|
44
|
+
exec "cd test-rails-app && GEMFILE=../Gemfile bundle exec #{args.join(" ")}"
|
data/script/use_rails
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# Switches the development environment to use the given
|
|
4
|
+
# version of rails. Caches the Gemfile.locks so that
|
|
5
|
+
# switching it very fast.
|
|
6
|
+
#
|
|
7
|
+
require File.expand_path("../../spec/support/detect_rails_version", __FILE__)
|
|
8
|
+
|
|
9
|
+
def cmd(command)
|
|
10
|
+
puts command
|
|
11
|
+
exit 1 unless system command
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
version = ARGV[0]
|
|
15
|
+
|
|
16
|
+
unless version
|
|
17
|
+
puts "USAGE: ./script/#{__FILE__} VERSION [OPTIONS]"
|
|
18
|
+
puts
|
|
19
|
+
puts "Options:"
|
|
20
|
+
puts " --clobber Add this flag to remove the existing Gemfile.lock before running"
|
|
21
|
+
exit(1)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def file_or_symlink?(path)
|
|
25
|
+
File.exist?(path) || File.symlink?(path)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
gem_lock_dir = ".gemfile-locks"
|
|
29
|
+
gem_lock_file = "#{gem_lock_dir}/Gemfile-#{version}.lock"
|
|
30
|
+
|
|
31
|
+
# Ensure our lock dir is created
|
|
32
|
+
cmd "mkdir #{gem_lock_dir}" unless File.exists?(gem_lock_dir)
|
|
33
|
+
|
|
34
|
+
# --clobber passed in
|
|
35
|
+
if File.exists?(gem_lock_file) && ARGV.include?('--clobber')
|
|
36
|
+
cmd "rm #{gem_lock_file}"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
write_rails_version(version)
|
|
40
|
+
|
|
41
|
+
# Ensure that bundler installs
|
|
42
|
+
ENV['RUBYOPT'] = ''
|
|
43
|
+
|
|
44
|
+
if File.exists?(gem_lock_file)
|
|
45
|
+
cmd("rm Gemfile.lock") if file_or_symlink?("Gemfile.lock")
|
|
46
|
+
cmd("ln -s #{gem_lock_file} Gemfile.lock")
|
|
47
|
+
cmd("bundle")
|
|
48
|
+
else
|
|
49
|
+
cmd "rm Gemfile.lock" if file_or_symlink?("Gemfile.lock")
|
|
50
|
+
cmd "bundle install"
|
|
51
|
+
cmd "mv Gemfile.lock #{gem_lock_file}"
|
|
52
|
+
cmd("ln -s #{gem_lock_file} Gemfile.lock")
|
|
53
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveAdmin::Application do
|
|
4
|
+
|
|
5
|
+
include Rails.application.routes.url_helpers
|
|
6
|
+
|
|
7
|
+
[false, nil].each do |value|
|
|
8
|
+
|
|
9
|
+
describe "with a #{value} default namespace" do
|
|
10
|
+
|
|
11
|
+
before(:all) do
|
|
12
|
+
@__original_application = ActiveAdmin.application
|
|
13
|
+
application = ActiveAdmin::Application.new
|
|
14
|
+
application.default_namespace = value
|
|
15
|
+
ActiveAdmin.application = application
|
|
16
|
+
load_defaults!
|
|
17
|
+
reload_routes!
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
after(:all) do
|
|
21
|
+
ActiveAdmin.application = @__original_application
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should generate a log out path" do
|
|
25
|
+
destroy_admin_user_session_path.should == "/admin_users/logout"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should generate a log in path" do
|
|
29
|
+
new_admin_user_session_path.should == "/admin_users/login"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe "with a test default namespace" do
|
|
37
|
+
|
|
38
|
+
before(:all) do
|
|
39
|
+
@__original_application = ActiveAdmin.application
|
|
40
|
+
application = ActiveAdmin::Application.new
|
|
41
|
+
application.default_namespace = :test
|
|
42
|
+
ActiveAdmin.application = application
|
|
43
|
+
load_defaults!
|
|
44
|
+
reload_routes!
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
after(:all) do
|
|
48
|
+
ActiveAdmin.application = @__original_application
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "should generate a log out path" do
|
|
52
|
+
destroy_admin_user_session_path.should == "/test/logout"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should generate a log in path" do
|
|
56
|
+
new_admin_user_session_path.should == "/test/login"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'jslint'
|
|
3
|
+
|
|
4
|
+
%x[which java]
|
|
5
|
+
if $? == 0 # Only run the JS Lint test if Java is installed
|
|
6
|
+
describe "Javascript" do
|
|
7
|
+
before do
|
|
8
|
+
@lint = JSLint::Lint.new(
|
|
9
|
+
:paths => ['public/javascripts/**/*.js'],
|
|
10
|
+
:exclude_paths => ['public/javascripts/vendor/**/*.js'],
|
|
11
|
+
:config_path => 'spec/support/jslint.yml'
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should not have any syntax errors" do
|
|
16
|
+
@lint.run
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
# These tests show the memory leak that is currently in Active Admin. They
|
|
4
|
+
# are all marked as pending until they pass. To work on them, comment out the
|
|
5
|
+
# pending method call in #it_should_not_leak
|
|
6
|
+
describe "Memory Leak" do
|
|
7
|
+
|
|
8
|
+
def count_instances_of(klass)
|
|
9
|
+
ObjectSpace.each_object(klass) { }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.it_should_not_leak(klass)
|
|
13
|
+
it "should not leak #{klass}" do
|
|
14
|
+
previously_disabled = GC.enable # returns true if the garbage collector was disabled
|
|
15
|
+
GC.start
|
|
16
|
+
count = count_instances_of(klass)
|
|
17
|
+
|
|
18
|
+
load_defaults!
|
|
19
|
+
|
|
20
|
+
GC.start
|
|
21
|
+
GC.disable if previously_disabled
|
|
22
|
+
count_instances_of(klass).should <= count
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it_should_not_leak ActiveAdmin::Namespace
|
|
27
|
+
it_should_not_leak ActiveAdmin::Resource
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "Stylesheets" do
|
|
4
|
+
if Rails.version[0..2] == '3.1'
|
|
5
|
+
require "sprockets"
|
|
6
|
+
context "when Rails 3.1.x" do
|
|
7
|
+
let(:css) do
|
|
8
|
+
assets = Rails.application.assets
|
|
9
|
+
assets.find_asset("active_admin.css")
|
|
10
|
+
end
|
|
11
|
+
it "should successfully render the scss stylesheets using sprockets" do
|
|
12
|
+
css.should_not be_nil
|
|
13
|
+
end
|
|
14
|
+
it "should not have any syntax errors" do
|
|
15
|
+
css.to_s.should_not include("Syntax error:")
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
if Rails.version[0..2] == '3.0'
|
|
21
|
+
context "when Rails 3.0.x" do
|
|
22
|
+
let(:stylesheet_path) do
|
|
23
|
+
Rails.root + 'public/stylesheets/active_admin.css'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
before do
|
|
27
|
+
"rm #{stylesheet_path}" if File.exists?(stylesheet_path)
|
|
28
|
+
Sass::Plugin.force_update_stylesheets
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should render the scss stylesheets using SASS" do
|
|
32
|
+
File.exists?(stylesheet_path).should be_true
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should not have any syntax errors" do
|
|
36
|
+
css = File.read(stylesheet_path)
|
|
37
|
+
css.should_not include("Syntax error:")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
describe "ActiveAdmin.CheckboxToggler", ->
|
|
2
|
+
|
|
3
|
+
beforeEach ->
|
|
4
|
+
loadFixtures('checkboxes.html')
|
|
5
|
+
|
|
6
|
+
@collection = $("#collection")
|
|
7
|
+
@toggle_all = @collection.find(".toggle_all")
|
|
8
|
+
|
|
9
|
+
@checkboxes = @collection.find(":checkbox").not(@toggle_all)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
new ActiveAdmin.CheckboxToggler({}, @collection)
|
|
13
|
+
|
|
14
|
+
describe "on init", ->
|
|
15
|
+
it "should raise an error if container not found", ->
|
|
16
|
+
expect( => new ActiveAdmin.CheckboxToggler({}) ).toThrow("Container element not found")
|
|
17
|
+
|
|
18
|
+
it "should raise an error if 'toggle all' checkbox not found", ->
|
|
19
|
+
@toggle_all.remove()
|
|
20
|
+
expect( => new ActiveAdmin.CheckboxToggler({}, @collection); ).toThrow("'toggle all' checkbox not found")
|
|
21
|
+
|
|
22
|
+
describe "'toggle all' checkbox", ->
|
|
23
|
+
it "should check all checkboxes when checked", ->
|
|
24
|
+
@toggle_all.trigger("click")
|
|
25
|
+
expect(@checkboxes).toHaveAttr("checked")
|
|
26
|
+
|
|
27
|
+
it "should uncheck all checkboxes when unchecked", ->
|
|
28
|
+
@toggle_all.trigger("click")
|
|
29
|
+
@toggle_all.trigger("click")
|
|
30
|
+
expect(@checkboxes).not.toHaveAttr("checked")
|
|
31
|
+
|
|
32
|
+
describe "individual checkboxes", ->
|
|
33
|
+
|
|
34
|
+
describe "when all checkboxes are selected and one is unchecked", ->
|
|
35
|
+
beforeEach ->
|
|
36
|
+
@collection.find(":checkbox").attr("checked", "checked")
|
|
37
|
+
@collection.find("#item_1").trigger("click")
|
|
38
|
+
|
|
39
|
+
it "should uncheck the 'toggle all' checkbox", ->
|
|
40
|
+
expect(@toggle_all).not.toHaveAttr("checked")
|
|
41
|
+
|
|
42
|
+
describe "when the last checkbox is checked", ->
|
|
43
|
+
beforeEach ->
|
|
44
|
+
@checkboxes.attr("checked", "checked")
|
|
45
|
+
@collection.find("#item_1").removeAttr("checked")
|
|
46
|
+
@collection.find("#item_1").trigger("click")
|
|
47
|
+
|
|
48
|
+
it "should check the 'toggle all' checkbox", ->
|
|
49
|
+
expect(@toggle_all).toHaveAttr("checked")
|
|
50
|
+
|