rails_admin 2.0.2 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -16
  3. data/README.md +44 -44
  4. data/Rakefile +15 -2
  5. data/app/assets/javascripts/rails_admin/application.js.erb +29 -0
  6. data/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
  7. data/app/assets/stylesheets/rails_admin/custom/mixins.scss +1 -1
  8. data/app/assets/stylesheets/rails_admin/custom/variables.scss +1 -1
  9. data/app/controllers/rails_admin/application_controller.rb +6 -3
  10. data/app/controllers/rails_admin/main_controller.rb +55 -50
  11. data/app/helpers/rails_admin/application_helper.rb +129 -63
  12. data/app/helpers/rails_admin/form_builder.rb +25 -13
  13. data/app/helpers/rails_admin/main_helper.rb +18 -41
  14. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
  15. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
  16. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
  17. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
  18. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
  19. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
  20. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
  21. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
  22. data/app/views/layouts/rails_admin/_head.html.erb +29 -0
  23. data/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  24. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
  25. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  26. data/app/views/layouts/rails_admin/application.html.erb +27 -0
  27. data/app/views/layouts/rails_admin/content.html.erb +22 -0
  28. data/app/views/layouts/rails_admin/modal.js.erb +7 -0
  29. data/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
  30. data/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
  31. data/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
  32. data/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
  33. data/app/views/rails_admin/main/{_form_ck_editor.html.haml → _form_ck_editor.html.erb} +3 -3
  34. data/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
  35. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
  36. data/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
  37. data/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
  38. data/app/views/rails_admin/main/_form_field.html.erb +1 -0
  39. data/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
  40. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +49 -0
  41. data/app/views/rails_admin/main/_form_filtering_select.html.erb +33 -0
  42. data/app/views/rails_admin/main/_form_froala.html.erb +8 -0
  43. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
  44. data/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
  45. data/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
  46. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +32 -0
  47. data/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
  48. data/app/views/rails_admin/main/_form_text.html.erb +1 -0
  49. data/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
  50. data/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
  51. data/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
  52. data/app/views/rails_admin/main/dashboard.html.erb +64 -0
  53. data/app/views/rails_admin/main/delete.html.erb +21 -0
  54. data/app/views/rails_admin/main/edit.html.erb +3 -0
  55. data/app/views/rails_admin/main/export.html.erb +149 -0
  56. data/app/views/rails_admin/main/history.html.erb +80 -0
  57. data/app/views/rails_admin/main/index.html.erb +184 -0
  58. data/app/views/rails_admin/main/new.html.erb +3 -0
  59. data/app/views/rails_admin/main/show.html.erb +30 -0
  60. data/config/initializers/active_record_extensions.rb +25 -0
  61. data/config/initializers/mongoid_extensions.rb +3 -1
  62. data/config/locales/rails_admin.en.yml +8 -4
  63. data/config/routes.rb +2 -0
  64. data/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  65. data/lib/generators/rails_admin/install_generator.rb +117 -5
  66. data/lib/generators/rails_admin/templates/initializer.erb +2 -1
  67. data/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  68. data/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  69. data/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  70. data/lib/generators/rails_admin/utils.rb +2 -0
  71. data/lib/rails_admin/abstract_model.rb +35 -15
  72. data/lib/rails_admin/adapters/active_record/association.rb +31 -2
  73. data/lib/rails_admin/adapters/active_record/object_extension.rb +31 -0
  74. data/lib/rails_admin/adapters/active_record/property.rb +4 -2
  75. data/lib/rails_admin/adapters/active_record.rb +67 -29
  76. data/lib/rails_admin/adapters/composite_primary_keys/association.rb +45 -0
  77. data/lib/rails_admin/adapters/composite_primary_keys.rb +40 -0
  78. data/lib/rails_admin/adapters/mongoid/association.rb +52 -13
  79. data/lib/rails_admin/adapters/mongoid/bson.rb +6 -5
  80. data/lib/rails_admin/adapters/mongoid/extension.rb +2 -0
  81. data/lib/rails_admin/adapters/mongoid/object_extension.rb +34 -0
  82. data/lib/rails_admin/adapters/mongoid/property.rb +7 -5
  83. data/lib/rails_admin/adapters/mongoid.rb +33 -23
  84. data/lib/rails_admin/config/actions/base.rb +11 -4
  85. data/lib/rails_admin/config/actions/bulk_delete.rb +4 -2
  86. data/lib/rails_admin/config/actions/dashboard.rb +16 -9
  87. data/lib/rails_admin/config/actions/delete.rb +11 -9
  88. data/lib/rails_admin/config/actions/edit.rb +13 -7
  89. data/lib/rails_admin/config/actions/export.rb +6 -3
  90. data/lib/rails_admin/config/actions/history_index.rb +4 -2
  91. data/lib/rails_admin/config/actions/history_show.rb +4 -2
  92. data/lib/rails_admin/config/actions/index.rb +9 -8
  93. data/lib/rails_admin/config/actions/new.rb +18 -10
  94. data/lib/rails_admin/config/actions/show.rb +3 -1
  95. data/lib/rails_admin/config/actions/show_in_app.rb +9 -3
  96. data/lib/rails_admin/config/actions.rb +6 -4
  97. data/lib/rails_admin/config/configurable.rb +4 -2
  98. data/lib/rails_admin/config/const_load_suppressor.rb +78 -0
  99. data/lib/rails_admin/config/fields/association.rb +21 -11
  100. data/lib/rails_admin/config/fields/base.rb +86 -32
  101. data/lib/rails_admin/config/fields/factories/action_text.rb +2 -0
  102. data/lib/rails_admin/config/fields/factories/active_storage.rb +5 -1
  103. data/lib/rails_admin/config/fields/factories/association.rb +12 -13
  104. data/lib/rails_admin/config/fields/factories/carrierwave.rb +6 -2
  105. data/lib/rails_admin/config/fields/factories/devise.rb +6 -2
  106. data/lib/rails_admin/config/fields/factories/dragonfly.rb +6 -2
  107. data/lib/rails_admin/config/fields/factories/enum.rb +2 -0
  108. data/lib/rails_admin/config/fields/factories/paperclip.rb +6 -2
  109. data/lib/rails_admin/config/fields/factories/password.rb +2 -0
  110. data/lib/rails_admin/config/fields/factories/shrine.rb +3 -1
  111. data/lib/rails_admin/config/fields/group.rb +3 -2
  112. data/lib/rails_admin/config/fields/types/action_text.rb +7 -1
  113. data/lib/rails_admin/config/fields/types/active_record_enum.rb +4 -0
  114. data/lib/rails_admin/config/fields/types/active_storage.rb +23 -3
  115. data/lib/rails_admin/config/fields/types/all.rb +4 -0
  116. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +9 -15
  117. data/lib/rails_admin/config/fields/types/boolean.rb +38 -8
  118. data/lib/rails_admin/config/fields/types/bson_object_id.rb +2 -0
  119. data/lib/rails_admin/config/fields/types/carrierwave.rb +3 -0
  120. data/lib/rails_admin/config/fields/types/citext.rb +15 -0
  121. data/lib/rails_admin/config/fields/types/ck_editor.rb +2 -0
  122. data/lib/rails_admin/config/fields/types/code_mirror.rb +2 -0
  123. data/lib/rails_admin/config/fields/types/color.rb +8 -2
  124. data/lib/rails_admin/config/fields/types/composite_keys_belongs_to_association.rb +31 -0
  125. data/lib/rails_admin/config/fields/types/date.rb +12 -6
  126. data/lib/rails_admin/config/fields/types/datetime.rb +36 -21
  127. data/lib/rails_admin/config/fields/types/decimal.rb +11 -2
  128. data/lib/rails_admin/config/fields/types/dragonfly.rb +5 -1
  129. data/lib/rails_admin/config/fields/types/enum.rb +16 -3
  130. data/lib/rails_admin/config/fields/types/file_upload.rb +11 -4
  131. data/lib/rails_admin/config/fields/types/float.rb +11 -2
  132. data/lib/rails_admin/config/fields/types/froala.rb +2 -0
  133. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +2 -0
  134. data/lib/rails_admin/config/fields/types/has_many_association.rb +7 -5
  135. data/lib/rails_admin/config/fields/types/has_one_association.rb +12 -14
  136. data/lib/rails_admin/config/fields/types/hidden.rb +2 -0
  137. data/lib/rails_admin/config/fields/types/inet.rb +2 -0
  138. data/lib/rails_admin/config/fields/types/integer.rb +4 -6
  139. data/lib/rails_admin/config/fields/types/json.rb +2 -0
  140. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +30 -2
  141. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +3 -0
  142. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +8 -4
  143. data/lib/rails_admin/config/fields/types/numeric.rb +24 -0
  144. data/lib/rails_admin/config/fields/types/paperclip.rb +2 -0
  145. data/lib/rails_admin/config/fields/types/password.rb +2 -0
  146. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +5 -2
  147. data/lib/rails_admin/config/fields/types/serialized.rb +2 -0
  148. data/lib/rails_admin/config/fields/types/shrine.rb +15 -11
  149. data/lib/rails_admin/config/fields/types/simple_mde.rb +2 -0
  150. data/lib/rails_admin/config/fields/types/string.rb +3 -1
  151. data/lib/rails_admin/config/fields/types/string_like.rb +6 -0
  152. data/lib/rails_admin/config/fields/types/text.rb +2 -0
  153. data/lib/rails_admin/config/fields/types/time.rb +16 -4
  154. data/lib/rails_admin/config/fields/types/timestamp.rb +2 -4
  155. data/lib/rails_admin/config/fields/types/uuid.rb +2 -0
  156. data/lib/rails_admin/config/fields/types/wysihtml5.rb +2 -0
  157. data/lib/rails_admin/config/fields/types.rb +3 -1
  158. data/lib/rails_admin/config/fields.rb +6 -2
  159. data/lib/rails_admin/config/groupable.rb +2 -0
  160. data/lib/rails_admin/config/has_description.rb +2 -0
  161. data/lib/rails_admin/config/has_fields.rb +12 -7
  162. data/lib/rails_admin/config/has_groups.rb +2 -0
  163. data/lib/rails_admin/config/hideable.rb +3 -1
  164. data/lib/rails_admin/config/inspectable.rb +3 -3
  165. data/lib/rails_admin/config/lazy_model.rb +13 -7
  166. data/lib/rails_admin/config/model.rb +22 -10
  167. data/lib/rails_admin/config/proxyable/proxy.rb +2 -0
  168. data/lib/rails_admin/config/proxyable.rb +2 -0
  169. data/lib/rails_admin/config/sections/base.rb +4 -3
  170. data/lib/rails_admin/config/sections/create.rb +2 -0
  171. data/lib/rails_admin/config/sections/edit.rb +2 -0
  172. data/lib/rails_admin/config/sections/export.rb +2 -0
  173. data/lib/rails_admin/config/sections/list.rb +14 -19
  174. data/lib/rails_admin/config/sections/modal.rb +2 -0
  175. data/lib/rails_admin/config/sections/nested.rb +2 -0
  176. data/lib/rails_admin/config/sections/show.rb +2 -0
  177. data/lib/rails_admin/config/sections/update.rb +2 -0
  178. data/lib/rails_admin/config/sections.rb +3 -1
  179. data/lib/rails_admin/config.rb +80 -47
  180. data/lib/rails_admin/engine.rb +43 -32
  181. data/lib/rails_admin/extension.rb +8 -14
  182. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +25 -6
  183. data/lib/rails_admin/extensions/cancancan.rb +2 -0
  184. data/lib/rails_admin/extensions/controller_extension.rb +2 -0
  185. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +62 -35
  186. data/lib/rails_admin/extensions/paper_trail.rb +2 -0
  187. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +8 -7
  188. data/lib/rails_admin/extensions/pundit.rb +2 -0
  189. data/lib/rails_admin/support/csv_converter.rb +14 -15
  190. data/lib/rails_admin/support/datetime.rb +50 -85
  191. data/lib/rails_admin/support/es_module_processor.rb +23 -0
  192. data/lib/rails_admin/support/hash_helper.rb +8 -5
  193. data/lib/rails_admin/version.rb +41 -2
  194. data/lib/rails_admin.rb +7 -5
  195. data/lib/tasks/rails_admin.rake +19 -8
  196. data/package.json +30 -0
  197. data/src/rails_admin/base.js +29 -0
  198. data/src/rails_admin/filter-box.js +360 -0
  199. data/src/rails_admin/filtering-multiselect.js +389 -0
  200. data/src/rails_admin/filtering-select.js +308 -0
  201. data/src/rails_admin/i18n.js +18 -0
  202. data/src/rails_admin/jquery.js +3 -0
  203. data/src/rails_admin/nested-form-hooks.js +110 -0
  204. data/src/rails_admin/remote-form.js +193 -0
  205. data/src/rails_admin/sidescroll.js +20 -0
  206. data/src/rails_admin/styles/base/theming.scss +342 -0
  207. data/src/rails_admin/styles/base/variables.scss +3 -0
  208. data/src/rails_admin/styles/base.scss +27 -0
  209. data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  210. data/src/rails_admin/styles/filtering-select.scss +70 -0
  211. data/src/rails_admin/styles/widgets.scss +26 -0
  212. data/src/rails_admin/ui.js +176 -0
  213. data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  214. data/src/rails_admin/widgets.js +507 -0
  215. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  216. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  217. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  218. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
  219. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  220. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  221. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  222. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  223. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  224. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  225. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  226. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  227. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  228. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  229. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  230. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  231. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  232. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  233. data/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
  234. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  251. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  252. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  253. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  254. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  255. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  256. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  257. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  258. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  259. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  260. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  261. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  262. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  263. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  264. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  265. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  266. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  267. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  268. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  269. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  270. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  271. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  272. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  273. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  274. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  275. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  276. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  277. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  278. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  279. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  280. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  281. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  282. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  283. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  284. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  285. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  286. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  287. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  288. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  289. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  290. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  291. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  292. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  293. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  294. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  295. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  296. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  297. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  298. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  299. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  300. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  301. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  302. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  303. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  304. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  305. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  306. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  307. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  308. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  309. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  310. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  311. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  312. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  313. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  314. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  315. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  316. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  317. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  318. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +6291 -2282
  319. metadata +182 -330
  320. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  321. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  322. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  323. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  324. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  325. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  326. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  327. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  328. data/app/assets/images/rails_admin/calendar.png +0 -0
  329. data/app/assets/images/rails_admin/clock.png +0 -0
  330. data/app/assets/images/rails_admin/logo.png +0 -0
  331. data/app/assets/images/rails_admin/magnifier.png +0 -0
  332. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  333. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  334. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  335. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  336. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  337. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  338. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -226
  339. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  340. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
  341. data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
  342. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
  343. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  344. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
  345. data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
  346. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -20
  347. data/app/assets/javascripts/rails_admin/ui.js +0 -135
  348. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  349. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  350. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  351. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  352. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  353. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  354. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  355. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  356. data/app/assets/stylesheets/rails_admin/base/theming.scss +0 -341
  357. data/app/assets/stylesheets/rails_admin/base/variables.scss +0 -1
  358. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  359. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
  360. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
  361. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
  362. data/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.scss +0 -0
  363. data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.scss +0 -133
  364. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  365. data/app/assets/stylesheets/rails_admin/themes/default/mixins.scss +0 -8
  366. data/app/assets/stylesheets/rails_admin/themes/default/theming.scss +0 -11
  367. data/app/assets/stylesheets/rails_admin/themes/default/variables.scss +0 -12
  368. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  369. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  370. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  371. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  372. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  373. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  374. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  375. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  376. data/app/views/layouts/rails_admin/_head.html.haml +0 -7
  377. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  378. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  379. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
  380. data/app/views/layouts/rails_admin/application.html.haml +0 -16
  381. data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
  382. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  383. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  384. data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
  385. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  386. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  387. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  388. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  389. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -18
  390. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  391. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  392. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +0 -48
  393. data/app/views/rails_admin/main/_form_filtering_select.html.haml +0 -37
  394. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  395. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
  396. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  397. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  398. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
  399. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  400. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  401. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  402. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  403. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  404. data/app/views/rails_admin/main/dashboard.html.haml +0 -34
  405. data/app/views/rails_admin/main/delete.html.haml +0 -18
  406. data/app/views/rails_admin/main/edit.html.haml +0 -2
  407. data/app/views/rails_admin/main/export.html.haml +0 -92
  408. data/app/views/rails_admin/main/history.html.haml +0 -51
  409. data/app/views/rails_admin/main/index.html.haml +0 -126
  410. data/app/views/rails_admin/main/new.html.haml +0 -2
  411. data/app/views/rails_admin/main/show.html.haml +0 -15
  412. data/config/initializers/devise_patch.rb +0 -9
  413. data/config/initializers/haml.rb +0 -5
  414. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -32
  415. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  416. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  417. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
  418. data/lib/rails_admin/bootstrap-sass.rb +0 -49
  419. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  420. data/lib/rails_admin/extensions/history/history.rb +0 -44
  421. data/lib/rails_admin/extensions/history.rb +0 -3
  422. data/lib/rails_admin/support/i18n.rb +0 -43
  423. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  424. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  425. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
  426. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  427. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  428. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  429. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
  430. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  431. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  432. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  433. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  434. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  435. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  436. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  437. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  438. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  439. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  440. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  441. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  442. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  443. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  444. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  445. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  446. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  447. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  448. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  449. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  450. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  451. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  452. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  453. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  454. data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
  455. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  456. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -142
  457. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -92
  458. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -110
  459. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -223
  460. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -170
  461. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -151
  462. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -280
  463. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -113
  464. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -170
  465. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -128
  466. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -457
  467. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  468. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  469. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  470. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2444
  471. data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  472. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -741
  473. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -16165
  474. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  475. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  476. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  477. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  478. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  479. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  480. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  481. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  482. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  483. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  484. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  485. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  486. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  487. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  488. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  489. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  490. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  491. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  492. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  493. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  494. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  495. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  496. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  497. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  498. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  499. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  500. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  501. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  502. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  503. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  504. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  505. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  506. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  507. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  508. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  509. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  510. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  511. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  512. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  513. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  514. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  515. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  516. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  517. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  518. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  519. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
  520. data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
  521. /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
  522. /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/proxyable'
