obitum-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 (401) hide show
  1. data/Gemfile +57 -0
  2. data/LICENSE.md +20 -0
  3. data/README.md +206 -0
  4. data/Rakefile +14 -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-ui-1.8.16.custom.js +5271 -0
  49. data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +484 -0
  50. data/app/assets/javascripts/rails_admin/jquery.pjax.js +266 -0
  51. data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +1219 -0
  52. data/app/assets/javascripts/rails_admin/jquery_nested_form.js +58 -0
  53. data/app/assets/javascripts/rails_admin/ra.datetimepicker.js +67 -0
  54. data/app/assets/javascripts/rails_admin/ra.filter-box.js +120 -0
  55. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +280 -0
  56. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +181 -0
  57. data/app/assets/javascripts/rails_admin/ra.remote-form.js +148 -0
  58. data/app/assets/javascripts/rails_admin/rails_admin.js.erb +19 -0
  59. data/app/assets/javascripts/rails_admin/themes/default/ui.js +12 -0
  60. data/app/assets/javascripts/rails_admin/ui.js.coffee +33 -0
  61. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  62. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  63. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  64. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  65. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  66. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  67. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.css.scss +733 -0
  68. data/app/assets/stylesheets/rails_admin/base/README +2 -0
  69. data/app/assets/stylesheets/rails_admin/base/mixins.css.scss +1 -0
  70. data/app/assets/stylesheets/rails_admin/base/theming.css.scss +145 -0
  71. data/app/assets/stylesheets/rails_admin/base/variables.css.scss +1 -0
  72. data/app/assets/stylesheets/rails_admin/custom/mixins.css.scss +12 -0
  73. data/app/assets/stylesheets/rails_admin/custom/theming.css.scss +13 -0
  74. data/app/assets/stylesheets/rails_admin/custom/variables.css.scss +15 -0
  75. data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +41 -0
  76. data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +180 -0
  77. data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.css.scss +53 -0
  78. data/app/assets/stylesheets/rails_admin/ra.calendar-additions.css.scss +25 -0
  79. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.css.scss +85 -0
  80. data/app/assets/stylesheets/rails_admin/rails_admin.css +4 -0
  81. data/app/assets/stylesheets/rails_admin/themes/default/mixins.css.scss +8 -0
  82. data/app/assets/stylesheets/rails_admin/themes/default/theming.css.scss +11 -0
  83. data/app/assets/stylesheets/rails_admin/themes/default/variables.css.scss +12 -0
  84. data/app/controllers/rails_admin/application_controller.rb +87 -0
  85. data/app/controllers/rails_admin/main_controller.rb +148 -0
  86. data/app/helpers/rails_admin/application_helper.rb +97 -0
  87. data/app/helpers/rails_admin/form_builder.rb +106 -0
  88. data/app/helpers/rails_admin/main_helper.rb +36 -0
  89. data/app/views/kaminari/twitter-bootstrap/_gap.html.haml +2 -0
  90. data/app/views/kaminari/twitter-bootstrap/_next_page.html.haml +4 -0
  91. data/app/views/kaminari/twitter-bootstrap/_page.html.haml +4 -0
  92. data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +10 -0
  93. data/app/views/kaminari/twitter-bootstrap/_prev_page.html.haml +4 -0
  94. data/app/views/layouts/rails_admin/_navigation.html.haml +17 -0
  95. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +11 -0
  96. data/app/views/layouts/rails_admin/application.html.haml +39 -0
  97. data/app/views/rails_admin/main/_dashboard_history.html.haml +10 -0
  98. data/app/views/rails_admin/main/_delete_notice.html.haml +19 -0
  99. data/app/views/rails_admin/main/_form_colorpicker.html.haml +23 -0
  100. data/app/views/rails_admin/main/_form_datetime.html.haml +4 -0
  101. data/app/views/rails_admin/main/_form_enumeration.html.haml +4 -0
  102. data/app/views/rails_admin/main/_form_field.html.haml +1 -0
  103. data/app/views/rails_admin/main/_form_file_upload.html.haml +17 -0
  104. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +57 -0
  105. data/app/views/rails_admin/main/_form_filtering_select.html.haml +46 -0
  106. data/app/views/rails_admin/main/_form_nested_many.html.haml +6 -0
  107. data/app/views/rails_admin/main/_form_nested_one.html.haml +6 -0
  108. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +34 -0
  109. data/app/views/rails_admin/main/_form_text.html.haml +9 -0
  110. data/app/views/rails_admin/main/_submit_buttons.html.haml +13 -0
  111. data/app/views/rails_admin/main/bulk_delete.html.haml +7 -0
  112. data/app/views/rails_admin/main/dashboard.html.haml +31 -0
  113. data/app/views/rails_admin/main/delete.html.haml +14 -0
  114. data/app/views/rails_admin/main/edit.html.haml +2 -0
  115. data/app/views/rails_admin/main/export.html.haml +71 -0
  116. data/app/views/rails_admin/main/history.html.haml +42 -0
  117. data/app/views/rails_admin/main/index.html.haml +123 -0
  118. data/app/views/rails_admin/main/new.html.haml +2 -0
  119. data/app/views/rails_admin/main/show.html.haml +14 -0
  120. data/config/initializers/active_record_extensions.rb +19 -0
  121. data/config/initializers/devise_patch.rb +9 -0
  122. data/config/initializers/haml.rb +3 -0
  123. data/config/locales/rails_admin.en.yml +129 -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 +39 -0
  132. data/lib/rails_admin/abstract_model.rb +73 -0
  133. data/lib/rails_admin/abstract_object.rb +28 -0
  134. data/lib/rails_admin/adapters/active_record.rb +347 -0
  135. data/lib/rails_admin/config.rb +293 -0
  136. data/lib/rails_admin/config/actions.rb +121 -0
  137. data/lib/rails_admin/config/actions/base.rb +105 -0
  138. data/lib/rails_admin/config/actions/bulk_delete.rb +56 -0
  139. data/lib/rails_admin/config/actions/dashboard.rb +40 -0
  140. data/lib/rails_admin/config/actions/delete.rb +50 -0
  141. data/lib/rails_admin/config/actions/edit.rb +52 -0
  142. data/lib/rails_admin/config/actions/export.rb +37 -0
  143. data/lib/rails_admin/config/actions/history_index.rb +34 -0
  144. data/lib/rails_admin/config/actions/history_show.rb +34 -0
  145. data/lib/rails_admin/config/actions/index.rb +73 -0
  146. data/lib/rails_admin/config/actions/new.rb +60 -0
  147. data/lib/rails_admin/config/actions/show.rb +27 -0
  148. data/lib/rails_admin/config/actions/show_in_app.rb +23 -0
  149. data/lib/rails_admin/config/base.rb +111 -0
  150. data/lib/rails_admin/config/fields.rb +97 -0
  151. data/lib/rails_admin/config/fields/association.rb +115 -0
  152. data/lib/rails_admin/config/fields/base.rb +274 -0
  153. data/lib/rails_admin/config/fields/factories/carrierwave.rb +12 -0
  154. data/lib/rails_admin/config/fields/factories/devise.rb +30 -0
  155. data/lib/rails_admin/config/fields/factories/dragonfly.rb +21 -0
  156. data/lib/rails_admin/config/fields/factories/enum.rb +11 -0
  157. data/lib/rails_admin/config/fields/factories/paperclip.rb +27 -0
  158. data/lib/rails_admin/config/fields/factories/password.rb +17 -0
  159. data/lib/rails_admin/config/fields/group.rb +65 -0
  160. data/lib/rails_admin/config/fields/groupable.rb +25 -0
  161. data/lib/rails_admin/config/fields/types.rb +26 -0
  162. data/lib/rails_admin/config/fields/types/all.rb +23 -0
  163. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +43 -0
  164. data/lib/rails_admin/config/fields/types/boolean.rb +29 -0
  165. data/lib/rails_admin/config/fields/types/carrierwave.rb +40 -0
  166. data/lib/rails_admin/config/fields/types/color.rb +37 -0
  167. data/lib/rails_admin/config/fields/types/date.rb +24 -0
  168. data/lib/rails_admin/config/fields/types/datetime.rb +165 -0
  169. data/lib/rails_admin/config/fields/types/decimal.rb +14 -0
  170. data/lib/rails_admin/config/fields/types/dragonfly.rb +59 -0
  171. data/lib/rails_admin/config/fields/types/enum.rb +35 -0
  172. data/lib/rails_admin/config/fields/types/file_upload.rb +65 -0
  173. data/lib/rails_admin/config/fields/types/float.rb +14 -0
  174. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +14 -0
  175. data/lib/rails_admin/config/fields/types/has_many_association.rb +37 -0
  176. data/lib/rails_admin/config/fields/types/has_one_association.rb +35 -0
  177. data/lib/rails_admin/config/fields/types/hidden.rb +19 -0
  178. data/lib/rails_admin/config/fields/types/integer.rb +20 -0
  179. data/lib/rails_admin/config/fields/types/paperclip.rb +46 -0
  180. data/lib/rails_admin/config/fields/types/password.rb +42 -0
  181. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +76 -0
  182. data/lib/rails_admin/config/fields/types/string.rb +43 -0
  183. data/lib/rails_admin/config/fields/types/text.rb +38 -0
  184. data/lib/rails_admin/config/fields/types/time.rb +36 -0
  185. data/lib/rails_admin/config/fields/types/timestamp.rb +18 -0
  186. data/lib/rails_admin/config/has_fields.rb +135 -0
  187. data/lib/rails_admin/config/has_groups.rb +23 -0
  188. data/lib/rails_admin/config/hideable.rb +28 -0
  189. data/lib/rails_admin/config/model.rb +82 -0
  190. data/lib/rails_admin/config/proxy.rb +40 -0
  191. data/lib/rails_admin/config/sections.rb +38 -0
  192. data/lib/rails_admin/config/sections/base.rb +19 -0
  193. data/lib/rails_admin/config/sections/create.rb +11 -0
  194. data/lib/rails_admin/config/sections/edit.rb +11 -0
  195. data/lib/rails_admin/config/sections/export.rb +11 -0
  196. data/lib/rails_admin/config/sections/list.rb +27 -0
  197. data/lib/rails_admin/config/sections/nested.rb +10 -0
  198. data/lib/rails_admin/config/sections/show.rb +10 -0
  199. data/lib/rails_admin/config/sections/update.rb +10 -0
  200. data/lib/rails_admin/engine.rb +21 -0
  201. data/lib/rails_admin/extension.rb +29 -0
  202. data/lib/rails_admin/extensions/cancan.rb +5 -0
  203. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +59 -0
  204. data/lib/rails_admin/extensions/history.rb +5 -0
  205. data/lib/rails_admin/extensions/history/auditing_adapter.rb +37 -0
  206. data/lib/rails_admin/extensions/history/history.rb +68 -0
  207. data/lib/rails_admin/extensions/paper_trail.rb +5 -0
  208. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +92 -0
  209. data/lib/rails_admin/generic_support.rb +18 -0
  210. data/lib/rails_admin/i18n_support.rb +43 -0
  211. data/lib/rails_admin/support/core_extensions.rb +44 -0
  212. data/lib/rails_admin/support/csv_converter.rb +109 -0
  213. data/lib/rails_admin/version.rb +6 -0
  214. data/lib/tasks/prepare_ci_env.rake +27 -0
  215. data/lib/tasks/rails_admin.rake +18 -0
  216. data/spec/ci.sh +2 -0
  217. data/spec/controllers/application_controller_spec.rb +30 -0
  218. data/spec/controllers/main_controller_spec.rb +114 -0
  219. data/spec/database_helpers.rb +15 -0
  220. data/spec/dummy_app/Gemfile +53 -0
  221. data/spec/dummy_app/Rakefile +7 -0
  222. data/spec/dummy_app/app/controllers/application_controller.rb +3 -0
  223. data/spec/dummy_app/app/controllers/players_controller.rb +5 -0
  224. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  225. data/spec/dummy_app/app/locales/models.en.yml +16 -0
  226. data/spec/dummy_app/app/models/abstract.rb +5 -0
  227. data/spec/dummy_app/app/models/ball.rb +8 -0
  228. data/spec/dummy_app/app/models/category.rb +3 -0
  229. data/spec/dummy_app/app/models/cms.rb +5 -0
  230. data/spec/dummy_app/app/models/cms/basic_page.rb +7 -0
  231. data/spec/dummy_app/app/models/cms/unscoped_page.rb +3 -0
  232. data/spec/dummy_app/app/models/comment.rb +3 -0
  233. data/spec/dummy_app/app/models/division.rb +8 -0
  234. data/spec/dummy_app/app/models/draft.rb +11 -0
  235. data/spec/dummy_app/app/models/fan.rb +5 -0
  236. data/spec/dummy_app/app/models/field_test.rb +20 -0
  237. data/spec/dummy_app/app/models/hardball.rb +2 -0
  238. data/spec/dummy_app/app/models/league.rb +10 -0
  239. data/spec/dummy_app/app/models/nested_field_test.rb +3 -0
  240. data/spec/dummy_app/app/models/player.rb +23 -0
  241. data/spec/dummy_app/app/models/rel_test.rb +6 -0
  242. data/spec/dummy_app/app/models/team.rb +25 -0
  243. data/spec/dummy_app/app/models/user.rb +21 -0
  244. data/spec/dummy_app/app/uploaders/carrierwave_uploader.rb +53 -0
  245. data/spec/dummy_app/app/views/layouts/application.html.erb +13 -0
  246. data/spec/dummy_app/app/views/players/show.html.haml +1 -0
  247. data/spec/dummy_app/config.ru +4 -0
  248. data/spec/dummy_app/config/application.rb +47 -0
  249. data/spec/dummy_app/config/boot.rb +6 -0
  250. data/spec/dummy_app/config/database.yml +22 -0
  251. data/spec/dummy_app/config/environment.rb +5 -0
  252. data/spec/dummy_app/config/environments/development.rb +27 -0
  253. data/spec/dummy_app/config/environments/production.rb +51 -0
  254. data/spec/dummy_app/config/environments/test.rb +39 -0
  255. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  256. data/spec/dummy_app/config/initializers/devise.rb +142 -0
  257. data/spec/dummy_app/config/initializers/inflections.rb +10 -0
  258. data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
  259. data/spec/dummy_app/config/initializers/quiet_assets.rb +10 -0
  260. data/spec/dummy_app/config/initializers/rails_admin.rb +11 -0
  261. data/spec/dummy_app/config/initializers/secret_token.rb +7 -0
  262. data/spec/dummy_app/config/initializers/session_store.rb +8 -0
  263. data/spec/dummy_app/config/routes.rb +10 -0
  264. data/spec/dummy_app/db/migrate/00000000000001_create_divisions_migration.rb +13 -0
  265. data/spec/dummy_app/db/migrate/00000000000002_create_drafts_migration.rb +19 -0
  266. data/spec/dummy_app/db/migrate/00000000000003_create_leagues_migration.rb +12 -0
  267. data/spec/dummy_app/db/migrate/00000000000004_create_players_migration.rb +20 -0
  268. data/spec/dummy_app/db/migrate/00000000000005_create_teams_migration.rb +22 -0
  269. data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +19 -0
  270. data/spec/dummy_app/db/migrate/00000000000007_create_histories_table.rb +16 -0
  271. data/spec/dummy_app/db/migrate/00000000000008_create_fans_migration.rb +12 -0
  272. data/spec/dummy_app/db/migrate/00000000000009_create_fans_teams_migration.rb +11 -0
  273. data/spec/dummy_app/db/migrate/00000000000010_add_revenue_to_team_migration.rb +9 -0
  274. data/spec/dummy_app/db/migrate/00000000000011_add_suspended_to_player_migration.rb +9 -0
  275. data/spec/dummy_app/db/migrate/00000000000012_add_avatar_columns_to_user.rb +16 -0
  276. data/spec/dummy_app/db/migrate/00000000000013_add_roles_to_user.rb +9 -0
  277. data/spec/dummy_app/db/migrate/00000000000014_add_color_to_team_migration.rb +9 -0
  278. data/spec/dummy_app/db/migrate/20101223222233_create_rel_tests.rb +15 -0
  279. data/spec/dummy_app/db/migrate/20110103205808_create_comments.rb +15 -0
  280. data/spec/dummy_app/db/migrate/20110123042530_rename_histories_to_rails_admin_histories.rb +9 -0
  281. data/spec/dummy_app/db/migrate/20110224184303_create_field_tests.rb +22 -0
  282. data/spec/dummy_app/db/migrate/20110328193014_create_cms_basic_pages.rb +14 -0
  283. data/spec/dummy_app/db/migrate/20110329183136_remove_league_id_from_teams.rb +9 -0
  284. data/spec/dummy_app/db/migrate/20110607152842_add_format_to_field_test.rb +9 -0
  285. data/spec/dummy_app/db/migrate/20110714095433_create_balls.rb +12 -0
  286. data/spec/dummy_app/db/migrate/20110831090841_add_protected_field_and_restricted_field_to_field_tests.rb +6 -0
  287. data/spec/dummy_app/db/migrate/20110901131551_change_division_primary_key.rb +19 -0
  288. data/spec/dummy_app/db/migrate/20110901142530_rename_league_id_foreign_key_on_divisions.rb +5 -0
  289. data/spec/dummy_app/db/migrate/20110901150912_set_primary_key_not_null_for_divisions.rb +21 -0
  290. data/spec/dummy_app/db/migrate/20110901154834_change_length_for_rails_admin_histories.rb +9 -0
  291. data/spec/dummy_app/db/migrate/20111103174459_create_unscoped_pages.rb +9 -0
  292. data/spec/dummy_app/db/migrate/20111108143642_add_dragonfly_and_carrierwave_to_field_tests.rb +7 -0
  293. data/spec/dummy_app/db/migrate/20111115041025_add_type_to_balls.rb +5 -0
  294. data/spec/dummy_app/db/migrate/20111123092549_create_nested_field_tests.rb +10 -0
  295. data/spec/dummy_app/db/migrate/20111130075338_add_dragonfly_asset_name_to_field_tests.rb +5 -0
  296. data/spec/dummy_app/db/migrate/20111215083258_create_foo_bars.rb +8 -0
  297. data/spec/dummy_app/db/migrate/20120117151733_add_custom_field_to_teams.rb +5 -0
  298. data/spec/dummy_app/db/migrate/20120118122004_add_categories.rb +7 -0
  299. data/spec/dummy_app/db/seeds.rb +18 -0
  300. data/spec/dummy_app/foo/Gemfile +17 -0
  301. data/spec/dummy_app/foo/MIT-LICENSE +20 -0
  302. data/spec/dummy_app/foo/README.rdoc +3 -0
  303. data/spec/dummy_app/foo/Rakefile +39 -0
  304. data/spec/dummy_app/foo/app/assets/javascripts/foo/application.js +9 -0
  305. data/spec/dummy_app/foo/app/assets/stylesheets/foo/application.css +7 -0
  306. data/spec/dummy_app/foo/app/controllers/foo/application_controller.rb +4 -0
  307. data/spec/dummy_app/foo/app/helpers/foo/application_helper.rb +4 -0
  308. data/spec/dummy_app/foo/app/models/foo/bar.rb +4 -0
  309. data/spec/dummy_app/foo/app/views/layouts/foo/application.html.erb +14 -0
  310. data/spec/dummy_app/foo/config/routes.rb +2 -0
  311. data/spec/dummy_app/foo/foo.gemspec +23 -0
  312. data/spec/dummy_app/foo/lib/foo.rb +4 -0
  313. data/spec/dummy_app/foo/lib/foo/engine.rb +5 -0
  314. data/spec/dummy_app/foo/lib/foo/version.rb +3 -0
  315. data/spec/dummy_app/foo/lib/tasks/foo_tasks.rake +4 -0
  316. data/spec/dummy_app/foo/script/rails +6 -0
  317. data/spec/dummy_app/foo/test/dummy/Rakefile +7 -0
  318. data/spec/dummy_app/foo/test/dummy/app/assets/javascripts/application.js +9 -0
  319. data/spec/dummy_app/foo/test/dummy/app/assets/stylesheets/application.css +7 -0
  320. data/spec/dummy_app/foo/test/dummy/app/controllers/application_controller.rb +3 -0
  321. data/spec/dummy_app/foo/test/dummy/app/helpers/application_helper.rb +2 -0
  322. data/spec/dummy_app/foo/test/dummy/app/views/layouts/application.html.erb +14 -0
  323. data/spec/dummy_app/foo/test/dummy/config.ru +4 -0
  324. data/spec/dummy_app/foo/test/dummy/config/application.rb +45 -0
  325. data/spec/dummy_app/foo/test/dummy/config/boot.rb +10 -0
  326. data/spec/dummy_app/foo/test/dummy/config/database.yml +25 -0
  327. data/spec/dummy_app/foo/test/dummy/config/environment.rb +5 -0
  328. data/spec/dummy_app/foo/test/dummy/config/environments/development.rb +30 -0
  329. data/spec/dummy_app/foo/test/dummy/config/environments/production.rb +60 -0
  330. data/spec/dummy_app/foo/test/dummy/config/environments/test.rb +39 -0
  331. data/spec/dummy_app/foo/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  332. data/spec/dummy_app/foo/test/dummy/config/initializers/inflections.rb +10 -0
  333. data/spec/dummy_app/foo/test/dummy/config/initializers/mime_types.rb +5 -0
  334. data/spec/dummy_app/foo/test/dummy/config/initializers/secret_token.rb +7 -0
  335. data/spec/dummy_app/foo/test/dummy/config/initializers/session_store.rb +8 -0
  336. data/spec/dummy_app/foo/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  337. data/spec/dummy_app/foo/test/dummy/config/locales/en.yml +5 -0
  338. data/spec/dummy_app/foo/test/dummy/config/routes.rb +4 -0
  339. data/spec/dummy_app/foo/test/dummy/db/schema.rb +21 -0
  340. data/spec/dummy_app/foo/test/dummy/public/404.html +26 -0
  341. data/spec/dummy_app/foo/test/dummy/public/422.html +26 -0
  342. data/spec/dummy_app/foo/test/dummy/public/500.html +26 -0
  343. data/spec/dummy_app/foo/test/dummy/public/favicon.ico +0 -0
  344. data/spec/dummy_app/foo/test/dummy/script/rails +6 -0
  345. data/spec/dummy_app/foo/test/fixtures/foo/bars.yml +11 -0
  346. data/spec/dummy_app/foo/test/foo_test.rb +7 -0
  347. data/spec/dummy_app/foo/test/integration/navigation_test.rb +10 -0
  348. data/spec/dummy_app/foo/test/test_helper.rb +10 -0
  349. data/spec/dummy_app/foo/test/unit/foo/bar_test.rb +9 -0
  350. data/spec/dummy_app/public/404.html +0 -0
  351. data/spec/dummy_app/public/favicon.ico +0 -0
  352. data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg +0 -0
  353. data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg.meta +1 -0
  354. data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg +0 -0
  355. data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg.meta +1 -0
  356. data/spec/dummy_app/public/system/paperclip_assets/1/original/Boston City Flow.jpg +0 -0
  357. data/spec/dummy_app/public/system/paperclip_assets/1/thumb/Boston City Flow.jpg +0 -0
  358. data/spec/dummy_app/public/system/paperclip_assets/3/original/Costa Rican Frog.jpg +0 -0
  359. data/spec/dummy_app/public/system/paperclip_assets/3/thumb/Costa Rican Frog.jpg +0 -0
  360. data/spec/dummy_app/public/system/paperclip_assets/6/original/liste-electorale.pdf +0 -0
  361. data/spec/dummy_app/public/system/paperclip_assets/6/thumb/liste-electorale.pdf +148 -0
  362. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/Boston_City_Flow.jpg +0 -0
  363. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/thumb_Boston_City_Flow.jpg +0 -0
  364. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/Costa_Rican_Frog.jpg +0 -0
  365. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/thumb_Costa_Rican_Frog.jpg +0 -0
  366. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/Pensive_Parakeet.jpg +0 -0
  367. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/thumb_Pensive_Parakeet.jpg +0 -0
  368. data/spec/dummy_app/script/rails +6 -0
  369. data/spec/factories.rb +66 -0
  370. data/spec/generator_helpers.rb +30 -0
  371. data/spec/generators/install_generator_spec.rb +85 -0
  372. data/spec/generators/uninstall_generator_spec.rb +35 -0
  373. data/spec/helpers/application_helper_spec.rb +212 -0
  374. data/spec/lib/abstract_object_spec.rb +119 -0
  375. data/spec/lib/custom_field.rb +7 -0
  376. data/spec/lib/rails_admin_spec.rb +301 -0
  377. data/spec/requests/actions.rb +161 -0
  378. data/spec/requests/authorization/cancan_spec.rb +350 -0
  379. data/spec/requests/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +25 -0
  380. data/spec/requests/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +57 -0
  381. data/spec/requests/basic/create/rails_admin_basic_create_spec.rb +143 -0
  382. data/spec/requests/basic/create/rails_admin_namespaced_model_create_spec.rb +39 -0
  383. data/spec/requests/basic/delete/rails_admin_basic_delete_spec.rb +27 -0
  384. data/spec/requests/basic/destroy/rails_admin_basic_destroy_spec.rb +56 -0
  385. data/spec/requests/basic/edit/rails_admin_basic_edit_spec.rb +109 -0
  386. data/spec/requests/basic/export/rails_admin_basic_export_spec.rb +87 -0
  387. data/spec/requests/basic/list/rails_admin_basic_list_spec.rb +417 -0
  388. data/spec/requests/basic/new/rails_admin_basic_new_spec.rb +74 -0
  389. data/spec/requests/basic/new/rails_admin_namespaced_model_new_spec.rb +31 -0
  390. data/spec/requests/basic/show/rails_admin_basic_show_spec.rb +92 -0
  391. data/spec/requests/basic/update/rails_admin_basic_update_spec.rb +191 -0
  392. data/spec/requests/config/edit/rails_admin_config_edit_spec.rb +913 -0
  393. data/spec/requests/config/list/rails_admin_config_list_spec.rb +509 -0
  394. data/spec/requests/config/navigation/rails_admin_config_navigation_spec.rb +107 -0
  395. data/spec/requests/config/rails_admin_config_spec.rb +227 -0
  396. data/spec/requests/config/show/rails_admin_config_show_spec.rb +282 -0
  397. data/spec/requests/history/rails_admin_history_spec.rb +66 -0
  398. data/spec/requests/rails_admin_spec.rb +146 -0
  399. data/spec/requests/relation_spec.rb +26 -0
  400. data/spec/spec_helper.rb +91 -0
  401. metadata +967 -0
