super-sharp-tool 0.0.1
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/activeadmin-3.5.1/CHANGELOG.md +1153 -0
- data/activeadmin-3.5.1/CODE_OF_CONDUCT.md +74 -0
- data/activeadmin-3.5.1/CONTRIBUTING.md +187 -0
- data/activeadmin-3.5.1/LICENSE +20 -0
- data/activeadmin-3.5.1/README.md +117 -0
- data/activeadmin-3.5.1/app/assets/javascripts/active_admin/base.js +520 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_base.scss +57 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_forms.scss +315 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_header.scss +188 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_print.scss +287 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/_typography.scss +100 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_date_picker.scss +148 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +154 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_pagination.scss +58 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_table_tools.scss +70 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_tables.scss +112 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_tabs.scss +68 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/mixins/_variables.scss +51 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/structure/_footer.scss +19 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
- data/activeadmin-3.5.1/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/base.js +28 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/ext/jquery-ui.js +7 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/ext/jquery.js +9 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/batch-actions.js +61 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/datepicker.js +19 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/filters.js +10 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/has-many.js +98 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/initializers/tabs.js +6 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/filters.js +39 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/modal-dialog.js +63 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/per-page.js +38 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
- data/activeadmin-3.5.1/app/javascript/active_admin/lib/utils.js +40 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/passwords/edit.html.erb +18 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/passwords/new.html.erb +15 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/registrations/new.html.erb +21 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/sessions/new.html.erb +20 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/shared/_links.erb +33 -0
- data/activeadmin-3.5.1/app/views/active_admin/devise/unlocks/new.html.erb +15 -0
- data/activeadmin-3.5.1/app/views/active_admin/page/index.html.arb +2 -0
- data/activeadmin-3.5.1/app/views/active_admin/resource/edit.html.arb +2 -0
- data/activeadmin-3.5.1/app/views/active_admin/resource/index.html.arb +2 -0
- data/activeadmin-3.5.1/app/views/active_admin/resource/new.html.arb +2 -0
- data/activeadmin-3.5.1/app/views/active_admin/resource/show.html.arb +2 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/activeadmin-3.5.1/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/activeadmin-3.5.1/app/views/layouts/active_admin.html.arb +2 -0
- data/activeadmin-3.5.1/app/views/layouts/active_admin_logged_out.html.erb +50 -0
- data/activeadmin-3.5.1/config/locales/ar.yml +128 -0
- data/activeadmin-3.5.1/config/locales/az.yml +131 -0
- data/activeadmin-3.5.1/config/locales/bg.yml +112 -0
- data/activeadmin-3.5.1/config/locales/bs.yml +114 -0
- data/activeadmin-3.5.1/config/locales/ca.yml +98 -0
- data/activeadmin-3.5.1/config/locales/cs.yml +102 -0
- data/activeadmin-3.5.1/config/locales/da.yml +130 -0
- data/activeadmin-3.5.1/config/locales/de-CH.yml +94 -0
- data/activeadmin-3.5.1/config/locales/de.yml +154 -0
- data/activeadmin-3.5.1/config/locales/el.yml +119 -0
- data/activeadmin-3.5.1/config/locales/en-CA.yml +132 -0
- data/activeadmin-3.5.1/config/locales/en-GB.yml +132 -0
- data/activeadmin-3.5.1/config/locales/en.yml +154 -0
- data/activeadmin-3.5.1/config/locales/eo.yml +137 -0
- data/activeadmin-3.5.1/config/locales/es-MX.yml +90 -0
- data/activeadmin-3.5.1/config/locales/es.yml +154 -0
- data/activeadmin-3.5.1/config/locales/fa.yml +112 -0
- data/activeadmin-3.5.1/config/locales/fi.yml +105 -0
- data/activeadmin-3.5.1/config/locales/fr.yml +133 -0
- data/activeadmin-3.5.1/config/locales/he.yml +132 -0
- data/activeadmin-3.5.1/config/locales/hr.yml +116 -0
- data/activeadmin-3.5.1/config/locales/hu.yml +94 -0
- data/activeadmin-3.5.1/config/locales/id.yml +128 -0
- data/activeadmin-3.5.1/config/locales/it.yml +154 -0
- data/activeadmin-3.5.1/config/locales/ja.yml +133 -0
- data/activeadmin-3.5.1/config/locales/ko.yml +113 -0
- data/activeadmin-3.5.1/config/locales/lt.yml +134 -0
- data/activeadmin-3.5.1/config/locales/lv.yml +85 -0
- data/activeadmin-3.5.1/config/locales/mk.yml +126 -0
- data/activeadmin-3.5.1/config/locales/nb.yml +122 -0
- data/activeadmin-3.5.1/config/locales/nl.yml +136 -0
- data/activeadmin-3.5.1/config/locales/pl.yml +160 -0
- data/activeadmin-3.5.1/config/locales/pt-BR.yml +135 -0
- data/activeadmin-3.5.1/config/locales/pt-PT.yml +85 -0
- data/activeadmin-3.5.1/config/locales/ro.yml +90 -0
- data/activeadmin-3.5.1/config/locales/ru.yml +135 -0
- data/activeadmin-3.5.1/config/locales/sk.yml +160 -0
- data/activeadmin-3.5.1/config/locales/sv-SE.yml +154 -0
- data/activeadmin-3.5.1/config/locales/tr.yml +133 -0
- data/activeadmin-3.5.1/config/locales/uk.yml +132 -0
- data/activeadmin-3.5.1/config/locales/vi.yml +154 -0
- data/activeadmin-3.5.1/config/locales/zh-CN.yml +154 -0
- data/activeadmin-3.5.1/config/locales/zh-TW.yml +128 -0
- data/activeadmin-3.5.1/lib/active_admin/abstract_view_factory.rb +48 -0
- data/activeadmin-3.5.1/lib/active_admin/application.rb +234 -0
- data/activeadmin-3.5.1/lib/active_admin/application_settings.rb +43 -0
- data/activeadmin-3.5.1/lib/active_admin/asset_registration.rb +30 -0
- data/activeadmin-3.5.1/lib/active_admin/authorization_adapter.rb +132 -0
- data/activeadmin-3.5.1/lib/active_admin/base_controller/authorization.rb +129 -0
- data/activeadmin-3.5.1/lib/active_admin/base_controller/menu.rb +35 -0
- data/activeadmin-3.5.1/lib/active_admin/base_controller.rb +82 -0
- data/activeadmin-3.5.1/lib/active_admin/batch_actions/controller.rb +41 -0
- data/activeadmin-3.5.1/lib/active_admin/batch_actions/resource_extension.rb +157 -0
- data/activeadmin-3.5.1/lib/active_admin/batch_actions/views/batch_action_form.rb +39 -0
- data/activeadmin-3.5.1/lib/active_admin/batch_actions/views/batch_action_selector.rb +59 -0
- data/activeadmin-3.5.1/lib/active_admin/batch_actions/views/selection_cells.rb +39 -0
- data/activeadmin-3.5.1/lib/active_admin/batch_actions.rb +17 -0
- data/activeadmin-3.5.1/lib/active_admin/callbacks.rb +89 -0
- data/activeadmin-3.5.1/lib/active_admin/cancan_adapter.rb +37 -0
- data/activeadmin-3.5.1/lib/active_admin/collection_decorator.rb +32 -0
- data/activeadmin-3.5.1/lib/active_admin/component.rb +6 -0
- data/activeadmin-3.5.1/lib/active_admin/controller_action.rb +14 -0
- data/activeadmin-3.5.1/lib/active_admin/csv_builder.rb +144 -0
- data/activeadmin-3.5.1/lib/active_admin/dependency.rb +97 -0
- data/activeadmin-3.5.1/lib/active_admin/devise.rb +91 -0
- data/activeadmin-3.5.1/lib/active_admin/dsl.rb +161 -0
- data/activeadmin-3.5.1/lib/active_admin/dynamic_setting.rb +39 -0
- data/activeadmin-3.5.1/lib/active_admin/dynamic_settings_node.rb +29 -0
- data/activeadmin-3.5.1/lib/active_admin/engine.rb +29 -0
- data/activeadmin-3.5.1/lib/active_admin/error.rb +63 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/active.rb +30 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/active_filter.rb +124 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/active_sidebar.rb +28 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/dsl.rb +22 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/forms.rb +86 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/formtastic_addons.rb +75 -0
- data/activeadmin-3.5.1/lib/active_admin/filters/resource_extension.rb +180 -0
- data/activeadmin-3.5.1/lib/active_admin/filters.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/form_builder.rb +186 -0
- data/activeadmin-3.5.1/lib/active_admin/generators/boilerplate.rb +54 -0
- data/activeadmin-3.5.1/lib/active_admin/helpers/collection.rb +21 -0
- data/activeadmin-3.5.1/lib/active_admin/helpers/i18n.rb +8 -0
- data/activeadmin-3.5.1/lib/active_admin/helpers/optional_display.rb +39 -0
- data/activeadmin-3.5.1/lib/active_admin/helpers/routes/url_helpers.rb +16 -0
- data/activeadmin-3.5.1/lib/active_admin/helpers/scope_chain.rb +25 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/datepicker_input.rb +28 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/base/search_method_select.rb +76 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/base.rb +45 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/boolean_input.rb +25 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/check_boxes_input.rb +51 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/date_picker_input.rb +14 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/date_range_input.rb +53 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/numeric_input.rb +13 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/select_input.rb +59 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/string_input.rb +27 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs/filters/text_input.rb +26 -0
- data/activeadmin-3.5.1/lib/active_admin/inputs.rb +22 -0
- data/activeadmin-3.5.1/lib/active_admin/localizers/resource_localizer.rb +36 -0
- data/activeadmin-3.5.1/lib/active_admin/localizers.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/menu.rb +107 -0
- data/activeadmin-3.5.1/lib/active_admin/menu_collection.rb +92 -0
- data/activeadmin-3.5.1/lib/active_admin/menu_item.rb +70 -0
- data/activeadmin-3.5.1/lib/active_admin/namespace.rb +267 -0
- data/activeadmin-3.5.1/lib/active_admin/namespace_settings.rb +127 -0
- data/activeadmin-3.5.1/lib/active_admin/order_clause.rb +49 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/comment.rb +40 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/namespace_helper.rb +15 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/resource_helper.rb +18 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/show_page_helper.rb +24 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +101 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments/views.rb +3 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record/comments.rb +102 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/active_record.rb +6 -0
- data/activeadmin-3.5.1/lib/active_admin/orm/mongoid.rb +2 -0
- data/activeadmin-3.5.1/lib/active_admin/page.rb +112 -0
- data/activeadmin-3.5.1/lib/active_admin/page_controller.rb +30 -0
- data/activeadmin-3.5.1/lib/active_admin/page_dsl.rb +33 -0
- data/activeadmin-3.5.1/lib/active_admin/page_presenter.rb +34 -0
- data/activeadmin-3.5.1/lib/active_admin/pundit_adapter.rb +123 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/action_items.rb +121 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/attributes.rb +55 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/belongs_to.rb +53 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/controllers.rb +20 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/includes.rb +13 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/menu.rb +68 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/model.rb +16 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/naming.rb +63 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/ordering.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/page_presenters.rb +83 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/pagination.rb +24 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/routes.rb +146 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/scope_to.rb +75 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/scopes.rb +53 -0
- data/activeadmin-3.5.1/lib/active_admin/resource/sidebars.rb +29 -0
- data/activeadmin-3.5.1/lib/active_admin/resource.rb +227 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_collection.rb +73 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/action_builder.rb +32 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/data_access.rb +348 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/decorators.rb +81 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/resource_class_methods.rb +27 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/scoping.rb +32 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/sidebars.rb +19 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller/streaming.rb +45 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_controller.rb +68 -0
- data/activeadmin-3.5.1/lib/active_admin/resource_dsl.rb +210 -0
- data/activeadmin-3.5.1/lib/active_admin/router.rb +115 -0
- data/activeadmin-3.5.1/lib/active_admin/scope.rb +65 -0
- data/activeadmin-3.5.1/lib/active_admin/settings_node.rb +20 -0
- data/activeadmin-3.5.1/lib/active_admin/sidebar_section.rb +40 -0
- data/activeadmin-3.5.1/lib/active_admin/version.rb +4 -0
- data/activeadmin-3.5.1/lib/active_admin/view_factory.rb +28 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/active_admin_application_helper.rb +13 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/auto_link_helper.rb +46 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/breadcrumb_helper.rb +34 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/display_helper.rb +119 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/download_format_links_helper.rb +60 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/fields_for.rb +51 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/flash_helper.rb +15 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/form_helper.rb +21 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/method_or_proc_helper.rb +101 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/sidebar_helper.rb +16 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/title_helper.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers/view_factory_helper.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/view_helpers.rb +21 -0
- data/activeadmin-3.5.1/lib/active_admin/views/action_items.rb +18 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/active_admin_form.rb +164 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/attributes_table.rb +95 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/blank_slate.rb +18 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/columns.rb +162 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/dropdown_menu.rb +69 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/index_list.rb +70 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/menu.rb +33 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/menu_item.rb +59 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/paginated_collection.rb +164 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/panel.rb +39 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/scopes.rb +75 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/sidebar.rb +14 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/sidebar_section.rb +35 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/site_title.rb +55 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/status_tag.rb +76 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/table_for.rb +211 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/tabs.rb +41 -0
- data/activeadmin-3.5.1/lib/active_admin/views/components/unsupported_browser.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/views/footer.rb +32 -0
- data/activeadmin-3.5.1/lib/active_admin/views/header.rb +20 -0
- data/activeadmin-3.5.1/lib/active_admin/views/index_as_block.rb +37 -0
- data/activeadmin-3.5.1/lib/active_admin/views/index_as_blog.rb +156 -0
- data/activeadmin-3.5.1/lib/active_admin/views/index_as_grid.rb +81 -0
- data/activeadmin-3.5.1/lib/active_admin/views/index_as_table.rb +401 -0
- data/activeadmin-3.5.1/lib/active_admin/views/pages/base.rb +134 -0
- data/activeadmin-3.5.1/lib/active_admin/views/pages/form.rb +65 -0
- data/activeadmin-3.5.1/lib/active_admin/views/pages/index.rb +166 -0
- data/activeadmin-3.5.1/lib/active_admin/views/pages/layout.rb +27 -0
- data/activeadmin-3.5.1/lib/active_admin/views/pages/page.rb +31 -0
- data/activeadmin-3.5.1/lib/active_admin/views/pages/show.rb +60 -0
- data/activeadmin-3.5.1/lib/active_admin/views/tabbed_navigation.rb +12 -0
- data/activeadmin-3.5.1/lib/active_admin/views/title_bar.rb +56 -0
- data/activeadmin-3.5.1/lib/active_admin/views.rb +9 -0
- data/activeadmin-3.5.1/lib/active_admin.rb +135 -0
- data/activeadmin-3.5.1/lib/activeadmin.rb +2 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/assets/assets_generator.rb +15 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/devise/devise_generator.rb +69 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/install/install_generator.rb +56 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/active_admin.rb.erb +352 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +16 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/page/USAGE +8 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/page/page_generator.rb +13 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/page/templates/page.rb +6 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/resource/resource_generator.rb +21 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/activeadmin-3.5.1/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/data.js +39 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/disable-selection.js +51 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/focusable.js +79 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +81 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/keycode.js +51 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/labels.js +70 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/plugin.js +49 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/position.js +513 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/scroll-parent.js +50 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/tabbable.js +41 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/unique-id.js +54 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/version.js +20 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widget.js +761 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/button.js +454 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +294 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +304 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2240 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +957 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1264 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +226 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1281 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1614 -0
- data/activeadmin-3.5.1/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +918 -0
- data/super-sharp-tool.gemspec +12 -0
- metadata +383 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
|
|
4
|
+
class SettingsNode
|
|
5
|
+
class << self
|
|
6
|
+
# Never instantiated. Variables are stored in the singleton_class.
|
|
7
|
+
private_class_method :new
|
|
8
|
+
|
|
9
|
+
# @return anonymous class with same accessors as the superclass.
|
|
10
|
+
def build(superclass = self)
|
|
11
|
+
Class.new(superclass)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def register(name, value)
|
|
15
|
+
class_attribute name
|
|
16
|
+
send "#{name}=", value
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
|
|
4
|
+
class SidebarSection
|
|
5
|
+
include ActiveAdmin::OptionalDisplay
|
|
6
|
+
|
|
7
|
+
attr_accessor :name, :options, :block
|
|
8
|
+
|
|
9
|
+
def initialize(name, options = {}, &block)
|
|
10
|
+
@name = name.to_s
|
|
11
|
+
@options = options
|
|
12
|
+
@block = block
|
|
13
|
+
normalize_display_options!
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# The id gets used for the div in the view
|
|
17
|
+
def id
|
|
18
|
+
"#{name.downcase.underscore}_sidebar_section".parameterize
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# The title gets displayed within the section in the view
|
|
22
|
+
def title
|
|
23
|
+
I18n.t("active_admin.sidebars.#{name}", default: name.titlecase)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# If a block is not passed in, the name of the partial to render
|
|
27
|
+
def partial_name
|
|
28
|
+
options[:partial] || "#{name.downcase.tr(' ', '_')}_sidebar"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def custom_class
|
|
32
|
+
options[:class]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def priority
|
|
36
|
+
options[:priority] || 10
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "active_admin/abstract_view_factory"
|
|
3
|
+
|
|
4
|
+
module ActiveAdmin
|
|
5
|
+
class ViewFactory < AbstractViewFactory
|
|
6
|
+
|
|
7
|
+
# Register Helper Renderers
|
|
8
|
+
register global_navigation: ActiveAdmin::Views::TabbedNavigation,
|
|
9
|
+
utility_navigation: ActiveAdmin::Views::TabbedNavigation,
|
|
10
|
+
site_title: ActiveAdmin::Views::SiteTitle,
|
|
11
|
+
unsupported_browser: ActiveAdmin::Views::UnsupportedBrowser,
|
|
12
|
+
action_items: ActiveAdmin::Views::ActionItems,
|
|
13
|
+
title_bar: ActiveAdmin::Views::TitleBar,
|
|
14
|
+
header: ActiveAdmin::Views::Header,
|
|
15
|
+
footer: ActiveAdmin::Views::Footer,
|
|
16
|
+
index_scopes: ActiveAdmin::Views::Scopes,
|
|
17
|
+
blank_slate: ActiveAdmin::Views::BlankSlate
|
|
18
|
+
|
|
19
|
+
# Register All The Pages
|
|
20
|
+
register index_page: ActiveAdmin::Views::Pages::Index,
|
|
21
|
+
show_page: ActiveAdmin::Views::Pages::Show,
|
|
22
|
+
new_page: ActiveAdmin::Views::Pages::Form,
|
|
23
|
+
edit_page: ActiveAdmin::Views::Pages::Form,
|
|
24
|
+
layout: ActiveAdmin::Views::Pages::Layout,
|
|
25
|
+
page: ActiveAdmin::Views::Pages::Page
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module ActiveAdminApplicationHelper
|
|
5
|
+
|
|
6
|
+
# Returns the current Active Admin application instance
|
|
7
|
+
def active_admin_application
|
|
8
|
+
ActiveAdmin.application
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module AutoLinkHelper
|
|
5
|
+
|
|
6
|
+
# Automatically links objects to their resource controllers. If
|
|
7
|
+
# the resource has not been registered, a string representation of
|
|
8
|
+
# the object is returned.
|
|
9
|
+
#
|
|
10
|
+
# The default content in the link is returned from ActiveAdmin::ViewHelpers::DisplayHelper#display_name
|
|
11
|
+
#
|
|
12
|
+
# You can pass in the content to display
|
|
13
|
+
# eg: auto_link(@post, "My Link")
|
|
14
|
+
#
|
|
15
|
+
def auto_link(resource, content = display_name(resource))
|
|
16
|
+
if url = auto_url_for(resource)
|
|
17
|
+
link_to content, url
|
|
18
|
+
else
|
|
19
|
+
content
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Like `auto_link`, except that it only returns a URL instead of a full <a> tag
|
|
24
|
+
def auto_url_for(resource)
|
|
25
|
+
config = active_admin_resource_for(resource.class)
|
|
26
|
+
return unless config
|
|
27
|
+
|
|
28
|
+
if config.controller.action_methods.include?("show") &&
|
|
29
|
+
authorized?(ActiveAdmin::Auth::READ, resource)
|
|
30
|
+
url_for config.route_instance_path resource, url_options
|
|
31
|
+
elsif config.controller.action_methods.include?("edit") &&
|
|
32
|
+
authorized?(ActiveAdmin::Auth::EDIT, resource)
|
|
33
|
+
url_for config.route_edit_instance_path resource, url_options
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Returns the ActiveAdmin::Resource instance for a class
|
|
38
|
+
def active_admin_resource_for(klass)
|
|
39
|
+
if respond_to? :active_admin_namespace
|
|
40
|
+
active_admin_namespace.resource_for klass
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module BreadcrumbHelper
|
|
5
|
+
|
|
6
|
+
# Returns an array of links to use in a breadcrumb
|
|
7
|
+
def breadcrumb_links(path = request.path)
|
|
8
|
+
# remove leading "/" and split up the URL
|
|
9
|
+
# and remove last since it's used as the page title
|
|
10
|
+
parts = path.split("/").select(&:present?)[0..-2]
|
|
11
|
+
|
|
12
|
+
parts.each_with_index.map do |part, index|
|
|
13
|
+
# 1. try using `display_name` if we can locate a DB object
|
|
14
|
+
# 2. try using the model name translation
|
|
15
|
+
# 3. default to calling `titlecase` on the URL fragment
|
|
16
|
+
if part =~ /\A(\d+|[a-f0-9]{24}|(?:[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}))\z/ && parts[index - 1]
|
|
17
|
+
parent = active_admin_config.belongs_to_config.try :target
|
|
18
|
+
config = parent && parent.resource_name.route_key == parts[index - 1] ? parent : active_admin_config
|
|
19
|
+
name = display_name config.find_resource part
|
|
20
|
+
end
|
|
21
|
+
name ||= I18n.t "activerecord.models.#{part.singularize}", count: ::ActiveAdmin::Helpers::I18n::PLURAL_MANY_COUNT, default: part.titlecase
|
|
22
|
+
|
|
23
|
+
# Don't create a link if the resource's show action is disabled
|
|
24
|
+
if !config || config.defined_actions.include?(:show)
|
|
25
|
+
link_to name, "/" + parts[0..index].join("/")
|
|
26
|
+
else
|
|
27
|
+
name
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module DisplayHelper
|
|
5
|
+
|
|
6
|
+
DISPLAY_NAME_FALLBACK = -> {
|
|
7
|
+
klass = self.class
|
|
8
|
+
name = if klass.respond_to?(:model_name)
|
|
9
|
+
if klass.respond_to?(:primary_key)
|
|
10
|
+
"#{klass.model_name.human} ##{send(klass.primary_key)}"
|
|
11
|
+
else
|
|
12
|
+
klass.model_name.human
|
|
13
|
+
end
|
|
14
|
+
elsif klass.respond_to?(:primary_key)
|
|
15
|
+
" ##{send(klass.primary_key)}"
|
|
16
|
+
end
|
|
17
|
+
name.present? ? name : to_s
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
def DISPLAY_NAME_FALLBACK.inspect
|
|
21
|
+
"DISPLAY_NAME_FALLBACK"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Attempts to call any known display name methods on the resource.
|
|
25
|
+
# See the setting in `application.rb` for the list of methods and their priority.
|
|
26
|
+
def display_name(resource)
|
|
27
|
+
unless resource.nil?
|
|
28
|
+
result = render_in_context(resource, display_name_method_for(resource))
|
|
29
|
+
if result.to_s&.strip&.present?
|
|
30
|
+
ERB::Util.html_escape(result)
|
|
31
|
+
else
|
|
32
|
+
ERB::Util.html_escape(render_in_context(resource, DISPLAY_NAME_FALLBACK))
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Looks up and caches the first available display name method.
|
|
38
|
+
# To prevent conflicts, we exclude any methods that happen to be associations.
|
|
39
|
+
# If no methods are available and we're about to use the Kernel's `to_s`, provide our own.
|
|
40
|
+
def display_name_method_for(resource)
|
|
41
|
+
@@display_name_methods_cache ||= {}
|
|
42
|
+
@@display_name_methods_cache[resource.class] ||= begin
|
|
43
|
+
methods = active_admin_application.display_name_methods - association_methods_for(resource)
|
|
44
|
+
method = methods.detect { |method| resource.respond_to? method }
|
|
45
|
+
|
|
46
|
+
if method != :to_s || resource.method(method).source_location
|
|
47
|
+
method
|
|
48
|
+
else
|
|
49
|
+
DISPLAY_NAME_FALLBACK
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def association_methods_for(resource)
|
|
55
|
+
return [] unless resource.class.respond_to? :reflect_on_all_associations
|
|
56
|
+
resource.class.reflect_on_all_associations.map(&:name)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def format_attribute(resource, attr)
|
|
60
|
+
value = find_value resource, attr
|
|
61
|
+
|
|
62
|
+
if value.is_a?(Arbre::Element)
|
|
63
|
+
value
|
|
64
|
+
elsif boolean_attr?(resource, attr, value)
|
|
65
|
+
Arbre::Context.new { status_tag value }
|
|
66
|
+
else
|
|
67
|
+
pretty_format value
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def find_value(resource, attr)
|
|
72
|
+
if attr.is_a? Proc
|
|
73
|
+
attr.call resource
|
|
74
|
+
elsif resource.respond_to? attr
|
|
75
|
+
resource.public_send attr
|
|
76
|
+
elsif resource.respond_to? :[]
|
|
77
|
+
resource[attr]
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Attempts to create a human-readable string for any object
|
|
82
|
+
def pretty_format(object)
|
|
83
|
+
case object
|
|
84
|
+
when String, Numeric, Symbol, Arbre::Element
|
|
85
|
+
object.to_s
|
|
86
|
+
when Date, Time
|
|
87
|
+
I18n.localize object, format: active_admin_application.localize_format
|
|
88
|
+
when Array
|
|
89
|
+
format_collection(object)
|
|
90
|
+
else
|
|
91
|
+
if defined?(::ActiveRecord) && object.is_a?(ActiveRecord::Base) ||
|
|
92
|
+
defined?(::Mongoid) && object.class.include?(Mongoid::Document)
|
|
93
|
+
auto_link object
|
|
94
|
+
elsif defined?(::ActiveRecord) && object.is_a?(ActiveRecord::Relation)
|
|
95
|
+
format_collection(object)
|
|
96
|
+
else
|
|
97
|
+
display_name object
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def format_collection(collection)
|
|
103
|
+
safe_join(collection.map { |item| pretty_format(item) }, ", ")
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def boolean_attr?(resource, attr, value)
|
|
107
|
+
case value
|
|
108
|
+
when TrueClass, FalseClass
|
|
109
|
+
true
|
|
110
|
+
else
|
|
111
|
+
if resource.class.respond_to? :attribute_types
|
|
112
|
+
resource.class.attribute_types[attr.to_s].is_a?(ActiveModel::Type::Boolean)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module DownloadFormatLinksHelper
|
|
5
|
+
private
|
|
6
|
+
|
|
7
|
+
def build_download_formats(download_links)
|
|
8
|
+
download_links = instance_exec(&download_links) if download_links.is_a?(Proc)
|
|
9
|
+
|
|
10
|
+
if download_links.is_a?(Array) && !download_links.empty?
|
|
11
|
+
download_links
|
|
12
|
+
elsif download_links == false
|
|
13
|
+
[]
|
|
14
|
+
else
|
|
15
|
+
self.class.formats
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def build_download_format_links(formats = self.class.formats)
|
|
20
|
+
params = request.query_parameters.except :format, :commit
|
|
21
|
+
div class: "download_links" do
|
|
22
|
+
span I18n.t("active_admin.download")
|
|
23
|
+
formats.each do |format|
|
|
24
|
+
a format.upcase, href: url_for(params: params, format: format)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.included base
|
|
30
|
+
base.extend ClassMethods
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
module ClassMethods
|
|
34
|
+
|
|
35
|
+
# A ready only of formats to make available in index/paginated
|
|
36
|
+
# collection view.
|
|
37
|
+
# @return [Array]
|
|
38
|
+
# @see add_format for information on adding custom download link
|
|
39
|
+
# formats
|
|
40
|
+
def formats
|
|
41
|
+
@formats ||= [:csv, :xml, :json]
|
|
42
|
+
@formats.clone
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Adds a mime type to the list of available formats available for data
|
|
46
|
+
# export. You must register the extension prior to adding it here.
|
|
47
|
+
# @param [Symbol] format the mime type to add
|
|
48
|
+
# @return [Array] A copy of the updated formats array.
|
|
49
|
+
def add_format(format)
|
|
50
|
+
unless Mime::Type.lookup_by_extension format
|
|
51
|
+
raise ArgumentError, "Please register the #{format} mime type with `Mime::Type.register`"
|
|
52
|
+
end
|
|
53
|
+
@formats << format unless formats.include? format
|
|
54
|
+
formats
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module FormHelper
|
|
5
|
+
|
|
6
|
+
# Flatten a params Hash to an array of fields.
|
|
7
|
+
#
|
|
8
|
+
# @param params [Hash]
|
|
9
|
+
# @param options [Hash] :namespace and :except
|
|
10
|
+
#
|
|
11
|
+
# @return [Array] of [Hash] with one element.
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# fields_for_params(scope: "all", users: ["greg"])
|
|
15
|
+
# => [ {"scope" => "all"} , {"users[]" => "greg"} ]
|
|
16
|
+
#
|
|
17
|
+
def fields_for_params(params, options = {})
|
|
18
|
+
namespace = options[:namespace]
|
|
19
|
+
except = Array.wrap(options[:except]).map &:to_s
|
|
20
|
+
|
|
21
|
+
params.flat_map do |k, v|
|
|
22
|
+
next if namespace.nil? && %w(controller action commit utf8).include?(k.to_s)
|
|
23
|
+
next if except.include?(k.to_s)
|
|
24
|
+
|
|
25
|
+
if namespace
|
|
26
|
+
k = "#{namespace}[#{k}]"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
case v
|
|
30
|
+
when String
|
|
31
|
+
{ k => v }
|
|
32
|
+
when Symbol
|
|
33
|
+
{ k => v.to_s }
|
|
34
|
+
when Hash
|
|
35
|
+
fields_for_params(v, namespace: k)
|
|
36
|
+
when Array
|
|
37
|
+
v.map do |v|
|
|
38
|
+
{ "#{k}[]" => v }
|
|
39
|
+
end
|
|
40
|
+
when nil
|
|
41
|
+
{ k => "" }
|
|
42
|
+
when TrueClass, FalseClass
|
|
43
|
+
{ k => v }
|
|
44
|
+
else
|
|
45
|
+
raise "I don't know what to do with #{v.class} params: #{v.inspect}"
|
|
46
|
+
end
|
|
47
|
+
end.compact
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module FlashHelper
|
|
5
|
+
|
|
6
|
+
# Returns all the flash keys to display in any Active Admin view.
|
|
7
|
+
# This method removes the :timedout key that Devise uses by default.
|
|
8
|
+
# Note Rails >= 4.1 normalizes keys to strings automatically.
|
|
9
|
+
def flash_messages
|
|
10
|
+
@flash_messages ||= flash.to_hash.with_indifferent_access.except(*active_admin_application.flash_keys_to_except)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module FormHelper
|
|
5
|
+
|
|
6
|
+
def active_admin_form_for(resource, options = {}, &block)
|
|
7
|
+
Arbre::Context.new({}, self) do
|
|
8
|
+
active_admin_form_for resource, options, &block
|
|
9
|
+
end.content
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def hidden_field_tags_for(params, options = {})
|
|
13
|
+
fields_for_params(params.to_unsafe_hash, options).map do |kv|
|
|
14
|
+
k, v = kv.first
|
|
15
|
+
hidden_field_tag k, v, id: sanitize_to_id("hidden_active_admin_#{k}")
|
|
16
|
+
end.join("\n").html_safe
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Utility methods for internal use.
|
|
3
|
+
# @private
|
|
4
|
+
module MethodOrProcHelper
|
|
5
|
+
extend self
|
|
6
|
+
|
|
7
|
+
# This method will either call the symbol on self or instance_exec the Proc
|
|
8
|
+
# within self. Any args will be passed along to the method dispatch.
|
|
9
|
+
#
|
|
10
|
+
# Calling with a Symbol:
|
|
11
|
+
#
|
|
12
|
+
# call_method_or_exec_proc(:to_s) #=> will call #to_s
|
|
13
|
+
#
|
|
14
|
+
# Calling with a Proc
|
|
15
|
+
#
|
|
16
|
+
# my_proc = Proc.new{ to_s }
|
|
17
|
+
# call_method_or_exec_proc(my_proc) #=> will instance_exec in self
|
|
18
|
+
#
|
|
19
|
+
def call_method_or_exec_proc(symbol_or_proc, *args)
|
|
20
|
+
case symbol_or_proc
|
|
21
|
+
when Symbol, String
|
|
22
|
+
send(symbol_or_proc, *args)
|
|
23
|
+
when Proc
|
|
24
|
+
instance_exec(*args, &symbol_or_proc)
|
|
25
|
+
else
|
|
26
|
+
symbol_or_proc
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Many times throughout the views we want to either call a method on an object
|
|
31
|
+
# or instance_exec a proc passing in the object as the first parameter. This
|
|
32
|
+
# method wraps that pattern.
|
|
33
|
+
#
|
|
34
|
+
# Calling with a String or Symbol:
|
|
35
|
+
#
|
|
36
|
+
# call_method_or_proc_on(@my_obj, :size) same as @my_obj.size
|
|
37
|
+
#
|
|
38
|
+
# Calling with a Proc:
|
|
39
|
+
#
|
|
40
|
+
# proc = Proc.new{|s| s.size }
|
|
41
|
+
# call_method_or_proc_on(@my_obj, proc)
|
|
42
|
+
#
|
|
43
|
+
# By default, the Proc will be instance_exec'd within self. If you would rather
|
|
44
|
+
# not instance exec, but just call the Proc, then pass along `exec: false` in
|
|
45
|
+
# the options hash.
|
|
46
|
+
#
|
|
47
|
+
# proc = Proc.new{|s| s.size }
|
|
48
|
+
# call_method_or_proc_on(@my_obj, proc, exec: false)
|
|
49
|
+
#
|
|
50
|
+
# You can pass along any necessary arguments to the method / Proc as arguments. For
|
|
51
|
+
# example:
|
|
52
|
+
#
|
|
53
|
+
# call_method_or_proc_on(@my_obj, :find, 1) #=> @my_obj.find(1)
|
|
54
|
+
#
|
|
55
|
+
def call_method_or_proc_on(receiver, *args)
|
|
56
|
+
options = { exec: true }.merge(args.extract_options!)
|
|
57
|
+
|
|
58
|
+
symbol_or_proc = args.shift
|
|
59
|
+
|
|
60
|
+
case symbol_or_proc
|
|
61
|
+
when Symbol, String
|
|
62
|
+
receiver.public_send symbol_or_proc.to_sym, *args
|
|
63
|
+
when Proc
|
|
64
|
+
if options[:exec]
|
|
65
|
+
instance_exec(receiver, *args, &symbol_or_proc)
|
|
66
|
+
else
|
|
67
|
+
symbol_or_proc.call(receiver, *args)
|
|
68
|
+
end
|
|
69
|
+
else
|
|
70
|
+
symbol_or_proc
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Many configuration options (Ex: site_title, title_image) could either be
|
|
75
|
+
# static (String), methods (Symbol) or procs (Proc). This helper takes care of
|
|
76
|
+
# returning the content when String or call call_method_or_proc_on when Symbol or Proc.
|
|
77
|
+
#
|
|
78
|
+
def render_or_call_method_or_proc_on(obj, string_symbol_or_proc, options = {})
|
|
79
|
+
case string_symbol_or_proc
|
|
80
|
+
when Symbol, Proc
|
|
81
|
+
call_method_or_proc_on(obj, string_symbol_or_proc, options)
|
|
82
|
+
else
|
|
83
|
+
string_symbol_or_proc
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# This method is different from the others in that it calls `instance_exec` on the receiver,
|
|
88
|
+
# passing it the proc. This evaluates the proc in the context of the receiver, thus changing
|
|
89
|
+
# what `self` means inside the proc.
|
|
90
|
+
def render_in_context(context, obj, *args)
|
|
91
|
+
context = self if context.nil? # default to `self` only when nil
|
|
92
|
+
case obj
|
|
93
|
+
when Proc
|
|
94
|
+
context.instance_exec *args, &obj
|
|
95
|
+
when Symbol
|
|
96
|
+
context.public_send obj, *args
|
|
97
|
+
else
|
|
98
|
+
obj
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module ScopeNameHelper
|
|
5
|
+
|
|
6
|
+
def scope_name(scope)
|
|
7
|
+
case scope.name
|
|
8
|
+
when Proc then
|
|
9
|
+
self.instance_exec(&scope.name).to_s
|
|
10
|
+
else
|
|
11
|
+
scope.name.to_s
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
|
|
5
|
+
# Require all ruby files in the view helpers dir
|
|
6
|
+
Dir[File.expand_path("view_helpers", __dir__) + "/*.rb"].each { |f| require f }
|
|
7
|
+
|
|
8
|
+
include ActiveAdminApplicationHelper
|
|
9
|
+
include AutoLinkHelper
|
|
10
|
+
include BreadcrumbHelper
|
|
11
|
+
include DisplayHelper
|
|
12
|
+
include MethodOrProcHelper
|
|
13
|
+
include SidebarHelper
|
|
14
|
+
include FormHelper
|
|
15
|
+
include TitleHelper
|
|
16
|
+
include ViewFactoryHelper
|
|
17
|
+
include FlashHelper
|
|
18
|
+
include ScopeNameHelper
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Views
|
|
4
|
+
|
|
5
|
+
class ActionItems < ActiveAdmin::Component
|
|
6
|
+
|
|
7
|
+
def build(action_items)
|
|
8
|
+
action_items.each do |action_item|
|
|
9
|
+
span class: action_item.html_class do
|
|
10
|
+
instance_exec(&action_item.block)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
end
|