rails_admin-lbgraham 0.4.2
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.
- data/Gemfile +51 -0
- data/LICENSE.md +20 -0
- data/README.md +175 -0
- data/Rakefile +19 -0
- data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
- data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/rails_admin/bullet_black.png +0 -0
- data/app/assets/images/rails_admin/bullet_white.png +0 -0
- data/app/assets/images/rails_admin/calendar.png +0 -0
- data/app/assets/images/rails_admin/clock.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
- data/app/assets/images/rails_admin/logo.png +0 -0
- data/app/assets/images/rails_admin/magnifier.png +0 -0
- data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
- data/app/assets/javascripts/rails_admin/custom/ui.js +12 -0
- data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +484 -0
- data/app/assets/javascripts/rails_admin/jquery.pjax.js +743 -0
- data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +1371 -0
- data/app/assets/javascripts/rails_admin/ra.datetimepicker.js +67 -0
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +142 -0
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +292 -0
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +190 -0
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +41 -0
- data/app/assets/javascripts/rails_admin/ra.remote-form.js +151 -0
- data/app/assets/javascripts/rails_admin/ra.widgets.coffee +210 -0
- data/app/assets/javascripts/rails_admin/rails_admin.js.erb +28 -0
- data/app/assets/javascripts/rails_admin/themes/cerulean/ui.js +0 -0
- data/app/assets/javascripts/rails_admin/themes/default/ui.js +12 -0
- data/app/assets/javascripts/rails_admin/ui.js.coffee +66 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.css.scss +733 -0
- data/app/assets/stylesheets/rails_admin/base/README.txt +2 -0
- data/app/assets/stylesheets/rails_admin/base/mixins.css.scss +1 -0
- data/app/assets/stylesheets/rails_admin/base/theming.css.scss +270 -0
- data/app/assets/stylesheets/rails_admin/base/variables.css.scss +1 -0
- data/app/assets/stylesheets/rails_admin/custom/mixins.css.scss +12 -0
- data/app/assets/stylesheets/rails_admin/custom/theming.css.scss +13 -0
- data/app/assets/stylesheets/rails_admin/custom/variables.css.scss +15 -0
- data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +82 -0
- data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +182 -0
- data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.css.scss +69 -0
- data/app/assets/stylesheets/rails_admin/ra.calendar-additions.css.scss +25 -0
- data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.css.scss +90 -0
- data/app/assets/stylesheets/rails_admin/ra.widgets.css.scss +8 -0
- data/app/assets/stylesheets/rails_admin/rails_admin.css +4 -0
- data/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.css.scss +0 -0
- data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.css.scss +97 -0
- data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.css.scss +168 -0
- data/app/assets/stylesheets/rails_admin/themes/default/mixins.css.scss +8 -0
- data/app/assets/stylesheets/rails_admin/themes/default/theming.css.scss +11 -0
- data/app/assets/stylesheets/rails_admin/themes/default/variables.css.scss +12 -0
- data/app/controllers/rails_admin/application_controller.rb +84 -0
- data/app/controllers/rails_admin/main_controller.rb +153 -0
- data/app/helpers/rails_admin/application_helper.rb +147 -0
- data/app/helpers/rails_admin/form_builder.rb +117 -0
- data/app/helpers/rails_admin/main_helper.rb +36 -0
- data/app/views/kaminari/twitter-bootstrap/_gap.html.haml +2 -0
- data/app/views/kaminari/twitter-bootstrap/_next_page.html.haml +4 -0
- data/app/views/kaminari/twitter-bootstrap/_page.html.haml +4 -0
- data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +10 -0
- data/app/views/kaminari/twitter-bootstrap/_prev_page.html.haml +4 -0
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +12 -0
- data/app/views/layouts/rails_admin/application.html.haml +27 -0
- data/app/views/layouts/rails_admin/pjax.html.haml +16 -0
- data/app/views/rails_admin/main/_dashboard_history.html.haml +20 -0
- data/app/views/rails_admin/main/_delete_notice.html.haml +19 -0
- data/app/views/rails_admin/main/_form_colorpicker.html.haml +1 -0
- data/app/views/rails_admin/main/_form_datetime.html.haml +1 -0
- data/app/views/rails_admin/main/_form_enumeration.html.haml +18 -0
- data/app/views/rails_admin/main/_form_field.html.haml +1 -0
- data/app/views/rails_admin/main/_form_file_upload.html.haml +13 -0
- data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +47 -0
- data/app/views/rails_admin/main/_form_filtering_select.html.haml +37 -0
- data/app/views/rails_admin/main/_form_nested_many.html.haml +14 -0
- data/app/views/rails_admin/main/_form_nested_one.html.haml +10 -0
- data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +10 -0
- data/app/views/rails_admin/main/_form_text.html.haml +31 -0
- data/app/views/rails_admin/main/_submit_buttons.html.haml +15 -0
- data/app/views/rails_admin/main/bulk_delete.html.haml +11 -0
- data/app/views/rails_admin/main/dashboard.html.haml +35 -0
- data/app/views/rails_admin/main/delete.html.haml +18 -0
- data/app/views/rails_admin/main/edit.html.haml +2 -0
- data/app/views/rails_admin/main/export.html.haml +75 -0
- data/app/views/rails_admin/main/history.html.haml +49 -0
- data/app/views/rails_admin/main/index.html.haml +140 -0
- data/app/views/rails_admin/main/new.html.haml +2 -0
- data/app/views/rails_admin/main/show.html.haml +16 -0
- data/config/initializers/active_record_extensions.rb +19 -0
- data/config/initializers/devise_patch.rb +9 -0
- data/config/initializers/haml.rb +2 -0
- data/config/initializers/mongoid_extensions.rb +4 -0
- data/config/locales/rails_admin.en.yml +130 -0
- data/config/routes.rb +12 -0
- data/lib/generators/rails_admin/install_generator.rb +85 -0
- data/lib/generators/rails_admin/templates/drop.rb +18 -0
- data/lib/generators/rails_admin/templates/initializer.erb +100 -0
- data/lib/generators/rails_admin/templates/migration.rb +18 -0
- data/lib/generators/rails_admin/uninstall_generator.rb +22 -0
- data/lib/generators/rails_admin/utils.rb +30 -0
- data/lib/rails_admin.rb +34 -0
- data/lib/rails_admin/abstract_model.rb +128 -0
- data/lib/rails_admin/adapters/active_record.rb +296 -0
- data/lib/rails_admin/adapters/active_record/abstract_object.rb +32 -0
- data/lib/rails_admin/adapters/mongoid.rb +430 -0
- data/lib/rails_admin/adapters/mongoid/abstract_object.rb +43 -0
- data/lib/rails_admin/adapters/mongoid/extension.rb +45 -0
- data/lib/rails_admin/config.rb +333 -0
- data/lib/rails_admin/config/actions.rb +121 -0
- data/lib/rails_admin/config/actions/base.rb +132 -0
- data/lib/rails_admin/config/actions/bulk_delete.rb +55 -0
- data/lib/rails_admin/config/actions/dashboard.rb +52 -0
- data/lib/rails_admin/config/actions/delete.rb +56 -0
- data/lib/rails_admin/config/actions/edit.rb +55 -0
- data/lib/rails_admin/config/actions/export.rb +40 -0
- data/lib/rails_admin/config/actions/history_index.rb +38 -0
- data/lib/rails_admin/config/actions/history_show.rb +38 -0
- data/lib/rails_admin/config/actions/index.rb +85 -0
- data/lib/rails_admin/config/actions/new.rb +65 -0
- data/lib/rails_admin/config/actions/show.rb +34 -0
- data/lib/rails_admin/config/actions/show_in_app.rb +27 -0
- data/lib/rails_admin/config/configurable.rb +92 -0
- data/lib/rails_admin/config/fields.rb +87 -0
- data/lib/rails_admin/config/fields/association.rb +107 -0
- data/lib/rails_admin/config/fields/base.rb +320 -0
- data/lib/rails_admin/config/fields/factories/association.rb +32 -0
- data/lib/rails_admin/config/fields/factories/carrierwave.rb +31 -0
- data/lib/rails_admin/config/fields/factories/devise.rb +27 -0
- data/lib/rails_admin/config/fields/factories/dragonfly.rb +27 -0
- data/lib/rails_admin/config/fields/factories/enum.rb +11 -0
- data/lib/rails_admin/config/fields/factories/paperclip.rb +26 -0
- data/lib/rails_admin/config/fields/factories/password.rb +17 -0
- data/lib/rails_admin/config/fields/group.rb +78 -0
- data/lib/rails_admin/config/fields/types.rb +27 -0
- data/lib/rails_admin/config/fields/types/all.rb +25 -0
- data/lib/rails_admin/config/fields/types/belongs_to_association.rb +41 -0
- data/lib/rails_admin/config/fields/types/boolean.rb +38 -0
- data/lib/rails_admin/config/fields/types/bson_object_id.rb +45 -0
- data/lib/rails_admin/config/fields/types/carrierwave.rb +31 -0
- data/lib/rails_admin/config/fields/types/color.rb +37 -0
- data/lib/rails_admin/config/fields/types/date.rb +24 -0
- data/lib/rails_admin/config/fields/types/datetime.rb +164 -0
- data/lib/rails_admin/config/fields/types/decimal.rb +14 -0
- data/lib/rails_admin/config/fields/types/dragonfly.rb +41 -0
- data/lib/rails_admin/config/fields/types/enum.rb +39 -0
- data/lib/rails_admin/config/fields/types/file_upload.rb +65 -0
- data/lib/rails_admin/config/fields/types/float.rb +14 -0
- data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +14 -0
- data/lib/rails_admin/config/fields/types/has_many_association.rb +32 -0
- data/lib/rails_admin/config/fields/types/has_one_association.rb +39 -0
- data/lib/rails_admin/config/fields/types/hidden.rb +27 -0
- data/lib/rails_admin/config/fields/types/integer.rb +22 -0
- data/lib/rails_admin/config/fields/types/paperclip.rb +28 -0
- data/lib/rails_admin/config/fields/types/password.rb +39 -0
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +80 -0
- data/lib/rails_admin/config/fields/types/serialized.rb +22 -0
- data/lib/rails_admin/config/fields/types/string.rb +43 -0
- data/lib/rails_admin/config/fields/types/text.rb +97 -0
- data/lib/rails_admin/config/fields/types/time.rb +36 -0
- data/lib/rails_admin/config/fields/types/timestamp.rb +18 -0
- data/lib/rails_admin/config/groupable.rb +18 -0
- data/lib/rails_admin/config/has_fields.rb +136 -0
- data/lib/rails_admin/config/has_groups.rb +23 -0
- data/lib/rails_admin/config/hideable.rb +28 -0
- data/lib/rails_admin/config/lazy_model.rb +21 -0
- data/lib/rails_admin/config/model.rb +109 -0
- data/lib/rails_admin/config/proxyable.rb +12 -0
- data/lib/rails_admin/config/proxyable/proxy.rb +43 -0
- data/lib/rails_admin/config/sections.rb +39 -0
- data/lib/rails_admin/config/sections/base.rb +46 -0
- data/lib/rails_admin/config/sections/create.rb +11 -0
- data/lib/rails_admin/config/sections/edit.rb +11 -0
- data/lib/rails_admin/config/sections/export.rb +11 -0
- data/lib/rails_admin/config/sections/list.rb +27 -0
- data/lib/rails_admin/config/sections/modal.rb +10 -0
- data/lib/rails_admin/config/sections/nested.rb +10 -0
- data/lib/rails_admin/config/sections/show.rb +10 -0
- data/lib/rails_admin/config/sections/update.rb +10 -0
- data/lib/rails_admin/engine.rb +27 -0
- data/lib/rails_admin/extension.rb +29 -0
- data/lib/rails_admin/extensions/cancan.rb +5 -0
- data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +59 -0
- data/lib/rails_admin/extensions/history.rb +5 -0
- data/lib/rails_admin/extensions/history/auditing_adapter.rb +37 -0
- data/lib/rails_admin/extensions/history/history.rb +36 -0
- data/lib/rails_admin/extensions/paper_trail.rb +5 -0
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +93 -0
- data/lib/rails_admin/i18n_support.rb +43 -0
- data/lib/rails_admin/support/core_extensions.rb +44 -0
- data/lib/rails_admin/support/csv_converter.rb +105 -0
- data/lib/rails_admin/version.rb +18 -0
- data/lib/tasks/rails_admin.rake +48 -0
- data/spec/ci.sh +2 -0
- data/spec/controllers/rails_admin/application_controller_spec.rb +30 -0
- data/spec/controllers/rails_admin/main_controller_spec.rb +337 -0
- data/spec/dummy_app/Gemfile +48 -0
- data/spec/dummy_app/Rakefile +7 -0
- data/spec/dummy_app/app/active_record/abstract.rb +5 -0
- data/spec/dummy_app/app/active_record/another_field_test.rb +4 -0
- data/spec/dummy_app/app/active_record/ball.rb +9 -0
- data/spec/dummy_app/app/active_record/carrierwave_uploader.rb +53 -0
- data/spec/dummy_app/app/active_record/category.rb +5 -0
- data/spec/dummy_app/app/active_record/cms.rb +5 -0
- data/spec/dummy_app/app/active_record/cms/basic_page.rb +9 -0
- data/spec/dummy_app/app/active_record/cms/unscoped_page.rb +3 -0
- data/spec/dummy_app/app/active_record/comment.rb +5 -0
- data/spec/dummy_app/app/active_record/comment/confirmed.rb +3 -0
- data/spec/dummy_app/app/active_record/division.rb +15 -0
- data/spec/dummy_app/app/active_record/draft.rb +13 -0
- data/spec/dummy_app/app/active_record/fan.rb +7 -0
- data/spec/dummy_app/app/active_record/field_test.rb +19 -0
- data/spec/dummy_app/app/active_record/hardball.rb +2 -0
- data/spec/dummy_app/app/active_record/image.rb +6 -0
- data/spec/dummy_app/app/active_record/league.rb +12 -0
- data/spec/dummy_app/app/active_record/nested_field_test.rb +8 -0
- data/spec/dummy_app/app/active_record/player.rb +27 -0
- data/spec/dummy_app/app/active_record/team.rb +28 -0
- data/spec/dummy_app/app/active_record/user.rb +25 -0
- data/spec/dummy_app/app/assets/images/rails.png +0 -0
- data/spec/dummy_app/app/assets/javascripts/application.js +15 -0
- data/spec/dummy_app/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy_app/app/controllers/application_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/players_controller.rb +5 -0
- data/spec/dummy_app/app/locales/models.en.yml +20 -0
- data/spec/dummy_app/app/mongoid/another_field_test.rb +6 -0
- data/spec/dummy_app/app/mongoid/ball.rb +14 -0
- data/spec/dummy_app/app/mongoid/carrierwave_uploader.rb +53 -0
- data/spec/dummy_app/app/mongoid/category.rb +7 -0
- data/spec/dummy_app/app/mongoid/cms.rb +5 -0
- data/spec/dummy_app/app/mongoid/cms/basic_page.rb +12 -0
- data/spec/dummy_app/app/mongoid/cms/unscoped_page.rb +5 -0
- data/spec/dummy_app/app/mongoid/comment.rb +9 -0
- data/spec/dummy_app/app/mongoid/comment/confirmed.rb +3 -0
- data/spec/dummy_app/app/mongoid/division.rb +14 -0
- data/spec/dummy_app/app/mongoid/draft.rb +22 -0
- data/spec/dummy_app/app/mongoid/embed.rb +6 -0
- data/spec/dummy_app/app/mongoid/fan.rb +12 -0
- data/spec/dummy_app/app/mongoid/field_test.rb +57 -0
- data/spec/dummy_app/app/mongoid/hardball.rb +2 -0
- data/spec/dummy_app/app/mongoid/image.rb +9 -0
- data/spec/dummy_app/app/mongoid/league.rb +16 -0
- data/spec/dummy_app/app/mongoid/nested_field_test.rb +13 -0
- data/spec/dummy_app/app/mongoid/player.rb +41 -0
- data/spec/dummy_app/app/mongoid/team.rb +47 -0
- data/spec/dummy_app/app/mongoid/user.rb +61 -0
- data/spec/dummy_app/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy_app/app/views/players/show.html.haml +1 -0
- data/spec/dummy_app/config.ru +4 -0
- data/spec/dummy_app/config/application.rb +69 -0
- data/spec/dummy_app/config/boot.rb +9 -0
- data/spec/dummy_app/config/database.yml +25 -0
- data/spec/dummy_app/config/environment.rb +5 -0
- data/spec/dummy_app/config/environments/development.rb +37 -0
- data/spec/dummy_app/config/environments/production.rb +67 -0
- data/spec/dummy_app/config/environments/test.rb +37 -0
- data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy_app/config/initializers/devise.rb +216 -0
- data/spec/dummy_app/config/initializers/dragonfly.rb +11 -0
- data/spec/dummy_app/config/initializers/inflections.rb +15 -0
- data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
- data/spec/dummy_app/config/initializers/rails_admin.rb +8 -0
- data/spec/dummy_app/config/initializers/secret_token.rb +7 -0
- data/spec/dummy_app/config/initializers/session_patch.rb +16 -0
- data/spec/dummy_app/config/initializers/session_store.rb +8 -0
- data/spec/dummy_app/config/initializers/strong_parameters.rb +2 -0
- data/spec/dummy_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy_app/config/locales/fr.yml +24 -0
- data/spec/dummy_app/config/mongoid.yml +22 -0
- data/spec/dummy_app/config/routes.rb +10 -0
- data/spec/dummy_app/db/migrate/00000000000001_create_divisions_migration.rb +13 -0
- data/spec/dummy_app/db/migrate/00000000000002_create_drafts_migration.rb +19 -0
- data/spec/dummy_app/db/migrate/00000000000003_create_leagues_migration.rb +12 -0
- data/spec/dummy_app/db/migrate/00000000000004_create_players_migration.rb +20 -0
- data/spec/dummy_app/db/migrate/00000000000005_create_teams_migration.rb +22 -0
- data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +49 -0
- data/spec/dummy_app/db/migrate/00000000000007_create_histories_table.rb +16 -0
- data/spec/dummy_app/db/migrate/00000000000008_create_fans_migration.rb +12 -0
- data/spec/dummy_app/db/migrate/00000000000009_create_fans_teams_migration.rb +11 -0
- data/spec/dummy_app/db/migrate/00000000000010_add_revenue_to_team_migration.rb +9 -0
- data/spec/dummy_app/db/migrate/00000000000011_add_suspended_to_player_migration.rb +9 -0
- data/spec/dummy_app/db/migrate/00000000000012_add_avatar_columns_to_user.rb +16 -0
- data/spec/dummy_app/db/migrate/00000000000013_add_roles_to_user.rb +9 -0
- data/spec/dummy_app/db/migrate/00000000000014_add_color_to_team_migration.rb +9 -0
- data/spec/dummy_app/db/migrate/20101223222233_create_rel_tests.rb +15 -0
- data/spec/dummy_app/db/migrate/20110103205808_create_comments.rb +15 -0
- data/spec/dummy_app/db/migrate/20110123042530_rename_histories_to_rails_admin_histories.rb +9 -0
- data/spec/dummy_app/db/migrate/20110224184303_create_field_tests.rb +22 -0
- data/spec/dummy_app/db/migrate/20110328193014_create_cms_basic_pages.rb +14 -0
- data/spec/dummy_app/db/migrate/20110329183136_remove_league_id_from_teams.rb +9 -0
- data/spec/dummy_app/db/migrate/20110607152842_add_format_to_field_test.rb +9 -0
- data/spec/dummy_app/db/migrate/20110714095433_create_balls.rb +12 -0
- data/spec/dummy_app/db/migrate/20110831090841_add_protected_field_and_restricted_field_to_field_tests.rb +6 -0
- data/spec/dummy_app/db/migrate/20110901131551_change_division_primary_key.rb +19 -0
- data/spec/dummy_app/db/migrate/20110901142530_rename_league_id_foreign_key_on_divisions.rb +5 -0
- data/spec/dummy_app/db/migrate/20110901150912_set_primary_key_not_null_for_divisions.rb +21 -0
- data/spec/dummy_app/db/migrate/20110901154834_change_length_for_rails_admin_histories.rb +9 -0
- data/spec/dummy_app/db/migrate/20111103174459_create_unscoped_pages.rb +9 -0
- data/spec/dummy_app/db/migrate/20111108143642_add_dragonfly_and_carrierwave_to_field_tests.rb +7 -0
- data/spec/dummy_app/db/migrate/20111115041025_add_type_to_balls.rb +5 -0
- data/spec/dummy_app/db/migrate/20111123092549_create_nested_field_tests.rb +10 -0
- data/spec/dummy_app/db/migrate/20111130075338_add_dragonfly_asset_name_to_field_tests.rb +5 -0
- data/spec/dummy_app/db/migrate/20111215083258_create_foo_bars.rb +8 -0
- data/spec/dummy_app/db/migrate/20120117151733_add_custom_field_to_teams.rb +5 -0
- data/spec/dummy_app/db/migrate/20120118122004_add_categories.rb +7 -0
- data/spec/dummy_app/db/migrate/20120319041705_drop_rel_tests.rb +15 -0
- data/spec/dummy_app/db/migrate/20120720075608_create_another_field_tests.rb +8 -0
- data/spec/dummy_app/db/migrate/20120928075608_create_images.rb +8 -0
- data/spec/dummy_app/db/seeds.rb +29 -0
- data/spec/dummy_app/doc/README_FOR_APP +2 -0
- data/spec/dummy_app/public/404.html +26 -0
- data/spec/dummy_app/public/422.html +26 -0
- data/spec/dummy_app/public/500.html +25 -0
- data/spec/dummy_app/public/favicon.ico +0 -0
- data/spec/dummy_app/public/robots.txt +5 -0
- data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg +0 -0
- data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg.meta +1 -0
- data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg +0 -0
- data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg.meta +1 -0
- data/spec/dummy_app/public/system/paperclip_assets/1/original/Boston City Flow.jpg +0 -0
- data/spec/dummy_app/public/system/paperclip_assets/1/thumb/Boston City Flow.jpg +0 -0
- data/spec/dummy_app/public/system/paperclip_assets/3/original/Costa Rican Frog.jpg +0 -0
- data/spec/dummy_app/public/system/paperclip_assets/3/thumb/Costa Rican Frog.jpg +0 -0
- data/spec/dummy_app/public/system/paperclip_assets/6/original/liste-electorale.pdf +0 -0
- data/spec/dummy_app/public/system/paperclip_assets/6/thumb/liste-electorale.pdf +148 -0
- data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/Boston_City_Flow.jpg +0 -0
- data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/thumb_Boston_City_Flow.jpg +0 -0
- data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/Costa_Rican_Frog.jpg +0 -0
- data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/thumb_Costa_Rican_Frog.jpg +0 -0
- data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/Pensive_Parakeet.jpg +0 -0
- data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/thumb_Pensive_Parakeet.jpg +0 -0
- data/spec/dummy_app/script/rails +6 -0
- data/spec/factories.rb +75 -0
- data/spec/helpers/rails_admin/application_helper_spec.rb +353 -0
- data/spec/helpers/rails_admin/form_builder_spec.rb +17 -0
- data/spec/integration/authorization/cancan_spec.rb +366 -0
- data/spec/integration/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +25 -0
- data/spec/integration/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +53 -0
- data/spec/integration/basic/create/rails_admin_basic_create_spec.rb +140 -0
- data/spec/integration/basic/create/rails_admin_namespaced_model_create_spec.rb +16 -0
- data/spec/integration/basic/delete/rails_admin_basic_delete_spec.rb +64 -0
- data/spec/integration/basic/destroy/rails_admin_basic_destroy_spec.rb +84 -0
- data/spec/integration/basic/edit/rails_admin_basic_edit_spec.rb +109 -0
- data/spec/integration/basic/export/rails_admin_basic_export_spec.rb +106 -0
- data/spec/integration/basic/list/rails_admin_basic_list_spec.rb +444 -0
- data/spec/integration/basic/new/rails_admin_basic_new_spec.rb +73 -0
- data/spec/integration/basic/new/rails_admin_namespaced_model_new_spec.rb +31 -0
- data/spec/integration/basic/show/rails_admin_basic_show_spec.rb +82 -0
- data/spec/integration/basic/update/rails_admin_basic_update_spec.rb +229 -0
- data/spec/integration/config/edit/rails_admin_config_edit_spec.rb +1026 -0
- data/spec/integration/config/list/rails_admin_config_list_spec.rb +441 -0
- data/spec/integration/config/show/rails_admin_config_show_spec.rb +331 -0
- data/spec/integration/history/rails_admin_history_spec.rb +88 -0
- data/spec/integration/rails_admin_spec.rb +150 -0
- data/spec/integration/relation_spec.rb +35 -0
- data/spec/orm/active_record.rb +42 -0
- data/spec/orm/mongoid.rb +21 -0
- data/spec/rails_admin/abstract_model_spec.rb +75 -0
- data/spec/rails_admin/active_record_extension_spec.rb +16 -0
- data/spec/rails_admin/adapters/active_record/abstract_object_spec.rb +132 -0
- data/spec/rails_admin/adapters/active_record_spec.rb +409 -0
- data/spec/rails_admin/adapters/mongoid/abstract_object_spec.rb +31 -0
- data/spec/rails_admin/adapters/mongoid_spec.rb +776 -0
- data/spec/rails_admin/config/actions/base_spec.rb +32 -0
- data/spec/rails_admin/config/actions_spec.rb +180 -0
- data/spec/rails_admin/config/fields/base_spec.rb +421 -0
- data/spec/rails_admin/config/fields/date_spec.rb +74 -0
- data/spec/rails_admin/config/fields/datetime_spec.rb +55 -0
- data/spec/rails_admin/config/fields/file_upload_spec.rb +21 -0
- data/spec/rails_admin/config/fields/time_spec.rb +39 -0
- data/spec/rails_admin/config/fields/timestamp_spec.rb +20 -0
- data/spec/rails_admin/config/fields/types/datetime_spec.rb +18 -0
- data/spec/rails_admin/config/fields_spec.rb +15 -0
- data/spec/rails_admin/config/has_fields_spec.rb +30 -0
- data/spec/rails_admin/config/lazy_model_spec.rb +29 -0
- data/spec/rails_admin/config/model_spec.rb +75 -0
- data/spec/rails_admin/config/sections_spec.rb +123 -0
- data/spec/rails_admin/config_spec.rb +277 -0
- data/spec/rails_admin/support/csv_converter_spec.rb +16 -0
- data/spec/spec_helper.rb +84 -0
- metadata +868 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rails_admin/adapters/active_record/abstract_object'
|
2
|
+
module RailsAdmin
|
3
|
+
module Adapters
|
4
|
+
module Mongoid
|
5
|
+
class AbstractObject < RailsAdmin::Adapters::ActiveRecord::AbstractObject
|
6
|
+
def initialize(object)
|
7
|
+
super
|
8
|
+
object.associations.each do |name, association|
|
9
|
+
if [:has_many, :references_many].include? association.macro
|
10
|
+
instance_eval <<-RUBY, __FILE__, __LINE__ + 1
|
11
|
+
def #{name.to_s.singularize}_ids
|
12
|
+
#{name}.map{|item| item.id }
|
13
|
+
end
|
14
|
+
|
15
|
+
def #{name.to_s.singularize}_ids=(item_ids)
|
16
|
+
__items__ = Array.wrap(item_ids).map{|item_id| #{name}.klass.find(item_id) rescue nil }.compact
|
17
|
+
if persisted?
|
18
|
+
#{name}.substitute __items__
|
19
|
+
else
|
20
|
+
__items__.each do |item|
|
21
|
+
item.update_attribute('#{association.foreign_key}', id)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
RUBY
|
26
|
+
elsif [:has_one, :references_one].include? association.macro
|
27
|
+
instance_eval <<-RUBY, __FILE__, __LINE__ + 1
|
28
|
+
def #{name.to_s}_id=(item_id)
|
29
|
+
item = (#{association.klass}.find(item_id) rescue nil)
|
30
|
+
if persisted?
|
31
|
+
self.#{name} = item
|
32
|
+
else
|
33
|
+
item.update_attribute('#{association.foreign_key}', id) if item
|
34
|
+
end
|
35
|
+
end
|
36
|
+
RUBY
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module RailsAdmin
|
2
|
+
module Adapters
|
3
|
+
module Mongoid
|
4
|
+
module Extension
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
class_attribute :nested_attributes_options
|
9
|
+
self.nested_attributes_options = {}
|
10
|
+
class << self
|
11
|
+
def rails_admin(&block)
|
12
|
+
RailsAdmin.config(self, &block)
|
13
|
+
end
|
14
|
+
alias_method_chain :accepts_nested_attributes_for, :rails_admin
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def rails_admin_default_object_label_method
|
19
|
+
self.new_record? ? "new #{self.class.to_s}" : "#{self.class.to_s} ##{self.id}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def safe_send(value)
|
23
|
+
if self.attributes.find{ |k,v| k.to_s == value.to_s }
|
24
|
+
self.read_attribute(value)
|
25
|
+
else
|
26
|
+
self.send(value)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
module ClassMethods
|
31
|
+
# Mongoid accepts_nested_attributes_for does not store options in accessible scope,
|
32
|
+
# so we intercept the call and store it in instance variable which can be accessed from outside
|
33
|
+
def accepts_nested_attributes_for_with_rails_admin(*args)
|
34
|
+
options = args.extract_options!
|
35
|
+
args.each do |arg|
|
36
|
+
self.nested_attributes_options[arg.to_sym] = options.reverse_merge(:allow_destroy=>false, :update_only=>false)
|
37
|
+
end
|
38
|
+
args << options
|
39
|
+
accepts_nested_attributes_for_without_rails_admin(*args)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,333 @@
|
|
1
|
+
require 'rails_admin/config/lazy_model'
|
2
|
+
require 'rails_admin/config/sections/list'
|
3
|
+
require 'active_support/core_ext/class/attribute_accessors'
|
4
|
+
|
5
|
+
module RailsAdmin
|
6
|
+
module Config
|
7
|
+
# RailsAdmin is setup to try and authenticate with warden
|
8
|
+
# If warden is found, then it will try to authenticate
|
9
|
+
#
|
10
|
+
# This is valid for custom warden setups, and also devise
|
11
|
+
# If you're using the admin setup for devise, you should set RailsAdmin to use the admin
|
12
|
+
#
|
13
|
+
# @see RailsAdmin::Config.authenticate_with
|
14
|
+
# @see RailsAdmin::Config.authorize_with
|
15
|
+
DEFAULT_AUTHENTICATION = Proc.new do
|
16
|
+
request.env['warden'].try(:authenticate!)
|
17
|
+
end
|
18
|
+
|
19
|
+
DEFAULT_ATTR_ACCESSIBLE_ROLE = Proc.new { :default }
|
20
|
+
|
21
|
+
DEFAULT_AUTHORIZE = Proc.new {}
|
22
|
+
|
23
|
+
DEFAULT_AUDIT = Proc.new {}
|
24
|
+
|
25
|
+
DEFAULT_CURRENT_USER = Proc.new do
|
26
|
+
request.env["warden"].try(:user) || respond_to?(:current_user) && current_user
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
class << self
|
31
|
+
# Application title, can be an array of two elements
|
32
|
+
attr_accessor :main_app_name
|
33
|
+
|
34
|
+
# Configuration option to specify which models you want to exclude.
|
35
|
+
attr_accessor :excluded_models
|
36
|
+
|
37
|
+
# Configuration option to specify a whitelist of models you want to RailsAdmin to work with.
|
38
|
+
# The excluded_models list applies against the whitelist as well and further reduces the models
|
39
|
+
# RailsAdmin will use.
|
40
|
+
# If included_models is left empty ([]), then RailsAdmin will automatically use all the models
|
41
|
+
# in your application (less any excluded_models you may have specified).
|
42
|
+
attr_accessor :included_models
|
43
|
+
|
44
|
+
# Fields to be hidden in show, create and update views
|
45
|
+
attr_accessor :default_hidden_fields
|
46
|
+
|
47
|
+
# Default items per page value used if a model level option has not
|
48
|
+
# been configured
|
49
|
+
attr_accessor :default_items_per_page
|
50
|
+
|
51
|
+
attr_reader :default_search_operator
|
52
|
+
|
53
|
+
# Configuration option to specify which method names will be searched for
|
54
|
+
# to be used as a label for object records. This defaults to [:name, :title]
|
55
|
+
attr_accessor :label_methods
|
56
|
+
|
57
|
+
# hide blank fields in show view if true
|
58
|
+
attr_accessor :compact_show_view
|
59
|
+
|
60
|
+
# Set the max width of columns in list view before a new set is created
|
61
|
+
attr_accessor :total_columns_width
|
62
|
+
|
63
|
+
# Stores model configuration objects in a hash identified by model's class
|
64
|
+
# name.
|
65
|
+
#
|
66
|
+
# @see RailsAdmin.config
|
67
|
+
attr_reader :registry
|
68
|
+
|
69
|
+
# accepts a hash of static links to be shown below the main navigation
|
70
|
+
attr_accessor :navigation_static_links
|
71
|
+
attr_accessor :navigation_static_label
|
72
|
+
|
73
|
+
# yell about fields that are not marked as accessible
|
74
|
+
attr_accessor :yell_for_non_accessible_fields
|
75
|
+
|
76
|
+
# Setup authentication to be run as a before filter
|
77
|
+
# This is run inside the controller instance so you can setup any authentication you need to
|
78
|
+
#
|
79
|
+
# By default, the authentication will run via warden if available
|
80
|
+
# and will run the default.
|
81
|
+
#
|
82
|
+
# If you use devise, this will authenticate the same as _authenticate_user!_
|
83
|
+
#
|
84
|
+
# @example Devise admin
|
85
|
+
# RailsAdmin.config do |config|
|
86
|
+
# config.authenticate_with do
|
87
|
+
# authenticate_admin!
|
88
|
+
# end
|
89
|
+
# end
|
90
|
+
#
|
91
|
+
# @example Custom Warden
|
92
|
+
# RailsAdmin.config do |config|
|
93
|
+
# config.authenticate_with do
|
94
|
+
# warden.authenticate! :scope => :paranoid
|
95
|
+
# end
|
96
|
+
# end
|
97
|
+
#
|
98
|
+
# @see RailsAdmin::Config::DEFAULT_AUTHENTICATION
|
99
|
+
def authenticate_with(&blk)
|
100
|
+
@authenticate = blk if blk
|
101
|
+
@authenticate || DEFAULT_AUTHENTICATION
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
def attr_accessible_role(&blk)
|
106
|
+
@attr_accessible_role = blk if blk
|
107
|
+
@attr_accessible_role || DEFAULT_ATTR_ACCESSIBLE_ROLE
|
108
|
+
end
|
109
|
+
|
110
|
+
# Setup auditing/history/versioning provider that observe objects lifecycle
|
111
|
+
def audit_with(*args, &block)
|
112
|
+
extension = args.shift
|
113
|
+
if(extension)
|
114
|
+
@audit = Proc.new {
|
115
|
+
@auditing_adapter = RailsAdmin::AUDITING_ADAPTERS[extension].new(*([self] + args).compact)
|
116
|
+
}
|
117
|
+
else
|
118
|
+
@audit = block if block
|
119
|
+
end
|
120
|
+
@audit || DEFAULT_AUDIT
|
121
|
+
end
|
122
|
+
|
123
|
+
# Setup authorization to be run as a before filter
|
124
|
+
# This is run inside the controller instance so you can setup any authorization you need to.
|
125
|
+
#
|
126
|
+
# By default, there is no authorization.
|
127
|
+
#
|
128
|
+
# @example Custom
|
129
|
+
# RailsAdmin.config do |config|
|
130
|
+
# config.authorize_with do
|
131
|
+
# redirect_to root_path unless warden.user.is_admin?
|
132
|
+
# end
|
133
|
+
# end
|
134
|
+
#
|
135
|
+
# To use an authorization adapter, pass the name of the adapter. For example,
|
136
|
+
# to use with CanCan[https://github.com/ryanb/cancan], pass it like this.
|
137
|
+
#
|
138
|
+
# @example CanCan
|
139
|
+
# RailsAdmin.config do |config|
|
140
|
+
# config.authorize_with :cancan
|
141
|
+
# end
|
142
|
+
#
|
143
|
+
# See the wiki[https://github.com/sferik/rails_admin/wiki] for more on authorization.
|
144
|
+
#
|
145
|
+
# @see RailsAdmin::Config::DEFAULT_AUTHORIZE
|
146
|
+
def authorize_with(*args, &block)
|
147
|
+
extension = args.shift
|
148
|
+
if(extension)
|
149
|
+
@authorize = Proc.new {
|
150
|
+
@authorization_adapter = RailsAdmin::AUTHORIZATION_ADAPTERS[extension].new(*([self] + args).compact)
|
151
|
+
}
|
152
|
+
else
|
153
|
+
@authorize = block if block
|
154
|
+
end
|
155
|
+
@authorize || DEFAULT_AUTHORIZE
|
156
|
+
end
|
157
|
+
|
158
|
+
# Setup configuration using an extension-provided ConfigurationAdapter
|
159
|
+
#
|
160
|
+
# @example Custom configuration for role-based setup.
|
161
|
+
# RailsAdmin.config do |config|
|
162
|
+
# config.configure_with(:custom) do |config|
|
163
|
+
# config.models = ['User', 'Comment']
|
164
|
+
# config.roles = {
|
165
|
+
# 'Admin' => :all,
|
166
|
+
# 'User' => ['User']
|
167
|
+
# }
|
168
|
+
# end
|
169
|
+
# end
|
170
|
+
def configure_with(extension)
|
171
|
+
configuration = RailsAdmin::CONFIGURATION_ADAPTERS[extension].new
|
172
|
+
yield(configuration) if block_given?
|
173
|
+
end
|
174
|
+
|
175
|
+
# Setup a different method to determine the current user or admin logged in.
|
176
|
+
# This is run inside the controller instance and made available as a helper.
|
177
|
+
#
|
178
|
+
# By default, _request.env["warden"].user_ or _current_user_ will be used.
|
179
|
+
#
|
180
|
+
# @example Custom
|
181
|
+
# RailsAdmin.config do |config|
|
182
|
+
# config.current_user_method do
|
183
|
+
# current_admin
|
184
|
+
# end
|
185
|
+
# end
|
186
|
+
#
|
187
|
+
# @see RailsAdmin::Config::DEFAULT_CURRENT_USER
|
188
|
+
def current_user_method(&block)
|
189
|
+
@current_user = block if block
|
190
|
+
@current_user || DEFAULT_CURRENT_USER
|
191
|
+
end
|
192
|
+
|
193
|
+
def default_search_operator=(operator)
|
194
|
+
if %w{ default like starts_with ends_with is = }.include? operator
|
195
|
+
@default_search_operator = operator
|
196
|
+
else
|
197
|
+
raise ArgumentError, "Search operator '#{operator}' not supported"
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
# pool of all found model names from the whole application
|
202
|
+
def models_pool
|
203
|
+
possible =
|
204
|
+
included_models.map(&:to_s).presence || (
|
205
|
+
@@system_models ||= # memoization for tests
|
206
|
+
([Rails.application] + Rails::Application::Railties.engines).map do |app|
|
207
|
+
(app.paths['app/models'] + app.config.autoload_paths).map do |load_path|
|
208
|
+
Dir.glob(app.root.join(load_path)).map do |load_dir|
|
209
|
+
Dir.glob(load_dir + "/**/*.rb").map do |filename|
|
210
|
+
# app/models/module/class.rb => module/class.rb => module/class => Module::Class
|
211
|
+
lchomp(filename, "#{app.root.join(load_dir)}/").chomp('.rb').camelize
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end.flatten
|
216
|
+
)
|
217
|
+
|
218
|
+
excluded = (excluded_models.map(&:to_s) + ['RailsAdmin::History'])
|
219
|
+
|
220
|
+
(possible - excluded).uniq.sort
|
221
|
+
end
|
222
|
+
|
223
|
+
# Loads a model configuration instance from the registry or registers
|
224
|
+
# a new one if one is yet to be added.
|
225
|
+
#
|
226
|
+
# First argument can be an instance of requested model, its class object,
|
227
|
+
# its class name as a string or symbol or a RailsAdmin::AbstractModel
|
228
|
+
# instance.
|
229
|
+
#
|
230
|
+
# If a block is given it is evaluated in the context of configuration instance.
|
231
|
+
#
|
232
|
+
# Returns given model's configuration
|
233
|
+
#
|
234
|
+
# @see RailsAdmin::Config.registry
|
235
|
+
def model(entity, &block)
|
236
|
+
key = begin
|
237
|
+
if entity.kind_of?(RailsAdmin::AbstractModel)
|
238
|
+
entity.model.try(:name).try :to_sym
|
239
|
+
elsif entity.kind_of?(Class)
|
240
|
+
entity.name.to_sym
|
241
|
+
elsif entity.kind_of?(String) || entity.kind_of?(Symbol)
|
242
|
+
entity.to_sym
|
243
|
+
else
|
244
|
+
entity.class.name.to_sym
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
if block
|
249
|
+
@registry[key] = RailsAdmin::Config::LazyModel.new(entity, &block)
|
250
|
+
else
|
251
|
+
@registry[key] ||= RailsAdmin::Config::LazyModel.new(entity)
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
def default_hidden_fields=(fields)
|
256
|
+
if fields.is_a?(Array)
|
257
|
+
@default_hidden_fields = {}
|
258
|
+
@default_hidden_fields[:edit] = fields
|
259
|
+
@default_hidden_fields[:show] = fields
|
260
|
+
else
|
261
|
+
@default_hidden_fields = fields
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
# Returns action configuration object
|
266
|
+
def actions(&block)
|
267
|
+
RailsAdmin::Config::Actions.instance_eval(&block) if block
|
268
|
+
end
|
269
|
+
|
270
|
+
# Returns all model configurations
|
271
|
+
#
|
272
|
+
# @see RailsAdmin::Config.registry
|
273
|
+
def models
|
274
|
+
RailsAdmin::AbstractModel.all.map{|m| model(m)}
|
275
|
+
end
|
276
|
+
|
277
|
+
# Reset all configurations to defaults.
|
278
|
+
#
|
279
|
+
# @see RailsAdmin::Config.registry
|
280
|
+
def reset
|
281
|
+
@compact_show_view = true
|
282
|
+
@yell_for_non_accessible_fields = true
|
283
|
+
@authenticate = nil
|
284
|
+
@authorize = nil
|
285
|
+
@audit = nil
|
286
|
+
@current_user = nil
|
287
|
+
@default_hidden_fields = {}
|
288
|
+
@default_hidden_fields[:base] = [:_type]
|
289
|
+
@default_hidden_fields[:edit] = [:id, :_id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
|
290
|
+
@default_hidden_fields[:show] = [:id, :_id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
|
291
|
+
@default_items_per_page = 20
|
292
|
+
@default_search_operator = 'default'
|
293
|
+
@attr_accessible_role = nil
|
294
|
+
@excluded_models = []
|
295
|
+
@included_models = []
|
296
|
+
@total_columns_width = 697
|
297
|
+
@label_methods = [:name, :title]
|
298
|
+
@main_app_name = Proc.new { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
|
299
|
+
@registry = {}
|
300
|
+
@navigation_static_links = {}
|
301
|
+
@navigation_static_label = nil
|
302
|
+
RailsAdmin::Config::Actions.reset
|
303
|
+
end
|
304
|
+
|
305
|
+
# Reset a provided model's configuration.
|
306
|
+
#
|
307
|
+
# @see RailsAdmin::Config.registry
|
308
|
+
def reset_model(model)
|
309
|
+
key = model.kind_of?(Class) ? model.name.to_sym : model.to_sym
|
310
|
+
@registry.delete(key)
|
311
|
+
end
|
312
|
+
|
313
|
+
# Get all models that are configured as visible sorted by their weight and label.
|
314
|
+
#
|
315
|
+
# @see RailsAdmin::Config::Hideable
|
316
|
+
|
317
|
+
def visible_models(bindings)
|
318
|
+
models.map{|m| m.with(bindings) }.select{|m| m.visible? && bindings[:controller].authorized?(:index, m.abstract_model) && !m.abstract_model.embedded?}.sort do |a, b|
|
319
|
+
(weight_order = a.weight <=> b.weight) == 0 ? a.label.downcase <=> b.label.downcase : weight_order
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
private
|
324
|
+
|
325
|
+
def lchomp(base, arg)
|
326
|
+
base.to_s.reverse.chomp(arg.to_s.reverse).reverse
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
# Set default values for configuration options on load
|
331
|
+
self.reset
|
332
|
+
end
|
333
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
module RailsAdmin
|
2
|
+
module Config
|
3
|
+
module Actions
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def all(scope = nil, bindings = {})
|
7
|
+
if scope.is_a?(Hash)
|
8
|
+
bindings = scope
|
9
|
+
scope = :all
|
10
|
+
end
|
11
|
+
scope ||= :all
|
12
|
+
init_actions!
|
13
|
+
actions = case scope
|
14
|
+
when :all
|
15
|
+
@@actions
|
16
|
+
when :root
|
17
|
+
@@actions.select(&:root?)
|
18
|
+
when :collection
|
19
|
+
@@actions.select(&:collection?)
|
20
|
+
when :bulkable
|
21
|
+
@@actions.select(&:bulkable?)
|
22
|
+
when :member
|
23
|
+
@@actions.select(&:member?)
|
24
|
+
end
|
25
|
+
actions = actions.map{ |action| action.with(bindings) }
|
26
|
+
bindings[:controller] ? actions.select(&:visible?) : actions
|
27
|
+
end
|
28
|
+
|
29
|
+
def find custom_key, bindings = {}
|
30
|
+
init_actions!
|
31
|
+
action = @@actions.find{ |a| a.custom_key == custom_key }.try(:with, bindings)
|
32
|
+
bindings[:controller] ? (action.try(:visible?) && action || nil) : action
|
33
|
+
end
|
34
|
+
|
35
|
+
def collection key, parent_class = :base, &block
|
36
|
+
add_action key, parent_class, :collection, &block
|
37
|
+
end
|
38
|
+
|
39
|
+
def member key, parent_class = :base, &block
|
40
|
+
add_action key, parent_class, :member, &block
|
41
|
+
end
|
42
|
+
|
43
|
+
def root key, parent_class = :base, &block
|
44
|
+
add_action key, parent_class, :root, &block
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_action key, parent_class, parent, &block
|
48
|
+
a = "RailsAdmin::Config::Actions::#{parent_class.to_s.camelize}".constantize.new
|
49
|
+
a.instance_eval(%{
|
50
|
+
#{parent} true
|
51
|
+
def key
|
52
|
+
:#{key}
|
53
|
+
end
|
54
|
+
})
|
55
|
+
a.instance_eval(&block) if block
|
56
|
+
unless a.custom_key.in?((@@actions || []).map(&:custom_key))
|
57
|
+
(@@actions ||= []) << a
|
58
|
+
else
|
59
|
+
raise "Action #{a.custom_key} already exist. Please change its custom key"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def reset
|
64
|
+
@@actions = nil
|
65
|
+
end
|
66
|
+
|
67
|
+
def register(name, klass = nil)
|
68
|
+
if klass == nil && name.kind_of?(Class)
|
69
|
+
klass = name
|
70
|
+
name = klass.to_s.demodulize.underscore.to_sym
|
71
|
+
end
|
72
|
+
|
73
|
+
instance_eval %{
|
74
|
+
def #{name}(&block)
|
75
|
+
action = #{klass}.new
|
76
|
+
action.instance_eval &block if block
|
77
|
+
unless action.custom_key.in?((@@actions || []).map(&:custom_key))
|
78
|
+
(@@actions ||= []) << action
|
79
|
+
else
|
80
|
+
raise "Action \#{action.custom_key} already exist. Please change its custom key"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
}
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
def init_actions!
|
89
|
+
@@actions ||= [
|
90
|
+
Dashboard.new,
|
91
|
+
Index.new,
|
92
|
+
Show.new,
|
93
|
+
New.new,
|
94
|
+
Edit.new,
|
95
|
+
Export.new,
|
96
|
+
Delete.new,
|
97
|
+
BulkDelete.new,
|
98
|
+
HistoryShow.new,
|
99
|
+
HistoryIndex.new,
|
100
|
+
ShowInApp.new,
|
101
|
+
]
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
require 'rails_admin/config/actions/base'
|
110
|
+
require 'rails_admin/config/actions/dashboard'
|
111
|
+
require 'rails_admin/config/actions/index'
|
112
|
+
require 'rails_admin/config/actions/show'
|
113
|
+
require 'rails_admin/config/actions/show_in_app'
|
114
|
+
require 'rails_admin/config/actions/history_show'
|
115
|
+
require 'rails_admin/config/actions/history_index'
|
116
|
+
require 'rails_admin/config/actions/new'
|
117
|
+
require 'rails_admin/config/actions/edit'
|
118
|
+
require 'rails_admin/config/actions/export'
|
119
|
+
require 'rails_admin/config/actions/delete'
|
120
|
+
require 'rails_admin/config/actions/bulk_delete'
|
121
|
+
|