activeadmin 1.0.0.pre4 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CHANGELOG.md +529 -52
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +129 -58
- data/README.md +80 -79
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_base.scss +2 -2
- data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
- data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/print.scss +2 -3
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/shared/_links.erb +12 -6
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/ar.yml +4 -5
- data/config/locales/bg.yml +1 -3
- data/config/locales/bs.yml +1 -2
- data/config/locales/ca.yml +2 -4
- data/config/locales/cs.yml +1 -2
- data/config/locales/da.yml +45 -14
- data/config/locales/de-CH.yml +2 -3
- data/config/locales/de.yml +30 -3
- data/config/locales/el.yml +3 -4
- data/config/locales/en-CA.yml +139 -0
- data/config/locales/en-GB.yml +44 -3
- data/config/locales/en.yml +31 -5
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +5 -3
- data/config/locales/es.yml +32 -6
- data/config/locales/fa.yml +1 -2
- data/config/locales/fi.yml +2 -3
- data/config/locales/fr.yml +27 -5
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +1 -2
- data/config/locales/hu.yml +5 -2
- data/config/locales/id.yml +2 -3
- data/config/locales/it.yml +15 -7
- data/config/locales/ja.yml +8 -3
- data/config/locales/ko.yml +1 -2
- data/config/locales/lt.yml +27 -6
- data/config/locales/lv.yml +1 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +16 -7
- data/config/locales/nl.yml +13 -3
- data/config/locales/pl.yml +75 -5
- data/config/locales/pt-BR.yml +10 -3
- data/config/locales/pt-PT.yml +1 -2
- data/config/locales/ro.yml +1 -2
- data/config/locales/ru.yml +5 -3
- data/config/locales/sk.yml +168 -0
- data/config/locales/sv-SE.yml +4 -3
- data/config/locales/tr.yml +10 -2
- data/config/locales/uk.yml +4 -3
- data/config/locales/vi.yml +48 -8
- data/config/locales/zh-CN.yml +38 -7
- data/config/locales/zh-TW.yml +2 -3
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +19 -13
- data/docs/1-general-configuration.md +37 -4
- data/docs/10-custom-pages.md +47 -3
- data/docs/11-decorators.md +4 -0
- data/docs/12-arbre-components.md +73 -9
- data/docs/13-authorization-adapter.md +72 -35
- data/docs/14-gotchas.md +57 -19
- data/docs/2-resource-customization.md +64 -20
- data/docs/3-index-pages/custom-index.md +5 -1
- data/docs/3-index-pages/index-as-block.md +3 -5
- data/docs/3-index-pages/index-as-blog.md +4 -6
- data/docs/3-index-pages/index-as-grid.md +3 -5
- data/docs/3-index-pages/index-as-table.md +33 -12
- data/docs/3-index-pages.md +65 -9
- data/docs/4-csv-format.md +16 -0
- data/docs/5-forms.md +78 -17
- data/docs/6-show-pages.md +5 -29
- data/docs/7-sidebars.md +5 -1
- data/docs/8-custom-actions.md +18 -1
- data/docs/9-batch-actions.md +8 -4
- data/docs/CNAME +1 -0
- data/docs/Gemfile +3 -0
- data/docs/Gemfile.lock +248 -0
- data/docs/_config.yml +4 -0
- data/docs/_includes/footer.html +8 -0
- data/docs/_includes/google-analytics.html +16 -0
- data/docs/_includes/head.html +7 -0
- data/docs/_includes/toc.html +98 -0
- data/docs/_includes/top-menu.html +17 -0
- data/docs/_layouts/default.html +21 -0
- data/docs/documentation.md +60 -0
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +226 -0
- data/docs/stylesheets/main.css +1205 -0
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +50 -140
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/authorization_adapter.rb +0 -3
- data/lib/active_admin/base_controller/authorization.rb +4 -7
- data/lib/active_admin/base_controller/menu.rb +10 -14
- data/lib/active_admin/base_controller.rb +8 -14
- data/lib/active_admin/batch_actions/controller.rb +3 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +15 -12
- data/lib/active_admin/dependency.rb +8 -76
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/devise.rb +3 -3
- data/lib/active_admin/dsl.rb +3 -16
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/error.rb +5 -3
- data/lib/active_admin/filters/active.rb +13 -14
- data/lib/active_admin/filters/active_filter.rb +124 -0
- data/lib/active_admin/filters/active_sidebar.rb +54 -0
- data/lib/active_admin/filters/forms.rb +6 -4
- data/lib/active_admin/filters/formtastic_addons.rb +2 -2
- data/lib/active_admin/filters/resource_extension.rb +28 -43
- data/lib/active_admin/filters.rb +2 -0
- data/lib/active_admin/form_builder.rb +100 -59
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +12 -5
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
- data/lib/active_admin/inputs/filters/select_input.rb +6 -3
- data/lib/active_admin/inputs/filters/text_input.rb +25 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +35 -0
- data/lib/active_admin/localizers.rb +11 -0
- data/lib/active_admin/menu.rb +6 -12
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +36 -17
- data/lib/active_admin/namespace_settings.rb +123 -0
- data/lib/active_admin/order_clause.rb +30 -8
- data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
- data/lib/active_admin/orm/active_record/comments.rb +17 -11
- data/lib/active_admin/page.rb +23 -4
- data/lib/active_admin/page_controller.rb +2 -6
- data/lib/active_admin/page_dsl.rb +5 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +18 -5
- data/lib/active_admin/resource/action_items.rb +17 -5
- data/lib/active_admin/resource/attributes.rb +47 -0
- data/lib/active_admin/resource/belongs_to.rb +10 -1
- data/lib/active_admin/resource/menu.rb +7 -4
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +52 -20
- data/lib/active_admin/resource/scopes.rb +5 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +59 -7
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/data_access.rb +32 -27
- data/lib/active_admin/resource_controller/decorators.rb +5 -5
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller.rb +15 -0
- data/lib/active_admin/resource_dsl.rb +58 -24
- data/lib/active_admin/router.rb +90 -82
- data/lib/active_admin/scope.rb +20 -12
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/sidebar_section.rb +3 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
- data/lib/active_admin/view_helpers/display_helper.rb +28 -16
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
- data/lib/active_admin/view_helpers/fields_for.rb +1 -2
- data/lib/active_admin/view_helpers/form_helper.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/view_helpers.rb +2 -1
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +43 -11
- data/lib/active_admin/views/components/attributes_table.rb +4 -4
- data/lib/active_admin/views/components/columns.rb +3 -3
- data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +7 -11
- data/lib/active_admin/views/components/scopes.rb +14 -8
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +11 -16
- data/lib/active_admin/views/components/table_for.rb +7 -16
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +14 -4
- data/lib/active_admin/views/header.rb +3 -16
- data/lib/active_admin/views/index_as_blog.rb +2 -3
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +39 -13
- data/lib/active_admin/views/pages/base.rb +36 -57
- data/lib/active_admin/views/pages/form.rb +2 -3
- data/lib/active_admin/views/pages/layout.rb +1 -1
- data/lib/active_admin/views/pages/show.rb +8 -2
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views/title_bar.rb +4 -4
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +11 -7
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
- data/lib/generators/active_admin/install/install_generator.rb +7 -3
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
- data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
- data/lib/ransack_ext.rb +5 -5
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +190 -539
- data/.gitignore +0 -49
- data/.hound.yml +0 -14
- data/.travis.yml +0 -46
- data/.yardopts +0 -8
- data/Gemfile +0 -75
- data/Guardfile +0 -8
- data/Rakefile +0 -33
- data/activeadmin.gemspec +0 -31
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -66
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -171
- data/features/comments/viewing_index.feature +0 -19
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -30
- data/features/edit_page.feature +0 -117
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -43
- data/features/index/batch_actions.feature +0 -196
- data/features/index/filters.feature +0 -161
- data/features/index/format_as_csv.feature +0 -203
- data/features/index/formats.feature +0 -66
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -251
- data/features/index/page_title.feature +0 -42
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -53
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -109
- data/features/registering_assets.feature +0 -34
- data/features/registering_pages.feature +0 -148
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -32
- data/features/root_to.feature +0 -17
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -59
- data/features/show/tabs.feature +0 -27
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -93
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -20
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -12
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -39
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -52
- data/features/step_definitions/i18n_steps.rb +0 -3
- data/features/step_definitions/index_scope_steps.rb +0 -21
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -13
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/symbol_leak_steps.rb +0 -3
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -120
- data/features/step_definitions/user_steps.rb +0 -45
- data/features/step_definitions/web_steps.rb +0 -85
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -73
- data/features/support/env.rb +0 -162
- data/features/support/paths.rb +0 -71
- data/features/support/selectors.rb +0 -45
- data/features/symbol_leak.feature +0 -35
- data/features/users/logging_in.feature +0 -34
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/filters/humanized.rb +0 -68
- data/lib/active_admin/helpers/settings.rb +0 -115
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
- data/script/local +0 -53
- data/script/travis_cache +0 -107
- data/script/use_rails +0 -53
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_config.rb +0 -23
- data/spec/javascripts/support/jasmine_runner.rb +0 -32
- data/spec/rails_helper.rb +0 -169
- data/spec/requests/default_namespace_spec.rb +0 -61
- data/spec/requests/javascript_spec.rb +0 -22
- data/spec/requests/memory_spec.rb +0 -21
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -17
- data/spec/support/active_admin_request_helpers.rb +0 -27
- data/spec/support/deferred_garbage_collection.rb +0 -19
- data/spec/support/detect_rails_version.rb +0 -34
- data/spec/support/jslint.yml +0 -80
- data/spec/support/rails_template.rb +0 -158
- data/spec/support/rails_template_with_data.rb +0 -55
- data/spec/support/templates/admin/stores.rb +0 -9
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -45
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -11
- data/spec/unit/abstract_view_factory_spec.rb +0 -79
- data/spec/unit/action_builder_spec.rb +0 -134
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -165
- data/spec/unit/asset_registration_spec.rb +0 -52
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -69
- data/spec/unit/batch_actions/resource_spec.rb +0 -97
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -65
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -188
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -303
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -96
- data/spec/unit/dsl_spec.rb +0 -122
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
- data/spec/unit/filters/humanized_spec.rb +0 -56
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -815
- data/spec/unit/generators/install_spec.rb +0 -24
- data/spec/unit/helpers/collection_spec.rb +0 -65
- data/spec/unit/helpers/scope_chain_spec.rb +0 -36
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -12
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -143
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -73
- data/spec/unit/namespace/register_resource_spec.rb +0 -160
- data/spec/unit/namespace_spec.rb +0 -103
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -78
- data/spec/unit/pretty_format_spec.rb +0 -77
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -65
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -77
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -140
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
- data/spec/unit/resource_controller_spec.rb +0 -269
- data/spec/unit/resource_registration_spec.rb +0 -56
- data/spec/unit/resource_spec.rb +0 -331
- data/spec/unit/routing_spec.rb +0 -185
- data/spec/unit/scope_spec.rb +0 -185
- data/spec/unit/settings_spec.rb +0 -118
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
- data/spec/unit/views/components/attributes_table_spec.rb +0 -272
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -189
- data/spec/unit/views/components/index_list_spec.rb +0 -35
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -78
- data/spec/unit/views/components/status_tag_spec.rb +0 -249
- data/spec/unit/views/components/table_for_spec.rb +0 -434
- data/spec/unit/views/components/tabs_spec.rb +0 -39
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -51
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -33
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -37
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -91
- data/tasks/yard.rake +0 -9
data/features/support/paths.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
module NavigationHelpers
|
2
|
-
# Maps a name to a path. Used by the
|
3
|
-
#
|
4
|
-
# When /^I go to (.+)$/ do |page_name|
|
5
|
-
#
|
6
|
-
# step definition in web_steps.rb
|
7
|
-
#
|
8
|
-
def path_to(page_name)
|
9
|
-
params = page_name.scan(/with params "(.*?)"/).flatten[0] || ''
|
10
|
-
page_name.sub! /\ with params.*/, ''
|
11
|
-
|
12
|
-
url = case page_name
|
13
|
-
|
14
|
-
when /the home\s?page/
|
15
|
-
'/'
|
16
|
-
when /the dashboard/
|
17
|
-
"/admin"
|
18
|
-
when /the new post page/
|
19
|
-
"/admin/posts/new"
|
20
|
-
when /the login page/
|
21
|
-
"/admin/login"
|
22
|
-
when /the first post show page/
|
23
|
-
"/admin/posts/1"
|
24
|
-
when /the first post edit page/
|
25
|
-
"/admin/posts/1/edit"
|
26
|
-
when /the admin password reset form with token "([^"]*)"/
|
27
|
-
"/admin/password/edit?reset_password_token=#{$1}"
|
28
|
-
|
29
|
-
# the index page for posts in the root namespace
|
30
|
-
# the index page for posts in the user_admin namespace
|
31
|
-
when /^the index page for (.*) in the (.*) namespace$/
|
32
|
-
if $2 != 'root'
|
33
|
-
send "#{$2}_#{$1}_path"
|
34
|
-
else
|
35
|
-
send "#{$1}_path"
|
36
|
-
end
|
37
|
-
|
38
|
-
# same as above, except defaults to admin namespace
|
39
|
-
when /^the index page for (.*)$/
|
40
|
-
send "admin_#{$1}_path"
|
41
|
-
|
42
|
-
when /^the last author's posts$/
|
43
|
-
admin_user_posts_path(User.last)
|
44
|
-
|
45
|
-
when /^the last author's last post page$/
|
46
|
-
admin_user_post_path(User.last, Post.where(author_id: User.last.id).last)
|
47
|
-
|
48
|
-
when /^the last post's edit page$/
|
49
|
-
edit_admin_post_path(Post.last)
|
50
|
-
|
51
|
-
# Add more mappings here.
|
52
|
-
# Here is an example that pulls values out of the Regexp:
|
53
|
-
#
|
54
|
-
# when /^(.*)'s profile page$/i
|
55
|
-
# user_profile_path(User.find_by_login($1))
|
56
|
-
|
57
|
-
else
|
58
|
-
begin
|
59
|
-
page_name =~ /the (.*) page/
|
60
|
-
path_components = $1.split(/\s+/)
|
61
|
-
self.send path_components.push('path').join('_')
|
62
|
-
rescue Object => e
|
63
|
-
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
|
64
|
-
"Now, go and add a mapping in #{__FILE__}"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
url + params
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
World(NavigationHelpers)
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module HtmlSelectorsHelpers
|
2
|
-
# Maps a name to a selector. Used primarily by the
|
3
|
-
#
|
4
|
-
# When /^(.+) within (.+)$/ do |step, scope|
|
5
|
-
#
|
6
|
-
# step definitions in web_steps.rb
|
7
|
-
#
|
8
|
-
def selector_for(locator)
|
9
|
-
case locator
|
10
|
-
|
11
|
-
when "the page"
|
12
|
-
"html > body"
|
13
|
-
|
14
|
-
# Add more mappings here.
|
15
|
-
# Here is an example that pulls values out of the Regexp:
|
16
|
-
#
|
17
|
-
# when /^the (notice|error|info) flash$/
|
18
|
-
# ".flash.#{$1}"
|
19
|
-
|
20
|
-
# You can also return an array to use a different selector
|
21
|
-
# type, like:
|
22
|
-
#
|
23
|
-
# when /the header/
|
24
|
-
# [:xpath, "//header"]
|
25
|
-
|
26
|
-
when "index grid"
|
27
|
-
[:css, "table.index_grid"]
|
28
|
-
|
29
|
-
when /^the "([^"]*)" sidebar$/
|
30
|
-
[:css, "##{$1.tr(" ", '').underscore}_sidebar_section"]
|
31
|
-
|
32
|
-
# This allows you to provide a quoted selector as the scope
|
33
|
-
# for "within" steps as was previously the default for the
|
34
|
-
# web steps:
|
35
|
-
when /^"(.+)"$/
|
36
|
-
$1
|
37
|
-
|
38
|
-
else
|
39
|
-
raise "Can't find mapping from \"#{locator}\" to a selector.\n" +
|
40
|
-
"Now, go and add a mapping in #{__FILE__}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
World(HtmlSelectorsHelpers)
|
@@ -1,35 +0,0 @@
|
|
1
|
-
Feature: User input shouldn't be symbolized
|
2
|
-
|
3
|
-
Background:
|
4
|
-
Given a configuration of:
|
5
|
-
"""
|
6
|
-
ActiveAdmin.register Post
|
7
|
-
"""
|
8
|
-
Given I am logged in
|
9
|
-
And 1 post exists
|
10
|
-
|
11
|
-
Scenario: The dashboard doesn't leak
|
12
|
-
Given I am on the dashboard with params "?really_long_malicious_key0"
|
13
|
-
Then "really_long_malicious_key0" shouldn't be a symbol
|
14
|
-
|
15
|
-
Scenario: The index page doesn't leak
|
16
|
-
Given I am on the index page for posts with params "?really_long_malicious_key1"
|
17
|
-
Then "really_long_malicious_key1" shouldn't be a symbol
|
18
|
-
|
19
|
-
@allow-rescue
|
20
|
-
Scenario: The filter query hash doesn't leak
|
21
|
-
Given I am on the index page for posts with params "?q[really_long_malicious_key2]"
|
22
|
-
Then "really_long_malicious_key2" shouldn't be a symbol
|
23
|
-
|
24
|
-
Scenario: The show page doesn't leak
|
25
|
-
Given I go to the first post show page with params "?really_long_malicious_key3"
|
26
|
-
Then "really_long_malicious_key3" shouldn't be a symbol
|
27
|
-
|
28
|
-
Scenario: The edit page doesn't leak
|
29
|
-
Given I go to the first post edit page with params "?really_long_malicious_key4"
|
30
|
-
Then "really_long_malicious_key4" shouldn't be a symbol
|
31
|
-
|
32
|
-
@allow-rescue
|
33
|
-
Scenario: Batch Actions don't leak
|
34
|
-
Given I POST to "admin/posts/batch_action" with params "?batch_action=really_long_malicious_key5"
|
35
|
-
Then "really_long_malicious_key5" shouldn't be a symbol
|
@@ -1,34 +0,0 @@
|
|
1
|
-
Feature: User Logging In
|
2
|
-
|
3
|
-
Logging in to the system as an admin user
|
4
|
-
|
5
|
-
Background:
|
6
|
-
Given a configuration of:
|
7
|
-
"""
|
8
|
-
ActiveAdmin.register Post
|
9
|
-
"""
|
10
|
-
And I am logged out
|
11
|
-
And an admin user "admin@example.com" exists
|
12
|
-
When I go to the dashboard
|
13
|
-
|
14
|
-
Scenario: Logging in Successfully
|
15
|
-
When I fill in "Email" with "admin@example.com"
|
16
|
-
And I fill in "Password" with "password"
|
17
|
-
And I press "Login"
|
18
|
-
Then I should be on the the dashboard
|
19
|
-
And I should see the element "a[href='/admin/logout' ]:contains('Logout')"
|
20
|
-
And I should see the element "a[href='/admin/admin_users/1']:contains('admin@example.com')"
|
21
|
-
|
22
|
-
Scenario: Attempting to log in with an incorrect email address
|
23
|
-
When I fill in "Email" with "not-an-admin@example.com"
|
24
|
-
And I fill in "Password" with "not-my-password"
|
25
|
-
And I press "Login"
|
26
|
-
Then I should see "Login"
|
27
|
-
And I should see "Invalid email or password."
|
28
|
-
|
29
|
-
Scenario: Attempting to log in with an incorrect password
|
30
|
-
When I fill in "Email" with "admin@example.com"
|
31
|
-
And I fill in "Password" with "not-my-password"
|
32
|
-
And I press "Login"
|
33
|
-
Then I should see "Login"
|
34
|
-
And I should see "Invalid email or password."
|
@@ -1,13 +0,0 @@
|
|
1
|
-
Feature: User Logging out
|
2
|
-
|
3
|
-
Logging out of the system as an admin user
|
4
|
-
|
5
|
-
Scenario: Logging out successfully
|
6
|
-
Given a configuration of:
|
7
|
-
"""
|
8
|
-
ActiveAdmin.register Post
|
9
|
-
"""
|
10
|
-
And I am logged in
|
11
|
-
When I go to the dashboard
|
12
|
-
And I follow "Logout"
|
13
|
-
Then I should see "Login"
|
@@ -1,34 +0,0 @@
|
|
1
|
-
Feature: User Resetting Password
|
2
|
-
|
3
|
-
Resetting my password as an admin user
|
4
|
-
|
5
|
-
Background:
|
6
|
-
Given a configuration of:
|
7
|
-
"""
|
8
|
-
ActiveAdmin.register Post
|
9
|
-
"""
|
10
|
-
And I am logged out
|
11
|
-
And an admin user "admin@example.com" exists
|
12
|
-
|
13
|
-
Scenario: Resetting password successfully
|
14
|
-
When I go to the dashboard
|
15
|
-
And I follow "Forgot your password?"
|
16
|
-
When I fill in "Email" with "admin@example.com"
|
17
|
-
And I press "Reset My Password"
|
18
|
-
Then I should see "You will receive an email with instructions on how to reset your password in a few minutes."
|
19
|
-
|
20
|
-
Scenario: Changing password after resetting
|
21
|
-
When "admin@example.com" requests a password reset with token "foobarbaz"
|
22
|
-
When I go to the admin password reset form with token "foobarbaz"
|
23
|
-
And I fill in the password field with "password"
|
24
|
-
And I fill in "Password confirmation" with "password"
|
25
|
-
And I press "Change my password"
|
26
|
-
Then I should see "success"
|
27
|
-
|
28
|
-
Scenario: Changing password after resetting with errors
|
29
|
-
When "admin@example.com" requests a password reset with token "foobarbaz" but it expires
|
30
|
-
When I go to the admin password reset form with token "foobarbaz"
|
31
|
-
And I fill in the password field with "password"
|
32
|
-
And I fill in "Password confirmation" with "wrong"
|
33
|
-
And I press "Change my password"
|
34
|
-
Then I should see "expired"
|
data/lib/active_admin/event.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
module ActiveAdmin
|
2
|
-
|
3
|
-
class EventDispatcher
|
4
|
-
def subscribe(*event_names, &block)
|
5
|
-
Deprecation.warn "`ActiveAdmin::Event.subscribe` is deprecated, use `ActiveSupport::Notifications.subscribe`"
|
6
|
-
event_names.each do |event|
|
7
|
-
ActiveSupport::Notifications.subscribe event,
|
8
|
-
&wrap_block_for_active_support_notifications(block)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def dispatch(event, *args)
|
13
|
-
Deprecation.warn "`ActiveAdmin::Event.dispatch` is deprecated, use `ActiveSupport::Notifications.publish`"
|
14
|
-
ActiveSupport::Notifications.publish event, *args
|
15
|
-
end
|
16
|
-
|
17
|
-
def wrap_block_for_active_support_notifications block
|
18
|
-
proc { |event, *args| block.call *args }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# ActiveAdmin::Event is set to a dispatcher
|
23
|
-
Event = EventDispatcher.new
|
24
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
module ActiveAdmin
|
2
|
-
module Filters
|
3
|
-
|
4
|
-
class Humanized
|
5
|
-
include ActiveAdmin::ViewHelpers
|
6
|
-
|
7
|
-
def initialize(param)
|
8
|
-
@body = param[0]
|
9
|
-
@value = param[1]
|
10
|
-
end
|
11
|
-
|
12
|
-
def value
|
13
|
-
@value.is_a?(::Array) ? @value.compact.join(', ') : @value
|
14
|
-
end
|
15
|
-
|
16
|
-
def body
|
17
|
-
predicate = ransack_predicate_translation
|
18
|
-
|
19
|
-
if current_predicate.nil?
|
20
|
-
predicate = @body.titleize
|
21
|
-
elsif translation_missing?(predicate)
|
22
|
-
predicate = active_admin_predicate_translation
|
23
|
-
end
|
24
|
-
|
25
|
-
"#{parse_parameter_body} #{predicate}".strip
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def parse_parameter_body
|
31
|
-
return if current_predicate.nil?
|
32
|
-
|
33
|
-
# Accounting for strings that might contain other predicates. Example:
|
34
|
-
# 'requires_approval' contains the substring 'eq'
|
35
|
-
split_string = "_#{current_predicate}"
|
36
|
-
|
37
|
-
@body.split(split_string)
|
38
|
-
.first
|
39
|
-
.gsub('_', ' ')
|
40
|
-
.strip
|
41
|
-
.titleize
|
42
|
-
.gsub('Id', 'ID')
|
43
|
-
end
|
44
|
-
|
45
|
-
def current_predicate
|
46
|
-
@current_predicate ||= predicates.detect { |p| @body.include?(p) }
|
47
|
-
end
|
48
|
-
|
49
|
-
def predicates
|
50
|
-
Ransack::Predicate.names_by_decreasing_length
|
51
|
-
end
|
52
|
-
|
53
|
-
def ransack_predicate_translation
|
54
|
-
I18n.t("ransack.predicates.#{current_predicate}")
|
55
|
-
end
|
56
|
-
|
57
|
-
def active_admin_predicate_translation
|
58
|
-
translation = I18n.t("active_admin.filters.predicates.#{current_predicate}").downcase
|
59
|
-
end
|
60
|
-
|
61
|
-
def translation_missing?(predicate)
|
62
|
-
predicate.downcase.include?('translation missing')
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
end
|
@@ -1,115 +0,0 @@
|
|
1
|
-
module ActiveAdmin
|
2
|
-
|
3
|
-
# Adds a class method to a class to create settings with default values.
|
4
|
-
#
|
5
|
-
# Example:
|
6
|
-
#
|
7
|
-
# class Configuration
|
8
|
-
# include ActiveAdmin::Settings
|
9
|
-
#
|
10
|
-
# setting :site_title, "Default Site Title"
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# conf = Configuration.new
|
14
|
-
# conf.site_title #=> "Default Site Title"
|
15
|
-
# conf.site_title = "Override Default"
|
16
|
-
# conf.site_title #=> "Override Default"
|
17
|
-
#
|
18
|
-
module Settings
|
19
|
-
|
20
|
-
def self.included(base)
|
21
|
-
base.extend ClassMethods
|
22
|
-
end
|
23
|
-
|
24
|
-
def read_default_setting(name)
|
25
|
-
default_settings[name]
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def default_settings
|
31
|
-
self.class.default_settings
|
32
|
-
end
|
33
|
-
|
34
|
-
module ClassMethods
|
35
|
-
|
36
|
-
def setting(name, default)
|
37
|
-
default_settings[name] = default
|
38
|
-
attr_writer name
|
39
|
-
|
40
|
-
# Create an accessor that looks up the default value if none is set.
|
41
|
-
define_method name do
|
42
|
-
if instance_variable_defined? "@#{name}"
|
43
|
-
instance_variable_get "@#{name}"
|
44
|
-
else
|
45
|
-
read_default_setting name.to_sym
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
define_method "#{name}?" do
|
50
|
-
value = public_send(name)
|
51
|
-
if value.is_a? Array
|
52
|
-
value.any?
|
53
|
-
else
|
54
|
-
value.present?
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def deprecated_setting(name, default, message = nil)
|
60
|
-
setting(name, default)
|
61
|
-
|
62
|
-
message ||= "The #{name} setting is deprecated and will be removed."
|
63
|
-
ActiveAdmin::Deprecation.deprecate self, name, message
|
64
|
-
ActiveAdmin::Deprecation.deprecate self, :"#{name}=", message
|
65
|
-
end
|
66
|
-
|
67
|
-
def default_settings
|
68
|
-
@default_settings ||= {}
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
# Allows you to define child classes that should receive the same
|
75
|
-
# settings, as well as the same default values.
|
76
|
-
#
|
77
|
-
# Example from the codebase:
|
78
|
-
#
|
79
|
-
# class Application
|
80
|
-
# include Settings
|
81
|
-
# include Settings::Inheritance
|
82
|
-
#
|
83
|
-
# settings_inherited_by :Namespace
|
84
|
-
#
|
85
|
-
# inheritable_setting :root_to, 'dashboard#index'
|
86
|
-
# end
|
87
|
-
#
|
88
|
-
module Inheritance
|
89
|
-
|
90
|
-
def self.included(base)
|
91
|
-
base.extend ClassMethods
|
92
|
-
end
|
93
|
-
|
94
|
-
module ClassMethods
|
95
|
-
|
96
|
-
def settings_inherited_by(heir)
|
97
|
-
(@setting_heirs ||= []) << heir
|
98
|
-
heir.send :include, ActiveAdmin::Settings
|
99
|
-
end
|
100
|
-
|
101
|
-
def inheritable_setting(name, default)
|
102
|
-
setting name, default
|
103
|
-
@setting_heirs.each{ |c| c.setting name, default }
|
104
|
-
end
|
105
|
-
|
106
|
-
def deprecated_inheritable_setting(name, default)
|
107
|
-
deprecated_setting name, default
|
108
|
-
@setting_heirs.each{ |c| c.deprecated_setting name, default }
|
109
|
-
end
|
110
|
-
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
end
|
115
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module ActiveAdmin
|
2
|
-
module Reloader
|
3
|
-
# ActionDispatch::Reloader.to_prepare is deprecated in Rails 5.0 and will be removed from Rails 5.1
|
4
|
-
#
|
5
|
-
# Use ActiveSupport::Reloader if available for Rails 5, fall back to ActionDispatch::Reloader for earlier Rails
|
6
|
-
def self.to_prepare(*args, &block)
|
7
|
-
if defined? ActiveSupport::Reloader
|
8
|
-
ActiveSupport::Reloader.to_prepare(*args, &block)
|
9
|
-
else
|
10
|
-
ActionDispatch::Reloader.to_prepare(*args, &block)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# ActionDispatch::Reloader.to_cleanup is deprecated in Rails 5.0 and will be removed from Rails 5.1
|
15
|
-
#
|
16
|
-
# Use ActiveSupport::Reloader if available for Rails 5, fall back to ActionDispatch::Reloader for earlier Rails
|
17
|
-
def self.to_complete(*args, &block)
|
18
|
-
if defined? ActiveSupport::Reloader
|
19
|
-
ActiveSupport::Reloader.to_complete(*args, &block)
|
20
|
-
else
|
21
|
-
ActionDispatch::Reloader.to_cleanup(*args, &block)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
#= require active_admin/base
|
@@ -1,45 +0,0 @@
|
|
1
|
-
ActiveAdmin.register <%= class_name %> do
|
2
|
-
<% if ActiveAdmin::Dependency.rails.strong_parameters? %>
|
3
|
-
# See permitted parameters documentation:
|
4
|
-
# https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
|
5
|
-
#
|
6
|
-
# permit_params :list, :of, :attributes, :on, :model
|
7
|
-
#
|
8
|
-
# or
|
9
|
-
#
|
10
|
-
# permit_params do
|
11
|
-
# permitted = [:permitted, :attributes]
|
12
|
-
# permitted << :other if params[:action] == 'create' && current_user.admin?
|
13
|
-
# permitted
|
14
|
-
# end
|
15
|
-
<% end %>
|
16
|
-
<% if options.include_boilerplate? %>
|
17
|
-
# Limit actions available to your users by adding them to the 'except' array
|
18
|
-
# actions :all, except: []
|
19
|
-
|
20
|
-
# Add or remove filters (you can use any ActiveRecord scope) to toggle their
|
21
|
-
# visibility in the sidebar
|
22
|
-
<%= @boilerplate.filters %>
|
23
|
-
|
24
|
-
# Add or remove columns to toggle their visiblity in the index action
|
25
|
-
# index do
|
26
|
-
# selectable_column
|
27
|
-
# id_column
|
28
|
-
<%= @boilerplate.columns %>
|
29
|
-
# actions
|
30
|
-
# end
|
31
|
-
|
32
|
-
# Add or remove rows to toggle their visiblity in the show action
|
33
|
-
# show do |<%= class_name.downcase %>|
|
34
|
-
<%= @boilerplate.rows %>
|
35
|
-
# end
|
36
|
-
|
37
|
-
# Add or remove fields to toggle their visibility in the form
|
38
|
-
# form do |f|
|
39
|
-
# f.inputs do
|
40
|
-
<%= @boilerplate.form_inputs %>
|
41
|
-
# end
|
42
|
-
# f.actions
|
43
|
-
# end
|
44
|
-
<% end %>
|
45
|
-
end
|
data/script/local
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'shellwords'
|
4
|
-
require File.expand_path('../../spec/support/detect_rails_version', __FILE__)
|
5
|
-
|
6
|
-
unless ARGV[0]
|
7
|
-
puts <<-EOF
|
8
|
-
Usage: ./script/#{__FILE__} COMMAND [ARGS]
|
9
|
-
|
10
|
-
The command will be run in the context of the local rails
|
11
|
-
app stored in test-rails-app.
|
12
|
-
|
13
|
-
Examples:
|
14
|
-
|
15
|
-
./script/local server
|
16
|
-
./script/local c
|
17
|
-
./script/local rake db:migrate
|
18
|
-
EOF
|
19
|
-
exit(1)
|
20
|
-
end
|
21
|
-
|
22
|
-
# Set up some variables
|
23
|
-
rails_version = detect_rails_version!
|
24
|
-
|
25
|
-
dir = ".test-rails-apps"
|
26
|
-
path = "#{dir}/test-rails-app-#{rails_version}"
|
27
|
-
|
28
|
-
# Ensure .test-rails-apps is created
|
29
|
-
system "mkdir #{dir}" unless File.exists?(dir)
|
30
|
-
|
31
|
-
# Create the sample rails app if it doesn't already exist
|
32
|
-
unless File.exists? path
|
33
|
-
args = %w[
|
34
|
-
-m\ spec/support/rails_template_with_data.rb
|
35
|
-
--skip-gemfile
|
36
|
-
--skip-bundle
|
37
|
-
--skip-git
|
38
|
-
--skip-turbolinks
|
39
|
-
--skip-test-unit
|
40
|
-
]
|
41
|
-
system "RAILS='#{rails_version}' bundle exec rails new #{Shellwords.escape path} #{args.join ' '}"
|
42
|
-
end
|
43
|
-
|
44
|
-
# Link this rails app
|
45
|
-
system "rm test-rails-app"
|
46
|
-
system "ln -s #{Shellwords.escape path} test-rails-app"
|
47
|
-
|
48
|
-
# If it's a rails command, auto add the rails script
|
49
|
-
RAILS_COMMANDS = %w{generate console server dbconsole g c s runner}
|
50
|
-
args = RAILS_COMMANDS.include?(ARGV[0]) ? ["rails", ARGV].flatten : ARGV
|
51
|
-
|
52
|
-
# Run the command
|
53
|
-
exec "cd test-rails-app && GEMFILE=../Gemfile bundle exec #{args.join(" ")}"
|
data/script/travis_cache
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'base64'
|
4
|
-
require 'digest'
|
5
|
-
require 'openssl'
|
6
|
-
require 'shellwords'
|
7
|
-
|
8
|
-
prefix = "ruby_#{RUBY_VERSION}-rails_#{ENV.fetch 'RAILS'}-"
|
9
|
-
BUNDLE = prefix + 'bundle'
|
10
|
-
APP = prefix + 'app'
|
11
|
-
|
12
|
-
def download_bundle
|
13
|
-
s3 :save, file: "#{BUNDLE}.sha2", as: "remote-#{BUNDLE}.sha2"
|
14
|
-
s3 :save, file: "#{BUNDLE}.tgz", as: "remote-#{BUNDLE}.tgz", untar: true
|
15
|
-
end
|
16
|
-
|
17
|
-
def download_app
|
18
|
-
# Force test app re-build if dependencies were updated
|
19
|
-
unless digest_changed? 'Gemfile.lock', "remote-#{BUNDLE}.sha2", "#{BUNDLE}.sha2"
|
20
|
-
s3 :save, file: "#{APP}.sha2", as: "remote-#{APP}.sha2"
|
21
|
-
# Force test app re-build if spec/support changed
|
22
|
-
unless digest_changed? 'spec/support', "remote-#{APP}.sha2", "#{APP}.sha2"
|
23
|
-
s3 :save, file: "#{APP}.tgz", as: "remote-#{APP}.tgz", untar: true
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def upload
|
29
|
-
unless ID && SECRET
|
30
|
-
puts "S3 credentials missing"
|
31
|
-
return
|
32
|
-
end
|
33
|
-
|
34
|
-
[ ['Gemfile.lock', BUNDLE, 'bundle'],
|
35
|
-
['spec/support', APP, 'spec/rails']
|
36
|
-
].each do |to_check, name, to_save|
|
37
|
-
puts "=> Checking #{to_check} for changes"
|
38
|
-
if ret = digest_changed?(to_check, "remote-#{name}.sha2", "#{name}.sha2")
|
39
|
-
puts " => Changes found: #{ret[:old]} -> #{ret[:new]}"
|
40
|
-
|
41
|
-
puts " => Creating an archive"
|
42
|
-
`tar -cjf #{name}.tgz #{to_save}`
|
43
|
-
|
44
|
-
puts " => Uploading a new archive"
|
45
|
-
s3 :upload, file: "#{name}.tgz"
|
46
|
-
s3 :upload, file: "#{name}.sha2"
|
47
|
-
else
|
48
|
-
puts " => There were no changes, doing nothing"
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def digest_changed?(to_check, old_digest_file, new_digest_file)
|
54
|
-
if File.exists? new_digest_file
|
55
|
-
digest = File.read new_digest_file
|
56
|
-
else
|
57
|
-
# Supports a single file, as well as a folder
|
58
|
-
files = Dir[to_check, "#{to_check}/**/*"].reject{ |f| File.directory? f }
|
59
|
-
content = files.sort!.map{ |f| File.read f }.join
|
60
|
-
digest = Digest::SHA2.hexdigest content
|
61
|
-
File.write new_digest_file, digest
|
62
|
-
end
|
63
|
-
|
64
|
-
old_digest = File.read old_digest_file if File.exists? old_digest_file
|
65
|
-
|
66
|
-
{old: old_digest, new: digest} if digest != old_digest
|
67
|
-
end
|
68
|
-
|
69
|
-
def sign(secret, to_sign)
|
70
|
-
Base64.strict_encode64 OpenSSL::HMAC.digest OpenSSL::Digest::SHA1.new, secret, to_sign
|
71
|
-
end
|
72
|
-
|
73
|
-
ID = ENV['AWS_S3_ID']
|
74
|
-
SECRET = ENV['AWS_S3_SECRET']
|
75
|
-
URL = 'https://s3.amazonaws.com/ActiveAdmin'
|
76
|
-
|
77
|
-
# s3 :list
|
78
|
-
# s3 :upload, file: 'foo'
|
79
|
-
# s3 :find, file: 'foo'
|
80
|
-
# s3 :save, file: 'foo', as: 'bar'
|
81
|
-
# s3 :save, file: 'foo', untar: true
|
82
|
-
def s3(action, options = {})
|
83
|
-
verb = {list: :get, upload: :put, find: :get, save: :get}.fetch action
|
84
|
-
file = options.fetch(:file) unless action == :list
|
85
|
-
extra_arg = case action
|
86
|
-
when :upload then "-T #{file}"
|
87
|
-
when :save then options[:as] ? "-o #{options[:as]}" : '-O'
|
88
|
-
end
|
89
|
-
do_after = "&& tar -xf #{options[:as] || file}" if options[:untar]
|
90
|
-
|
91
|
-
if ID && SECRET
|
92
|
-
now = Time.now.strftime "%a, %d %b %Y %H:%M:%S %z"
|
93
|
-
signature = sign SECRET, "#{verb.upcase}\n\n\n#{now}\n/ActiveAdmin/#{file}"
|
94
|
-
headers = ["Authorization: AWS #{ID}:#{signature}", "Date: #{now}"].map do |h|
|
95
|
-
"-H #{Shellwords.escape h}"
|
96
|
-
end.join ' '
|
97
|
-
end
|
98
|
-
|
99
|
-
output = `curl -f #{headers} #{extra_arg} #{URL}/#{file} #{do_after}`
|
100
|
-
[$?.success?, output]
|
101
|
-
end
|
102
|
-
|
103
|
-
if %w[download_bundle download_app upload].include? ARGV[0]
|
104
|
-
send ARGV[0]
|
105
|
-
else
|
106
|
-
raise "unexpected argument(s): #{ARGV}"
|
107
|
-
end
|