activeadmin 2.2.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 +7 -0
- data/CHANGELOG.md +546 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/CONTRIBUTING.md +217 -0
- data/LICENSE +20 -0
- data/README.md +110 -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/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 +55 -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 +41 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +326 -0
- data/app/assets/stylesheets/active_admin/_header.scss +156 -0
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
- data/app/assets/stylesheets/active_admin/_typography.scss +100 -0
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -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/_modal_dialog.scss +34 -0
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +55 -0
- data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
- data/app/assets/stylesheets/active_admin/components/_tables.scss +113 -0
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
- data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/app/assets/stylesheets/active_admin/print.scss +287 -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 +41 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +15 -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 +18 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +15 -0
- data/app/views/active_admin/devise/registrations/new.html.erb +21 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/shared/_links.erb +33 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +15 -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.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/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/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +39 -0
- data/config/locales/ar.yml +135 -0
- data/config/locales/bg.yml +119 -0
- data/config/locales/bs.yml +121 -0
- data/config/locales/ca.yml +106 -0
- data/config/locales/cs.yml +109 -0
- data/config/locales/da.yml +137 -0
- data/config/locales/de-CH.yml +101 -0
- data/config/locales/de.yml +144 -0
- data/config/locales/el.yml +126 -0
- data/config/locales/en-CA.yml +139 -0
- data/config/locales/en-GB.yml +139 -0
- data/config/locales/en.yml +162 -0
- data/config/locales/eo.yml +145 -0
- data/config/locales/es-MX.yml +96 -0
- data/config/locales/es.yml +162 -0
- data/config/locales/fa.yml +119 -0
- data/config/locales/fi.yml +112 -0
- data/config/locales/fr.yml +141 -0
- data/config/locales/he.yml +141 -0
- data/config/locales/hr.yml +123 -0
- data/config/locales/hu.yml +102 -0
- data/config/locales/id.yml +135 -0
- data/config/locales/it.yml +144 -0
- data/config/locales/ja.yml +141 -0
- data/config/locales/ko.yml +120 -0
- data/config/locales/lt.yml +142 -0
- data/config/locales/lv.yml +92 -0
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +130 -0
- data/config/locales/nl.yml +144 -0
- data/config/locales/pl.yml +168 -0
- data/config/locales/pt-BR.yml +143 -0
- data/config/locales/pt-PT.yml +92 -0
- data/config/locales/ro.yml +96 -0
- data/config/locales/ru.yml +141 -0
- data/config/locales/sk.yml +109 -0
- data/config/locales/sv-SE.yml +135 -0
- data/config/locales/tr.yml +144 -0
- data/config/locales/uk.yml +138 -0
- data/config/locales/vi.yml +134 -0
- data/config/locales/zh-CN.yml +143 -0
- data/config/locales/zh-TW.yml +135 -0
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +118 -0
- data/docs/1-general-configuration.md +204 -0
- data/docs/10-custom-pages.md +150 -0
- data/docs/11-decorators.md +59 -0
- data/docs/12-arbre-components.md +214 -0
- data/docs/13-authorization-adapter.md +285 -0
- data/docs/14-gotchas.md +138 -0
- data/docs/2-resource-customization.md +466 -0
- data/docs/3-index-pages.md +328 -0
- data/docs/3-index-pages/custom-index.md +35 -0
- data/docs/3-index-pages/index-as-block.md +19 -0
- data/docs/3-index-pages/index-as-blog.md +69 -0
- data/docs/3-index-pages/index-as-grid.md +27 -0
- data/docs/3-index-pages/index-as-table.md +227 -0
- data/docs/4-csv-format.md +74 -0
- data/docs/5-forms.md +232 -0
- data/docs/6-show-pages.md +81 -0
- data/docs/7-sidebars.md +75 -0
- data/docs/8-custom-actions.md +177 -0
- data/docs/9-batch-actions.md +237 -0
- data/docs/CNAME +1 -0
- data/docs/Gemfile +4 -0
- data/docs/Gemfile.lock +249 -0
- data/docs/README.md +24 -0
- data/docs/_config.yml +2 -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 +125 -0
- data/docs/stylesheets/main.css +1176 -0
- data/lib/active_admin.rb +134 -0
- data/lib/active_admin/abstract_view_factory.rb +47 -0
- data/lib/active_admin/application.rb +234 -0
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/asset_registration.rb +29 -0
- data/lib/active_admin/authorization_adapter.rb +129 -0
- data/lib/active_admin/base_controller.rb +81 -0
- data/lib/active_admin/base_controller/authorization.rb +127 -0
- data/lib/active_admin/base_controller/menu.rb +34 -0
- data/lib/active_admin/batch_actions.rb +16 -0
- data/lib/active_admin/batch_actions/controller.rb +40 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +155 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +58 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +38 -0
- data/lib/active_admin/callbacks.rb +88 -0
- data/lib/active_admin/cancan_adapter.rb +36 -0
- data/lib/active_admin/component.rb +5 -0
- data/lib/active_admin/controller_action.rb +13 -0
- data/lib/active_admin/csv_builder.rb +133 -0
- data/lib/active_admin/dependency.rb +100 -0
- data/lib/active_admin/deprecation.rb +10 -0
- data/lib/active_admin/devise.rb +80 -0
- data/lib/active_admin/dsl.rb +160 -0
- 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 +21 -0
- data/lib/active_admin/error.rb +64 -0
- data/lib/active_admin/filters.rb +11 -0
- data/lib/active_admin/filters/active.rb +29 -0
- 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/dsl.rb +21 -0
- data/lib/active_admin/filters/forms.rb +85 -0
- data/lib/active_admin/filters/formtastic_addons.rb +79 -0
- data/lib/active_admin/filters/resource_extension.rb +155 -0
- data/lib/active_admin/form_builder.rb +182 -0
- data/lib/active_admin/generators/boilerplate.rb +45 -0
- data/lib/active_admin/helpers/collection.rb +19 -0
- data/lib/active_admin/helpers/i18n.rb +7 -0
- data/lib/active_admin/helpers/optional_display.rb +38 -0
- data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
- data/lib/active_admin/helpers/scope_chain.rb +24 -0
- data/lib/active_admin/inputs.rb +21 -0
- data/lib/active_admin/inputs/datepicker_input.rb +27 -0
- data/lib/active_admin/inputs/filters/base.rb +44 -0
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
- data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
- data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +49 -0
- data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
- data/lib/active_admin/inputs/filters/select_input.rb +58 -0
- data/lib/active_admin/inputs/filters/string_input.rb +26 -0
- data/lib/active_admin/inputs/filters/text_input.rb +25 -0
- data/lib/active_admin/localizers.rb +11 -0
- data/lib/active_admin/localizers/resource_localizer.rb +35 -0
- data/lib/active_admin/menu.rb +102 -0
- data/lib/active_admin/menu_collection.rb +91 -0
- data/lib/active_admin/menu_item.rb +69 -0
- data/lib/active_admin/namespace.rb +266 -0
- data/lib/active_admin/namespace_settings.rb +110 -0
- data/lib/active_admin/order_clause.rb +48 -0
- data/lib/active_admin/orm/active_record.rb +5 -0
- data/lib/active_admin/orm/active_record/comments.rb +101 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +31 -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.rb +2 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +100 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
- data/lib/active_admin/page.rb +111 -0
- data/lib/active_admin/page_controller.rb +29 -0
- data/lib/active_admin/page_dsl.rb +32 -0
- data/lib/active_admin/page_presenter.rb +33 -0
- data/lib/active_admin/pundit_adapter.rb +81 -0
- data/lib/active_admin/resource.rb +207 -0
- data/lib/active_admin/resource/action_items.rb +120 -0
- data/lib/active_admin/resource/attributes.rb +47 -0
- data/lib/active_admin/resource/belongs_to.rb +50 -0
- data/lib/active_admin/resource/controllers.rb +19 -0
- data/lib/active_admin/resource/includes.rb +12 -0
- data/lib/active_admin/resource/menu.rb +67 -0
- data/lib/active_admin/resource/naming.rb +62 -0
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/page_presenters.rb +82 -0
- data/lib/active_admin/resource/pagination.rb +23 -0
- data/lib/active_admin/resource/routes.rb +139 -0
- data/lib/active_admin/resource/scope_to.rb +74 -0
- data/lib/active_admin/resource/scopes.rb +52 -0
- data/lib/active_admin/resource/sidebars.rb +28 -0
- data/lib/active_admin/resource_collection.rb +72 -0
- data/lib/active_admin/resource_controller.rb +64 -0
- data/lib/active_admin/resource_controller/action_builder.rb +31 -0
- data/lib/active_admin/resource_controller/data_access.rb +322 -0
- data/lib/active_admin/resource_controller/decorators.rb +102 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +26 -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/streaming.rb +43 -0
- data/lib/active_admin/resource_dsl.rb +224 -0
- data/lib/active_admin/router.rb +114 -0
- data/lib/active_admin/scope.rb +64 -0
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/sidebar_section.rb +39 -0
- data/lib/active_admin/version.rb +3 -0
- data/lib/active_admin/view_factory.rb +27 -0
- data/lib/active_admin/view_helpers.rb +20 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +33 -0
- data/lib/active_admin/view_helpers/display_helper.rb +104 -0
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +59 -0
- data/lib/active_admin/view_helpers/fields_for.rb +50 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +14 -0
- data/lib/active_admin/view_helpers/form_helper.rb +20 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +100 -0
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -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/views.rb +8 -0
- data/lib/active_admin/views/action_items.rb +17 -0
- data/lib/active_admin/views/components/active_admin_form.rb +155 -0
- data/lib/active_admin/views/components/attributes_table.rb +94 -0
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +161 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +71 -0
- data/lib/active_admin/views/components/index_list.rb +69 -0
- 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 +159 -0
- data/lib/active_admin/views/components/panel.rb +38 -0
- data/lib/active_admin/views/components/scopes.rb +72 -0
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +34 -0
- data/lib/active_admin/views/components/site_title.rb +54 -0
- data/lib/active_admin/views/components/status_tag.rb +75 -0
- data/lib/active_admin/views/components/table_for.rb +209 -0
- data/lib/active_admin/views/components/tabs.rb +40 -0
- data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
- data/lib/active_admin/views/footer.rb +30 -0
- data/lib/active_admin/views/header.rb +19 -0
- data/lib/active_admin/views/index_as_block.rb +36 -0
- data/lib/active_admin/views/index_as_blog.rb +155 -0
- data/lib/active_admin/views/index_as_grid.rb +80 -0
- data/lib/active_admin/views/index_as_table.rb +392 -0
- data/lib/active_admin/views/pages/base.rb +126 -0
- data/lib/active_admin/views/pages/form.rb +64 -0
- data/lib/active_admin/views/pages/index.rb +163 -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 +65 -0
- data/lib/active_admin/views/tabbed_navigation.rb +11 -0
- data/lib/active_admin/views/title_bar.rb +55 -0
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +14 -0
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +68 -0
- data/lib/generators/active_admin/install/install_generator.rb +49 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +315 -0
- data/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +32 -0
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +16 -0
- data/lib/generators/active_admin/page/USAGE +8 -0
- data/lib/generators/active_admin/page/page_generator.rb +12 -0
- data/lib/generators/active_admin/page/templates/page.rb +5 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +20 -0
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +44 -0
- data/lib/ransack_ext.rb +20 -0
- 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 +616 -0
@@ -0,0 +1,94 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
|
4
|
+
class AttributesTable < ActiveAdmin::Component
|
5
|
+
builder_method :attributes_table_for
|
6
|
+
|
7
|
+
def build(obj, *attrs)
|
8
|
+
@collection = Array.wrap(obj)
|
9
|
+
@resource_class = @collection.first.class
|
10
|
+
options = {}
|
11
|
+
options[:for] = @collection.first if single_record?
|
12
|
+
super(options)
|
13
|
+
@table = table
|
14
|
+
build_colgroups
|
15
|
+
rows(*attrs)
|
16
|
+
end
|
17
|
+
|
18
|
+
def rows(*attrs)
|
19
|
+
attrs.each { |attr| row(attr) }
|
20
|
+
end
|
21
|
+
|
22
|
+
def row(*args, &block)
|
23
|
+
title = args[0]
|
24
|
+
options = args.extract_options!
|
25
|
+
classes = [:row]
|
26
|
+
if options[:class]
|
27
|
+
classes << options[:class]
|
28
|
+
elsif title.present?
|
29
|
+
classes << "row-#{title.to_s.parameterize(separator: "_")}"
|
30
|
+
end
|
31
|
+
options[:class] = classes.join(' ')
|
32
|
+
|
33
|
+
@table << tr(options) do
|
34
|
+
th do
|
35
|
+
header_content_for(title)
|
36
|
+
end
|
37
|
+
@collection.each do |record|
|
38
|
+
td do
|
39
|
+
content_for(record, block || title)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
protected
|
46
|
+
|
47
|
+
def default_id_for_prefix
|
48
|
+
'attributes_table'
|
49
|
+
end
|
50
|
+
|
51
|
+
# Build Colgroups
|
52
|
+
#
|
53
|
+
# Colgroups are only necessary for a collection of records; not
|
54
|
+
# a single record.
|
55
|
+
def build_colgroups
|
56
|
+
return if single_record?
|
57
|
+
reset_cycle(self.class.to_s)
|
58
|
+
within @table do
|
59
|
+
col # column for row headers
|
60
|
+
@collection.each do |record|
|
61
|
+
classes = Arbre::HTML::ClassList.new
|
62
|
+
classes << cycle(:even, :odd, name: self.class.to_s)
|
63
|
+
classes << dom_class_name_for(record)
|
64
|
+
col(id: dom_id_for(record), class: classes)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def header_content_for(attr)
|
70
|
+
if @resource_class.respond_to?(:human_attribute_name)
|
71
|
+
@resource_class.human_attribute_name(attr, default: attr.to_s.titleize)
|
72
|
+
else
|
73
|
+
attr.to_s.titleize
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def empty_value
|
78
|
+
span I18n.t('active_admin.empty'), class: "empty"
|
79
|
+
end
|
80
|
+
|
81
|
+
def content_for(record, attr)
|
82
|
+
value = helpers.format_attribute record, attr
|
83
|
+
value.blank? && current_arbre_element.children.to_s.empty? ? empty_value : value
|
84
|
+
# Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
|
85
|
+
current_arbre_element << value unless current_arbre_element.children.include? value
|
86
|
+
end
|
87
|
+
|
88
|
+
def single_record?
|
89
|
+
@single_record ||= @collection.size == 1
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
# Build a Blank Slate
|
4
|
+
class BlankSlate < ActiveAdmin::Component
|
5
|
+
builder_method :blank_slate
|
6
|
+
|
7
|
+
def default_class_name
|
8
|
+
'blank_slate_container'
|
9
|
+
end
|
10
|
+
|
11
|
+
def build(content)
|
12
|
+
super(span(content.html_safe, class: "blank_slate"))
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
|
4
|
+
# = Columns Component
|
5
|
+
#
|
6
|
+
# The Columns component allows you draw content into scalable columns. All
|
7
|
+
# you need to do is define the number of columns and the component will
|
8
|
+
# take care of the rest.
|
9
|
+
#
|
10
|
+
# == Simple Columns
|
11
|
+
#
|
12
|
+
# To display columns, use the #columns method. Within the block, call the
|
13
|
+
# #column method to create a new column.
|
14
|
+
#
|
15
|
+
# To create a two column layout:
|
16
|
+
#
|
17
|
+
# columns do
|
18
|
+
# column do
|
19
|
+
# span "Column # 1
|
20
|
+
# end
|
21
|
+
# column do
|
22
|
+
# span "Column # 2
|
23
|
+
# end
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
#
|
27
|
+
# == Multiple Span Columns
|
28
|
+
#
|
29
|
+
# To make a column span multiple, pass the :span option to the column method:
|
30
|
+
#
|
31
|
+
# columns do
|
32
|
+
# column span: 2 do
|
33
|
+
# span "Column # 1
|
34
|
+
# end
|
35
|
+
# column do
|
36
|
+
# span "Column # 2
|
37
|
+
# end
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# By default, each column spans 1 column. So the above layout would have 2 columns,
|
41
|
+
# the first being 2 time bigger than the second.
|
42
|
+
#
|
43
|
+
#
|
44
|
+
# == Max and Min Column Sizes
|
45
|
+
#
|
46
|
+
# Active Admin is a fluid width layout, which means that columns are all defined
|
47
|
+
# using percentages. Sometimes this can cause issues if you don't want a column
|
48
|
+
# to shrink or expand past a certain point.
|
49
|
+
#
|
50
|
+
# To overcome this, columns include a :max_width and :min_width option.
|
51
|
+
#
|
52
|
+
# columns do
|
53
|
+
# column max_width: "200px", min_width: "100px" do
|
54
|
+
# span "Column # 1
|
55
|
+
# end
|
56
|
+
# column do
|
57
|
+
# span "Column # 2
|
58
|
+
# end
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# Now the first column will not grow bigger than 200px and will not shrink smaller
|
62
|
+
# than 100px.
|
63
|
+
class Columns < ActiveAdmin::Component
|
64
|
+
builder_method :columns
|
65
|
+
|
66
|
+
# For documentation, please take a look at Column#build
|
67
|
+
def column(*args, &block)
|
68
|
+
insert_tag Column, *args, &block
|
69
|
+
end
|
70
|
+
|
71
|
+
# Override add child to set widths
|
72
|
+
def add_child(*)
|
73
|
+
super
|
74
|
+
calculate_columns!
|
75
|
+
end
|
76
|
+
|
77
|
+
protected
|
78
|
+
|
79
|
+
# Override the closing tag to include a clear
|
80
|
+
def closing_tag
|
81
|
+
"<div style=\"clear:both;\"></div>" + super
|
82
|
+
end
|
83
|
+
|
84
|
+
def margin_size
|
85
|
+
2
|
86
|
+
end
|
87
|
+
|
88
|
+
# Calculate our columns sizes and margins
|
89
|
+
def calculate_columns!
|
90
|
+
span_count = columns_span_count
|
91
|
+
columns_count = children.size
|
92
|
+
|
93
|
+
all_margins_width = margin_size * (span_count - 1)
|
94
|
+
column_width = (100.00 - all_margins_width) / span_count
|
95
|
+
|
96
|
+
columns.each_with_index do |column, i|
|
97
|
+
is_last_column = i == (columns_count - 1)
|
98
|
+
column.set_column_styles(column_width, margin_size, is_last_column)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def columns_span_count
|
103
|
+
count = 0
|
104
|
+
columns.each do |column|
|
105
|
+
count += column.span_size
|
106
|
+
end
|
107
|
+
|
108
|
+
count
|
109
|
+
end
|
110
|
+
|
111
|
+
def columns
|
112
|
+
children.select { |child| child.is_a?(Column) }
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class Column < ActiveAdmin::Component
|
117
|
+
|
118
|
+
attr_accessor :span_size, :max_width, :min_width
|
119
|
+
|
120
|
+
# @param [Hash] options An options hash for the column
|
121
|
+
#
|
122
|
+
# @option options [Integer] :span The columns this column should span
|
123
|
+
def build(options = {})
|
124
|
+
options = options.dup
|
125
|
+
@span_size = options.delete(:span) || 1
|
126
|
+
@max_width = options.delete(:max_width)
|
127
|
+
@min_width = options.delete(:min_width)
|
128
|
+
|
129
|
+
super(options)
|
130
|
+
end
|
131
|
+
|
132
|
+
def set_column_styles(column_width, margin_width, is_last_column = false)
|
133
|
+
column_with_span_width = (span_size * column_width) + ((span_size - 1) * margin_width)
|
134
|
+
|
135
|
+
styles = []
|
136
|
+
|
137
|
+
styles << "width: #{column_with_span_width}%;"
|
138
|
+
|
139
|
+
if max_width
|
140
|
+
styles << "max-width: #{safe_width(max_width)};"
|
141
|
+
end
|
142
|
+
|
143
|
+
if min_width
|
144
|
+
styles << "min-width: #{safe_width(min_width)};"
|
145
|
+
end
|
146
|
+
|
147
|
+
styles << "margin-right: #{margin_width}%;" unless is_last_column
|
148
|
+
|
149
|
+
set_attribute :style, styles.join(" ")
|
150
|
+
end
|
151
|
+
|
152
|
+
private
|
153
|
+
|
154
|
+
# Converts values without a '%' or 'px' suffix to a pixel value
|
155
|
+
def safe_width(width)
|
156
|
+
width.to_s.gsub(/\A(\d+)\z/, '\1px')
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
|
4
|
+
# Action List - A button with a drop down menu of links
|
5
|
+
#
|
6
|
+
# Creating a new action list:
|
7
|
+
#
|
8
|
+
# dropdown_menu "Administration" do
|
9
|
+
# item "Edit Details", edit_details_path
|
10
|
+
# item "Edit My Account", edit_my_account_path
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# This will create a button with the label "Administration" and
|
14
|
+
# a drop down once clicked with 2 options.
|
15
|
+
#
|
16
|
+
class DropdownMenu < ActiveAdmin::Component
|
17
|
+
builder_method :dropdown_menu
|
18
|
+
|
19
|
+
# Build a new action list
|
20
|
+
#
|
21
|
+
# @param [String] name The name to display in the button
|
22
|
+
#
|
23
|
+
# @param [Hash] options A set of options that get passed along to
|
24
|
+
# to the parent dom element.
|
25
|
+
def build(name, options = {})
|
26
|
+
options = options.dup
|
27
|
+
|
28
|
+
# Easily set options for the button or menu
|
29
|
+
button_options = options.delete(:button) || {}
|
30
|
+
menu_options = options.delete(:menu) || {}
|
31
|
+
|
32
|
+
@button = build_button(name, button_options)
|
33
|
+
@menu = build_menu(menu_options)
|
34
|
+
|
35
|
+
super(options)
|
36
|
+
end
|
37
|
+
|
38
|
+
def item(*args)
|
39
|
+
within @menu do
|
40
|
+
li link_to(*args)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def build_button(name, button_options)
|
47
|
+
button_options[:class] ||= ''
|
48
|
+
button_options[:class] << ' dropdown_menu_button'
|
49
|
+
|
50
|
+
button_options[:href] = '#'
|
51
|
+
|
52
|
+
a name, button_options
|
53
|
+
end
|
54
|
+
|
55
|
+
def build_menu(options)
|
56
|
+
options[:class] ||= ''
|
57
|
+
options[:class] << ' dropdown_menu_list'
|
58
|
+
|
59
|
+
menu_list = nil
|
60
|
+
|
61
|
+
div class: 'dropdown_menu_list_wrapper' do
|
62
|
+
menu_list = ul(options)
|
63
|
+
end
|
64
|
+
|
65
|
+
menu_list
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'active_admin/helpers/collection'
|
2
|
+
|
3
|
+
module ActiveAdmin
|
4
|
+
module Views
|
5
|
+
|
6
|
+
# Renders a collection of index views available to the resource
|
7
|
+
# as a list with a separator
|
8
|
+
class IndexList < ActiveAdmin::Component
|
9
|
+
builder_method :index_list_renderer
|
10
|
+
|
11
|
+
include ::ActiveAdmin::Helpers::Collection
|
12
|
+
|
13
|
+
def default_class_name
|
14
|
+
"indexes table_tools_segmented_control"
|
15
|
+
end
|
16
|
+
|
17
|
+
def tag_name
|
18
|
+
'ul'
|
19
|
+
end
|
20
|
+
|
21
|
+
# Builds the links for presenting different index views to the user
|
22
|
+
#
|
23
|
+
# @param [Array] index_classes The class constants that represent index page presenters
|
24
|
+
def build(index_classes)
|
25
|
+
unless current_filter_search_empty?
|
26
|
+
index_classes.each do |index_class|
|
27
|
+
build_index_list(index_class)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
protected
|
33
|
+
|
34
|
+
# Builds the individual link and HTML classes for each index page presenter
|
35
|
+
#
|
36
|
+
# @param [Class] index_class The class on which to build the link and html classes
|
37
|
+
def build_index_list(index_class)
|
38
|
+
li class: classes_for_index(index_class) do
|
39
|
+
params = request.query_parameters.except :page, :commit, :format
|
40
|
+
url_with_params = url_for(params.merge(as: index_class.index_name.to_sym))
|
41
|
+
|
42
|
+
a href: url_with_params, class: "table_tools_button" do
|
43
|
+
name = index_class.index_name
|
44
|
+
I18n.t("active_admin.index_list.#{name}", default: name.to_s.titleize)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def classes_for_index(index_class)
|
50
|
+
classes = ["index"]
|
51
|
+
classes << "selected" if current_index?(index_class)
|
52
|
+
classes.join(" ")
|
53
|
+
end
|
54
|
+
|
55
|
+
def current_index?(index_class)
|
56
|
+
if params[:as]
|
57
|
+
params[:as] == index_class.index_name
|
58
|
+
else
|
59
|
+
active_admin_config.default_index_class == index_class
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def current_filter_search_empty?
|
64
|
+
params.include?(:q) && collection_is_empty?
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
|
4
|
+
# Renders an ActiveAdmin::Menu as a set of unordered list items.
|
5
|
+
#
|
6
|
+
# This component takes cares of deciding which items should be
|
7
|
+
# displayed given the current context and renders them appropriately.
|
8
|
+
#
|
9
|
+
# The entire component is rendered within one ul element.
|
10
|
+
class Menu < Component
|
11
|
+
attr_reader :menu
|
12
|
+
builder_method :menu
|
13
|
+
|
14
|
+
# @param [ActiveAdmin::Menu] menu the Menu to render
|
15
|
+
# @param [Hash] options the options as passed to the underlying ul element.
|
16
|
+
#
|
17
|
+
def build(menu, options = {})
|
18
|
+
@menu = menu
|
19
|
+
super(options)
|
20
|
+
|
21
|
+
menu.items.each do |item|
|
22
|
+
menu_item(item) if helpers.render_in_context self, item.should_display
|
23
|
+
end
|
24
|
+
children.sort!
|
25
|
+
end
|
26
|
+
|
27
|
+
def tag_name
|
28
|
+
'ul'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|