drewda_rails_admin 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. data/Gemfile +53 -0
  2. data/LICENSE.md +20 -0
  3. data/README.md +160 -0
  4. data/Rakefile +19 -0
  5. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  6. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  7. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  8. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  9. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  10. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  11. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  12. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  13. data/app/assets/images/rails_admin/calendar.png +0 -0
  14. data/app/assets/images/rails_admin/clock.png +0 -0
  15. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  16. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  17. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  18. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  19. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  20. data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  21. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  22. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  23. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  24. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  25. data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  26. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  27. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  28. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  29. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  30. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  31. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  32. data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  33. data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  34. data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  35. data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  36. data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  37. data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
  38. data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
  39. data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
  40. data/app/assets/images/rails_admin/logo.png +0 -0
  41. data/app/assets/images/rails_admin/magnifier.png +0 -0
  42. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  43. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  44. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  45. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  46. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  47. data/app/assets/javascripts/rails_admin/custom/ui.js +12 -0
  48. data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +484 -0
  49. data/app/assets/javascripts/rails_admin/jquery.pjax.js +431 -0
  50. data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +1371 -0
  51. data/app/assets/javascripts/rails_admin/ra.datetimepicker.js +67 -0
  52. data/app/assets/javascripts/rails_admin/ra.filter-box.js +129 -0
  53. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +280 -0
  54. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +181 -0
  55. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +40 -0
  56. data/app/assets/javascripts/rails_admin/ra.remote-form.js +150 -0
  57. data/app/assets/javascripts/rails_admin/rails_admin.js.erb +25 -0
  58. data/app/assets/javascripts/rails_admin/themes/default/ui.js +12 -0
  59. data/app/assets/javascripts/rails_admin/ui.js.coffee +61 -0
  60. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  61. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  62. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  63. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  64. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  65. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  66. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.css.scss +733 -0
  67. data/app/assets/stylesheets/rails_admin/base/README +2 -0
  68. data/app/assets/stylesheets/rails_admin/base/mixins.css.scss +1 -0
  69. data/app/assets/stylesheets/rails_admin/base/theming.css.scss +263 -0
  70. data/app/assets/stylesheets/rails_admin/base/variables.css.scss +1 -0
  71. data/app/assets/stylesheets/rails_admin/custom/mixins.css.scss +12 -0
  72. data/app/assets/stylesheets/rails_admin/custom/theming.css.scss +13 -0
  73. data/app/assets/stylesheets/rails_admin/custom/variables.css.scss +15 -0
  74. data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +76 -0
  75. data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +180 -0
  76. data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.css.scss +69 -0
  77. data/app/assets/stylesheets/rails_admin/ra.calendar-additions.css.scss +25 -0
  78. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.css.scss +85 -0
  79. data/app/assets/stylesheets/rails_admin/rails_admin.css +4 -0
  80. data/app/assets/stylesheets/rails_admin/themes/default/mixins.css.scss +8 -0
  81. data/app/assets/stylesheets/rails_admin/themes/default/theming.css.scss +11 -0
  82. data/app/assets/stylesheets/rails_admin/themes/default/variables.css.scss +12 -0
  83. data/app/controllers/rails_admin/application_controller.rb +82 -0
  84. data/app/controllers/rails_admin/main_controller.rb +151 -0
  85. data/app/helpers/rails_admin/application_helper.rb +123 -0
  86. data/app/helpers/rails_admin/form_builder.rb +104 -0
  87. data/app/helpers/rails_admin/main_helper.rb +36 -0
  88. data/app/views/kaminari/twitter-bootstrap/_gap.html.haml +2 -0
  89. data/app/views/kaminari/twitter-bootstrap/_next_page.html.haml +4 -0
  90. data/app/views/kaminari/twitter-bootstrap/_page.html.haml +4 -0
  91. data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +10 -0
  92. data/app/views/kaminari/twitter-bootstrap/_prev_page.html.haml +4 -0
  93. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +12 -0
  94. data/app/views/layouts/rails_admin/application.html.haml +39 -0
  95. data/app/views/rails_admin/main/_dashboard_history.html.haml +10 -0
  96. data/app/views/rails_admin/main/_delete_notice.html.haml +18 -0
  97. data/app/views/rails_admin/main/_form_colorpicker.html.haml +24 -0
  98. data/app/views/rails_admin/main/_form_datetime.html.haml +4 -0
  99. data/app/views/rails_admin/main/_form_enumeration.html.haml +4 -0
  100. data/app/views/rails_admin/main/_form_field.html.haml +1 -0
  101. data/app/views/rails_admin/main/_form_file_upload.html.haml +18 -0
  102. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +59 -0
  103. data/app/views/rails_admin/main/_form_filtering_select.html.haml +47 -0
  104. data/app/views/rails_admin/main/_form_nested_many.html.haml +41 -0
  105. data/app/views/rails_admin/main/_form_nested_one.html.haml +35 -0
  106. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +34 -0
  107. data/app/views/rails_admin/main/_form_text.html.haml +9 -0
  108. data/app/views/rails_admin/main/_submit_buttons.html.haml +15 -0
  109. data/app/views/rails_admin/main/bulk_delete.html.haml +11 -0
  110. data/app/views/rails_admin/main/dashboard.html.haml +31 -0
  111. data/app/views/rails_admin/main/delete.html.haml +18 -0
  112. data/app/views/rails_admin/main/edit.html.haml +2 -0
  113. data/app/views/rails_admin/main/export.html.haml +75 -0
  114. data/app/views/rails_admin/main/history.html.haml +42 -0
  115. data/app/views/rails_admin/main/index.html.haml +140 -0
  116. data/app/views/rails_admin/main/new.html.haml +2 -0
  117. data/app/views/rails_admin/main/show.html.haml +14 -0
  118. data/config/initializers/active_record_extensions.rb +19 -0
  119. data/config/initializers/devise_patch.rb +9 -0
  120. data/config/initializers/haml.rb +2 -0
  121. data/config/initializers/mongoid_extensions.rb +4 -0
  122. data/config/locales/fr.yml +24 -0
  123. data/config/locales/rails_admin.en.yml +130 -0
  124. data/config/routes.rb +12 -0
  125. data/lib/generators/rails_admin/install_generator.rb +84 -0
  126. data/lib/generators/rails_admin/templates/drop.rb +18 -0
  127. data/lib/generators/rails_admin/templates/initializer.erb +101 -0
  128. data/lib/generators/rails_admin/templates/migration.rb +18 -0
  129. data/lib/generators/rails_admin/uninstall_generator.rb +22 -0
  130. data/lib/generators/rails_admin/utils.rb +30 -0
  131. data/lib/rails_admin.rb +34 -0
  132. data/lib/rails_admin/abstract_model.rb +110 -0
  133. data/lib/rails_admin/adapters/active_record.rb +247 -0
  134. data/lib/rails_admin/adapters/active_record/abstract_object.rb +32 -0
  135. data/lib/rails_admin/adapters/mongoid.rb +333 -0
  136. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +32 -0
  137. data/lib/rails_admin/adapters/mongoid/extension.rb +27 -0
  138. data/lib/rails_admin/config.rb +322 -0
  139. data/lib/rails_admin/config/actions.rb +121 -0
  140. data/lib/rails_admin/config/actions/base.rb +117 -0
  141. data/lib/rails_admin/config/actions/bulk_delete.rb +55 -0
  142. data/lib/rails_admin/config/actions/dashboard.rb +44 -0
  143. data/lib/rails_admin/config/actions/delete.rb +53 -0
  144. data/lib/rails_admin/config/actions/edit.rb +60 -0
  145. data/lib/rails_admin/config/actions/export.rb +40 -0
  146. data/lib/rails_admin/config/actions/history_index.rb +38 -0
  147. data/lib/rails_admin/config/actions/history_show.rb +38 -0
  148. data/lib/rails_admin/config/actions/index.rb +85 -0
  149. data/lib/rails_admin/config/actions/new.rb +64 -0
  150. data/lib/rails_admin/config/actions/show.rb +32 -0
  151. data/lib/rails_admin/config/actions/show_in_app.rb +28 -0
  152. data/lib/rails_admin/config/configurable.rb +92 -0
  153. data/lib/rails_admin/config/fields.rb +88 -0
  154. data/lib/rails_admin/config/fields/association.rb +108 -0
  155. data/lib/rails_admin/config/fields/base.rb +281 -0
  156. data/lib/rails_admin/config/fields/factories/belongs_to_association.rb +29 -0
  157. data/lib/rails_admin/config/fields/factories/carrierwave.rb +31 -0
  158. data/lib/rails_admin/config/fields/factories/devise.rb +27 -0
  159. data/lib/rails_admin/config/fields/factories/dragonfly.rb +27 -0
  160. data/lib/rails_admin/config/fields/factories/enum.rb +11 -0
  161. data/lib/rails_admin/config/fields/factories/paperclip.rb +26 -0
  162. data/lib/rails_admin/config/fields/factories/password.rb +17 -0
  163. data/lib/rails_admin/config/fields/factories/serialized.rb +17 -0
  164. data/lib/rails_admin/config/fields/group.rb +78 -0
  165. data/lib/rails_admin/config/fields/types.rb +27 -0
  166. data/lib/rails_admin/config/fields/types/all.rb +26 -0
  167. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +41 -0
  168. data/lib/rails_admin/config/fields/types/boolean.rb +31 -0
  169. data/lib/rails_admin/config/fields/types/bson_object_id.rb +42 -0
  170. data/lib/rails_admin/config/fields/types/carrierwave.rb +31 -0
  171. data/lib/rails_admin/config/fields/types/color.rb +37 -0
  172. data/lib/rails_admin/config/fields/types/date.rb +24 -0
  173. data/lib/rails_admin/config/fields/types/datetime.rb +165 -0
  174. data/lib/rails_admin/config/fields/types/decimal.rb +14 -0
  175. data/lib/rails_admin/config/fields/types/dragonfly.rb +41 -0
  176. data/lib/rails_admin/config/fields/types/enum.rb +35 -0
  177. data/lib/rails_admin/config/fields/types/file_upload.rb +61 -0
  178. data/lib/rails_admin/config/fields/types/float.rb +14 -0
  179. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +14 -0
  180. data/lib/rails_admin/config/fields/types/has_many_association.rb +32 -0
  181. data/lib/rails_admin/config/fields/types/has_one_association.rb +39 -0
  182. data/lib/rails_admin/config/fields/types/hidden.rb +21 -0
  183. data/lib/rails_admin/config/fields/types/integer.rb +22 -0
  184. data/lib/rails_admin/config/fields/types/mongoid_type.rb +25 -0
  185. data/lib/rails_admin/config/fields/types/paperclip.rb +28 -0
  186. data/lib/rails_admin/config/fields/types/password.rb +39 -0
  187. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +76 -0
  188. data/lib/rails_admin/config/fields/types/serialized.rb +22 -0
  189. data/lib/rails_admin/config/fields/types/string.rb +41 -0
  190. data/lib/rails_admin/config/fields/types/text.rb +36 -0
  191. data/lib/rails_admin/config/fields/types/time.rb +36 -0
  192. data/lib/rails_admin/config/fields/types/timestamp.rb +18 -0
  193. data/lib/rails_admin/config/groupable.rb +18 -0
  194. data/lib/rails_admin/config/has_fields.rb +135 -0
  195. data/lib/rails_admin/config/has_groups.rb +23 -0
  196. data/lib/rails_admin/config/hideable.rb +28 -0
  197. data/lib/rails_admin/config/model.rb +88 -0
  198. data/lib/rails_admin/config/proxyable.rb +12 -0
  199. data/lib/rails_admin/config/proxyable/proxy.rb +43 -0
  200. data/lib/rails_admin/config/sections.rb +38 -0
  201. data/lib/rails_admin/config/sections/base.rb +29 -0
  202. data/lib/rails_admin/config/sections/create.rb +11 -0
  203. data/lib/rails_admin/config/sections/edit.rb +11 -0
  204. data/lib/rails_admin/config/sections/export.rb +11 -0
  205. data/lib/rails_admin/config/sections/list.rb +27 -0
  206. data/lib/rails_admin/config/sections/nested.rb +10 -0
  207. data/lib/rails_admin/config/sections/show.rb +10 -0
  208. data/lib/rails_admin/config/sections/update.rb +10 -0
  209. data/lib/rails_admin/engine.rb +22 -0
  210. data/lib/rails_admin/extension.rb +29 -0
  211. data/lib/rails_admin/extensions/cancan.rb +5 -0
  212. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +59 -0
  213. data/lib/rails_admin/extensions/history.rb +5 -0
  214. data/lib/rails_admin/extensions/history/auditing_adapter.rb +37 -0
  215. data/lib/rails_admin/extensions/history/history.rb +69 -0
  216. data/lib/rails_admin/extensions/paper_trail.rb +5 -0
  217. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +92 -0
  218. data/lib/rails_admin/i18n_support.rb +43 -0
  219. data/lib/rails_admin/support/core_extensions.rb +44 -0
  220. data/lib/rails_admin/support/csv_converter.rb +109 -0
  221. data/lib/rails_admin/version.rb +6 -0
  222. data/lib/tasks/prepare_ci_env.rake +27 -0
  223. data/lib/tasks/rails_admin.rake +18 -0
  224. data/spec/ci.sh +2 -0
  225. data/spec/controllers/application_controller_spec.rb +30 -0
  226. data/spec/controllers/main_controller_spec.rb +180 -0
  227. data/spec/database_helpers.rb +15 -0
  228. data/spec/dummy_app/Gemfile +58 -0
  229. data/spec/dummy_app/Rakefile +7 -0
  230. data/spec/dummy_app/app/assets/images/rails.png +0 -0
  231. data/spec/dummy_app/app/assets/javascripts/application.js +15 -0
  232. data/spec/dummy_app/app/assets/stylesheets/application.css +13 -0
  233. data/spec/dummy_app/app/controllers/application_controller.rb +3 -0
  234. data/spec/dummy_app/app/controllers/players_controller.rb +5 -0
  235. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  236. data/spec/dummy_app/app/locales/models.en.yml +16 -0
  237. data/spec/dummy_app/app/models/abstract.rb +5 -0
  238. data/spec/dummy_app/app/models/article.rb +9 -0
  239. data/spec/dummy_app/app/models/author.rb +6 -0
  240. data/spec/dummy_app/app/models/ball.rb +8 -0
  241. data/spec/dummy_app/app/models/category.rb +3 -0
  242. data/spec/dummy_app/app/models/cms.rb +5 -0
  243. data/spec/dummy_app/app/models/cms/basic_page.rb +7 -0
  244. data/spec/dummy_app/app/models/cms/unscoped_page.rb +3 -0
  245. data/spec/dummy_app/app/models/comment.rb +3 -0
  246. data/spec/dummy_app/app/models/division.rb +12 -0
  247. data/spec/dummy_app/app/models/draft.rb +11 -0
  248. data/spec/dummy_app/app/models/fan.rb +5 -0
  249. data/spec/dummy_app/app/models/field_test.rb +20 -0
  250. data/spec/dummy_app/app/models/hardball.rb +2 -0
  251. data/spec/dummy_app/app/models/league.rb +10 -0
  252. data/spec/dummy_app/app/models/mongoid_field_test.rb +22 -0
  253. data/spec/dummy_app/app/models/nested_field_test.rb +6 -0
  254. data/spec/dummy_app/app/models/player.rb +23 -0
  255. data/spec/dummy_app/app/models/rel_test.rb +6 -0
  256. data/spec/dummy_app/app/models/tag.rb +7 -0
  257. data/spec/dummy_app/app/models/team.rb +25 -0
  258. data/spec/dummy_app/app/models/user.rb +21 -0
  259. data/spec/dummy_app/app/uploaders/carrierwave_uploader.rb +53 -0
  260. data/spec/dummy_app/app/views/layouts/application.html.erb +14 -0
  261. data/spec/dummy_app/app/views/players/show.html.haml +1 -0
  262. data/spec/dummy_app/config.ru +4 -0
  263. data/spec/dummy_app/config/application.rb +62 -0
  264. data/spec/dummy_app/config/boot.rb +6 -0
  265. data/spec/dummy_app/config/database.yml +25 -0
  266. data/spec/dummy_app/config/environment.rb +5 -0
  267. data/spec/dummy_app/config/environments/development.rb +37 -0
  268. data/spec/dummy_app/config/environments/production.rb +67 -0
  269. data/spec/dummy_app/config/environments/test.rb +37 -0
  270. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  271. data/spec/dummy_app/config/initializers/devise.rb +148 -0
  272. data/spec/dummy_app/config/initializers/inflections.rb +15 -0
  273. data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
  274. data/spec/dummy_app/config/initializers/rails_admin.rb +11 -0
  275. data/spec/dummy_app/config/initializers/secret_token.rb +7 -0
  276. data/spec/dummy_app/config/initializers/session_store.rb +8 -0
  277. data/spec/dummy_app/config/initializers/wrap_parameters.rb +14 -0
  278. data/spec/dummy_app/config/mongoid.yml +17 -0
  279. data/spec/dummy_app/config/routes.rb +10 -0
  280. data/spec/dummy_app/db/migrate/00000000000001_create_divisions_migration.rb +13 -0
  281. data/spec/dummy_app/db/migrate/00000000000002_create_drafts_migration.rb +19 -0
  282. data/spec/dummy_app/db/migrate/00000000000003_create_leagues_migration.rb +12 -0
  283. data/spec/dummy_app/db/migrate/00000000000004_create_players_migration.rb +20 -0
  284. data/spec/dummy_app/db/migrate/00000000000005_create_teams_migration.rb +22 -0
  285. data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +49 -0
  286. data/spec/dummy_app/db/migrate/00000000000007_create_histories_table.rb +16 -0
  287. data/spec/dummy_app/db/migrate/00000000000008_create_fans_migration.rb +12 -0
  288. data/spec/dummy_app/db/migrate/00000000000009_create_fans_teams_migration.rb +11 -0
  289. data/spec/dummy_app/db/migrate/00000000000010_add_revenue_to_team_migration.rb +9 -0
  290. data/spec/dummy_app/db/migrate/00000000000011_add_suspended_to_player_migration.rb +9 -0
  291. data/spec/dummy_app/db/migrate/00000000000012_add_avatar_columns_to_user.rb +16 -0
  292. data/spec/dummy_app/db/migrate/00000000000013_add_roles_to_user.rb +9 -0
  293. data/spec/dummy_app/db/migrate/00000000000014_add_color_to_team_migration.rb +9 -0
  294. data/spec/dummy_app/db/migrate/20101223222233_create_rel_tests.rb +15 -0
  295. data/spec/dummy_app/db/migrate/20110103205808_create_comments.rb +15 -0
  296. data/spec/dummy_app/db/migrate/20110123042530_rename_histories_to_rails_admin_histories.rb +9 -0
  297. data/spec/dummy_app/db/migrate/20110224184303_create_field_tests.rb +22 -0
  298. data/spec/dummy_app/db/migrate/20110328193014_create_cms_basic_pages.rb +14 -0
  299. data/spec/dummy_app/db/migrate/20110329183136_remove_league_id_from_teams.rb +9 -0
  300. data/spec/dummy_app/db/migrate/20110607152842_add_format_to_field_test.rb +9 -0
  301. data/spec/dummy_app/db/migrate/20110714095433_create_balls.rb +12 -0
  302. data/spec/dummy_app/db/migrate/20110831090841_add_protected_field_and_restricted_field_to_field_tests.rb +6 -0
  303. data/spec/dummy_app/db/migrate/20110901131551_change_division_primary_key.rb +19 -0
  304. data/spec/dummy_app/db/migrate/20110901142530_rename_league_id_foreign_key_on_divisions.rb +5 -0
  305. data/spec/dummy_app/db/migrate/20110901150912_set_primary_key_not_null_for_divisions.rb +21 -0
  306. data/spec/dummy_app/db/migrate/20110901154834_change_length_for_rails_admin_histories.rb +9 -0
  307. data/spec/dummy_app/db/migrate/20111103174459_create_unscoped_pages.rb +9 -0
  308. data/spec/dummy_app/db/migrate/20111108143642_add_dragonfly_and_carrierwave_to_field_tests.rb +7 -0
  309. data/spec/dummy_app/db/migrate/20111115041025_add_type_to_balls.rb +5 -0
  310. data/spec/dummy_app/db/migrate/20111123092549_create_nested_field_tests.rb +10 -0
  311. data/spec/dummy_app/db/migrate/20111130075338_add_dragonfly_asset_name_to_field_tests.rb +5 -0
  312. data/spec/dummy_app/db/migrate/20111215083258_create_foo_bars.rb +8 -0
  313. data/spec/dummy_app/db/migrate/20120117151733_add_custom_field_to_teams.rb +5 -0
  314. data/spec/dummy_app/db/migrate/20120118122004_add_categories.rb +7 -0
  315. data/spec/dummy_app/db/seeds.rb +18 -0
  316. data/spec/dummy_app/doc/README_FOR_APP +2 -0
  317. data/spec/dummy_app/public/404.html +26 -0
  318. data/spec/dummy_app/public/422.html +26 -0
  319. data/spec/dummy_app/public/500.html +25 -0
  320. data/spec/dummy_app/public/favicon.ico +0 -0
  321. data/spec/dummy_app/public/robots.txt +5 -0
  322. data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg +0 -0
  323. data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg.meta +1 -0
  324. data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg +0 -0
  325. data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg.meta +1 -0
  326. data/spec/dummy_app/public/system/paperclip_assets/1/original/Boston City Flow.jpg +0 -0
  327. data/spec/dummy_app/public/system/paperclip_assets/1/thumb/Boston City Flow.jpg +0 -0
  328. data/spec/dummy_app/public/system/paperclip_assets/3/original/Costa Rican Frog.jpg +0 -0
  329. data/spec/dummy_app/public/system/paperclip_assets/3/thumb/Costa Rican Frog.jpg +0 -0
  330. data/spec/dummy_app/public/system/paperclip_assets/6/original/liste-electorale.pdf +0 -0
  331. data/spec/dummy_app/public/system/paperclip_assets/6/thumb/liste-electorale.pdf +148 -0
  332. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/Boston_City_Flow.jpg +0 -0
  333. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/thumb_Boston_City_Flow.jpg +0 -0
  334. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/Costa_Rican_Frog.jpg +0 -0
  335. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/thumb_Costa_Rican_Frog.jpg +0 -0
  336. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/Pensive_Parakeet.jpg +0 -0
  337. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/thumb_Pensive_Parakeet.jpg +0 -0
  338. data/spec/dummy_app/script/rails +6 -0
  339. data/spec/factories.rb +89 -0
  340. data/spec/helpers/application_helper_spec.rb +277 -0
  341. data/spec/integration/authorization/cancan_spec.rb +349 -0
  342. data/spec/integration/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +25 -0
  343. data/spec/integration/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +44 -0
  344. data/spec/integration/basic/create/rails_admin_basic_create_spec.rb +154 -0
  345. data/spec/integration/basic/create/rails_admin_namespaced_model_create_spec.rb +23 -0
  346. data/spec/integration/basic/delete/rails_admin_basic_delete_spec.rb +27 -0
  347. data/spec/integration/basic/destroy/rails_admin_basic_destroy_spec.rb +56 -0
  348. data/spec/integration/basic/edit/rails_admin_basic_edit_spec.rb +109 -0
  349. data/spec/integration/basic/export/rails_admin_basic_export_spec.rb +87 -0
  350. data/spec/integration/basic/list/rails_admin_basic_list_spec.rb +392 -0
  351. data/spec/integration/basic/new/rails_admin_basic_new_spec.rb +74 -0
  352. data/spec/integration/basic/new/rails_admin_namespaced_model_new_spec.rb +31 -0
  353. data/spec/integration/basic/show/rails_admin_basic_show_spec.rb +91 -0
  354. data/spec/integration/basic/update/rails_admin_basic_update_spec.rb +219 -0
  355. data/spec/integration/config/edit/rails_admin_config_edit_spec.rb +954 -0
  356. data/spec/integration/config/list/rails_admin_config_list_spec.rb +509 -0
  357. data/spec/integration/config/show/rails_admin_config_show_spec.rb +302 -0
  358. data/spec/integration/history/rails_admin_history_spec.rb +66 -0
  359. data/spec/integration/rails_admin_spec.rb +113 -0
  360. data/spec/integration/relation_spec.rb +26 -0
  361. data/spec/spec_helper.rb +86 -0
  362. data/spec/support/tableless.rb +27 -0
  363. data/spec/unit/adapters/active_record/abstract_object_spec.rb +131 -0
  364. data/spec/unit/adapters/active_record_spec.rb +373 -0
  365. data/spec/unit/adapters/mongoid/abstract_object_spec.rb +30 -0
  366. data/spec/unit/adapters/mongoid_spec.rb +581 -0
  367. data/spec/unit/config/actions_spec.rb +181 -0
  368. data/spec/unit/config/fields/base_spec.rb +300 -0
  369. data/spec/unit/config/model_spec.rb +75 -0
  370. data/spec/unit/config/sections_spec.rb +123 -0
  371. data/spec/unit/config_spec.rb +273 -0
  372. metadata +823 -0