2
4
  require 'rails_admin/config/configurable'
3
5
  require 'rails_admin/config/inspectable'
@@ -18,10 +20,9 @@ module RailsAdmin
18
20
  include RailsAdmin::Config::HasGroups
19
21
  include RailsAdmin::Config::HasDescription
20
22
 
21
- attr_reader :abstract_model
22
- attr_reader :parent, :root
23
+ attr_reader :abstract_model, :parent, :root
23
24
 
24
- NAMED_INSTANCE_VARIABLES = [:@parent, :@root, :@abstract_model].freeze
25
+ NAMED_INSTANCE_VARIABLES = %i[@parent @root @abstract_model].freeze
25
26
 
26
27
  def initialize(parent)
27
28
  @parent = parent
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -28,12 +30,12 @@ module RailsAdmin
28
30
  nil
29
31
  end
30
32
 
31
- register_instance_option :sort_by do
32
- parent.abstract_model.primary_key
33
+ register_instance_option :search_help do
34
+ nil
33
35
  end
34
36
 
35
- register_instance_option :sort_reverse? do
36
- true # By default show latest first
37
+ register_instance_option :sort_by do
38
+ parent.abstract_model.primary_key
37
39
  end
38
40
 
39
41
  register_instance_option :scopes do
@@ -44,23 +46,16 @@ module RailsAdmin
44
46
  ''
