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/hideable'
@@ -14,13 +16,12 @@ module RailsAdmin
14
16
  include RailsAdmin::Config::Groupable
15
17
  include RailsAdmin::Config::Inspectable
16
18
 
17
- attr_reader :name, :properties, :abstract_model
19
+ attr_reader :name, :properties, :abstract_model, :parent, :root
18
20
  attr_accessor :defined, :order, :section
19
- attr_reader :parent, :root
20
21
 
21
- NAMED_INSTANCE_VARIABLES = [
22
- :@parent, :@root, :@section, :@children_fields_registered,
23
- :@associated_model_config, :@group
22
+ NAMED_INSTANCE_VARIABLES = %i[
23
+ @parent @root @section @children_fields_registered
24
+ @associated_model_config @group
24
25
  ].freeze
25
26
 
26
27
  def initialize(parent, name, properties)
@@ -36,7 +37,7 @@ module RailsAdmin
36
37
  end
37
38
 
38
39
  register_instance_option :css_class do
39
- "#{self.name}_field"
40
+ "#{name}_field"
40
41
  end
41
42
 
42
43
  def type_css_class
@@ -51,14 +52,36 @@ module RailsAdmin
51
52
  nil
52
53
  end
53
54
 
55
+ register_instance_option :sticky? do
56
+ false
57
+ end
58
+
54
59
  register_instance_option :sortable do
55
60
  !virtual? || children_fields.first || false
56
61
  end
57
62
 
63
+ def sort_column
64
+ if sortable == true
65
+ "#{abstract_model.table_name}.#{name}"
66
+ elsif (sortable.is_a?(String) || sortable.is_a?(Symbol)) && sortable.to_s.include?('.') # just provide sortable, don't do anything smart
67
+ sortable
68
+ elsif sortable.is_a?(Hash) # just join sortable hash, don't do anything smart
69
+ "#{sortable.keys.first}.#{sortable.values.first}"
70
+ elsif association # use column on target table
71
+ "#{associated_model_config.abstract_model.table_name}.#{sortable}"
72
+ else # use described column in the field conf.
73
+ "#{abstract_model.table_name}.#{sortable}"
74
+ end
75
+ end
76
+
58
77
  register_instance_option :searchable do
59
78
  !virtual? || children_fields.first || false
60
79
  end
61
80
 
81
+ register_instance_option :search_operator do
82
+ RailsAdmin::Config.default_search_operator
83
+ end
84
+
62
85
  register_instance_option :queryable? do
63
86
  !virtual?
64
87
  end
@@ -67,8 +90,22 @@ module RailsAdmin
67
90
  !!searchable
68
91
  end
69
92
 
70
- register_instance_option :search_operator do
71
- @search_operator ||= RailsAdmin::Config.default_search_operator
93
+ register_instance_option :filter_operators do
94
+ []
95
+ end
96
+
97
+ register_instance_option :default_filter_operator do
98
+ nil
99
+ end
100
+
101
+ def filter_options
102
+ {
103
+ label: label,
104
+ name: name,
105
+ operator: default_filter_operator,
106
+ operators: filter_operators,
107
+ type: type,
108
+ }
72
109
  end
73
110
 
74
111
  # serials and dates are reversed in list, which is more natural (last modified items first).
@@ -78,7 +115,7 @@ module RailsAdmin
78
115
 
79
116
  # list of columns I should search for that field [{ column: 'table_name.column', type: field.type }, {..}]
80
117
  register_instance_option :searchable_columns do
81
- @searchable_columns ||= begin
118
+ @searchable_columns ||=
82
119
  case searchable
83
120
  when true
84
121
  [{column: "#{abstract_model.table_name}.#{name}", type: type}]
@@ -93,22 +130,21 @@ module RailsAdmin
93
130
  table_name, column = f.split '.'
94
131
  type = nil
95
132
  elsif f.is_a?(Hash) # <Model|table_name> => <attribute|column>
96
- am = f.keys.first.is_a?(Class) && AbstractModel.new(f.keys.first)
97
- table_name = am && am.table_name || f.keys.first
133
+ am = AbstractModel.new(f.keys.first) if f.keys.first.is_a?(Class)
134
+ table_name = am&.table_name || f.keys.first
98
135
  column = f.values.first
99
- property = am && am.properties.detect { |p| p.name == f.values.first.to_sym }
100
- type = property && property.type
136
+ property = am&.properties&.detect { |p| p.name == f.values.first.to_sym }
137
+ type = property&.type
101
138
  else # <attribute|column>
102
139
  am = (association? ? associated_model_config.abstract_model : abstract_model)
103
140
  table_name = am.table_name
104
141
  column = f
105
142
  property = am.properties.detect { |p| p.name == f.to_sym }
106
- type = property && property.type
143
+ type = property&.type
107
144
  end
108
145
  {column: "#{table_name}.#{column}", type: (type || :string)}
109
146
  end
110
147
  end
111
- end
112
148
  end
113
149
 
114
150
  register_instance_option :formatted_value do
@@ -155,7 +191,7 @@ module RailsAdmin
155
191
  #
156
192
  # @see RailsAdmin::AbstractModel.properties
157
193
  register_instance_option :length do
158
- @length ||= properties && properties.length
194
+ @length ||= properties&.length
159
195
  end
160
196
 
161
197
  # Accessor for field's length restrictions per validations
@@ -172,17 +208,17 @@ module RailsAdmin
172
208
  #
173
209
  # @see RailsAdmin::AbstractModel.properties
174
210
  register_instance_option :required? do
175
- context = begin
211
+ context =
176
212
  if bindings && bindings[:object]
177
213
  bindings[:object].persisted? ? :update : :create
178
214
  else
179
215
  :nil
180
216
  end
181
- end
217
+
182
218
  (@required ||= {})[context] ||= !!([name] + children_fields).uniq.detect do |column_name|
183
219
  abstract_model.model.validators_on(column_name).detect do |v|
184
220
  !(v.options[:allow_nil] || v.options[:allow_blank]) &&
185
- [:presence, :numericality, :attachment_presence].include?(v.kind) &&
221
+ %i[presence numericality attachment_presence].include?(v.kind) &&
186
222
  (v.options[:on] == context || v.options[:on].blank?) &&
187
223
  (v.options[:if].blank? && v.options[:unless].blank?)
188
224
  end
@@ -193,7 +229,7 @@ module RailsAdmin
193
229
  #
194
230
  # @see RailsAdmin::AbstractModel.properties
195
231
  register_instance_option :serial? do
196
- properties && properties.serial?
232
+ properties&.serial?
197
233
  end
198
234
 
199
235
  register_instance_option :view_helper do
@@ -213,6 +249,7 @@ module RailsAdmin
213
249
  returned = true
214
250
  (RailsAdmin.config.default_hidden_fields || {}).each do |section, fields|
215
251
  next unless self.section.is_a?("RailsAdmin::Config::Sections::#{section.to_s.camelize}".constantize)
252
+
216
253
  returned = false if fields.include?(name)
217
254
  end
218
255
  returned
@@ -223,12 +260,29 @@ module RailsAdmin
223
260
  []
224
261
  end
225
262
 
263
+ register_instance_option :eager_load do
264
+ false
265
+ end
266
+
267
+ register_deprecated_instance_option :eager_load?, :eager_load
268
+
269
+ def eager_load_values
270
+ case eager_load
271
+ when true
272
+ [name]
273
+ when false, nil
274
+ []
275
+ else
276
+ Array.wrap(eager_load)
277
+ end
278
+ end
279
+
226
280
  register_instance_option :render do
227
281
  bindings[:view].render partial: "rails_admin/main/#{partial}", locals: {field: self, form: bindings[:form]}
228
282
  end
229
283
 
230
284
  def editable?
231
- !(@properties && @properties.read_only?)
285
+ !((@properties && @properties.read_only?) || (bindings[:object] && bindings[:object].readonly?))
232
286
  end
233
287
 
234
288
  # Is this an association
@@ -255,7 +309,7 @@ module RailsAdmin
255
309
  # @see RailsAdmin::Config::Fields::Base.register_instance_option :required?
256
310
  def optional(state = nil, &block)
257
311
  if !state.nil? || block
258
- required state.nil? ? proc { false == instance_eval(&block) } : false == state
312
+ required state.nil? ? proc { instance_eval(&block) == false } : state == false
259
313
  else
260
314
  optional?
261
315
  end
@@ -277,14 +331,14 @@ module RailsAdmin
277
331
  def value
278
332
  bindings[:object].safe_send(name)
279
333
  rescue NoMethodError => e
280
- raise e.exception <<-EOM.gsub(/^\s{10}/, '')
281
- #{e.message}
282
- If you want to use a RailsAdmin virtual field(= a field without corresponding instance method),
283
- you should declare 'formatted_value' in the field definition.
284
- field :#{name} do
285
- formatted_value{ bindings[:object].call_some_method }
286
- end
287
- EOM
334
+ raise e.exception <<~ERROR
335
+ #{e.message}
336
+ If you want to use a RailsAdmin virtual field(= a field without corresponding instance method),
337
+ you should declare 'formatted_value' in the field definition.
338
+ field :#{name} do
339
+ formatted_value{ bindings[:object].call_some_method }
340
+ end
341
+ ERROR
288
342
  end
289
343
 
290
344
  # Reader for nested attributes
@@ -298,7 +352,7 @@ module RailsAdmin
298
352
  end
299
353
 
300
354
  def generic_help
301
- (required? ? I18n.translate('admin.form.required') : I18n.translate('admin.form.optional')) + '. '
355
+ "#{required? ? I18n.translate('admin.form.required') : I18n.translate('admin.form.optional')}. "
302
356
  end
303
357
 
304
358
  def generic_field_help
@@ -313,7 +367,7 @@ module RailsAdmin
313
367
  end
314
368
 
315
369
  def parse_input(_params)
316
- # overriden
370
+ # overridden
317
371
  end
318
372
 
319
373
  def inverse_of
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/file_upload'
@@ -16,7 +18,9 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
16
18
  ["#{name}_attachment".to_sym, "#{name}_blob".to_sym]
17
19
  end
18
20
  children_fields = associations.map do |child_name|
19
- next unless child_association = parent.abstract_model.associations.detect { |p| p.name.to_sym == child_name }
21
+ child_association = parent.abstract_model.associations.detect { |p| p.name.to_sym == child_name }
22
+ next unless child_association
23
+
20
24
  child_field = fields.detect { |f| f.name == child_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_association, fields)
21
25
  child_field.hide unless field == child_field
22
26
  child_field.filterable(false) unless field == child_field
@@ -1,25 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/belongs_to_association'
4
6
 
5
7
  RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
6
- if association = parent.abstract_model.associations.detect { |a| a.foreign_key == properties.name && [:belongs_to, :has_and_belongs_to_many].include?(a.type) }
7
- field = RailsAdmin::Config::Fields::Types.load("#{association.polymorphic? ? :polymorphic : association.type}_association").new(parent, association.name, association)
8
+ parent.abstract_model.associations.filter { |a| Array(a.foreign_key).include?(properties.name) && %i[belongs_to has_and_belongs_to_many].include?(a.type) }.each do |association|
9
+ field = RailsAdmin::Config::Fields::Types.load(association.field_type).new(parent, association.name, association)
8
10
  fields << field
9
11
 
10
12
  child_columns = []
11
- possible_field_names = begin
12
- if association.polymorphic?
13
- [:foreign_key, :foreign_type, :foreign_inverse_of]
14
- else
15
- [:foreign_key]
16
- end.collect { |k| association.send(k) }.compact
17
- end
13
+ possible_field_names = if association.polymorphic?
14
+ %i[foreign_key foreign_type foreign_inverse_of]
15
+ else
16
+ [:foreign_key]
17
+ end.flat_map { |k| Array(association.send(k)) }.compact
18
18
 
19
19
  parent.abstract_model.properties.select { |p| possible_field_names.include? p.name }.each do |column|
20
- unless child_field = fields.detect { |f| f.name.to_s == column.name.to_s }
21
- child_field = RailsAdmin::Config::Fields.default_factory.call(parent, column, fields)
22
- end
20
+ child_field = fields.detect { |f| f.name.to_s == column.name.to_s }
21
+ child_field ||= RailsAdmin::Config::Fields.default_factory.call(parent, column, fields)
23
22
  child_columns << child_field
24
23
  end
25
24
 
@@ -29,5 +28,5 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
29
28
  end
30
29
 
31
30
  field.children_fields child_columns.collect(&:name)
32
- end
31
+ end.any?
33
32
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/file_upload'
@@ -7,12 +9,14 @@ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
7
9
  if defined?(::CarrierWave) && model.is_a?(CarrierWave::Mount) && model.uploaders.include?(attachment_name = properties.name.to_s.chomp('_file_name').to_sym)
8
10
  columns = [model.uploader_options[attachment_name][:mount_on] || attachment_name, "#{attachment_name}_content_type".to_sym, "#{attachment_name}_file_size".to_sym]
9
11
  field = RailsAdmin::Config::Fields::Types.load(
10
- [:serialized, :json].include?(properties.type) ? :multiple_carrierwave : :carrierwave,
12
+ %i[serialized json].include?(properties.type) ? :multiple_carrierwave : :carrierwave,
11
13
  ).new(parent, attachment_name, properties)
12
14
  fields << field
13
15
  children_fields = []
14
16
  columns.each do |children_column_name|
15
- next unless child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
17
+ child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
18
+ next unless child_properties
19
+
16
20
  children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
17
21
  children_field.hide unless field == children_field
18
22
  children_field.filterable(false) unless field == children_field
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/password'
@@ -5,13 +7,15 @@ require 'rails_admin/config/fields/types/password'
5
7
  # Register a custom field factory for devise model
6
8
  RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
7
9
  if properties.name == :encrypted_password
8
- extensions = [:password_salt, :reset_password_token, :remember_token]
10
+ extensions = %i[password_salt reset_password_token remember_token]
9
11
  fields << RailsAdmin::Config::Fields::Types.load(:password).new(parent, :password, properties)
10
12
  fields << RailsAdmin::Config::Fields::Types.load(:password).new(parent, :password_confirmation, properties)
11
13
  extensions.each do |ext|
12
14
  properties = parent.abstract_model.properties.detect { |p| ext == p.name }
13
15
  next unless properties
14
- unless field = fields.detect { |f| f.name == ext }
16
+
17
+ field = fields.detect { |f| f.name == ext }
18
+ unless field
15
19
  RailsAdmin::Config::Fields.default_factory.call(parent, properties, fields)
16
20
  field = fields.last
17
21
  end
@@ -1,15 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/file_upload'
4
6
 
5
7
  RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
6
- extensions = [:name, :uid]
8
+ extensions = %i[name uid]
7
9
  if (properties.name.to_s =~ /^(.+)_uid$/) && defined?(::Dragonfly) && parent.abstract_model.model.respond_to?(:dragonfly_attachment_classes) && parent.abstract_model.model.dragonfly_attachment_classes.collect(&:attribute).include?(attachment_name = Regexp.last_match[1].to_sym)
8
10
  field = RailsAdmin::Config::Fields::Types.load(:dragonfly).new(parent, attachment_name, properties)
9
11
  children_fields = []
10
12
  extensions.each do |ext|
11
13
  children_column_name = "#{attachment_name}_#{ext}".to_sym
12
- next unless child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
14
+ child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
15
+ next unless child_properties
16
+
13
17
  children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
14
18
  children_field.hide
15
19
  children_field.filterable(false)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types/enum'
3
5
  require 'rails_admin/config/fields/types/active_record_enum'
@@ -1,16 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/file_upload'
4
6
 
5
7
  RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
6
- extensions = [:file_name, :content_type, :file_size, :updated_at, :fingerprint]
8
+ extensions = %i[file_name content_type file_size updated_at fingerprint]
7
9
  model = parent.abstract_model.model
8
10
  if (properties.name.to_s =~ /^(.+)_file_name$/) && defined?(::Paperclip) && model.try(:attachment_definitions) && model.attachment_definitions.key?(attachment_name = Regexp.last_match[1].to_sym)
9
11
  field = RailsAdmin::Config::Fields::Types.load(:paperclip).new(parent, attachment_name, properties)
10
12
  children_fields = []
11
13
  extensions.each do |ext|
12
14
  children_column_name = "#{attachment_name}_#{ext}".to_sym
13
- next unless child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
15
+ child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
16
+ next unless child_properties
17
+
14
18
  children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
15
19
  children_field.hide
16
20
  children_field.filterable(false)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types/password'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields'
2
4
  require 'rails_admin/config/fields/types'
3
5
  require 'rails_admin/config/fields/types/file_upload'
@@ -5,7 +7,7 @@ require 'rails_admin/config/fields/types/file_upload'
5
7
  RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
6
8
  next false unless defined?(::Shrine)
7
9
 
8
- attachment_names = parent.abstract_model.model.ancestors.select { |m| m.is_a?(Shrine::Attachment) }.map { |a| a.instance_variable_get("@name") }
10
+ attachment_names = parent.abstract_model.model.ancestors.select { |m| m.is_a?(Shrine::Attachment) }.map { |a| a.instance_variable_get('@name') }
9
11
  next false if attachment_names.blank?
10
12
 
11
13
  attachment_name = attachment_names.detect { |a| a == properties.name.to_s.chomp('_data').to_sym }
@@ -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/proxyable'
3
5
  require 'rails_admin/config/configurable'
@@ -12,9 +14,8 @@ module RailsAdmin
12
14
  include RailsAdmin::Config::Configurable
13
15
  include RailsAdmin::Config::Hideable
14
16
 
15
- attr_reader :name, :abstract_model
17
+ attr_reader :name, :abstract_model, :parent, :root
16
18
  attr_accessor :section
17
- attr_reader :parent, :root
18
19
 
19
20
  def initialize(parent, name)
20
21
  @parent = parent
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/text'
2
4
 
3
5
  module RailsAdmin
@@ -9,7 +11,7 @@ module RailsAdmin
9
11
  RailsAdmin::Config::Fields::Types.register(self)
10
12
 
11
13
  register_instance_option :version do
12
- '1.1.1'
14
+ '1.3.1'
13
15
  end
14
16
 
15
17
  register_instance_option :css_location do
@@ -20,6 +22,10 @@ module RailsAdmin
20
22
  "https://cdnjs.cloudflare.com/ajax/libs/trix/#{version}/trix.js"
21
23
  end
22
24
 
25
+ register_instance_option :warn_dynamic_load do
26
+ true
27
+ end
28
+
23
29
  register_instance_option :partial do
24
30
  :form_action_text
25
31
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/enum'
2
4
 
3
5
  module RailsAdmin
@@ -29,12 +31,14 @@ module RailsAdmin
29
31
 
30
32
  def parse_value(value)
31
33
  return unless value.present?
34
+
32
35
  abstract_model.model.attribute_types[name.to_s].serialize(value)
33
36
  end
34
37
 
35
38
  def parse_input(params)
36
39
  value = params[name]
37
40
  return unless value
41
+
38
42
  params[name] = parse_input_value(value)
39
43
  end
40
44
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/file_upload'
2
4
 
3
5
  module RailsAdmin
@@ -8,7 +10,7 @@ module RailsAdmin
8
10
  RailsAdmin::Config::Fields::Types.register(self)
9
11
 
10
12
  register_instance_option :thumb_method do
11
- {resize: '100x100>'}
13
+ {resize_to_limit: [100, 100]}
12
14
  end
13
15
 
14
16
  register_instance_option :delete_method do
@@ -17,12 +19,30 @@ module RailsAdmin
17
19
 
18
20
  register_instance_option :image? do
19
21
  if value
20
- value.filename.to_s.split('.').last =~ /jpg|jpeg|png|gif|svg/i
22
+ mime_type = Mime::Type.lookup_by_extension(value.filename.extension_without_delimiter)
23
+ mime_type.to_s.match?(/^image/)
21
24
  end
22
25
  end
23
26
 
27
+ register_instance_option :eager_load do
28
+ {"#{name}_attachment": :blob}
29
+ end
30
+
31
+ register_instance_option :direct? do
32
+ false
33
+ end
34
+
35
+ register_instance_option :html_attributes do
36
+ {
37
+ required: required? && !value.present?,
38
+ }.merge(
39
+ direct? && {data: {direct_upload_url: bindings[:view].main_app.rails_direct_uploads_url}} || {},
40
+ )
41
+ end
42
+
24
43
  def resource_url(thumb = false)
25
44
  return nil unless value
45
+
26
46
  if thumb && value.variable?
27
47
  thumb = thumb_method if thumb == true
28
48
  variant = value.variant(thumb)
@@ -36,7 +56,7 @@ module RailsAdmin
36
56
 
37
57
  def value
38
58
  attachment = super
39
- attachment if attachment && attachment.attached?
59
+ attachment if attachment&.attached?
40
60
  end
41
61
  end
42
62
  end
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/action_text'
2
4
  require 'rails_admin/config/fields/types/active_record_enum'
3
5
  require 'rails_admin/config/fields/types/active_storage'
4
6
  require 'rails_admin/config/fields/types/belongs_to_association'
5
7
  require 'rails_admin/config/fields/types/boolean'
6
8
  require 'rails_admin/config/fields/types/bson_object_id'
9
+ require 'rails_admin/config/fields/types/composite_keys_belongs_to_association'
7
10
  require 'rails_admin/config/fields/types/date'
8
11
  require 'rails_admin/config/fields/types/datetime'
9
12
  require 'rails_admin/config/fields/types/decimal'
@@ -38,3 +41,4 @@ require 'rails_admin/config/fields/types/froala'
38
41
  require 'rails_admin/config/fields/types/json'
39
42
  require 'rails_admin/config/fields/types/inet'
40
43
  require 'rails_admin/config/fields/types/uuid'
44
+ require 'rails_admin/config/fields/types/citext'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/association'
2
4
 
3
5
  module RailsAdmin
@@ -7,6 +9,10 @@ module RailsAdmin
7
9
  class BelongsToAssociation < RailsAdmin::Config::Fields::Association
8
10
  RailsAdmin::Config::Fields::Types.register(self)
9
11
 
12
+ register_instance_option :filter_operators do
13
+ %w[_discard like not_like is starts_with ends_with] + (required? ? [] : %w[_separator _present _blank])
14
+ end
15
+
10
16
  register_instance_option :formatted_value do
11
17
  (o = value) && o.send(associated_model_config.object_label_method)
12
18
  end
@@ -23,28 +29,16 @@ module RailsAdmin
23
29
  nested_form ? :form_nested_one : :form_filtering_select
24
30
  end
25
31
 
26
- register_instance_option :inline_add do
27
- true
28
- end
29
-
30
- register_instance_option :inline_edit do
32
+ register_instance_option :eager_load do
31
33
  true
32
34
  end
33
35
 
34
- register_instance_option :eager_load? do
35
- true
36
- end
37
-
38
- def associated_primary_key
39
- @associated_primary_key ||= association.primary_key
40
- end
41
-
42
36
  def selected_id
43
- bindings[:object].send(foreign_key)
37
+ bindings[:object].safe_send(association.key_accessor)
44
38
  end
45
39
 
46
40
  def method_name
47
- nested_form ? "#{name}_attributes".to_sym : association.foreign_key
41
+ nested_form ? "#{name}_attributes".to_sym : super
48
42
  end
49
43
 
50
44
  def multiple?