ultra-quick-hub 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.
Potentially problematic release.
This version of ultra-quick-hub might be problematic. Click here for more details.
- 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/core_ext.rb +148 -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/ultra-quick-hub.gemspec +12 -0
- metadata +384 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Helpers
|
|
4
|
+
module Routes
|
|
5
|
+
module UrlHelpers
|
|
6
|
+
include Rails.application.routes.url_helpers
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
extend UrlHelpers
|
|
10
|
+
|
|
11
|
+
def self.default_url_options
|
|
12
|
+
Rails.application.routes.default_url_options || {}
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module ScopeChain
|
|
4
|
+
private
|
|
5
|
+
# Scope an ActiveRecord::Relation chain
|
|
6
|
+
#
|
|
7
|
+
# Example:
|
|
8
|
+
# scope_chain(Scope.new(:published), Article)
|
|
9
|
+
# # => Article.published
|
|
10
|
+
#
|
|
11
|
+
# @param scope The <ActiveAdmin::Scope> we want to scope on
|
|
12
|
+
# @param chain The ActiveRecord::Relation chain or ActiveRecord::Base class to scope
|
|
13
|
+
# @return <ActiveRecord::Relation or ActiveRecord::Base> The scoped relation chain
|
|
14
|
+
#
|
|
15
|
+
def scope_chain(scope, chain)
|
|
16
|
+
if scope.scope_method
|
|
17
|
+
chain.public_send scope.scope_method
|
|
18
|
+
elsif scope.scope_block
|
|
19
|
+
instance_exec chain, &scope.scope_block
|
|
20
|
+
else
|
|
21
|
+
chain
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
class DatepickerInput < ::Formtastic::Inputs::StringInput
|
|
5
|
+
def input_html_options
|
|
6
|
+
super.tap do |options|
|
|
7
|
+
options[:class] = [options[:class], "datepicker"].compact.join(" ")
|
|
8
|
+
options[:data] ||= {}
|
|
9
|
+
options[:data].merge! datepicker_options
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Can pass proc to filter label option
|
|
14
|
+
def label_from_options
|
|
15
|
+
res = super
|
|
16
|
+
res = res.call if res.is_a? Proc
|
|
17
|
+
res
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
def datepicker_options
|
|
22
|
+
options = self.options.fetch(:datepicker_options, {})
|
|
23
|
+
options = Hash[options.map { |k, v| [k.to_s.camelcase(:lower), v] }]
|
|
24
|
+
{ datepicker_options: options }
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This is a common set of Formtastic overrides needed to build a filter form
|
|
3
|
+
# that lets you select from a set of search methods for a given attribute.
|
|
4
|
+
#
|
|
5
|
+
# Your class must declare available filters for this module to work.
|
|
6
|
+
# Those filters must be recognizable by Ransack. For example:
|
|
7
|
+
#
|
|
8
|
+
# class NumericInput < ::Formtastic::Inputs::NumberInput
|
|
9
|
+
# include Base
|
|
10
|
+
# include Base::SearchMethodSelect
|
|
11
|
+
#
|
|
12
|
+
# filter :eq, :gt, :lt
|
|
13
|
+
# end
|
|
14
|
+
#
|
|
15
|
+
module ActiveAdmin
|
|
16
|
+
module Inputs
|
|
17
|
+
module Filters
|
|
18
|
+
module Base
|
|
19
|
+
module SearchMethodSelect
|
|
20
|
+
|
|
21
|
+
def self.included(base)
|
|
22
|
+
base.extend ClassMethods
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
module ClassMethods
|
|
26
|
+
attr_reader :filters
|
|
27
|
+
|
|
28
|
+
def filter(*filters)
|
|
29
|
+
(@filters ||= []).push *filters
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def wrapper_html_options
|
|
34
|
+
opts = super
|
|
35
|
+
(opts[:class] ||= "") << " select_and_search" unless seems_searchable?
|
|
36
|
+
opts
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def to_html
|
|
40
|
+
input_wrapping do
|
|
41
|
+
label_html << # your label
|
|
42
|
+
select_html << # the dropdown that holds the available search methods
|
|
43
|
+
input_html # your input field
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def input_html
|
|
48
|
+
builder.text_field current_filter, input_html_options
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def select_html
|
|
52
|
+
template.select_tag "", template.options_for_select(filter_options, current_filter)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def filters
|
|
56
|
+
options[:filters] || self.class.filters
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def current_filter
|
|
60
|
+
@current_filter ||= begin
|
|
61
|
+
methods = filters.map { |f| "#{method}_#{f}" }
|
|
62
|
+
methods.detect { |m| @object.public_send m } || methods.first
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def filter_options
|
|
67
|
+
filters.collect do |filter|
|
|
68
|
+
[I18n.t("ransack.predicates.#{filter}").capitalize, "#{method}_#{filter}"]
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
module Base
|
|
6
|
+
include ::Formtastic::Inputs::Base
|
|
7
|
+
include ::ActiveAdmin::Filters::FormtasticAddons
|
|
8
|
+
|
|
9
|
+
extend ::ActiveSupport::Autoload
|
|
10
|
+
autoload :SearchMethodSelect
|
|
11
|
+
|
|
12
|
+
def input_wrapping(&block)
|
|
13
|
+
template.content_tag :div, template.capture(&block), wrapper_html_options
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def required?
|
|
17
|
+
false
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Can pass proc to filter label option
|
|
21
|
+
def label_from_options
|
|
22
|
+
res = super
|
|
23
|
+
res = res.call if res.is_a? Proc
|
|
24
|
+
res
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def wrapper_html_options
|
|
28
|
+
opts = super
|
|
29
|
+
(opts[:class] ||= "") << " filter_form_field filter_#{as}"
|
|
30
|
+
opts
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Override the standard finder to accept a proc
|
|
34
|
+
def collection_from_options
|
|
35
|
+
if options[:collection].is_a?(Proc)
|
|
36
|
+
template.instance_exec(&options[:collection])
|
|
37
|
+
else
|
|
38
|
+
super
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class BooleanInput < ::Formtastic::Inputs::SelectInput
|
|
6
|
+
include Base
|
|
7
|
+
|
|
8
|
+
def input_name
|
|
9
|
+
return method if seems_searchable?
|
|
10
|
+
|
|
11
|
+
"#{method}_eq"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def input_html_options_name
|
|
15
|
+
"#{object_name}[#{input_name}]" # was "#{object_name}[#{association_primary_key}]"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Provide the AA translation to the blank input field.
|
|
19
|
+
def include_blank
|
|
20
|
+
I18n.t "active_admin.any" if super
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class CheckBoxesInput < ::Formtastic::Inputs::CheckBoxesInput
|
|
6
|
+
include Base
|
|
7
|
+
|
|
8
|
+
def input_name
|
|
9
|
+
"#{object_name}[#{searchable_method_name}_in][]"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def selected_values
|
|
13
|
+
@object.public_send("#{searchable_method_name}_in") || []
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def searchable_method_name
|
|
17
|
+
if searchable_has_many_through?
|
|
18
|
+
"#{reflection.through_reflection.name}_#{reflection.foreign_key}"
|
|
19
|
+
else
|
|
20
|
+
association_primary_key || method
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Add whitespace before label
|
|
25
|
+
def choice_label(choice)
|
|
26
|
+
" " + super
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Don't wrap in UL tag
|
|
30
|
+
def choices_group_wrapping(&block)
|
|
31
|
+
template.capture(&block)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Don't wrap in LI tag
|
|
35
|
+
def choice_wrapping(html_options, &block)
|
|
36
|
+
template.capture(&block)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Don't render hidden fields
|
|
40
|
+
def hidden_field_for_all
|
|
41
|
+
""
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Don't render hidden fields
|
|
45
|
+
def hidden_fields?
|
|
46
|
+
false
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class DatePickerInput < ::Formtastic::Inputs::DatePickerInput
|
|
6
|
+
include Base
|
|
7
|
+
|
|
8
|
+
def input_html_options
|
|
9
|
+
super.merge(class: "datepicker")
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class DateRangeInput < ::Formtastic::Inputs::StringInput
|
|
6
|
+
include Base
|
|
7
|
+
|
|
8
|
+
def to_html
|
|
9
|
+
input_wrapping do
|
|
10
|
+
[ label_html,
|
|
11
|
+
builder.text_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder)),
|
|
12
|
+
builder.text_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder)),
|
|
13
|
+
].join("\n").html_safe
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def gt_input_name
|
|
18
|
+
"#{method}_gteq"
|
|
19
|
+
end
|
|
20
|
+
alias :input_name :gt_input_name
|
|
21
|
+
|
|
22
|
+
def lt_input_name
|
|
23
|
+
"#{method}_lteq"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def input_html_options
|
|
27
|
+
{ size: 12,
|
|
28
|
+
class: "datepicker",
|
|
29
|
+
maxlength: 10 }.merge(options[:input_html] || {})
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def input_html_options_for(input_name, placeholder)
|
|
33
|
+
current_value = begin
|
|
34
|
+
#cast value to date object before rendering input
|
|
35
|
+
@object.public_send(input_name).to_s.to_date
|
|
36
|
+
rescue
|
|
37
|
+
nil
|
|
38
|
+
end
|
|
39
|
+
{ placeholder: placeholder,
|
|
40
|
+
value: current_value ? current_value.strftime("%Y-%m-%d") : "" }.merge(input_html_options)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def gt_input_placeholder
|
|
44
|
+
I18n.t("active_admin.filters.predicates.from")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def lt_input_placeholder
|
|
48
|
+
I18n.t("active_admin.filters.predicates.to")
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class SelectInput < ::Formtastic::Inputs::SelectInput
|
|
6
|
+
include Base
|
|
7
|
+
|
|
8
|
+
def input_name
|
|
9
|
+
return method if seems_searchable?
|
|
10
|
+
|
|
11
|
+
searchable_method_name + (multiple? ? "_in" : "_eq")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def searchable_method_name
|
|
15
|
+
if searchable_has_many_through?
|
|
16
|
+
"#{reflection.through_reflection.name}_#{reflection.foreign_key}"
|
|
17
|
+
else
|
|
18
|
+
reflection_searchable? ? "#{method}_#{reflection.association_primary_key}" : method.to_s
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Provide the AA translation to the blank input field.
|
|
23
|
+
def include_blank
|
|
24
|
+
I18n.t "active_admin.any" if super
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def input_html_options_name
|
|
28
|
+
"#{object_name}[#{input_name}]" # was "#{object_name}[#{association_primary_key}]"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Would normally return true for has_many and HABTM, which would subsequently
|
|
32
|
+
# cause the select field to be multi-select instead of a dropdown.
|
|
33
|
+
def multiple_by_association?
|
|
34
|
+
false
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Provides an efficient default lookup query if the attribute is a DB column.
|
|
38
|
+
def collection
|
|
39
|
+
if !options[:collection] && column
|
|
40
|
+
pluck_column
|
|
41
|
+
else
|
|
42
|
+
super
|
|
43
|
+
end
|
|
44
|
+
rescue ActiveRecord::QueryCanceled => error
|
|
45
|
+
raise ActiveRecord::QueryCanceled.new "#{error.message.strip} while querying the values for the ActiveAdmin :#{method} filter"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def pluck_column
|
|
49
|
+
klass.reorder("#{method} asc").distinct.pluck method
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def reflection_searchable?
|
|
53
|
+
reflection && !reflection.polymorphic?
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class StringInput < ::Formtastic::Inputs::StringInput
|
|
6
|
+
include Base
|
|
7
|
+
include Base::SearchMethodSelect
|
|
8
|
+
|
|
9
|
+
filter :cont, :eq, :start, :end
|
|
10
|
+
|
|
11
|
+
# If the filter method includes a search condition, build a normal string search field.
|
|
12
|
+
# Else, build a search field with a companion dropdown to choose a search condition from.
|
|
13
|
+
def to_html
|
|
14
|
+
if seems_searchable?
|
|
15
|
+
input_wrapping do
|
|
16
|
+
label_html <<
|
|
17
|
+
builder.text_field(method, input_html_options)
|
|
18
|
+
end
|
|
19
|
+
else
|
|
20
|
+
super # SearchMethodSelect#to_html
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
class TextInput < ::Formtastic::Inputs::TextInput
|
|
6
|
+
include Base
|
|
7
|
+
include Base::SearchMethodSelect
|
|
8
|
+
|
|
9
|
+
def input_html_options
|
|
10
|
+
{
|
|
11
|
+
cols: builder.default_text_area_width,
|
|
12
|
+
rows: builder.default_text_area_height
|
|
13
|
+
}.merge(super)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_html
|
|
17
|
+
input_wrapping do
|
|
18
|
+
label_html <<
|
|
19
|
+
builder.text_area(method, input_html_options)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Inputs
|
|
4
|
+
extend ActiveSupport::Autoload
|
|
5
|
+
|
|
6
|
+
autoload :DatepickerInput
|
|
7
|
+
|
|
8
|
+
module Filters
|
|
9
|
+
extend ActiveSupport::Autoload
|
|
10
|
+
|
|
11
|
+
autoload :Base
|
|
12
|
+
autoload :StringInput
|
|
13
|
+
autoload :TextInput
|
|
14
|
+
autoload :DatePickerInput
|
|
15
|
+
autoload :DateRangeInput
|
|
16
|
+
autoload :NumericInput
|
|
17
|
+
autoload :SelectInput
|
|
18
|
+
autoload :CheckBoxesInput
|
|
19
|
+
autoload :BooleanInput
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Localizers
|
|
4
|
+
class ResourceLocalizer
|
|
5
|
+
class << self
|
|
6
|
+
def from_resource(resource_config)
|
|
7
|
+
new(resource_config.resource_name.i18n_key, resource_config.resource_label)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def translate(key, options)
|
|
11
|
+
new(options.delete(:model_name), options.delete(:model)).translate(key, options)
|
|
12
|
+
end
|
|
13
|
+
alias_method :t, :translate
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def initialize(model_name, model = nil)
|
|
17
|
+
@model_name = model_name
|
|
18
|
+
@model = model || model_name.to_s.titleize
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def translate(key, options = {})
|
|
22
|
+
scope = options.delete(:scope)
|
|
23
|
+
specific_key = array_to_key("resources", @model_name, scope, key)
|
|
24
|
+
defaults = [array_to_key(scope, key), key.to_s.titleize]
|
|
25
|
+
::I18n.t specific_key, **options.reverse_merge(model: @model, default: defaults, scope: "active_admin")
|
|
26
|
+
end
|
|
27
|
+
alias_method :t, :translate
|
|
28
|
+
|
|
29
|
+
protected
|
|
30
|
+
|
|
31
|
+
def array_to_key(*arr)
|
|
32
|
+
arr.flatten.compact.join(".").to_sym
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "active_admin/localizers/resource_localizer"
|
|
3
|
+
|
|
4
|
+
module ActiveAdmin
|
|
5
|
+
module Localizers
|
|
6
|
+
class << self
|
|
7
|
+
def resource(active_admin_config)
|
|
8
|
+
ResourceLocalizer.from_resource(active_admin_config)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
|
|
4
|
+
# Each Namespace builds up it's own menu as the global navigation
|
|
5
|
+
#
|
|
6
|
+
# To build a new menu:
|
|
7
|
+
#
|
|
8
|
+
# menu = Menu.new do |m|
|
|
9
|
+
# m.add label: 'Dashboard', url: '/'
|
|
10
|
+
# m.add label: 'Users', url: '/users'
|
|
11
|
+
# end
|
|
12
|
+
#
|
|
13
|
+
# If you're interested in configuring a menu item, take a look at the
|
|
14
|
+
# options available in `ActiveAdmin::MenuItem`
|
|
15
|
+
#
|
|
16
|
+
class Menu
|
|
17
|
+
|
|
18
|
+
def initialize
|
|
19
|
+
super # MenuNode
|
|
20
|
+
yield(self) if block_given?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
module MenuNode
|
|
24
|
+
def initialize
|
|
25
|
+
@children = {}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def [](id)
|
|
29
|
+
@children[normalize_id(id)]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def []=(id, child)
|
|
33
|
+
@children[normalize_id(id)] = child
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Recursively builds any given menu items. There are two syntaxes supported,
|
|
37
|
+
# as shown in the below examples. Both create an identical menu structure.
|
|
38
|
+
#
|
|
39
|
+
# Example 1:
|
|
40
|
+
# menu = Menu.new
|
|
41
|
+
# menu.add label: 'Dashboard' do |dash|
|
|
42
|
+
# dash.add label: 'My Child Dashboard'
|
|
43
|
+
# end
|
|
44
|
+
#
|
|
45
|
+
# Example 2:
|
|
46
|
+
# menu = Menu.new
|
|
47
|
+
# menu.add label: 'Dashboard'
|
|
48
|
+
# menu.add parent: 'Dashboard', label: 'My Child Dashboard'
|
|
49
|
+
#
|
|
50
|
+
def add(options)
|
|
51
|
+
options = options.dup # Make sure parameter is not modified
|
|
52
|
+
parent_chain = Array.wrap(options.delete(:parent))
|
|
53
|
+
|
|
54
|
+
item = if parent = parent_chain.shift
|
|
55
|
+
options[:parent] = parent_chain if parent_chain.any?
|
|
56
|
+
(self[parent] || add(label: parent)).add options
|
|
57
|
+
else
|
|
58
|
+
_add options.merge parent: self
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
yield(item) if block_given?
|
|
62
|
+
|
|
63
|
+
item
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Whether any children match the given item.
|
|
67
|
+
def include?(item)
|
|
68
|
+
@children.values.include?(item) || @children.values.any? { |child| child.include?(item) }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Used in the UI to visually distinguish which menu item is selected.
|
|
72
|
+
def current?(item)
|
|
73
|
+
self == item || include?(item)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def items
|
|
77
|
+
@children.values
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
attr_reader :children
|
|
81
|
+
private
|
|
82
|
+
attr_writer :children
|
|
83
|
+
|
|
84
|
+
# The method that actually adds new menu items. Called by the public method.
|
|
85
|
+
# If this ID is already taken, transfer the children of the existing item to the new item.
|
|
86
|
+
def _add(options)
|
|
87
|
+
item = ActiveAdmin::MenuItem.new(options)
|
|
88
|
+
item.send :children=, self[item.id].children if self[item.id]
|
|
89
|
+
self[item.id] = item
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def normalize_id(id)
|
|
93
|
+
case id
|
|
94
|
+
when String, Symbol, ActiveModel::Name
|
|
95
|
+
id.to_s.downcase.tr " ", "_"
|
|
96
|
+
when ActiveAdmin::Resource::Name
|
|
97
|
+
id.param_key
|
|
98
|
+
else
|
|
99
|
+
raise TypeError, "#{id.class} isn't supported as a Menu ID"
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
include MenuNode
|
|
105
|
+
|
|
106
|
+
end
|
|
107
|
+
end
|