45
47
  end
46
48
 
47
- register_instance_option :sidescroll do
48
- nil
49
+ register_deprecated_instance_option :sidescroll do
50
+ ActiveSupport::Deprecation.warn('The sidescroll configuration option was removed, it is always enabled now.')
51
+ end
52
+
53
+ def fields_for_table
54
+ visible_fields.partition(&:sticky?).flatten
49
55
  end
50
56
 
51
- def sidescroll_frozen_columns
52
- global_config = RailsAdmin::Config.sidescroll
53
- model_config = sidescroll
54
- enabled = model_config.nil? ? global_config : model_config
55
- if enabled
56
- num_frozen = model_config[:num_frozen_columns] if model_config.is_a?(Hash)
57
- unless num_frozen
58
- num_frozen = global_config[:num_frozen_columns] if global_config.is_a?(Hash)
59
- num_frozen ||= 3 # by default, freeze checkboxes, links & first property (usually primary key / id?)
60
- num_frozen -= 1 unless checkboxes? # model config should be explicit about this, only adjust if using global config
61
- end
62
- num_frozen
63
- end
57
+ register_deprecated_instance_option :sort_reverse do
58
+ ActiveSupport::Deprecation.warn('The sort_reverse configuration option is deprecated and has no effect.')
64
59
  end