@@ -0,0 +1,293 @@
1
+ require 'rails_admin/config/model'
2
+ require 'rails_admin/config/sections/list'
3
+ require 'active_support/core_ext/class/attribute_accessors'
4
+
5
+ module RailsAdmin
6
+ module Config
7
+ # RailsAdmin is setup to try and authenticate with warden
8
+ # If warden is found, then it will try to authenticate
9
+ #
10
+ # This is valid for custom warden setups, and also devise
11
+ # If you're using the admin setup for devise, you should set RailsAdmin to use the admin
12
+ #
13
+ # @see RailsAdmin::Config.authenticate_with
14
+ # @see RailsAdmin::Config.authorize_with
15
+ DEFAULT_AUTHENTICATION = Proc.new do
16
+ request.env['warden'].try(:authenticate!)
17
+ end
18
+
19
+ DEFAULT_ATTR_ACCESSIBLE_ROLE = Proc.new { :default }
20
+
21
+ DEFAULT_AUTHORIZE = Proc.new {}
22
+
23
+ DEFAULT_AUDIT = Proc.new {}
24
+
25
+ DEFAULT_CURRENT_USER = Proc.new do
26
+ request.env["warden"].try(:user) || respond_to?(:current_user) && current_user
27
+ end
28
+
29
+
30
+ class << self
31
+ # Application title, can be an array of two elements
32
+ attr_accessor :main_app_name
33
+
34
+ # Configuration option to specify which models you want to exclude.
35
+ attr_accessor :excluded_models
36
+
37
+ # Configuration option to specify a whitelist of models you want to RailsAdmin to work with.
38
+ # The excluded_models list applies against the whitelist as well and further reduces the models
39
+ # RailsAdmin will use.
40
+ # If included_models is left empty ([]), then RailsAdmin will automatically use all the models
41
+ # in your application (less any excluded_models you may have specified).
42
+ attr_accessor :included_models
43
+
44
+ # Fields to be hidden in show, create and update views
45
+ attr_accessor :default_hidden_fields
46
+
47
+ # Default items per page value used if a model level option has not
48
+ # been configured
49
+ attr_accessor :default_items_per_page
50
+
51
+ attr_reader :default_search_operator
52
+
53
+ # Configuration option to specify which method names will be searched for
54
+ # to be used as a label for object records. This defaults to [:name, :title]
55
+ attr_accessor :label_methods
56
+
57
+ # hide blank fields in show view if true
58
+ attr_accessor :compact_show_view
59
+
60
+ # Set the max width of columns in list view before a new set is created
61
+ attr_accessor :total_columns_width
62
+
63
+ # Stores model configuration objects in a hash identified by model's class
64
+ # name.
65
+ #
66
+ # @see RailsAdmin::Config.model
67
+ attr_reader :registry
68
+
69
+ # Setup authentication to be run as a before filter
70
+ # This is run inside the controller instance so you can setup any authentication you need to
71
+ #
72
+ # By default, the authentication will run via warden if available
73
+ # and will run the default.
74
+ #
75
+ # If you use devise, this will authenticate the same as _authenticate_user!_
76
+ #
77
+ # @example Devise admin
78
+ # RailsAdmin.config do |config|
79
+ # config.authenticate_with do
80
+ # authenticate_admin!
81
+ # end
82
+ # end
83
+ #
84
+ # @example Custom Warden
85
+ # RailsAdmin.config do |config|
86
+ # config.authenticate_with do
87
+ # warden.authenticate! :scope => :paranoid
88
+ # end
89
+ # end
90
+ #
91
+ # @see RailsAdmin::Config::DEFAULT_AUTHENTICATION
92
+ def authenticate_with(&blk)
93
+ @authenticate = blk if blk
94
+ @authenticate || DEFAULT_AUTHENTICATION
95
+ end
96
+
97
+
98
+ def attr_accessible_role(&blk)
99
+ @attr_accessible_role = blk if blk
100
+ @attr_accessible_role || DEFAULT_ATTR_ACCESSIBLE_ROLE
101
+ end
102
+
103
+ # Setup auditing/history/versioning provider that observe objects lifecycle
104
+ def audit_with(*args, &block)
105
+ extension = args.shift
106
+ if(extension)
107
+ @audit = Proc.new {
108
+ @auditing_adapter = RailsAdmin::AUDITING_ADAPTERS[extension].new(*([self] + args).compact)
109
+ }
110
+ else
111
+ @audit = block if block
112
+ end
113
+ @audit || DEFAULT_AUDIT
114
+ end
115
+
116
+ # Setup authorization to be run as a before filter
117
+ # This is run inside the controller instance so you can setup any authorization you need to.
118
+ #
119
+ # By default, there is no authorization.
120
+ #
121
+ # @example Custom
122
+ # RailsAdmin.config do |config|
123
+ # config.authorize_with do
124
+ # redirect_to root_path unless warden.user.is_admin?
125
+ # end
126
+ # end
127
+ #
128
+ # To use an authorization adapter, pass the name of the adapter. For example,
129
+ # to use with CanCan[https://github.com/ryanb/cancan], pass it like this.
130
+ #
131
+ # @example CanCan
132
+ # RailsAdmin.config do |config|
133
+ # config.authorize_with :cancan
134
+ # end
135
+ #
136
+ # See the wiki[https://github.com/sferik/rails_admin/wiki] for more on authorization.
137
+ #
138
+ # @see RailsAdmin::Config::DEFAULT_AUTHORIZE
139
+ def authorize_with(*args, &block)
140
+ extension = args.shift
141
+ if(extension)
142
+ @authorize = Proc.new {
143
+ @authorization_adapter = RailsAdmin::AUTHORIZATION_ADAPTERS[extension].new(*([self] + args).compact)
144
+ }
145
+ else
146
+ @authorize = block if block
147
+ end
148
+ @authorize || DEFAULT_AUTHORIZE
149
+ end
150
+
151
+ # Setup configuration using an extension-provided ConfigurationAdapter
152
+ #
153
+ # @example Custom configuration for role-based setup.
154
+ # RailsAdmin.config do |config|
155
+ # config.configure_with(:custom) do |config|
156
+ # config.models = ['User', 'Comment']
157
+ # config.roles = {
158
+ # 'Admin' => :all,
159
+ # 'User' => ['User']
160
+ # }
161
+ # end
162
+ # end
163
+ def configure_with(extension)
164
+ configuration = RailsAdmin::CONFIGURATION_ADAPTERS[extension].new
165
+ yield(configuration) if block_given?
166
+ end
167
+
168
+ # Setup a different method to determine the current user or admin logged in.
169
+ # This is run inside the controller instance and made available as a helper.
170
+ #
171
+ # By default, _request.env["warden"].user_ or _current_user_ will be used.
172
+ #
173
+ # @example Custom
174
+ # RailsAdmin.config do |config|
175
+ # config.current_user_method do
176
+ # current_admin
177
+ # end
178
+ # end
179
+ #
180
+ # @see RailsAdmin::Config::DEFAULT_CURRENT_USER
181
+ def current_user_method(&block)
182
+ @current_user = block if block
183
+ @current_user || DEFAULT_CURRENT_USER
184
+ end
185
+
186
+ def default_search_operator=(operator)
187
+ if %w{ default like starts_with ends_with is = }.include? operator
188
+ @default_search_operator = operator
189
+ else
190
+ raise ArgumentError, "Search operator '#{operator}' not supported"
191
+ end
192
+ end
193
+
194
+ # Loads a model configuration instance from the registry or registers
195
+ # a new one if one is yet to be added.
196
+ #
197
+ # First argument can be an instance of requested model, its class object,
198
+ # its class name as a string or symbol or a RailsAdmin::AbstractModel
199
+ # instance.
200
+ #
201
+ # If a block is given it is evaluated in the context of configuration instance.
202
+ #
203
+ # Returns given model's configuration
204
+ #
205
+ # @see RailsAdmin::Config.registry
206
+ def model(entity, &block)
207
+ key = begin
208
+ if entity.kind_of?(RailsAdmin::AbstractModel)
209
+ entity.model.name.to_sym
210
+ elsif entity.kind_of?(Class)
211
+ entity.name.to_sym
212
+ elsif entity.kind_of?(String) || entity.kind_of?(Symbol)
213
+ entity.to_sym
214
+ else
215
+ entity.class.name.to_sym
216
+ end
217
+ end
218
+ config = @registry[key] ||= RailsAdmin::Config::Model.new(entity)
219
+ config.instance_eval(&block) if block
220
+ config
221
+ end
222
+
223
+ def default_hidden_fields=(fields)
224
+ if fields.is_a?(Array)
225
+ @default_hidden_fields = {}
226
+ @default_hidden_fields[:edit] = fields
227
+ @default_hidden_fields[:show] = fields
228
+ else
229
+ @default_hidden_fields = fields
230
+ end
231
+ end
232
+
233
+ # Returns action configuration object
234
+ def actions(&block)
235
+ RailsAdmin::Config::Actions.instance_eval(&block) if block
236
+ end
237
+
238
+ # Returns all model configurations
239
+ #
240
+ # If a block is given it is evaluated in the context of configuration
241
+ # instances.
242
+ #
243
+ # @see RailsAdmin::Config.registry
244
+ def models(&block)
245
+ RailsAdmin::AbstractModel.all.map{|m| model(m, &block)}
246
+ end
247
+
248
+ # Reset all configurations to defaults.
249
+ #
250
+ # @see RailsAdmin::Config.registry
251
+ def reset
252
+ @compact_show_view = true
253
+ @authenticate = nil
254
+ @authorize = nil
255
+ @audit = nil
256
+ @current_user = nil
257
+ @default_hidden_fields = {}
258
+ @default_hidden_fields[:edit] = [:id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
259
+ @default_hidden_fields[:show] = [:id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
260
+ @default_items_per_page = 20
261
+ @default_search_operator = 'default'
262
+ @attr_accessible_role = nil
263
+ @excluded_models = []
264
+ @included_models = []
265
+ @total_columns_width = 697
266
+ @label_methods = [:name, :title]
267
+ @main_app_name = Proc.new { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
268
+ @registry = {}
269
+ RailsAdmin::Config::Actions.reset
270
+ end
271
+
272
+ # Reset a provided model's configuration.
273
+ #
274
+ # @see RailsAdmin::Config.registry
275
+ def reset_model(model)
276
+ key = model.kind_of?(Class) ? model.name.to_sym : model.to_sym
277
+ @registry.delete(key)
278
+ end
279
+
280
+ # Get all models that are configured as visible sorted by their weight and label.
281
+ #
282
+ # @see RailsAdmin::Config::Hideable
283
+ def visible_models
284
+ self.models.select {|m| m.visible? }.sort do |a, b|
285
+ (weight_order = a.weight <=> b.weight) == 0 ? a.label.downcase <=> b.label.downcase : weight_order
286
+ end
287
+ end
288
+ end
289
+
290
+ # Set default values for configuration options on load
291
+ self.reset
292
+ end
293
+ end
@@ -0,0 +1,121 @@
1
+ module RailsAdmin
2
+ module Config
3
+ module Actions
4
+
5
+ class << self
6
+ def all(scope = nil, bindings = {})
7
+ if scope.is_a?(Hash)
8
+ bindings = scope
9
+ scope = :all
10
+ end
11
+ scope ||= :all
12
+ init_actions!
13
+ actions = case scope
14
+ when :all
15
+ @@actions
16
+ when :root
17
+ @@actions.select(&:root?)
18
+ when :collection
19
+ @@actions.select(&:collection?)
20
+ when :bulkable
21
+ @@actions.select(&:bulkable?)
22
+ when :member
23
+ @@actions.select(&:member?)
24
+ end
25
+
26
+ bindings[:controller] ? actions.map{ |action| action.with(bindings) }.select(&:visible?) : actions
27
+ end
28
+
29
+ def find custom_key, bindings = {}
30
+ init_actions!
31
+ action = @@actions.find{ |a| a.custom_key == custom_key }
32
+ bindings[:controller] ? (action && action.with(bindings).try(:visible?) && action || nil) : action
33
+ end
34
+
35
+ def collection key, parent_class = :base, &block
36
+ add_action key, parent_class, :collection, &block
37
+ end
38
+
39
+ def member key, parent_class = :base, &block
40
+ add_action key, parent_class, :member, &block
41
+ end
42
+
43
+ def root key, parent_class = :base, &block
44
+ add_action key, parent_class, :root, &block
45
+ end
46
+
47
+ def add_action key, parent_class, parent, &block
48
+ a = "RailsAdmin::Config::Actions::#{parent_class.to_s.camelize}".constantize.new
49
+ a.instance_eval(%{
50
+ #{parent} true
51
+ def key
52
+ :#{key}
53
+ end
54
+ })
55
+ a.instance_eval(&block) if block
56
+ unless a.custom_key.in?((@@actions || []).map(&:custom_key))
57
+ (@@actions ||= []) << a
58
+ else
59
+ raise "Action #{a.custom_key} already exist. Please change its custom key"
60
+ end
61
+ end
62
+
63
+ def reset
64
+ @@actions = nil
65
+ end
66
+
67
+ def register(name, klass = nil)
68
+ if klass == nil && name.kind_of?(Class)
69
+ klass = name
70
+ name = klass.to_s.demodulize.underscore.to_sym
71
+ end
72
+
73
+ instance_eval %{
74
+ def #{name}(&block)
75
+ action = #{klass}.new
76
+ action.instance_eval &block if block
77
+ unless action.custom_key.in?((@@actions || []).map(&:custom_key))
78
+ (@@actions ||= []) << action
79
+ else
80
+ raise "Action \#{action.custom_key} already exist. Please change its custom key"
81
+ end
82
+ end
83
+ }
84
+ end
85
+
86
+ private
87
+
88
+ def init_actions!
89
+ @@actions ||= [
90
+ Dashboard.new,
91
+ Index.new,
92
+ Show.new,
93
+ New.new,
94
+ Edit.new,
95
+ Export.new,
96
+ Delete.new,
97
+ BulkDelete.new,
98
+ HistoryShow.new,
99
+ HistoryIndex.new,
100
+ ShowInApp.new,
101
+ ]
102
+ end
103
+
104
+ end
105
+ end
106
+ end
107
+ end
108
+
109
+ require 'rails_admin/config/actions/base'
110
+ require 'rails_admin/config/actions/dashboard'
111
+ require 'rails_admin/config/actions/index'
112
+ require 'rails_admin/config/actions/show'
113
+ require 'rails_admin/config/actions/show_in_app'
114
+ require 'rails_admin/config/actions/history_show'
115
+ require 'rails_admin/config/actions/history_index'
116
+ require 'rails_admin/config/actions/new'
117
+ require 'rails_admin/config/actions/edit'
118
+ require 'rails_admin/config/actions/export'
119
+ require 'rails_admin/config/actions/delete'
120
+ require 'rails_admin/config/actions/bulk_delete'
121
+
@@ -0,0 +1,105 @@
1
+ require 'rails_admin/config/base'
2
+ require 'rails_admin/config/hideable'
3
+
4
+ module RailsAdmin
5
+ module Config
6
+ module Actions
7
+ class Base < RailsAdmin::Config::Base
8
+ include RailsAdmin::Config::Hideable
9
+
10
+ # Should the action be visible
11
+ register_instance_option :visible? do
12
+ true
13
+ end
14
+
15
+ # Is the action acting on the root level (Example: /admin/contact)
16
+ register_instance_option :root? do
17
+ false
18
+ end
19
+
20
+ # Is the action on a model scope (Example: /admin/teams/export)
21
+ register_instance_option :collection? do
22
+ false
23
+ end
24
+
25
+ # Is the action on an object scope (Example: /admin/teams/1/edit)
26
+ register_instance_option :member? do
27
+ false
28
+ end
29
+
30
+ # This block is evaluated in the context of the controller when action is called
31
+ # You can access:
32
+ # - @abstract_model & @model_config if your on a model or object scope
33
+ # - @object if you're on an object scope
34
+ register_instance_option :controller do
35
+ Proc.new do
36
+ render :action => @action.template_name
37
+ end
38
+ end
39
+
40
+ # Model scoped actions only. You will need to handle params[:bulk_ids] in controller
41
+ register_instance_option :bulkable? do
42
+ false
43
+ end
44
+
45
+ # View partial name (called in default :controller block)
46
+ register_instance_option :template_name do
47
+ key.to_sym
48
+ end
49
+
50
+ # For Cancan and the like
51
+ register_instance_option :authorization_key do
52
+ key.to_sym
53
+ end
54
+
55
+ # List of methods allowed. Note that you are responsible for correctly handling them in :controller block
56
+ register_instance_option :http_methods do
57
+ [:get]
58
+ end
59
+
60
+ # Url fragment
61
+ register_instance_option :route_fragment do
62
+ custom_key.to_s
63
+ end
64
+
65
+ # Controller action name
66
+ register_instance_option :action_name do
67
+ custom_key.to_sym
68
+ end
69
+
70
+ # I18n key
71
+ register_instance_option :i18n_key do
72
+ key
73
+ end
74
+
75
+ # User should override only custom_key (action name and route fragment change, allows for duplicate actions)
76
+ register_instance_option :custom_key do
77
+ key
78
+ end
79
+
80
+ # Breadcrumb parent
81
+ register_instance_option :breadcrumb_parent do
82
+ case
83
+ when root?
84
+ :dashboard
85
+ when collection?
86
+ :index
87
+ when member?
88
+ :show
89
+ end
90
+ end
91
+
92
+
93
+ # Off API.
94
+
95
+ def key
96
+ self.class.key
97
+ end
98
+
99
+ def self.key
100
+ self.name.to_s.demodulize.underscore.to_sym
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end