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,441 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "RailsAdmin Config DSL List Section" do
|
4
|
+
|
5
|
+
subject { page }
|
6
|
+
|
7
|
+
describe "css hooks" do
|
8
|
+
it "is present" do
|
9
|
+
RailsAdmin.config Team do
|
10
|
+
list do
|
11
|
+
field :name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
FactoryGirl.create :team
|
15
|
+
visit index_path(:model_name => "team")
|
16
|
+
should have_selector("th.header.string_type.name_field")
|
17
|
+
should have_selector("td.string_type.name_field")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
describe "number of items per page" do
|
23
|
+
|
24
|
+
before(:each) do
|
25
|
+
2.times.each do
|
26
|
+
FactoryGirl.create :league
|
27
|
+
FactoryGirl.create :player
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it "is configurable per model" do
|
32
|
+
RailsAdmin.config League do
|
33
|
+
list do
|
34
|
+
items_per_page 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
visit index_path(:model_name => "league")
|
38
|
+
should have_selector("tbody tr", :count => 1)
|
39
|
+
visit index_path(:model_name => "player")
|
40
|
+
should have_selector("tbody tr", :count => 2)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "items' fields" do
|
45
|
+
|
46
|
+
it "shows all by default" do
|
47
|
+
visit index_path(:model_name => "fan")
|
48
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
49
|
+
to match_array ["Id", "Created at", "Updated at", "His Name", "Teams"]
|
50
|
+
end
|
51
|
+
|
52
|
+
it "hides some fields on demand with a block" do
|
53
|
+
RailsAdmin.config Fan do
|
54
|
+
list do
|
55
|
+
exclude_fields_if do
|
56
|
+
type == :datetime
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
visit index_path(:model_name => "fan")
|
61
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
62
|
+
to match_array ["Id", "His Name", "Teams"]
|
63
|
+
end
|
64
|
+
|
65
|
+
it "hides some fields on demand with fields list" do
|
66
|
+
RailsAdmin.config Fan do
|
67
|
+
list do
|
68
|
+
exclude_fields :created_at, :updated_at
|
69
|
+
end
|
70
|
+
end
|
71
|
+
visit index_path(:model_name => "fan")
|
72
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
73
|
+
to match_array ["Id", "His Name", "Teams"]
|
74
|
+
end
|
75
|
+
|
76
|
+
it "adds some fields on demand with a block" do
|
77
|
+
RailsAdmin.config Fan do
|
78
|
+
list do
|
79
|
+
include_fields_if do
|
80
|
+
type != :datetime
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
visit index_path(:model_name => "fan")
|
85
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
86
|
+
to match_array ["Id", "His Name", "Teams"]
|
87
|
+
end
|
88
|
+
|
89
|
+
it "shows some fields on demand with fields list, respect ordering and configure them" do
|
90
|
+
RailsAdmin.config Fan do
|
91
|
+
list do
|
92
|
+
fields :name, PK_COLUMN do
|
93
|
+
label do
|
94
|
+
"Modified #{label}"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
visit index_path(:model_name => "fan")
|
100
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
101
|
+
to match_array ["Modified Id", "Modified His Name"]
|
102
|
+
end
|
103
|
+
|
104
|
+
it "shows all fields if asked" do
|
105
|
+
RailsAdmin.config Fan do
|
106
|
+
list do
|
107
|
+
include_all_fields
|
108
|
+
field PK_COLUMN
|
109
|
+
field :name
|
110
|
+
end
|
111
|
+
end
|
112
|
+
visit index_path(:model_name => "fan")
|
113
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
114
|
+
to match_array ["Id", "Created at", "Updated at", "His Name", "Teams"]
|
115
|
+
end
|
116
|
+
|
117
|
+
it "appears in order defined" do
|
118
|
+
RailsAdmin.config Fan do
|
119
|
+
list do
|
120
|
+
field :updated_at
|
121
|
+
field :name
|
122
|
+
field PK_COLUMN
|
123
|
+
field :created_at
|
124
|
+
end
|
125
|
+
end
|
126
|
+
visit index_path(:model_name => "fan")
|
127
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
128
|
+
to eq(["Updated at", "His Name", "Id", "Created at"])
|
129
|
+
end
|
130
|
+
|
131
|
+
it "only lists the defined fields if some fields are defined" do
|
132
|
+
RailsAdmin.config Fan do
|
133
|
+
list do
|
134
|
+
field PK_COLUMN
|
135
|
+
field :name
|
136
|
+
end
|
137
|
+
end
|
138
|
+
visit index_path(:model_name => "fan")
|
139
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
140
|
+
to eq(["Id", "His Name"])
|
141
|
+
should have_no_selector("th:nth-child(4).header")
|
142
|
+
end
|
143
|
+
|
144
|
+
it "delegates the label option to the ActiveModel API" do
|
145
|
+
RailsAdmin.config Fan do
|
146
|
+
list do
|
147
|
+
field :name
|
148
|
+
end
|
149
|
+
end
|
150
|
+
visit index_path(:model_name => "fan")
|
151
|
+
expect(find("th:nth-child(2)")).to have_content("His Name")
|
152
|
+
end
|
153
|
+
|
154
|
+
it "is renameable" do
|
155
|
+
RailsAdmin.config Fan do
|
156
|
+
list do
|
157
|
+
field PK_COLUMN do
|
158
|
+
label "Identifier"
|
159
|
+
end
|
160
|
+
field :name
|
161
|
+
end
|
162
|
+
end
|
163
|
+
visit index_path(:model_name => "fan")
|
164
|
+
expect(find("th:nth-child(2)")).to have_content("Identifier")
|
165
|
+
expect(find("th:nth-child(3)")).to have_content("His Name")
|
166
|
+
end
|
167
|
+
|
168
|
+
it "is renameable by type" do
|
169
|
+
RailsAdmin.config Fan do
|
170
|
+
list do
|
171
|
+
fields_of_type :datetime do
|
172
|
+
label { "#{label} (datetime)" }
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
visit index_path(:model_name => "fan")
|
177
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
178
|
+
to match_array ["Id", "Created at (datetime)", "Updated at (datetime)", "His Name", "Teams"]
|
179
|
+
end
|
180
|
+
|
181
|
+
it "is globally renameable by type" do
|
182
|
+
RailsAdmin.config Fan do
|
183
|
+
list do
|
184
|
+
fields_of_type :datetime do
|
185
|
+
label { "#{label} (datetime)" }
|
186
|
+
end
|
187
|
+
end
|
188
|
+
end
|
189
|
+
visit index_path(:model_name => "fan")
|
190
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
191
|
+
to match_array ["Id", "Created at (datetime)", "Updated at (datetime)", "His Name", "Teams"]
|
192
|
+
end
|
193
|
+
|
194
|
+
it "is sortable by default" do
|
195
|
+
visit index_path(:model_name => "fan")
|
196
|
+
should have_selector("th:nth-child(2).header")
|
197
|
+
should have_selector("th:nth-child(3).header")
|
198
|
+
should have_selector("th:nth-child(4).header")
|
199
|
+
should have_selector("th:nth-child(5).header")
|
200
|
+
end
|
201
|
+
|
202
|
+
it "has option to disable sortability" do
|
203
|
+
RailsAdmin.config Fan do
|
204
|
+
list do
|
205
|
+
field PK_COLUMN do
|
206
|
+
sortable false
|
207
|
+
end
|
208
|
+
field :name
|
209
|
+
end
|
210
|
+
end
|
211
|
+
visit index_path(:model_name => "fan")
|
212
|
+
should have_no_selector("th:nth-child(2).header")
|
213
|
+
should have_selector("th:nth-child(3).header")
|
214
|
+
end
|
215
|
+
|
216
|
+
it "has option to disable sortability by type" do
|
217
|
+
RailsAdmin.config Fan do
|
218
|
+
list do
|
219
|
+
fields_of_type :datetime do
|
220
|
+
sortable false
|
221
|
+
end
|
222
|
+
field PK_COLUMN
|
223
|
+
field :name
|
224
|
+
field :created_at
|
225
|
+
field :updated_at
|
226
|
+
end
|
227
|
+
end
|
228
|
+
visit index_path(:model_name => "fan")
|
229
|
+
should have_selector("th:nth-child(2).header")
|
230
|
+
should have_selector("th:nth-child(3).header")
|
231
|
+
should have_no_selector("th:nth-child(4).header")
|
232
|
+
should have_no_selector("th:nth-child(5).header")
|
233
|
+
end
|
234
|
+
|
235
|
+
it "has option to disable sortability by type globally" do
|
236
|
+
RailsAdmin.config Fan do
|
237
|
+
list do
|
238
|
+
fields_of_type :datetime do
|
239
|
+
sortable false
|
240
|
+
end
|
241
|
+
field PK_COLUMN
|
242
|
+
field :name
|
243
|
+
field :created_at
|
244
|
+
field :updated_at
|
245
|
+
end
|
246
|
+
end
|
247
|
+
visit index_path(:model_name => "fan")
|
248
|
+
should have_selector("th:nth-child(2).header")
|
249
|
+
should have_selector("th:nth-child(3).header")
|
250
|
+
should have_no_selector("th:nth-child(4).header")
|
251
|
+
should have_no_selector("th:nth-child(5).header")
|
252
|
+
end
|
253
|
+
|
254
|
+
it "has option to hide fields by type" do
|
255
|
+
RailsAdmin.config Fan do
|
256
|
+
list do
|
257
|
+
fields_of_type :datetime do
|
258
|
+
hide
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
visit index_path(:model_name => "fan")
|
263
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
264
|
+
to match_array ["Id", "His Name", "Teams"]
|
265
|
+
end
|
266
|
+
|
267
|
+
it "has option to hide fields by type globally" do
|
268
|
+
RailsAdmin.config Fan do
|
269
|
+
list do
|
270
|
+
fields_of_type :datetime do
|
271
|
+
hide
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
visit index_path(:model_name => "fan")
|
276
|
+
expect(all("th").map(&:text).delete_if{|t| /^\n*$/ =~ t }).
|
277
|
+
to match_array ["Id", "His Name", "Teams"]
|
278
|
+
end
|
279
|
+
|
280
|
+
it "has option to customize column width" do
|
281
|
+
RailsAdmin.config Fan do
|
282
|
+
list do
|
283
|
+
field PK_COLUMN do
|
284
|
+
column_width 200
|
285
|
+
end
|
286
|
+
field :name
|
287
|
+
field :created_at
|
288
|
+
field :updated_at
|
289
|
+
end
|
290
|
+
end
|
291
|
+
@fans = 2.times.map { FactoryGirl.create :fan }
|
292
|
+
visit index_path(:model_name => "fan")
|
293
|
+
# NOTE: Capybara really doesn't want us to look at invisible text. This test
|
294
|
+
# could break at any moment.
|
295
|
+
expect(find('style').native.text).to include("#list th.#{PK_COLUMN}_field")
|
296
|
+
expect(find('style').native.text).to include("#list td.#{PK_COLUMN}_field")
|
297
|
+
end
|
298
|
+
|
299
|
+
it "has option to customize output formatting" do
|
300
|
+
RailsAdmin.config Fan do
|
301
|
+
list do
|
302
|
+
field PK_COLUMN
|
303
|
+
field :name do
|
304
|
+
formatted_value do
|
305
|
+
value.to_s.upcase
|
306
|
+
end
|
307
|
+
end
|
308
|
+
field :created_at
|
309
|
+
field :updated_at
|
310
|
+
end
|
311
|
+
end
|
312
|
+
@fans = 2.times.map { FactoryGirl.create :fan }
|
313
|
+
visit index_path(:model_name => "fan")
|
314
|
+
expect(find('tbody tr:nth-child(1) td:nth-child(3)')).to have_content(@fans[1].name.upcase)
|
315
|
+
expect(find('tbody tr:nth-child(2) td:nth-child(3)')).to have_content(@fans[0].name.upcase)
|
316
|
+
end
|
317
|
+
|
318
|
+
it "has a simple option to customize output formatting of date fields" do
|
319
|
+
RailsAdmin.config Fan do
|
320
|
+
list do
|
321
|
+
field PK_COLUMN
|
322
|
+
field :name
|
323
|
+
field :created_at do
|
324
|
+
date_format :short
|
325
|
+
end
|
326
|
+
field :updated_at
|
327
|
+
end
|
328
|
+
end
|
329
|
+
@fans = 2.times.map { FactoryGirl.create :fan }
|
330
|
+
visit index_path(:model_name => "fan")
|
331
|
+
should have_selector("tbody tr:nth-child(1) td:nth-child(4)", :text => /\d{2} \w{3} \d{1,2}:\d{1,2}/)
|
332
|
+
end
|
333
|
+
|
334
|
+
it "has option to customize output formatting of date fields" do
|
335
|
+
RailsAdmin.config Fan do
|
336
|
+
list do
|
337
|
+
field PK_COLUMN
|
338
|
+
field :name
|
339
|
+
field :created_at do
|
340
|
+
strftime_format "%Y-%m-%d"
|
341
|
+
end
|
342
|
+
field :updated_at
|
343
|
+
end
|
344
|
+
end
|
345
|
+
@fans = 2.times.map { FactoryGirl.create :fan }
|
346
|
+
visit index_path(:model_name => "fan")
|
347
|
+
should have_selector("tbody tr:nth-child(1) td:nth-child(4)", :text => /\d{4}-\d{2}-\d{2}/)
|
348
|
+
end
|
349
|
+
|
350
|
+
it "allows addition of virtual fields (object methods)" do
|
351
|
+
RailsAdmin.config Team do
|
352
|
+
list do
|
353
|
+
field PK_COLUMN
|
354
|
+
field :name
|
355
|
+
field :player_names_truncated
|
356
|
+
end
|
357
|
+
end
|
358
|
+
@team = FactoryGirl.create :team
|
359
|
+
@players = 2.times.map { FactoryGirl.create :player, :team => @team }
|
360
|
+
visit index_path(:model_name => "team")
|
361
|
+
expect(find('tbody tr:nth-child(1) td:nth-child(4)')).to have_content(@players.collect(&:name).join(", "))
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
# sort_by and sort_reverse options
|
366
|
+
describe "default sorting" do
|
367
|
+
let(:today){ Date.today }
|
368
|
+
let(:players) do
|
369
|
+
[{ :name => "Jackie Robinson", :created_at => today, :team_id => rand(99999), :number => 42 },
|
370
|
+
{ :name => "Deibinson Romero", :created_at => (today - 2.days), :team_id => rand(99999), :number => 13 },
|
371
|
+
{ :name => "Sandy Koufax", :created_at => (today - 1.days), :team_id => rand(99999), :number => 32 }]
|
372
|
+
end
|
373
|
+
let(:leagues) do
|
374
|
+
[{ :name => 'American', :created_at => (today - 1.day) },
|
375
|
+
{ :name => 'Florida State', :created_at => (today - 2.days)},
|
376
|
+
{ :name => 'National', :created_at => today }]
|
377
|
+
end
|
378
|
+
let(:player_names_by_date){ players.sort_by{|p| p[:created_at]}.map{|p| p[:name]} }
|
379
|
+
let(:league_names_by_date){ leagues.sort_by{|l| l[:created_at]}.map{|l| l[:name]} }
|
380
|
+
|
381
|
+
before(:each) { @players = players.map{|h| Player.create(h) }}
|
382
|
+
|
383
|
+
context "should be configurable" do
|
384
|
+
it "per model" do
|
385
|
+
RailsAdmin.config Player do
|
386
|
+
list do
|
387
|
+
sort_by :created_at
|
388
|
+
sort_reverse true
|
389
|
+
field :name
|
390
|
+
end
|
391
|
+
end
|
392
|
+
visit index_path(:model_name => "player")
|
393
|
+
player_names_by_date.reverse.each_with_index do |name, i|
|
394
|
+
expect(find("tbody tr:nth-child(#{i + 1})")).to have_content(name)
|
395
|
+
end
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
it "has reverse direction by default" do
|
400
|
+
RailsAdmin.config Player do
|
401
|
+
list do
|
402
|
+
sort_by :created_at
|
403
|
+
field :name
|
404
|
+
end
|
405
|
+
end
|
406
|
+
visit index_path(:model_name => "player")
|
407
|
+
player_names_by_date.reverse.each_with_index do |name, i|
|
408
|
+
expect(find("tbody tr:nth-child(#{i + 1})")).to have_content(name)
|
409
|
+
end
|
410
|
+
end
|
411
|
+
|
412
|
+
it "allows change default direction" do
|
413
|
+
RailsAdmin.config Player do
|
414
|
+
list do
|
415
|
+
sort_by :created_at
|
416
|
+
sort_reverse false
|
417
|
+
field :name
|
418
|
+
end
|
419
|
+
end
|
420
|
+
visit index_path(:model_name => "player")
|
421
|
+
player_names_by_date.each_with_index do |name, i|
|
422
|
+
expect(find("tbody tr:nth-child(#{i + 1})")).to have_content(name)
|
423
|
+
end
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
describe "embedded model", :mongoid => true do
|
428
|
+
it "does not show link to individual object's page" do
|
429
|
+
RailsAdmin.config FieldTest do
|
430
|
+
list do
|
431
|
+
field :embeds
|
432
|
+
end
|
433
|
+
end
|
434
|
+
@record = FactoryGirl.create :field_test
|
435
|
+
2.times.each{|i| @record.embeds.create :name => "embed #{i}"}
|
436
|
+
visit index_path(:model_name => "field_test")
|
437
|
+
should_not have_link('embed 0')
|
438
|
+
should_not have_link('embed 1')
|
439
|
+
end
|
440
|
+
end
|
441
|
+
end
|
@@ -0,0 +1,331 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "RailsAdmin Config DSL Show Section" do
|
4
|
+
subject { page }
|
5
|
+
let(:team) { FactoryGirl.create :team }
|
6
|
+
|
7
|
+
def do_request
|
8
|
+
# tests were done with compact_show_view being false
|
9
|
+
RailsAdmin.config do |c|
|
10
|
+
c.compact_show_view = false
|
11
|
+
end
|
12
|
+
|
13
|
+
visit show_path(:model_name => "team", :id => team.id)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "JSON show view" do
|
17
|
+
before do
|
18
|
+
@player = FactoryGirl.create :player
|
19
|
+
visit uri
|
20
|
+
end
|
21
|
+
|
22
|
+
let(:uri) { show_path(:model_name => 'player', :id => @player.id, :format => :json) }
|
23
|
+
let(:body) { page.body }
|
24
|
+
|
25
|
+
it "creates a JSON uri" do
|
26
|
+
expect(uri).to eq("/admin/player/#{@player.id}.json")
|
27
|
+
end
|
28
|
+
|
29
|
+
it "contains the JSONified object" do
|
30
|
+
expect(body).to include(@player.to_json)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "compact_show_view" do
|
35
|
+
|
36
|
+
it "hides empty fields in show view by default" do
|
37
|
+
@player = FactoryGirl.create :player
|
38
|
+
visit show_path(:model_name => "league", :id => @player.id)
|
39
|
+
should_not have_css(".born_on_field")
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
it "is disactivable" do
|
44
|
+
RailsAdmin.config do |c|
|
45
|
+
c.compact_show_view = false
|
46
|
+
end
|
47
|
+
|
48
|
+
@player = FactoryGirl.create :player
|
49
|
+
visit show_path(:model_name => "player", :id => @player.id)
|
50
|
+
should have_css(".born_on_field")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "css hooks" do
|
55
|
+
it "is present" do
|
56
|
+
do_request
|
57
|
+
|
58
|
+
should have_selector("dt .name_field.string_type")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "field groupings" do
|
63
|
+
it "is hideable" do
|
64
|
+
RailsAdmin.config Team do
|
65
|
+
show do
|
66
|
+
group :default do
|
67
|
+
hide
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
do_request
|
73
|
+
|
74
|
+
should_not have_selector("h4", :text => "Basic info")
|
75
|
+
|
76
|
+
%w[division name logo_url manager
|
77
|
+
ballpark mascot founded wins
|
78
|
+
losses win_percentage revenue
|
79
|
+
].each do |field|
|
80
|
+
should_not have_selector(".#{field}_field")
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
it "hides association groupings by the name of the association" do
|
85
|
+
RailsAdmin.config Team do
|
86
|
+
show do
|
87
|
+
group :players do
|
88
|
+
hide
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
do_request
|
94
|
+
|
95
|
+
should_not have_selector("h4", :text => "Players")
|
96
|
+
end
|
97
|
+
|
98
|
+
it "is renameable" do
|
99
|
+
RailsAdmin.config Team do
|
100
|
+
show do
|
101
|
+
group :default do
|
102
|
+
label "Renamed group"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
do_request
|
108
|
+
|
109
|
+
should have_selector("h4", :text => "Renamed group")
|
110
|
+
end
|
111
|
+
|
112
|
+
it "has accessor for its fields" do
|
113
|
+
RailsAdmin.config Team do
|
114
|
+
show do
|
115
|
+
group :default do
|
116
|
+
field :name
|
117
|
+
field :logo_url
|
118
|
+
end
|
119
|
+
group :belongs_to_associations do
|
120
|
+
label "Belong's to associations"
|
121
|
+
field :division
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
do_request
|
127
|
+
|
128
|
+
should have_selector("h4", :text => "Basic info")
|
129
|
+
should have_selector("h4", :text => "Belong's to associations")
|
130
|
+
|
131
|
+
should have_selector(".name_field")
|
132
|
+
should have_selector(".logo_url_field")
|
133
|
+
should have_selector(".division_field")
|
134
|
+
end
|
135
|
+
|
136
|
+
it "has accessor for its fields by type" do
|
137
|
+
RailsAdmin.config Team do
|
138
|
+
show do
|
139
|
+
group :default do
|
140
|
+
field :name
|
141
|
+
field :logo_url
|
142
|
+
end
|
143
|
+
group :other do
|
144
|
+
field :division
|
145
|
+
field :manager
|
146
|
+
field :ballpark
|
147
|
+
fields_of_type :string do
|
148
|
+
label { "#{label} (STRING)" }
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
do_request
|
155
|
+
|
156
|
+
should have_selector(".label", :text => "Name")
|
157
|
+
should have_selector(".label", :text => "Logo url")
|
158
|
+
should have_selector(".label", :text => "Division")
|
159
|
+
should have_selector(".label", :text => "Manager (STRING)")
|
160
|
+
should have_selector(".label", :text => "Ballpark (STRING)")
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
describe "items' fields" do
|
165
|
+
|
166
|
+
it "shows all by default" do
|
167
|
+
do_request
|
168
|
+
|
169
|
+
%w[division name logo_url manager
|
170
|
+
ballpark mascot founded wins
|
171
|
+
losses win_percentage revenue players fans
|
172
|
+
].each do |field|
|
173
|
+
should have_selector(".#{field}_field")
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
it "only shows the defined fields and appear in order defined" do
|
178
|
+
RailsAdmin.config Team do
|
179
|
+
show do
|
180
|
+
field :manager
|
181
|
+
field :division
|
182
|
+
field :name
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
do_request
|
187
|
+
|
188
|
+
should have_selector(".manager_field")
|
189
|
+
should have_selector(".division_field")
|
190
|
+
should have_selector(".name_field")
|
191
|
+
end
|
192
|
+
|
193
|
+
|
194
|
+
it "delegates the label option to the ActiveModel API" do
|
195
|
+
RailsAdmin.config Team do
|
196
|
+
show do
|
197
|
+
field :manager
|
198
|
+
field :fans
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
do_request
|
203
|
+
|
204
|
+
should have_selector(".label", :text => "Team Manager")
|
205
|
+
should have_selector(".label", :text => "Some Fans")
|
206
|
+
end
|
207
|
+
|
208
|
+
it "is renameable" do
|
209
|
+
RailsAdmin.config Team do
|
210
|
+
show do
|
211
|
+
field :manager do
|
212
|
+
label "Renamed field"
|
213
|
+
end
|
214
|
+
field :division
|
215
|
+
field :name
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
do_request
|
220
|
+
|
221
|
+
should have_selector(".label", :text => "Renamed field")
|
222
|
+
should have_selector(".label", :text => "Division")
|
223
|
+
should have_selector(".label", :text => "Name")
|
224
|
+
end
|
225
|
+
|
226
|
+
it "is renameable by type" do
|
227
|
+
RailsAdmin.config Team do
|
228
|
+
show do
|
229
|
+
fields_of_type :string do
|
230
|
+
label { "#{label} (STRING)" }
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
do_request
|
236
|
+
|
237
|
+
["Division", "Name (STRING)", "Logo url (STRING)", "Manager (STRING)",
|
238
|
+
"Ballpark (STRING)", "Mascot (STRING)", "Founded", "Wins", "Losses",
|
239
|
+
"Win percentage", "Revenue", "Players", "Fans"
|
240
|
+
].each do |text|
|
241
|
+
should have_selector(".label", :text => text)
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
it "is globally renameable by type" do
|
246
|
+
RailsAdmin.config Team do
|
247
|
+
show do
|
248
|
+
fields_of_type :string do
|
249
|
+
label { "#{label} (STRING)" }
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
do_request
|
255
|
+
|
256
|
+
["Division", "Name (STRING)", "Logo url (STRING)", "Manager (STRING)",
|
257
|
+
"Ballpark (STRING)", "Mascot (STRING)", "Founded", "Wins", "Losses",
|
258
|
+
"Win percentage", "Revenue", "Players", "Fans"
|
259
|
+
].each do |text|
|
260
|
+
should have_selector(".label", :text => text)
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
it "is hideable" do
|
265
|
+
RailsAdmin.config Team do
|
266
|
+
show do
|
267
|
+
field :manager do
|
268
|
+
hide
|
269
|
+
end
|
270
|
+
field :division
|
271
|
+
field :name
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
do_request
|
276
|
+
|
277
|
+
should have_selector(".division_field")
|
278
|
+
should have_selector(".name_field")
|
279
|
+
end
|
280
|
+
|
281
|
+
it "is hideable by type" do
|
282
|
+
RailsAdmin.config Team do
|
283
|
+
show do
|
284
|
+
fields_of_type :string do
|
285
|
+
hide
|
286
|
+
end
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
do_request
|
291
|
+
|
292
|
+
%w[Name Logo\ url Manager Ballpark Mascot].each do |text|
|
293
|
+
should_not have_selector(".label", :text => text)
|
294
|
+
end
|
295
|
+
|
296
|
+
%w[Division Founded Wins Losses Win\ percentage Revenue Players Fans].each do |text|
|
297
|
+
should have_selector(".label", :text => text)
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
it "is globally hideable by type" do
|
302
|
+
RailsAdmin.config Team do
|
303
|
+
show do
|
304
|
+
fields_of_type :string do
|
305
|
+
hide
|
306
|
+
end
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
do_request
|
311
|
+
|
312
|
+
%w[Name Logo\ url Manager Ballpark Mascot].each do |text|
|
313
|
+
should_not have_selector(".label", :text => text)
|
314
|
+
end
|
315
|
+
|
316
|
+
%w[Division Founded Wins Losses Win\ percentage Revenue Players Fans].each do |text|
|
317
|
+
should have_selector(".label", :text => text)
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
322
|
+
describe "embedded model", :mongoid => true do
|
323
|
+
it "does not show link to individual object's page" do
|
324
|
+
@record = FactoryGirl.create :field_test
|
325
|
+
2.times.each{|i| @record.embeds.create :name => "embed #{i}"}
|
326
|
+
visit show_path(:model_name => "field_test", :id => @record.id)
|
327
|
+
should_not have_link('embed 0')
|
328
|
+
should_not have_link('embed 1')
|
329
|
+
end
|
330
|
+
end
|
331
|
+
end
|