65
60
  end
66
61
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext/string/inflections'
2
4
  require 'rails_admin/config/sections/base'
3
5
  require 'rails_admin/config/sections/edit'
@@ -25,7 +27,7 @@ module RailsAdmin
25
27
  section = RailsAdmin::Config::Sections.const_get(name)
26
28
  name = name.to_s.underscore.to_sym
27
29
  klass.send(:define_method, name) do |&block|
28
- @sections = {} unless @sections
30
+ @sections ||= {}
29
31
  @sections[name] = section.new(self) unless @sections[name]
30
32
  @sections[name].instance_eval(&block) if block
31
33
  @sections[name]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/lazy_model'
2
4
  require 'rails_admin/config/sections/list'
3
5
  require 'active_support/core_ext/module/attribute_accessors'
@@ -27,15 +29,15 @@ module RailsAdmin
27
29
  # Configuration option to specify which models you want to exclude.
28
30
  attr_accessor :excluded_models
29
31
 
30
- # Configuration option to specify a whitelist of models you want to RailsAdmin to work with.
31
- # The excluded_models list applies against the whitelist as well and further reduces the models
32
+ # Configuration option to specify a allowlist of models you want to RailsAdmin to work with.
33
+ # The excluded_models list applies against the allowlist as well and further reduces the models
32
34
  # RailsAdmin will use.