@@ -0,0 +1,509 @@
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 "should be present" do
9
+ FactoryGirl.create :team
10
+ visit index_path(:model_name => "team")
11
+ should have_selector("th.header.string_type.name_field")
12
+ should have_selector("td.string_type.name_field")
13
+ end
14
+ end
15
+
16
+
17
+ describe "number of items per page" do
18
+
19
+ before(:each) do
20
+ 2.times.each do
21
+ FactoryGirl.create :league
22
+ FactoryGirl.create :player
23
+ end
24
+ end
25
+
26
+ it "should be configurable" do
27
+ RailsAdmin::Config.models do
28
+ list do
29
+ items_per_page 1
30
+ end
31
+ end
32
+ visit index_path(:model_name => "league")
33
+ should have_selector("tbody tr", :count => 1)
34
+ visit index_path(:model_name => "player")
35
+ should have_selector("tbody tr", :count => 1)
36
+ end
37
+
38
+ it "should be configurable per model" do
39
+ RailsAdmin.config League do
40
+ list do
41
+ items_per_page 1
42
+ end
43
+ end
44
+ visit index_path(:model_name => "league")
45
+ should have_selector("tbody tr", :count => 1)
46
+ visit index_path(:model_name => "player")
47
+ should have_selector("tbody tr", :count => 2)
48
+ end
49
+
50
+ it "should be globally configurable and overrideable per model" do
51
+ RailsAdmin::Config.models do
52
+ list do
53
+ items_per_page 20
54
+ end
55
+ end
56
+ RailsAdmin.config League do
57
+ list do
58
+ items_per_page 1
59
+ end
60
+ end
61
+ visit index_path(:model_name => "league")
62
+ should have_selector("tbody tr", :count => 1)
63
+ visit index_path(:model_name => "player")
64
+ should have_selector("tbody tr", :count => 2)
65
+ end
66
+ end
67
+
68
+ describe "items' fields" do
69
+
70
+ it "should show all by default" do
71
+ visit index_path(:model_name => "fan")
72
+ find("th:nth-child(2)").should have_content("Id")
73
+ find("th:nth-child(3)").should have_content("Created at")
74
+ find("th:nth-child(4)").should have_content("Updated at")
75
+ find("th:nth-child(5)").should have_content("His Name")
76
+ end
77
+
78
+ it "should hide some fields on demand with a block" do
79
+ RailsAdmin.config Fan do
80
+ list do
81
+ exclude_fields_if do
82
+ type == :datetime
83
+ end
84
+ end
85
+ end
86
+ visit index_path(:model_name => "fan")
87
+ find("th:nth-child(2)").should have_content("Id")
88
+ find("th:nth-child(3)").should have_content("His Name")
89
+ end
90
+
91
+ it "should hide some fields on demand with fields list" do
92
+ RailsAdmin.config Fan do
93
+ list do
94
+ exclude_fields :created_at, :updated_at
95
+ end
96
+ end
97
+ visit index_path(:model_name => "fan")
98
+ find("th:nth-child(2)").should have_content("Id")
99
+ find("th:nth-child(3)").should have_content("His Name")
100
+ end
101
+
102
+ it "should add some fields on demand with a block" do
103
+ RailsAdmin.config Fan do
104
+ list do
105
+ include_fields_if do
106
+ type != :datetime
107
+ end
108
+ end
109
+ end
110
+ visit index_path(:model_name => "fan")
111
+ find("th:nth-child(2)").should have_content("Id")
112
+ find("th:nth-child(3)").should have_content("His Name")
113
+ end
114
+
115
+ it "should show some fields on demand with fields list, respect ordering and configure them" do
116
+ RailsAdmin.config Fan do
117
+ list do
118
+ fields :name, :id do
119
+ label do
120
+ "Modified #{label}"
121
+ end
122
+ end
123
+ end
124
+ end
125
+ visit index_path(:model_name => "fan")
126
+
127
+ find("th:nth-child(2)").should have_content("Modified His Name")
128
+ find("th:nth-child(3)").should have_content("Modified Id")
129
+ end
130
+
131
+ it "should show all fields if asked" do
132
+ RailsAdmin.config Fan do
133
+ list do
134
+ include_all_fields
135
+ field :id
136
+ field :name
137
+ end
138
+ end
139
+ visit index_path(:model_name => "fan")
140
+
141
+ find("th:nth-child(2)").should have_content("Id")
142
+ find("th:nth-child(3)").should have_content("Created at")
143
+ find("th:nth-child(4)").should have_content("Updated at")
144
+ find("th:nth-child(5)").should have_content("His Name")
145
+ end
146
+
147
+ it "should appear in order defined" do
148
+ RailsAdmin.config Fan do
149
+ list do
150
+ field :updated_at
151
+ field :name
152
+ field :id
153
+ field :created_at
154
+ end
155
+ end
156
+ visit index_path(:model_name => "fan")
157
+
158
+ find("th:nth-child(2)").should have_content("Updated at")
159
+ find("th:nth-child(3)").should have_content("His Name")
160
+ find("th:nth-child(4)").should have_content("Id")
161
+ find("th:nth-child(5)").should have_content("Created at")
162
+ end
163
+
164
+ it "should only list the defined fields if some fields are defined" do
165
+ RailsAdmin.config Fan do
166
+ list do
167
+ field :id
168
+ field :name
169
+ end
170
+ end
171
+ visit index_path(:model_name => "fan")
172
+ find("th:nth-child(2)").should have_content("Id")
173
+ find("th:nth-child(3)").should have_content("His Name")
174
+ should have_no_selector("th:nth-child(4).header")
175
+ end
176
+
177
+ it "should delegate the label option to the ActiveModel API" do
178
+ RailsAdmin.config Fan do
179
+ list do
180
+ field :name
181
+ end
182
+ end
183
+ visit index_path(:model_name => "fan")
184
+ find("th:nth-child(2)").should have_content("His Name")
185
+ end
186
+
187
+ it "should be renameable" do
188
+ RailsAdmin.config Fan do
189
+ list do
190
+ field :id do
191
+ label "Identifier"
192
+ end
193
+ field :name
194
+ end
195
+ end
196
+ visit index_path(:model_name => "fan")
197
+ find("th:nth-child(2)").should have_content("Identifier")
198
+ find("th:nth-child(3)").should have_content("His Name")
199
+ end
200
+
201
+ it "should be renameable by type" do
202
+ RailsAdmin.config Fan do
203
+ list do
204
+ fields_of_type :datetime do
205
+ label { "#{label} (datetime)" }
206
+ end
207
+ end
208
+ end
209
+ visit index_path(:model_name => "fan")
210
+ find("th:nth-child(2)").should have_content("Id")
211
+ find("th:nth-child(3)").should have_content("Created at (datetime)")
212
+ find("th:nth-child(4)").should have_content("Updated at (datetime)")
213
+ find("th:nth-child(5)").should have_content("His Name")
214
+ end
215
+
216
+ it "should be globally renameable by type" do
217
+ RailsAdmin::Config.models do
218
+ list do
219
+ fields_of_type :datetime do
220
+ label { "#{label} (datetime)" }
221
+ end
222
+ end
223
+ end
224
+ visit index_path(:model_name => "fan")
225
+ find("th:nth-child(2)").should have_content("Id")
226
+ find("th:nth-child(3)").should have_content("Created at (datetime)")
227
+ find("th:nth-child(4)").should have_content("Updated at (datetime)")
228
+ find("th:nth-child(5)").should have_content("His Name")
229
+ end
230
+
231
+ it "should be sortable by default" do
232
+ visit index_path(:model_name => "fan")
233
+ should have_selector("th:nth-child(2).header")
234
+ should have_selector("th:nth-child(3).header")
235
+ should have_selector("th:nth-child(4).header")
236
+ should have_selector("th:nth-child(5).header")
237
+ end
238
+
239
+ it "should have option to disable sortability" do
240
+ RailsAdmin.config Fan do
241
+ list do
242
+ field :id do
243
+ sortable false
244
+ end
245
+ field :name
246
+ end
247
+ end
248
+ visit index_path(:model_name => "fan")
249
+ should have_no_selector("th:nth-child(2).header")
250
+ should have_selector("th:nth-child(3).header")
251
+ end
252
+
253
+ it "should have option to disable sortability by type" do
254
+ RailsAdmin.config Fan do
255
+ list do
256
+ fields_of_type :datetime do
257
+ sortable false
258
+ end
259
+ field :id
260
+ field :name
261
+ field :created_at
262
+ field :updated_at
263
+ end
264
+ end
265
+ visit index_path(:model_name => "fan")
266
+ should have_selector("th:nth-child(2).header")
267
+ should have_selector("th:nth-child(3).header")
268
+ should have_no_selector("th:nth-child(4).header")
269
+ should have_no_selector("th:nth-child(5).header")
270
+ end
271
+
272
+ it "should have option to disable sortability by type globally" do
273
+ RailsAdmin::Config.models do
274
+ list do
275
+ fields_of_type :datetime do
276
+ sortable false
277
+ end
278
+ field :id
279
+ field :name
280
+ field :created_at
281
+ field :updated_at
282
+ end
283
+ end
284
+ visit index_path(:model_name => "fan")
285
+ should have_selector("th:nth-child(2).header")
286
+ should have_selector("th:nth-child(3).header")
287
+ should have_no_selector("th:nth-child(4).header")
288
+ should have_no_selector("th:nth-child(5).header")
289
+ end
290
+
291
+ it "should have option to hide fields by type" do
292
+ RailsAdmin.config Fan do
293
+ list do
294
+ fields_of_type :datetime do
295
+ hide
296
+ end
297
+ end
298
+ end
299
+ visit index_path(:model_name => "fan")
300
+ should have_selector("th:nth-child(2)", :text => "Id")
301
+ should have_selector("th:nth-child(3)", :text => "His Name")
302
+ should have_no_selector("th:nth-child(4)", :text => "Created at")
303
+ should have_no_selector("th:nth-child(5)", :text => "Updated at")
304
+ end
305
+
306
+ it "should have option to hide fields by type globally" do
307
+ RailsAdmin::Config.models do
308
+ list do
309
+ fields_of_type :datetime do
310
+ hide
311
+ end
312
+ end
313
+ end
314
+ visit index_path(:model_name => "fan")
315
+ should have_selector("th:nth-child(2)", :text => "Id")
316
+ should have_selector("th:nth-child(3)", :text => "His Name")
317
+ should have_no_selector("th:nth-child(4)", :text => "Created at")
318
+ should have_no_selector("th:nth-child(5)", :text => "Updated at")
319
+ end
320
+
321
+ it "should have option to customize column width" do
322
+ RailsAdmin.config Fan do
323
+ list do
324
+ field :id do
325
+ column_width 200
326
+ end
327
+ field :name
328
+ field :created_at
329
+ field :updated_at
330
+ end
331
+ end
332
+ @fans = 2.times.map { FactoryGirl.create :fan }
333
+ visit index_path(:model_name => "fan")
334
+ find('style').should have_content('#list th.id_field')
335
+ find('style').should have_content('#list td.id_field')
336
+ end
337
+
338
+ it "should have option to customize output formatting" do
339
+ RailsAdmin.config Fan do
340
+ list do
341
+ field :id
342
+ field :name do
343
+ formatted_value do
344
+ value.to_s.upcase
345
+ end
346
+ end
347
+ field :created_at
348
+ field :updated_at
349
+ end
350
+ end
351
+ @fans = 2.times.map { FactoryGirl.create :fan }
352
+ visit index_path(:model_name => "fan")
353
+ find('tbody tr:nth-child(1) td:nth-child(3)').should have_content(@fans[1].name.upcase)
354
+ find('tbody tr:nth-child(2) td:nth-child(3)').should have_content(@fans[0].name.upcase)
355
+ end
356
+
357
+ it "should have a simple option to customize output formatting of date fields" do
358
+ RailsAdmin.config Fan do
359
+ list do
360
+ field :id
361
+ field :name
362
+ field :created_at do
363
+ date_format :short
364
+ end
365
+ field :updated_at
366
+ end
367
+ end
368
+ @fans = 2.times.map { FactoryGirl.create :fan }
369
+ visit index_path(:model_name => "fan")
370
+ should have_selector("tbody tr:nth-child(1) td:nth-child(4)", :text => /\d{2} \w{3} \d{1,2}:\d{1,2}/)
371
+ end
372
+
373
+ it "should have option to customize output formatting of date fields" do
374
+ RailsAdmin.config Fan do
375
+ list do
376
+ field :id
377
+ field :name
378
+ field :created_at do
379
+ strftime_format "%Y-%m-%d"
380
+ end
381
+ field :updated_at
382
+ end
383
+ end
384
+ @fans = 2.times.map { FactoryGirl.create :fan }
385
+ visit index_path(:model_name => "fan")
386
+ should have_selector("tbody tr:nth-child(1) td:nth-child(4)", :text => /\d{4}-\d{2}-\d{2}/)
387
+ end
388
+
389
+ it "should allow addition of virtual fields (object methods)" do
390
+ RailsAdmin.config Team do
391
+ list do
392
+ field :id
393
+ field :name
394
+ field :player_names_truncated
395
+ end
396
+ end
397
+ @team = FactoryGirl.create :team
398
+ @players = 2.times.map { FactoryGirl.create :player, :team => @team }
399
+ visit index_path(:model_name => "team")
400
+ find('tbody tr:nth-child(1) td:nth-child(4)').should have_content(@players.collect(&:name).join(", "))
401
+ end
402
+ end
403
+
404
+ # sort_by and sort_reverse options
405
+ describe "default sorting" do
406
+ before(:each) do
407
+ RailsAdmin.config(Player){ list { field :name } }
408
+ end
409
+
410
+ let(:today){ Date.today }
411
+ let(:players) do
412
+ [{ :name => "Jackie Robinson", :created_at => today, :team_id => rand(99999), :number => 42 },
413
+ { :name => "Deibinson Romero", :created_at => (today - 2.days), :team_id => rand(99999), :number => 13 },
414
+ { :name => "Sandy Koufax", :created_at => (today - 1.days), :team_id => rand(99999), :number => 32 }]
415
+ end
416
+ let(:leagues) do
417
+ [{ :name => 'American', :created_at => (today - 1.day) },
418
+ { :name => 'Florida State', :created_at => (today - 2.days)},
419
+ { :name => 'National', :created_at => today }]
420
+ end
421
+ let(:player_names_by_date){ players.sort_by{|p| p[:created_at]}.map{|p| p[:name]} }
422
+ let(:league_names_by_date){ leagues.sort_by{|l| l[:created_at]}.map{|l| l[:name]} }
423
+
424
+ before(:each) { @players = Player.create(players) }
425
+
426
+ context "should be configurable" do
427
+ it "globaly" do
428
+ RailsAdmin.config do |config|
429
+ config.models do
430
+ list do
431
+ sort_by :created_at
432
+ sort_reverse true
433
+ end
434
+ end
435
+ end
436
+ visit index_path(:model_name => "player")
437
+ player_names_by_date.reverse.each_with_index do |name, i|
438
+ find("tbody tr:nth-child(#{i + 1})").should have_content(name)
439
+ end
440
+ end
441
+
442
+ it "per model" do
443
+ RailsAdmin.config Player do
444
+ list do
445
+ sort_by :created_at
446
+ sort_reverse true
447
+ end
448
+ end
449
+ visit index_path(:model_name => "player")
450
+ player_names_by_date.reverse.each_with_index do |name, i|
451
+ find("tbody tr:nth-child(#{i + 1})").should have_content(name)
452
+ end
453
+ end
454
+
455
+ it "globaly and overrideable per model" do
456
+ League.create(leagues)
457
+
458
+ RailsAdmin::Config.models do
459
+ list do
460
+ sort_by :created_at
461
+ sort_reverse true
462
+ end
463
+ end
464
+
465
+ RailsAdmin.config Player do
466
+ list do
467
+ sort_by :id
468
+ sort_reverse true
469
+ end
470
+ end
471
+
472
+ visit index_path(:model_name => "league")
473
+ league_names_by_date.reverse.each_with_index do |name, i|
474
+ find("tbody tr:nth-child(#{i + 1})").should have_content(name)
475
+ end
476
+
477
+ visit index_path(:model_name => "player")
478
+ @players.sort_by{|p| p[:id]}.map{|p| p[:name]}.reverse.each_with_index do |name, i|
479
+ find("tbody tr:nth-child(#{i + 1})").should have_content(name)
480
+ end
481
+ end
482
+ end
483
+
484
+ it "should have reverse direction by default" do
485
+ RailsAdmin.config Player do
486
+ list do
487
+ sort_by :created_at
488
+ end
489
+ end
490
+ visit index_path(:model_name => "player")
491
+ player_names_by_date.reverse.each_with_index do |name, i|
492
+ find("tbody tr:nth-child(#{i + 1})").should have_content(name)
493
+ end
494
+ end
495
+
496
+ it "should allow change default direction" do
497
+ RailsAdmin.config Player do
498
+ list do
499
+ sort_by :created_at
500
+ sort_reverse false
501
+ end
502
+ end
503
+ visit index_path(:model_name => "player")
504
+ player_names_by_date.each_with_index do |name, i|
505
+ find("tbody tr:nth-child(#{i + 1})").should have_content(name)
506
+ end
507
+ end
508
+ end
509
+ end