rails_admin-lbgraham 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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,36 @@
|
|
1
|
+
require 'builder'
|
2
|
+
|
3
|
+
module RailsAdmin
|
4
|
+
module MainHelper
|
5
|
+
def rails_admin_form_for(*args, &block)
|
6
|
+
options = args.extract_options!.reverse_merge(:builder => RailsAdmin::FormBuilder)
|
7
|
+
form_for(*(args << options), &block) << after_nested_form_callbacks
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_indicator(percent)
|
11
|
+
return "" if percent < 0 # none
|
12
|
+
return "info" if percent < 34 # < 1/100 of max
|
13
|
+
return "success" if percent < 67 # < 1/10 of max
|
14
|
+
return "warning" if percent < 84 # < 1/3 of max
|
15
|
+
return "danger" # > 1/3 of max
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_column_sets(properties)
|
19
|
+
sets = []
|
20
|
+
property_index = 0
|
21
|
+
set_index = 0
|
22
|
+
|
23
|
+
while (property_index < properties.length)
|
24
|
+
current_set_width = 0
|
25
|
+
begin
|
26
|
+
sets[set_index] ||= []
|
27
|
+
sets[set_index] << properties[property_index]
|
28
|
+
current_set_width += (properties[property_index].column_width || 120)
|
29
|
+
property_index += 1
|
30
|
+
end while (current_set_width < RailsAdmin::Config.total_columns_width) && (property_index < properties.length)
|
31
|
+
set_index += 1
|
32
|
+
end
|
33
|
+
sets
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
%ul.nav.pull-right
|
2
|
+
- actions(:root).each do |action|
|
3
|
+
%li= link_to wording_for(:menu, action), { :action => action.action_name, :controller => 'rails_admin/main' }, :class => 'pjax'
|
4
|
+
- if main_app_root_path = (main_app.root_path rescue false)
|
5
|
+
%li= link_to t('admin.home.name').capitalize, main_app_root_path
|
6
|
+
- if _current_user
|
7
|
+
- if user_link = edit_user_link
|
8
|
+
%li= user_link
|
9
|
+
- if logout_path.present?
|
10
|
+
%li= link_to content_tag('span', t('admin.misc.log_out'), :class => 'label label-important'), logout_path, :method => Devise.sign_out_via
|
11
|
+
- if _current_user.respond_to?(:email) && _current_user.email.present?
|
12
|
+
%li= image_tag "#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", :style => 'padding-top:5px'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"}
|
5
|
+
%meta{:content => "NONE,NOARCHIVE", :name => "robots"}
|
6
|
+
= csrf_meta_tag
|
7
|
+
= stylesheet_link_tag "rails_admin/rails_admin.css", :media => :all
|
8
|
+
= javascript_include_tag "rails_admin/rails_admin.js"
|
9
|
+
%body.rails_admin
|
10
|
+
#loading.label.label-warning{:style => 'display:none; position:fixed; right:20px; bottom:20px; z-index:100000'} Loading...
|
11
|
+
.navbar.navbar-fixed-top
|
12
|
+
.navbar-inner
|
13
|
+
.container-fluid
|
14
|
+
%a.brand.pjax{:href => dashboard_path}
|
15
|
+
= _get_plugin_name[0] || 'Rails'
|
16
|
+
%small= _get_plugin_name[1] || 'Admin'
|
17
|
+
.nav-collapse
|
18
|
+
= render :partial => 'layouts/rails_admin/secondary_navigation'
|
19
|
+
.container-fluid
|
20
|
+
.row-fluid
|
21
|
+
.span3
|
22
|
+
.well.sidebar-nav
|
23
|
+
%ul.nav.nav-list= main_navigation
|
24
|
+
%ul.nav.nav-list= static_navigation
|
25
|
+
.span9
|
26
|
+
.row-fluid
|
27
|
+
.content{:'data-pjax-container' => true}= render :template => 'layouts/rails_admin/pjax'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
:javascript
|
2
|
+
$('.nav.nav-list li.active').removeClass('active');
|
3
|
+
$('.nav.nav-list li[data-model="#{@abstract_model.to_param}"]').addClass('active');
|
4
|
+
|
5
|
+
%title= "#{@abstract_model.try(:pretty_name) || @page_name} | #{[_get_plugin_name[0] || 'Rails', _get_plugin_name[1] || 'Admin'].join(' ')}"
|
6
|
+
.page-header
|
7
|
+
%h1= @page_name
|
8
|
+
- flash && flash.each do |key, value|
|
9
|
+
.alert{:class => "alert-#{key}"}
|
10
|
+
%a.close{:href => '#', :'data-dismiss' => "alert"}×
|
11
|
+
= value
|
12
|
+
= breadcrumb
|
13
|
+
%ul.nav.nav-tabs
|
14
|
+
= menu_for((@abstract_model ? (@object.try(:persisted?) ? :member : :collection) : :root), @abstract_model, @object)
|
15
|
+
= content_for :contextual_tabs
|
16
|
+
= yield
|
@@ -0,0 +1,20 @@
|
|
1
|
+
%table.table.table-condensed.table-striped
|
2
|
+
%thead
|
3
|
+
%tr
|
4
|
+
%th.shrink.user= t("admin.table_headers.username")
|
5
|
+
%th.shrink.items= t("admin.table_headers.items")
|
6
|
+
%th.changes= t("admin.table_headers.changes")
|
7
|
+
%tbody
|
8
|
+
- @history.each do |t|
|
9
|
+
- abstract_model = RailsAdmin.config(t.table).try(:abstract_model)
|
10
|
+
%tr
|
11
|
+
%td= t.try :username
|
12
|
+
- if o = abstract_model.try(:get, t.item)
|
13
|
+
- label = o.send(abstract_model.config.object_label_method)
|
14
|
+
- if show_action = action(:show, abstract_model, o)
|
15
|
+
%td= link_to(label, url_for(:action => show_action.action_name, :model_name => abstract_model.to_param, :id => o.id), :class => 'pjax')
|
16
|
+
- else
|
17
|
+
%td= label
|
18
|
+
- else
|
19
|
+
%td= "#{t.table} ##{t.item}"
|
20
|
+
%td= t.message.in?('delete', 'new') ? t("admin.actions.#{t.message}.done").capitalize : t.message
|
@@ -0,0 +1,19 @@
|
|
1
|
+
- object = delete_notice
|
2
|
+
|
3
|
+
%li{:style => 'display:block; margin-top:10px'}
|
4
|
+
%span.label= @abstract_model.pretty_name
|
5
|
+
- wording = object.send(@model_config.object_label_method)
|
6
|
+
- if show_action = action(:show, @abstract_model, object)
|
7
|
+
= link_to(wording, url_for(:action => show_action.action_name, :model_name => @abstract_model.to_param, :id => object.id), :class => 'pjax')
|
8
|
+
- else
|
9
|
+
= wording
|
10
|
+
%ul
|
11
|
+
- @abstract_model.each_associated_children(object) do |association, child|
|
12
|
+
%li
|
13
|
+
- child_config = RailsAdmin.config(child)
|
14
|
+
= @abstract_model.model.human_attribute_name association[:name]
|
15
|
+
- wording = child.send(child_config.object_label_method)
|
16
|
+
- if child.id && (show_action = action(:show, child_config.abstract_model, child))
|
17
|
+
= link_to(wording, url_for(:action => show_action.action_name, :model_name => child_config.abstract_model.to_param, :id => child.id), :class => 'pjax')
|
18
|
+
- else
|
19
|
+
= wording
|
@@ -0,0 +1 @@
|
|
1
|
+
= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({:style => "background-color: #{field.color}", :data => {:color => true}}).reverse_merge((hdv = field.html_default_value).nil? ? {} : { :value => hdv })
|
@@ -0,0 +1 @@
|
|
1
|
+
= form.send field.view_helper, field.method_name, field.html_attributes.merge({:value => (field.value.present? ? field.value : field.html_default_value)}).reverse_merge({ :data => { :datetimepicker => true, :options => field.js_plugin_options.to_json } })
|
@@ -0,0 +1,18 @@
|
|
1
|
+
- unless field.multiple?
|
2
|
+
= form.select field.method_name, field.enum, { :include_blank => true }.reverse_merge((hdv = field.html_default_value).nil? ? {} : { :selected => hdv }), field.html_attributes.reverse_merge({ :data => { :enumeration => true }, :placeholder => t('admin.misc.search') })
|
3
|
+
- else
|
4
|
+
:ruby
|
5
|
+
js_data = {
|
6
|
+
:xhr => false,
|
7
|
+
:sortable => false,
|
8
|
+
:cacheAll => true,
|
9
|
+
:regional => {
|
10
|
+
:chooseAll => t("admin.misc.chose_all"),
|
11
|
+
:chosen => t("admin.misc.chosen", :name => config.label_plural),
|
12
|
+
:clearAll => t("admin.misc.clear_all"),
|
13
|
+
:search => t("admin.misc.search"),
|
14
|
+
:up => t("admin.misc.up"),
|
15
|
+
:down => t("admin.misc.down")
|
16
|
+
}
|
17
|
+
}
|
18
|
+
= form.select field.method_name, field.enum, { :selected => field.value, :object => form.object }, field.html_attributes.reverse_merge({:data => { :filteringmultiselect => true, :options => js_data.to_json }, :multiple => true})
|
@@ -0,0 +1 @@
|
|
1
|
+
= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge((hdv = field.html_default_value).nil? ? {} : { :value => hdv, :checked => hdv })
|
@@ -0,0 +1,13 @@
|
|
1
|
+
- file = form.object.send(field.method_name).presence
|
2
|
+
|
3
|
+
.toggle{:style => ('display:none;' if file && field.delete_method && form.object.send(field.delete_method) == '1')}
|
4
|
+
- if value = field.pretty_value
|
5
|
+
= value
|
6
|
+
= form.file_field(field.name, field.html_attributes.reverse_merge({ :data => { :fileupload => true }}))
|
7
|
+
- if field.optional? && field.errors.blank? && file && field.delete_method
|
8
|
+
%a.btn.btn-info{:href => '#', :'data-toggle' => 'button', :onclick => "$(this).siblings('[type=checkbox]').click(); $(this).siblings('.toggle').toggle('slow'); jQuery(this).toggleClass('btn-danger btn-info'); return false"}
|
9
|
+
%i.icon-white.icon-trash
|
10
|
+
= I18n.t('admin.actions.delete.menu').capitalize + " #{field.label.downcase}"
|
11
|
+
= form.check_box(field.delete_method, :style => 'display:none;' )
|
12
|
+
- if field.cache_method
|
13
|
+
= form.hidden_field(field.cache_method)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
:ruby
|
2
|
+
related_id = params[:associations] && params[:associations][field.name.to_s]
|
3
|
+
config = field.associated_model_config
|
4
|
+
source_abstract_model = RailsAdmin.config(form.object.class).abstract_model
|
5
|
+
|
6
|
+
if form.object.new_record? && related_id.present? && related_id != 'new'
|
7
|
+
selected = [config.abstract_model.get(related_id)]
|
8
|
+
else
|
9
|
+
selected = form.object.send(field.name)
|
10
|
+
end
|
11
|
+
selected_ids = selected.map{|s| s.send(field.associated_primary_key)}
|
12
|
+
|
13
|
+
current_action = params[:action].in?(['create', 'new']) ? 'create' : 'update'
|
14
|
+
|
15
|
+
xhr = !field.associated_collection_cache_all
|
16
|
+
|
17
|
+
collection = if xhr
|
18
|
+
selected.map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] }
|
19
|
+
else
|
20
|
+
i = 0
|
21
|
+
controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] }.sort_by {|a| [selected_ids.index(a[1]) || selected_ids.size, i+=1] }
|
22
|
+
end
|
23
|
+
|
24
|
+
js_data = {
|
25
|
+
:xhr => xhr,
|
26
|
+
:'edit-url' => (authorized?(:edit, config.abstract_model) ? edit_path(:model_name => config.abstract_model.to_param, :id => '__ID__') : ''),
|
27
|
+
:remote_source => index_path(config.abstract_model, :source_object_id => form.object.id, :source_abstract_model => source_abstract_model.to_param, :associated_collection => field.name, :current_action => current_action, :compact => true),
|
28
|
+
:sortable => !!field.orderable,
|
29
|
+
:cacheAll => !!field.associated_collection_cache_all,
|
30
|
+
:regional => {
|
31
|
+
:chooseAll => t("admin.misc.chose_all"),
|
32
|
+
:chosen => t("admin.misc.chosen", :name => config.label_plural),
|
33
|
+
:clearAll => t("admin.misc.clear_all"),
|
34
|
+
:search => t("admin.misc.search"),
|
35
|
+
:up => t("admin.misc.up"),
|
36
|
+
:down => t("admin.misc.down")
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
%input{:name => form.dom_name(field), :type => "hidden", :value => ""}
|
41
|
+
|
42
|
+
- selected_ids = (hdv = field.html_default_value).nil? ? selected_ids : hdv
|
43
|
+
= form.select field.method_name, collection, { :selected => selected_ids, :object => form.object }, field.html_attributes.reverse_merge({:data => { :filteringmultiselect => true, :options => js_data.to_json }, :multiple => true})
|
44
|
+
- if authorized? :new, config.abstract_model
|
45
|
+
- path_hash = { :model_name => config.abstract_model.to_param, :modal => true }
|
46
|
+
- path_hash.merge!({ :associations => { field.inverse_of => (form.object.persisted? ? form.object.id : 'new') } }) if field.inverse_of
|
47
|
+
= link_to "<i class=\"icon-plus icon-white\"></i> ".html_safe + wording_for(:link, :new, config.abstract_model), '#', :data => { :link => new_path(path_hash) }, :class => "create btn btn-info", :style => 'margin-left:10px'
|
@@ -0,0 +1,37 @@
|
|
1
|
+
:ruby
|
2
|
+
config = field.associated_model_config
|
3
|
+
related_id = params[:associations] && params[:associations][field.name.to_s]
|
4
|
+
source_abstract_model = RailsAdmin.config(form.object.class).abstract_model
|
5
|
+
|
6
|
+
if form.object.new_record? && related_id.present? && related_id != 'new'
|
7
|
+
selected = config.abstract_model.get(related_id)
|
8
|
+
selected_id = selected.send(field.associated_primary_key)
|
9
|
+
selected_name = selected.send(field.associated_object_label_method)
|
10
|
+
else
|
11
|
+
selected_id = field.selected_id
|
12
|
+
selected_name = field.formatted_value
|
13
|
+
end
|
14
|
+
|
15
|
+
current_action = params[:action].in?(['create', 'new']) ? 'create' : 'update'
|
16
|
+
|
17
|
+
edit_url = authorized?(:edit, config.abstract_model) ? edit_path(:model_name => config.abstract_model.to_param, :modal => true, :id => '__ID__') : ''
|
18
|
+
|
19
|
+
xhr = !field.associated_collection_cache_all
|
20
|
+
|
21
|
+
collection = xhr ? [[selected_name, selected_id]] : controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] }
|
22
|
+
|
23
|
+
js_data = {
|
24
|
+
:xhr => xhr,
|
25
|
+
:remote_source => index_path(config.abstract_model.to_param, :source_object_id => form.object.id, :source_abstract_model => source_abstract_model.to_param, :associated_collection => field.name, :current_action => current_action, :compact => true)
|
26
|
+
}
|
27
|
+
|
28
|
+
- selected_id = (hdv = field.html_default_value).nil? ? selected_id : hdv
|
29
|
+
= form.select field.method_name, collection, { :selected => selected_id, :include_blank => true }, field.html_attributes.reverse_merge({ :data => { :filteringselect => true, :options => js_data.to_json }, :placeholder => t('admin.misc.search') })
|
30
|
+
|
31
|
+
- if authorized? :new, config.abstract_model
|
32
|
+
- path_hash = { :model_name => config.abstract_model.to_param, :modal => true }
|
33
|
+
- path_hash.merge!({ :associations => { field.inverse_of => (form.object.persisted? ? form.object.id : 'new') } }) if field.inverse_of
|
34
|
+
= link_to "<i class=\"icon-plus icon-white\"></i> ".html_safe + wording_for(:link, :new, config.abstract_model), '#', :data => { :link => new_path(path_hash) }, :class => "btn btn-info create", :style => 'margin-left:10px'
|
35
|
+
|
36
|
+
- if edit_url.present?
|
37
|
+
= link_to "<i class=\"icon-pencil icon-white\"></i> ".html_safe + wording_for(:link, :edit, config.abstract_model), '#', :data => { :link => edit_url }, :class => "btn btn-info update #{field.value.nil? && 'disabled'}", :style => 'margin-left:10px'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.controls{:data => { :nestedmany => true }}
|
2
|
+
.btn-group
|
3
|
+
%a.btn.btn-info.toggler{:'data-toggle' => "button", :'data-target' => "#{form.jquery_namespace(field)} > .tab-content, #{form.jquery_namespace(field)} > .controls > .nav", :class => (field.active? ? 'active' : '')}
|
4
|
+
%i.icon-white
|
5
|
+
- unless field.nested_form[:update_only]
|
6
|
+
= form.link_to_add "<i class=\"icon-plus icon-white\"></i> #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".html_safe, field.name, { :class => 'btn btn-info' }
|
7
|
+
= form.errors_for(field)
|
8
|
+
= form.help_for(field)
|
9
|
+
%ul.nav.nav-tabs{ :style => 'margin-top:5px' }
|
10
|
+
.tab-content
|
11
|
+
= form.fields_for field.name do |nested_form|
|
12
|
+
- if field.nested_form[:allow_destroy] || nested_form.options[:child_index] == "new_#{field.name}"
|
13
|
+
= nested_form.link_to_remove '<span class="btn btn-small btn-danger"><i class="icon-trash icon-white"></i></span>'.html_safe
|
14
|
+
= nested_form.generate({:action => :nested, :model_config => field.associated_model_config, :nested_in => field.name })
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.controls{:data => { :nestedone => true }}
|
2
|
+
%ul.nav{:style => 'margin-bottom:0px; display:none'}
|
3
|
+
%a.btn.btn-info.toggler{:'data-toggle' => "button", :'data-target' => "#{form.jquery_namespace(field)} > .tab-content", :class => (field.active? ? 'active' : '') }
|
4
|
+
= form.errors_for(field)
|
5
|
+
= form.help_for(field)
|
6
|
+
|
7
|
+
- form.object.send("build_#{field.name}") unless form.object.send(field.name)
|
8
|
+
.tab-content
|
9
|
+
= form.fields_for field.name do |nested_form|
|
10
|
+
= nested_form.generate({:action => :nested, :model_config => field.associated_model_config, :nested_in => field.name })
|
@@ -0,0 +1,10 @@
|
|
1
|
+
:ruby
|
2
|
+
type_collection = field.polymorphic_type_collection
|
3
|
+
type_column = field.association[:foreign_type].to_s
|
4
|
+
selected_type = field.bindings[:object].send(type_column)
|
5
|
+
collection = field.associated_collection(selected_type)
|
6
|
+
selected = field.bindings[:object].send(field.association[:name])
|
7
|
+
column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, type_column)
|
8
|
+
|
9
|
+
= form.select type_column, type_collection, {:include_blank => true, :selected => selected_type}, :id => column_type_dom_id, :data => { :polymorphic => true, :urls => field.polymorphic_type_urls.to_json }
|
10
|
+
= form.select field.method_name, collection, {:include_blank => true, :selected => selected.try(:id)}, :style => "margin-left:10px;"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
:ruby
|
2
|
+
if field.ckeditor
|
3
|
+
richtext = 'ckeditor'
|
4
|
+
js_data = {
|
5
|
+
:jspath => field.ckeditor_location ? field.ckeditor_location : field.ckeditor_base_location + "ckeditor.js",
|
6
|
+
:base_location => field.ckeditor_base_location,
|
7
|
+
:options => {
|
8
|
+
:customConfig => field.ckeditor_config_js ? field.ckeditor_config_js : field.ckeditor_base_location + "config.js"
|
9
|
+
}
|
10
|
+
}
|
11
|
+
elsif field.codemirror
|
12
|
+
richtext = 'codemirror'
|
13
|
+
js_data = {
|
14
|
+
:csspath => field.codemirror_css_location,
|
15
|
+
:jspath => field.codemirror_js_location,
|
16
|
+
:options => field.codemirror_config,
|
17
|
+
:locations => field.codemirror_assets
|
18
|
+
}
|
19
|
+
elsif field.bootstrap_wysihtml5
|
20
|
+
richtext = 'bootstrap-wysihtml5'
|
21
|
+
js_data = {
|
22
|
+
:csspath => field.bootstrap_wysihtml5_css_location,
|
23
|
+
:jspath => field.bootstrap_wysihtml5_js_location,
|
24
|
+
:config_options => field.bootstrap_wysihtml5_config_options.to_json
|
25
|
+
}
|
26
|
+
else
|
27
|
+
richtext = false
|
28
|
+
js_data = {}
|
29
|
+
end
|
30
|
+
|
31
|
+
= form.text_area field.method_name, field.html_attributes.reverse_merge(:data => { :richtext => richtext, :options => js_data.to_json }).reverse_merge((hdv = field.html_default_value).nil? ? { :value => field.formatted_value } : { :value => hdv })
|
@@ -0,0 +1,15 @@
|
|
1
|
+
%input{:type => :hidden, :name => 'return_to', :value => (params[:return_to].presence || request.referer)}
|
2
|
+
.form-actions
|
3
|
+
%button.btn.btn-primary{:type => "submit", :name => "_save", :'data-disable-with' => t("admin.form.save")}
|
4
|
+
%i.icon-white.icon-ok
|
5
|
+
= t("admin.form.save")
|
6
|
+
%span.extra_buttons
|
7
|
+
- if authorized? :new, @abstract_model
|
8
|
+
%button.btn.btn-info{:type => "submit", :name => "_add_another", :'data-disable-with' => t("admin.form.save_and_add_another")}
|
9
|
+
= t("admin.form.save_and_add_another")
|
10
|
+
- if authorized? :edit, @abstract_model
|
11
|
+
%button.btn.btn-info{:type => "submit", :name => "_add_edit", :'data-disable-with' => t("admin.form.save_and_edit")}
|
12
|
+
= t("admin.form.save_and_edit")
|
13
|
+
%button.btn{:type => "submit", :name => "_continue", :'data-disable-with' => t("admin.form.cancel")}
|
14
|
+
%i.icon-remove
|
15
|
+
= t("admin.form.cancel")
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%h4= I18n.t('admin.form.bulk_delete')
|
2
|
+
%ul= render :partial => "delete_notice", :collection => @objects
|
3
|
+
= form_tag bulk_delete_path(:model_name => @abstract_model.to_param, :bulk_ids => @objects.map(&:id)), :method => :delete do
|
4
|
+
.form-actions
|
5
|
+
%input{:type => :hidden, :name => 'return_to', :value => (params[:return_to].presence || request.referer)}
|
6
|
+
%button.btn.btn-danger{:type => "submit", :'data-disable-with' => t("admin.form.confirmation")}
|
7
|
+
%i.icon-white.icon-ok
|
8
|
+
= t("admin.form.confirmation")
|
9
|
+
%button.btn{:type => "submit", :name => "_continue", :'data-disable-with' => t("admin.form.cancel")}
|
10
|
+
%i.icon-remove
|
11
|
+
= t("admin.form.cancel")
|
@@ -0,0 +1,35 @@
|
|
1
|
+
- if @abstract_models
|
2
|
+
%table.table.table-condensed.table-striped
|
3
|
+
%thead
|
4
|
+
%tr
|
5
|
+
%th.shrink.model-name= t "admin.table_headers.model_name"
|
6
|
+
%th.shrink.last-used= t "admin.table_headers.last_used"
|
7
|
+
%th.records= t "admin.table_headers.records"
|
8
|
+
%th.shrink.controls
|
9
|
+
%tbody
|
10
|
+
- @abstract_models.each do |abstract_model|
|
11
|
+
- if authorized? :index, abstract_model
|
12
|
+
- index_path = index_path(:model_name => abstract_model.to_param)
|
13
|
+
- row_class = "#{cycle("odd", "even")}#{" link" if index_path}"
|
14
|
+
%tr{:class => row_class, :"data-link" => index_path}
|
15
|
+
- last_used = @most_recent_changes[abstract_model.pretty_name]
|
16
|
+
- active = last_used.try(:today?)
|
17
|
+
%td
|
18
|
+
%span.show= link_to abstract_model.config.label_plural, index_path, :class => 'pjax'
|
19
|
+
%td
|
20
|
+
- if last_used
|
21
|
+
= time_ago_in_words last_used
|
22
|
+
= t "admin.misc.ago"
|
23
|
+
%td
|
24
|
+
- count = @count[abstract_model.pretty_name]
|
25
|
+
- percent = count > 0 ? (@max <= 1 ? count : ((Math.log(count) * 100.0) / Math.log(@max)).to_i + 1) : -1
|
26
|
+
.progress{:style => "margin-bottom:0px", :class => "progress-#{get_indicator(percent)} #{active && 'active progress-striped'}" }
|
27
|
+
.bar.animate-width-to{:'data-animate-length' => ([1.0, percent].max.to_i * 20), :'data-animate-width-to' => "#{[2.0, percent].max.to_i}%", :style => "width:2%"}
|
28
|
+
= @count[abstract_model.pretty_name]
|
29
|
+
%td.links
|
30
|
+
%ul.inline= menu_for :collection, abstract_model, nil, true
|
31
|
+
- if @auditing_adapter && authorized?(:history)
|
32
|
+
#block-tables.block
|
33
|
+
.content
|
34
|
+
%h2= t("admin.actions.history_index.menu")
|
35
|
+
= render :partial => 'rails_admin/main/dashboard_history'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
%h4
|
2
|
+
= t("admin.form.are_you_sure_you_want_to_delete_the_object", :model_name => @abstract_model.pretty_name.downcase)
|
3
|
+
“
|
4
|
+
%strong>= @model_config.with(:object => @object).object_label
|
5
|
+
\”
|
6
|
+
%span>
|
7
|
+
= t("admin.form.all_of_the_following_related_items_will_be_deleted")
|
8
|
+
|
9
|
+
%ul= render :partial => "delete_notice", :object => @object
|
10
|
+
= form_for(@object, :url => delete_path(:model_name => @abstract_model.to_param, :id => @object.id), :html => {:method => "delete"}) do
|
11
|
+
%input{:type => :hidden, :name => 'return_to', :value => (params[:return_to].presence || request.referer)}
|
12
|
+
.form-actions
|
13
|
+
%button.btn.btn-danger{:type => "submit", :'data-disable-with' => t("admin.form.confirmation")}
|
14
|
+
%i.icon-white.icon-ok
|
15
|
+
= t("admin.form.confirmation")
|
16
|
+
%button.btn{:type => "submit", :name => "_continue", :'data-disable-with' => t("admin.form.cancel")}
|
17
|
+
%i.icon-remove
|
18
|
+
= t("admin.form.cancel")
|