33
35
  # If included_models is left empty ([]), then RailsAdmin will automatically use all the models
34
36
  # in your application (less any excluded_models you may have specified).
35
37
  attr_accessor :included_models
36
38
 
37
39
  # Fields to be hidden in show, create and update views
38
- attr_accessor :default_hidden_fields
40
+ attr_reader :default_hidden_fields
39
41
 
40
42
  # Default items per page value used if a model level option has not
41
43
  # been configured
@@ -56,14 +58,8 @@ module RailsAdmin
56
58
  # Tell browsers whether to use the native HTML5 validations (novalidate form option).
57
59
  attr_accessor :browser_validations
58
60
 
59
- # Set the max width of columns in list view before a new set is created
60
- attr_accessor :total_columns_width
61
-
62
- # Enable horizontal-scrolling table in list view, ignore total_columns_width
63
- attr_accessor :sidescroll
64
-
65
61
  # set parent controller
66
- attr_accessor :parent_controller
62
+ attr_reader :parent_controller
67
63
 
68
64
  # set settings for `protect_from_forgery` method
69
65
  # By default, it raises exception upon invalid CSRF tokens
@@ -75,6 +71,9 @@ module RailsAdmin
75
71
  # @see RailsAdmin.config
76
72
  attr_reader :registry
77
73
 
74
+ # Bootstrap CSS classes used for Navigation bar
75
+ attr_accessor :navbar_css_classes
76
+
78
77
  # show Gravatar in Navigation bar
79
78
  attr_accessor :show_gravatar
80
79
 
@@ -82,8 +81,8 @@ module RailsAdmin
82
81
  attr_accessor :navigation_static_links
83
82
  attr_accessor :navigation_static_label
84
83
 
85
- # yell about fields that are not marked as accessible
86
- attr_accessor :yell_for_non_accessible_fields
84
+ # Set where RailsAdmin fetches JS/CSS from, defaults to :sprockets
85
+ attr_writer :asset_source
87
86
 
88
87
  # Setup authentication to be run as a before filter
89
88
  # This is run inside the controller instance so you can setup any authentication you need to
@@ -113,14 +112,14 @@ module RailsAdmin
113
112
  @authenticate || DEFAULT_AUTHENTICATION
114
113
  end
115
114
 
116
- # Setup auditing/history/versioning provider that observe objects lifecycle
115
+ # Setup auditing/versioning provider that observe objects lifecycle
117
116
  def audit_with(*args, &block)
118
117
  extension = args.shift
119
118
  if extension
120
119
  klass = RailsAdmin::AUDITING_ADAPTERS[extension]
121
120
  klass.setup if klass.respond_to? :setup
122
121
  @audit = proc do
123
- @auditing_adapter = klass.new(*([self] + args).compact)
122
+ @auditing_adapter = klass.new(*([self] + args).compact, &block)
124
123
  end
125
124
  elsif block
126
125
  @audit = block
@@ -148,7 +147,7 @@ module RailsAdmin
148
147
  # config.authorize_with :cancancan
149
148
  # end
150
149
  #
151
- # See the wiki[https://github.com/sferik/rails_admin/wiki] for more on authorization.
150
+ # See the wiki[https://github.com/railsadminteam/rails_admin/wiki] for more on authorization.
152
151
  #
153
152
  # @see RailsAdmin::Config::DEFAULT_AUTHORIZE
154
153
  def authorize_with(*args, &block)
@@ -157,7 +156,7 @@ module RailsAdmin
157
156
  klass = RailsAdmin::AUTHORIZATION_ADAPTERS[extension]
158
157
  klass.setup if klass.respond_to? :setup
159
158
  @authorize = proc do
160
- @authorization_adapter = klass.new(*([self] + args).compact)
159
+ @authorization_adapter = klass.new(*([self] + args).compact, &block)
161
160
  end
162
161
  elsif block
163
162
  @authorize = block
@@ -201,10 +200,10 @@ module RailsAdmin
201
200
  end
202
201
 
203
202
  def default_search_operator=(operator)
204
- if %w(default like starts_with ends_with is =).include? operator
203
+ if %w[default like not_like starts_with ends_with is =].include? operator
205
204
  @default_search_operator = operator
206
205
  else
207
- raise(ArgumentError.new("Search operator '#{operator}' not supported"))
206
+ raise ArgumentError.new("Search operator '#{operator}' not supported")
208
207
  end
209
208
  end
210
209
 
@@ -226,23 +225,37 @@ module RailsAdmin
226
225
  #
227
226
  # @see RailsAdmin::Config.registry
228
227
  def model(entity, &block)
229
- key = begin
230
- if entity.is_a?(RailsAdmin::AbstractModel)
228
+ key =
229
+ case entity
230
+ when RailsAdmin::AbstractModel
231
231
  entity.model.try(:name).try :to_sym
232
- elsif entity.is_a?(Class)
232
+ when Class, ConstLoadSuppressor::ConstProxy
233
233
  entity.name.to_sym
234
- elsif entity.is_a?(String) || entity.is_a?(Symbol)
234
+ when String, Symbol
235
235
  entity.to_sym
236
236
  else
237
237
  entity.class.name.to_sym
238
238
  end
239
- end
240
239
 
241
- @registry[key] ||= RailsAdmin::Config::LazyModel.new(entity)
240
+ @registry[key] ||= RailsAdmin::Config::LazyModel.new(key.to_s)
242
241
  @registry[key].add_deferred_block(&block) if block
243
242
  @registry[key]
244
243
  end
245
244
 
245
+ def asset_source
246
+ @asset_source ||=
247
+ begin
248
+ detected = defined?(Sprockets) ? :sprockets : :invalid
249
+ unless ARGV.join(' ').include? 'rails_admin:install'
250
+ warn <<~MSG
251
+ [Warning] After upgrading RailsAdmin to 3.x you haven't set asset_source yet, using :#{detected} as the default.
252
+ To suppress this message, run 'rails rails_admin:install' to setup the asset delivery method suitable to you.
253
+ MSG
254
+ end
255
+ detected
256
+ end
257
+ end
258
+
246
259
  def default_hidden_fields=(fields)
247
260
  if fields.is_a?(Array)
248
261
  @default_hidden_fields = {}
@@ -253,9 +266,33 @@ module RailsAdmin
253
266
  end
254
267
  end
255
268
 
256
- # Returns action configuration object
269
+ def parent_controller=(name)
270
+ @parent_controller = name
271
+
272
+ if defined?(RailsAdmin::ApplicationController) || defined?(RailsAdmin::MainController)
273
+ RailsAdmin::Config::ConstLoadSuppressor.allowing do
274
+ RailsAdmin.send(:remove_const, :ApplicationController)
275
+ RailsAdmin.send(:remove_const, :MainController)
276
+ load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
277
+ load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
278
+ end
279
+ end
280
+ end
281
+
282
+ def total_columns_width=(_)
283
+ ActiveSupport::Deprecation.warn('The total_columns_width configuration option is deprecated and has no effect.')
284
+ end
285
+
286
+ def sidescroll=(_)
287
+ ActiveSupport::Deprecation.warn('The sidescroll configuration option was removed, it is always enabled now.')
288
+ end
289
+
290
+ # Setup actions to be used.
257
291
  def actions(&block)
258
- RailsAdmin::Config::Actions.instance_eval(&block) if block
292
+ return unless block
293
+
294
+ RailsAdmin::Config::Actions.reset
295
+ RailsAdmin::Config::Actions.instance_eval(&block)
259
296
  end
260
297
 
261
298
  # Returns all model configurations
@@ -271,31 +308,31 @@ module RailsAdmin
271
308
  def reset
272
309
  @compact_show_view = true
273
310
  @browser_validations = true
274
- @yell_for_non_accessible_fields = true
275
311
  @authenticate = nil
276
312
  @authorize = nil
277
313
  @audit = nil
278
314
  @current_user = nil
279
315
  @default_hidden_fields = {}
280
316
  @default_hidden_fields[:base] = [:_type]
281
- @default_hidden_fields[:edit] = [:id, :_id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
282
- @default_hidden_fields[:show] = [:id, :_id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on]
317
+ @default_hidden_fields[:edit] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
318
+ @default_hidden_fields[:show] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
283
319
  @default_items_per_page = 20
284
320
  @default_associated_collection_limit = 100
285
321
  @default_search_operator = 'default'
286
322
  @excluded_models = []
287
323
  @included_models = []
288
- @total_columns_width = 697
289
- @sidescroll = nil
290
- @label_methods = [:name, :title]
324
+ @label_methods = %i[name title]
291
325
  @main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
292
326
  @registry = {}
327
+ @navbar_css_classes = %w[navbar-dark bg-primary border-bottom]
293
328
  @show_gravatar = true
294
329
  @navigation_static_links = {}
295
330
  @navigation_static_label = nil
331
+ @asset_source = nil
296
332
  @parent_controller = '::ActionController::Base'
297
333
  @forgery_protection_settings = {with: :exception}
298
334
  RailsAdmin::Config::Actions.reset
335
+ RailsAdmin::AbstractModel.reset
299
336
  end
300
337
 
301
338
  # Reset a provided model's configuration.
@@ -306,22 +343,19 @@ module RailsAdmin
306
343
  @registry.delete(key)
307
344
  end
308
345
 
309
- # Reset all models configuration
310
- # Used to clear all configurations when reloading code in development.
311
- # @see RailsAdmin::Engine
312
- # @see RailsAdmin::Config.registry
313
- def reset_all_models
314
- @registry = {}
346
+ # Perform reset, then load RailsAdmin initializer again
347
+ def reload!
348
+ reset
349
+ load RailsAdmin::Engine.config.initializer_path
315
350
  end
316
351
 
317
352
  # Get all models that are configured as visible sorted by their weight and label.
318
353
  #
319
354
  # @see RailsAdmin::Config::Hideable
320
-
321
355
  def visible_models(bindings)
322
356
  visible_models_with_bindings(bindings).sort do |a, b|
323
357
  if (weight_order = a.weight <=> b.weight) == 0
324
- a.label.downcase <=> b.label.downcase
358
+ a.label.casecmp(b.label)
325
359
  else
326
360
  weight_order
327
361
  end
@@ -330,23 +364,22 @@ module RailsAdmin
330
364
 
331
365
  private
332
366
 
333
- def lchomp(base, arg)
334
- base.to_s.reverse.chomp(arg.to_s.reverse).reverse
335
- end
336
-
337
367
  def viable_models
338
368
  included_models.collect(&:to_s).presence || begin
339
369
  @@system_models ||= # memoization for tests
340
370
  ([Rails.application] + Rails::Engine.subclasses.collect(&:instance)).flat_map do |app|
341
- (app.paths['app/models'].to_a + app.paths.eager_load).collect do |load_path|
371
+ (app.paths['app/models'].to_a + app.config.eager_load_paths).collect do |load_path|
342
372
  Dir.glob(app.root.join(load_path)).collect do |load_dir|
343
- Dir.glob(load_dir + '/**/*.rb').collect do |filename|
373
+ path_prefix = "#{app.root.join(load_dir)}/"
374
+ Dir.glob("#{load_dir}/**/*.rb").collect do |filename|
344
375
  # app/models/module/class.rb => module/class.rb => module/class => Module::Class
345
- lchomp(filename, "#{app.root.join(load_dir)}/").chomp('.rb').camelize
376
+ filename.delete_prefix(path_prefix).chomp('.rb').camelize
346
377
  end
347
378
  end
348
379
  end
349
380
  end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable Style/MultilineBlockChain
381
+
382
+ @@system_models + @registry.keys.collect(&:to_s)
350
383
  end
351
384
  end
352
385
 
@@ -1,68 +1,79 @@
1
- require 'jquery-rails'
2
- require 'jquery-ui-rails'
1
+ # frozen_string_literal: true
2
+
3
3
  require 'kaminari'
4
4
  require 'nested_form'
5
- require 'rack-pjax'
6
5
  require 'rails'
7
6
  require 'rails_admin'
8
- require 'remotipart'
7
+ require 'rails_admin/version'
8
+ require 'turbo-rails'
9
9
 
10
10
  module RailsAdmin
11
11
  class Engine < Rails::Engine
12
12
  isolate_namespace RailsAdmin
13
13
 
14
+ attr_accessor :importmap
15
+
14
16
  config.action_dispatch.rescue_responses['RailsAdmin::ActionNotAllowed'] = :forbidden
15
17
 
16
- initializer 'RailsAdmin precompile hook', group: :all do |app|
17
- app.config.assets.precompile += %w(
18
- rails_admin/rails_admin.js
19
- rails_admin/rails_admin.css
20
- rails_admin/jquery.colorpicker.js
21
- rails_admin/jquery.colorpicker.css
22
- )
23
- end
18
+ initializer 'RailsAdmin reload config in development' do |app|
19
+ config.initializer_path = app.root.join('config/initializers/rails_admin.rb')
24
20
 
25
- initializer 'RailsAdmin setup middlewares' do |app|
26
- app.config.middleware.use Rack::Pjax
27
- end
21
+ unless Rails.application.config.cache_classes
22
+ ActiveSupport::Reloader.before_class_unload do
23
+ RailsAdmin::Config.reload!
24
+ end
28
25
 
29
- initializer 'RailsAdmin reload config in development' do
30
- if Rails.application.config.cache_classes
31
- if defined?(ActiveSupport::Reloader)
32
- ActiveSupport::Reloader.before_class_unload do
33
- RailsAdmin::Config.reset_all_models
34
- end
35
- # else
36
- # For Rails 4 not implemented
26
+ reloader = app.config.file_watcher.new([config.initializer_path], []) do
27
+ # Do nothing, ActiveSupport::Reloader will trigger class_unload! anyway
37
28
  end
29
+
30
+ app.reloaders << reloader
31
+ app.reloader.to_run do
32
+ reloader.execute_if_updated { require_unload_lock! }
33
+ end
34
+ reloader.execute
38
35
  end
39
36
  end
40
37
 
41
- rake_tasks do
42
- Dir[File.join(File.dirname(__FILE__), '../tasks/*.rake')].each { |f| load f }
38
+ initializer 'RailsAdmin precompile hook', group: :all do |app|
39
+ case RailsAdmin.config.asset_source
40
+ when :sprockets
41
+ app.config.assets.precompile += %w[
42
+ rails_admin/application.js
43
+ rails_admin/application.css
44
+ ]
45
+ app.config.assets.paths << RailsAdmin::Engine.root.join('src')
46
+ require 'rails_admin/support/es_module_processor'
47
+ Sprockets.register_bundle_processor 'application/javascript', RailsAdmin::Support::ESModuleProcessor
48
+ when :importmap
49
+ self.importmap = Importmap::Map.new.draw(app.root.join('config/importmap.rails_admin.rb'))
50
+ end
43
51
  end
44
52
 
45
53
  # Check for required middlewares, users may forget to use them in Rails API mode
46
54
  config.after_initialize do |app|
47
55
  has_session_store = app.config.middleware.to_a.any? do |m|
48
56
  m.klass.try(:<=, ActionDispatch::Session::AbstractStore) ||
57
+ m.klass.try(:<=, ActionDispatch::Session::AbstractSecureStore) ||
49
58
  m.klass.name =~ /^ActionDispatch::Session::/
50
59
  end
51
60
  loaded = app.config.middleware.to_a.map(&:name)
52
- required = %w(ActionDispatch::Cookies ActionDispatch::Flash Rack::MethodOverride)
61
+ required = %w[ActionDispatch::Cookies ActionDispatch::Flash Rack::MethodOverride]
53
62
  missing = required - loaded
54
63
  unless missing.empty? && has_session_store
55
64
  configs = missing.map { |m| "config.middleware.use #{m}" }
56
65
  configs << "config.middleware.use #{app.config.session_store.try(:name) || 'ActionDispatch::Session::CookieStore'}, #{app.config.session_options}" unless has_session_store
57
- raise <<-EOM
58
- Required middlewares for RailsAdmin are not added
59
- To fix this, add
66
+ raise <<~ERROR
67
+ Required middlewares for RailsAdmin are not added
68
+ To fix this, add
60
69
 
61
- #{configs.join("\n ")}
70
+ #{configs.join("\n ")}
62
71
 
63
- to config/application.rb.
64
- EOM
72
+ to config/application.rb.
73
+ ERROR
65
74
  end
75
+
76
+ RailsAdmin::Version.warn_with_js_version
66
77
  end
67
78
  end
68
79
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/controller_extension'
2
4
 
3
5
  module RailsAdmin
@@ -15,27 +17,19 @@ module RailsAdmin
15
17
 
16
18
  EXTENSIONS << extension_key
17
19
 
18
- if options[:authorization]
19
- AUTHORIZATION_ADAPTERS[extension_key] = extension_definition::AuthorizationAdapter
20
- end
20
+ AUTHORIZATION_ADAPTERS[extension_key] = extension_definition::AuthorizationAdapter if options[:authorization]
21
21
 
22
- if options[:configuration]
23
- CONFIGURATION_ADAPTERS[extension_key] = extension_definition::ConfigurationAdapter
24
- end
22
+ CONFIGURATION_ADAPTERS[extension_key] = extension_definition::ConfigurationAdapter if options[:configuration]
25
23
 
26
- if options[:auditing]
27
- AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter
28
- end
24
+ AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter if options[:auditing]
29
25
  end
30
26
 
31
27
  # Setup all extensions for testing
32
28
  def self.setup_all_extensions
33
29
  (AUTHORIZATION_ADAPTERS.values + AUDITING_ADAPTERS.values).each do |klass|
34
- begin
35
- klass.setup if klass.respond_to? :setup
36
- rescue # rubocop:disable Lint/HandleExceptions, Style/RescueStandardError
37
- # ignore errors
38
- end
30
+ klass.setup if klass.respond_to? :setup
31
+ rescue # rubocop:disable Style/RescueStandardError
32
+ # ignore errors
39
33
  end
40
34
  end
41
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Extensions
3
5
  module CanCanCan
@@ -7,18 +9,33 @@ module RailsAdmin
7
9
  def current_ability
8
10
  # use _current_user instead of default current_user so it works with
9
11
  # whatever current user method is defined with RailsAdmin
10
- @current_ability ||= @ability.new(_current_user)
12
+ @current_ability ||= ability_class.new(_current_user)
11
13
  end
12
14
  end
13
15
 
16
+ include RailsAdmin::Config::Configurable
17
+
18
+ def self.setup
19
+ RailsAdmin::Extensions::ControllerExtension.include ControllerExtension
20
+ end
21
+
14
22
  # See the +authorize_with+ config method for where the initialization happens.
15
- def initialize(controller, ability = ::Ability)
23
+ def initialize(controller, ability = nil, &block)
16
24
  @controller = controller
17
- @controller.instance_variable_set '@ability', ability
18
- @controller.extend ControllerExtension
25
+ ability_class { ability } if ability
26
+ instance_eval(&block) if block
27
+
28
+ adapter = self
29
+ ControllerExtension.define_method(:ability_class) do
30
+ adapter.ability_class
31
+ end
19
32
  @controller.current_ability.authorize! :access, :rails_admin
20
33
  end
21
34
 
35
+ register_instance_option :ability_class do
36
+ Ability
37
+ end
38
+
22
39
  # This method is called in every controller action and should raise an exception
23
40
  # when the authorization fails. The first argument is the name of the controller
24
41
  # action as a symbol (:create, :bulk_delete, etc.). The second argument is the
@@ -26,6 +43,7 @@ module RailsAdmin
26
43
  # instance if it is available.
27
44
  def authorize(action, abstract_model = nil, model_object = nil)
28
45
  return unless action
46
+
29
47
  action, subject = resolve_action_and_subject(action, abstract_model, model_object)
30
48
  @controller.current_ability.authorize!(action, subject)
31
49
  end
@@ -36,6 +54,7 @@ module RailsAdmin
36
54
  # return a boolean whereas +authorize+ will raise an exception when not authorized.
37
55
  def authorized?(action, abstract_model = nil, model_object = nil)
38
56
  return unless action
57
+
39
58
  action, subject = resolve_action_and_subject(action, abstract_model, model_object)
40
59
  @controller.current_ability.can?(action, subject)
41
60
  end
@@ -51,13 +70,13 @@ module RailsAdmin
51
70
  # records. It should return a hash of attributes which match what the user
52
71
  # is authorized to create.
53
72
  def attributes_for(action, abstract_model)
54
- @controller.current_ability.attributes_for(action, abstract_model && abstract_model.model)
73
+ @controller.current_ability.attributes_for(action, abstract_model&.model)
55
74
  end
56
75
 
57
76
  private
58
77
 
59
78
  def resolve_action_and_subject(action, abstract_model, model_object)
60
- subject = model_object || abstract_model && abstract_model.model
79
+ subject = model_object || abstract_model&.model
61
80
  if subject
62
81
  [action, subject]
63
82
  else
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/cancancan/authorization_adapter'
2
4
 
3
5
  RailsAdmin.add_extension(:cancancan, RailsAdmin::Extensions::CanCanCan, authorization: true)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Extensions
3
5
  module ControllerExtension