rails_admin 1.4.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 (542) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +19 -12
  3. data/README.md +46 -50
  4. data/Rakefile +15 -2
  5. data/app/assets/javascripts/rails_admin/application.js.erb +29 -0
  6. data/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
  7. data/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
  8. data/app/assets/stylesheets/rails_admin/custom/mixins.scss +1 -1
  9. data/app/assets/stylesheets/rails_admin/custom/variables.scss +1 -1
  10. data/app/controllers/rails_admin/application_controller.rb +8 -3
  11. data/app/controllers/rails_admin/main_controller.rb +55 -50
  12. data/app/helpers/rails_admin/application_helper.rb +143 -62
  13. data/app/helpers/rails_admin/form_builder.rb +25 -13
  14. data/app/helpers/rails_admin/main_helper.rb +19 -42
  15. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
  16. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
  17. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
  18. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
  19. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
  20. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
  21. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
  22. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
  23. data/app/views/layouts/rails_admin/_head.html.erb +29 -0
  24. data/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  25. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
  26. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  27. data/app/views/layouts/rails_admin/application.html.erb +27 -0
  28. data/app/views/layouts/rails_admin/content.html.erb +22 -0
  29. data/app/views/layouts/rails_admin/modal.js.erb +7 -0
  30. data/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
  31. data/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
  32. data/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
  33. data/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
  34. data/app/views/rails_admin/main/{_form_ck_editor.html.haml → _form_ck_editor.html.erb} +3 -3
  35. data/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
  36. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
  37. data/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
  38. data/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
  39. data/app/views/rails_admin/main/_form_field.html.erb +1 -0
  40. data/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
  41. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +49 -0
  42. data/app/views/rails_admin/main/_form_filtering_select.html.erb +33 -0
  43. data/app/views/rails_admin/main/_form_froala.html.erb +8 -0
  44. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
  45. data/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
  46. data/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
  47. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +32 -0
  48. data/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
  49. data/app/views/rails_admin/main/_form_text.html.erb +1 -0
  50. data/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
  51. data/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
  52. data/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
  53. data/app/views/rails_admin/main/dashboard.html.erb +64 -0
  54. data/app/views/rails_admin/main/delete.html.erb +21 -0
  55. data/app/views/rails_admin/main/edit.html.erb +3 -0
  56. data/app/views/rails_admin/main/export.html.erb +149 -0
  57. data/app/views/rails_admin/main/history.html.erb +80 -0
  58. data/app/views/rails_admin/main/index.html.erb +184 -0
  59. data/app/views/rails_admin/main/new.html.erb +3 -0
  60. data/app/views/rails_admin/main/show.html.erb +30 -0
  61. data/config/initializers/active_record_extensions.rb +25 -0
  62. data/config/initializers/mongoid_extensions.rb +3 -1
  63. data/config/locales/rails_admin.en.yml +11 -4
  64. data/config/routes.rb +2 -0
  65. data/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  66. data/lib/generators/rails_admin/install_generator.rb +117 -5
  67. data/lib/generators/rails_admin/templates/initializer.erb +4 -3
  68. data/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  69. data/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  70. data/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  71. data/lib/generators/rails_admin/utils.rb +2 -0
  72. data/lib/rails_admin/abstract_model.rb +36 -16
  73. data/lib/rails_admin/adapters/active_record/association.rb +31 -2
  74. data/lib/rails_admin/adapters/active_record/object_extension.rb +31 -0
  75. data/lib/rails_admin/adapters/active_record/property.rb +4 -6
  76. data/lib/rails_admin/adapters/active_record.rb +92 -41
  77. data/lib/rails_admin/adapters/composite_primary_keys/association.rb +45 -0
  78. data/lib/rails_admin/adapters/composite_primary_keys.rb +40 -0
  79. data/lib/rails_admin/adapters/mongoid/association.rb +52 -13
  80. data/lib/rails_admin/adapters/mongoid/bson.rb +6 -5
  81. data/lib/rails_admin/adapters/mongoid/extension.rb +2 -0
  82. data/lib/rails_admin/adapters/mongoid/object_extension.rb +34 -0
  83. data/lib/rails_admin/adapters/mongoid/property.rb +7 -5
  84. data/lib/rails_admin/adapters/mongoid.rb +60 -33
  85. data/lib/rails_admin/config/actions/base.rb +28 -5
  86. data/lib/rails_admin/config/actions/bulk_delete.rb +4 -2
  87. data/lib/rails_admin/config/actions/dashboard.rb +16 -9
  88. data/lib/rails_admin/config/actions/delete.rb +11 -9
  89. data/lib/rails_admin/config/actions/edit.rb +13 -9
  90. data/lib/rails_admin/config/actions/export.rb +6 -3
  91. data/lib/rails_admin/config/actions/history_index.rb +4 -2
  92. data/lib/rails_admin/config/actions/history_show.rb +4 -2
  93. data/lib/rails_admin/config/actions/index.rb +12 -11
  94. data/lib/rails_admin/config/actions/new.rb +18 -12
  95. data/lib/rails_admin/config/actions/show.rb +3 -1
  96. data/lib/rails_admin/config/actions/show_in_app.rb +9 -3
  97. data/lib/rails_admin/config/actions.rb +6 -4
  98. data/lib/rails_admin/config/configurable.rb +25 -14
  99. data/lib/rails_admin/config/const_load_suppressor.rb +78 -0
  100. data/lib/rails_admin/config/fields/association.rb +21 -11
  101. data/lib/rails_admin/config/fields/base.rb +87 -33
  102. data/lib/rails_admin/config/fields/factories/action_text.rb +14 -0
  103. data/lib/rails_admin/config/fields/factories/active_storage.rb +6 -2
  104. data/lib/rails_admin/config/fields/factories/association.rb +12 -13
  105. data/lib/rails_admin/config/fields/factories/carrierwave.rb +6 -2
  106. data/lib/rails_admin/config/fields/factories/devise.rb +6 -2
  107. data/lib/rails_admin/config/fields/factories/dragonfly.rb +7 -3
  108. data/lib/rails_admin/config/fields/factories/enum.rb +2 -0
  109. data/lib/rails_admin/config/fields/factories/paperclip.rb +6 -2
  110. data/lib/rails_admin/config/fields/factories/password.rb +2 -0
  111. data/lib/rails_admin/config/fields/factories/shrine.rb +29 -0
  112. data/lib/rails_admin/config/fields/group.rb +3 -2
  113. data/lib/rails_admin/config/fields/types/action_text.rb +36 -0
  114. data/lib/rails_admin/config/fields/types/active_record_enum.rb +7 -19
  115. data/lib/rails_admin/config/fields/types/active_storage.rb +24 -3
  116. data/lib/rails_admin/config/fields/types/all.rb +6 -1
  117. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +9 -11
  118. data/lib/rails_admin/config/fields/types/boolean.rb +38 -8
  119. data/lib/rails_admin/config/fields/types/bson_object_id.rb +2 -0
  120. data/lib/rails_admin/config/fields/types/carrierwave.rb +3 -0
  121. data/lib/rails_admin/config/fields/types/citext.rb +15 -0
  122. data/lib/rails_admin/config/fields/types/ck_editor.rb +9 -7
  123. data/lib/rails_admin/config/fields/types/code_mirror.rb +12 -12
  124. data/lib/rails_admin/config/fields/types/color.rb +10 -4
  125. data/lib/rails_admin/config/fields/types/composite_keys_belongs_to_association.rb +31 -0
  126. data/lib/rails_admin/config/fields/types/date.rb +12 -6
  127. data/lib/rails_admin/config/fields/types/datetime.rb +36 -21
  128. data/lib/rails_admin/config/fields/types/decimal.rb +11 -2
  129. data/lib/rails_admin/config/fields/types/dragonfly.rb +5 -1
  130. data/lib/rails_admin/config/fields/types/enum.rb +16 -3
  131. data/lib/rails_admin/config/fields/types/file_upload.rb +15 -4
  132. data/lib/rails_admin/config/fields/types/float.rb +11 -2
  133. data/lib/rails_admin/config/fields/types/froala.rb +11 -11
  134. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +2 -0
  135. data/lib/rails_admin/config/fields/types/has_many_association.rb +7 -5
  136. data/lib/rails_admin/config/fields/types/has_one_association.rb +12 -14
  137. data/lib/rails_admin/config/fields/types/hidden.rb +4 -2
  138. data/lib/rails_admin/config/fields/types/inet.rb +2 -0
  139. data/lib/rails_admin/config/fields/types/integer.rb +4 -6
  140. data/lib/rails_admin/config/fields/types/json.rb +2 -0
  141. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +31 -3
  142. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +18 -3
  143. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +23 -5
  144. data/lib/rails_admin/config/fields/types/numeric.rb +24 -0
  145. data/lib/rails_admin/config/fields/types/paperclip.rb +2 -0
  146. data/lib/rails_admin/config/fields/types/password.rb +7 -1
  147. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +12 -2
  148. data/lib/rails_admin/config/fields/types/serialized.rb +2 -0
  149. data/lib/rails_admin/config/fields/types/shrine.rb +56 -0
  150. data/lib/rails_admin/config/fields/types/simple_mde.rb +10 -5
  151. data/lib/rails_admin/config/fields/types/string.rb +5 -3
  152. data/lib/rails_admin/config/fields/types/string_like.rb +25 -0
  153. data/lib/rails_admin/config/fields/types/text.rb +4 -20
  154. data/lib/rails_admin/config/fields/types/time.rb +16 -4
  155. data/lib/rails_admin/config/fields/types/timestamp.rb +2 -4
  156. data/lib/rails_admin/config/fields/types/uuid.rb +2 -0
  157. data/lib/rails_admin/config/fields/types/wysihtml5.rb +16 -10
  158. data/lib/rails_admin/config/fields/types.rb +3 -1
  159. data/lib/rails_admin/config/fields.rb +8 -3
  160. data/lib/rails_admin/config/groupable.rb +2 -0
  161. data/lib/rails_admin/config/has_description.rb +2 -0
  162. data/lib/rails_admin/config/has_fields.rb +12 -7
  163. data/lib/rails_admin/config/has_groups.rb +3 -1
  164. data/lib/rails_admin/config/hideable.rb +3 -1
  165. data/lib/rails_admin/config/inspectable.rb +3 -3
  166. data/lib/rails_admin/config/lazy_model.rb +16 -10
  167. data/lib/rails_admin/config/model.rb +27 -14
  168. data/lib/rails_admin/config/proxyable/proxy.rb +9 -9
  169. data/lib/rails_admin/config/proxyable.rb +15 -1
  170. data/lib/rails_admin/config/sections/base.rb +4 -3
  171. data/lib/rails_admin/config/sections/create.rb +2 -0
  172. data/lib/rails_admin/config/sections/edit.rb +2 -0
  173. data/lib/rails_admin/config/sections/export.rb +2 -0
  174. data/lib/rails_admin/config/sections/list.rb +22 -4
  175. data/lib/rails_admin/config/sections/modal.rb +2 -0
  176. data/lib/rails_admin/config/sections/nested.rb +2 -0
  177. data/lib/rails_admin/config/sections/show.rb +2 -0
  178. data/lib/rails_admin/config/sections/update.rb +2 -0
  179. data/lib/rails_admin/config/sections.rb +3 -1
  180. data/lib/rails_admin/config.rb +85 -50
  181. data/lib/rails_admin/engine.rb +48 -35
  182. data/lib/rails_admin/extension.rb +18 -12
  183. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +64 -21
  184. data/lib/rails_admin/extensions/cancancan.rb +2 -0
  185. data/lib/rails_admin/extensions/controller_extension.rb +8 -0
  186. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +88 -42
  187. data/lib/rails_admin/extensions/paper_trail.rb +2 -0
  188. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +8 -9
  189. data/lib/rails_admin/extensions/pundit.rb +2 -0
  190. data/lib/rails_admin/support/csv_converter.rb +20 -15
  191. data/lib/rails_admin/support/datetime.rb +50 -85
  192. data/lib/rails_admin/support/es_module_processor.rb +23 -0
  193. data/lib/rails_admin/support/hash_helper.rb +8 -5
  194. data/lib/rails_admin/version.rb +41 -2
  195. data/lib/rails_admin.rb +7 -6
  196. data/lib/tasks/rails_admin.rake +19 -8
  197. data/package.json +30 -0
  198. data/src/rails_admin/base.js +29 -0
  199. data/src/rails_admin/filter-box.js +360 -0
  200. data/src/rails_admin/filtering-multiselect.js +389 -0
  201. data/src/rails_admin/filtering-select.js +308 -0
  202. data/src/rails_admin/i18n.js +18 -0
  203. data/src/rails_admin/jquery.js +3 -0
  204. data/src/rails_admin/nested-form-hooks.js +110 -0
  205. data/src/rails_admin/remote-form.js +193 -0
  206. data/src/rails_admin/sidescroll.js +20 -0
  207. data/src/rails_admin/styles/base/theming.scss +342 -0
  208. data/src/rails_admin/styles/base/variables.scss +3 -0
  209. data/src/rails_admin/styles/base.scss +27 -0
  210. data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  211. data/src/rails_admin/styles/filtering-select.scss +70 -0
  212. data/src/rails_admin/styles/widgets.scss +26 -0
  213. data/src/rails_admin/ui.js +176 -0
  214. data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  215. data/src/rails_admin/widgets.js +507 -0
  216. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  217. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  218. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  219. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
  220. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  221. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  222. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  223. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  224. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  225. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  226. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  227. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  228. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  229. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  230. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  231. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  232. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  233. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  234. data/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
  235. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +111 -0
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +229 -0
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +40 -0
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -0
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +33 -0
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  251. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  252. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +174 -0
  253. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +43 -0
  254. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  255. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  256. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +335 -0
  257. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  258. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +64 -0
  259. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  260. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  261. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  262. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  263. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  264. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  265. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +155 -0
  266. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  267. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +115 -0
  268. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  269. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +104 -0
  270. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +630 -0
  271. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1641 -0
  272. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +53 -0
  273. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  274. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  275. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  276. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  277. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  278. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  279. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  280. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  281. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  282. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  283. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  284. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  285. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  286. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  287. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  288. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  289. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  290. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  291. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  292. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  293. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +78 -0
  294. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  295. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  296. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +133 -0
  297. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  298. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +9 -0
  299. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  300. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  301. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  302. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +144 -0
  303. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +47 -0
  304. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +151 -0
  305. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +16 -0
  306. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +24 -0
  307. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  308. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +31 -0
  309. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  310. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  311. data/{app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-overflow.scss → vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_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 +6351 -0
  319. metadata +218 -374
  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/bootstrap/glyphicons-halflings-white.png +0 -0
  327. data/app/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  328. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  329. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  330. data/app/assets/images/rails_admin/calendar.png +0 -0
  331. data/app/assets/images/rails_admin/clock.png +0 -0
  332. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  333. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  334. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  335. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  336. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  337. data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  338. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  339. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  340. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  341. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  342. data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  343. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  344. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  345. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  346. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  347. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  348. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  349. data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  350. data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  351. data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  352. data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  353. data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  354. data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
  355. data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
  356. data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
  357. data/app/assets/images/rails_admin/logo.png +0 -0
  358. data/app/assets/images/rails_admin/magnifier.png +0 -0
  359. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  360. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  361. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  362. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  363. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  364. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -142
  365. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -92
  366. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -110
  367. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -223
  368. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -170
  369. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -151
  370. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -280
  371. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -113
  372. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -170
  373. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -128
  374. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -457
  375. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  376. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  377. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  378. data/app/assets/javascripts/rails_admin/custom/ui.coffee +0 -1
  379. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  380. data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  381. data/app/assets/javascripts/rails_admin/jquery.pjax.js +0 -743
  382. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -226
  383. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  384. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -292
  385. data/app/assets/javascripts/rails_admin/ra.i18n.coffee +0 -10
  386. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +0 -55
  387. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  388. data/app/assets/javascripts/rails_admin/ra.widgets.coffee +0 -350
  389. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -19
  390. data/app/assets/javascripts/rails_admin/ui.coffee +0 -102
  391. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  392. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  393. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  394. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  395. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  396. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  397. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  398. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  399. data/app/assets/stylesheets/rails_admin/base/theming.scss +0 -341
  400. data/app/assets/stylesheets/rails_admin/base/variables.scss +0 -1
  401. data/app/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  402. data/app/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  403. data/app/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  404. data/app/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  405. data/app/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +0 -157
  406. data/app/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +0 -243
  407. data/app/assets/stylesheets/rails_admin/bootstrap/_close.scss +0 -35
  408. data/app/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  409. data/app/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  410. data/app/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  411. data/app/assets/stylesheets/rails_admin/bootstrap/_forms.scss +0 -538
  412. data/app/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  413. data/app/assets/stylesheets/rails_admin/bootstrap/_grid.scss +0 -84
  414. data/app/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  415. data/app/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  416. data/app/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  417. data/app/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +0 -131
  418. data/app/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  419. data/app/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +0 -39
  420. data/app/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  421. data/app/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +0 -659
  422. data/app/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  423. data/app/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  424. data/app/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  425. data/app/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +0 -88
  426. data/app/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  427. data/app/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  428. data/app/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  429. data/app/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  430. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  431. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  432. data/app/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  433. data/app/assets/stylesheets/rails_admin/bootstrap/_tables.scss +0 -233
  434. data/app/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  435. data/app/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  436. data/app/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +0 -95
  437. data/app/assets/stylesheets/rails_admin/bootstrap/_type.scss +0 -304
  438. data/app/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +0 -57
  439. data/app/assets/stylesheets/rails_admin/bootstrap/_variables.scss +0 -850
  440. data/app/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  441. data/app/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +0 -50
  442. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  443. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  444. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +0 -18
  445. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +0 -50
  446. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  447. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +0 -22
  448. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +0 -84
  449. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +0 -58
  450. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  451. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +0 -122
  452. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  453. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +0 -34
  454. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  455. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +0 -31
  456. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  457. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  458. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  459. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +0 -23
  460. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  461. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  462. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  463. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  464. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  465. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  466. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  467. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  468. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  469. data/app/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
  470. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  471. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -13
  472. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -109
  473. data/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.scss +0 -0
  474. data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.scss +0 -133
  475. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  476. data/app/assets/stylesheets/rails_admin/themes/default/mixins.scss +0 -8
  477. data/app/assets/stylesheets/rails_admin/themes/default/theming.scss +0 -11
  478. data/app/assets/stylesheets/rails_admin/themes/default/variables.scss +0 -12
  479. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  480. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  481. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  482. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  483. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  484. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  485. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  486. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  487. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  488. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  489. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -2
  490. data/app/views/layouts/rails_admin/application.html.haml +0 -24
  491. data/app/views/layouts/rails_admin/pjax.html.haml +0 -16
  492. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  493. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  494. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  495. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  496. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  497. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  498. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -18
  499. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  500. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  501. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +0 -48
  502. data/app/views/rails_admin/main/_form_filtering_select.html.haml +0 -37
  503. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  504. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -14
  505. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  506. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  507. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -11
  508. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  509. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  510. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  511. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  512. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  513. data/app/views/rails_admin/main/dashboard.html.haml +0 -35
  514. data/app/views/rails_admin/main/delete.html.haml +0 -18
  515. data/app/views/rails_admin/main/edit.html.haml +0 -2
  516. data/app/views/rails_admin/main/export.html.haml +0 -92
  517. data/app/views/rails_admin/main/history.html.haml +0 -51
  518. data/app/views/rails_admin/main/index.html.haml +0 -122
  519. data/app/views/rails_admin/main/new.html.haml +0 -2
  520. data/app/views/rails_admin/main/show.html.haml +0 -16
  521. data/config/initializers/devise_patch.rb +0 -9
  522. data/config/initializers/haml.rb +0 -5
  523. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -32
  524. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  525. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  526. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -18
  527. data/lib/rails_admin/bootstrap-sass.rb +0 -45
  528. data/lib/rails_admin/config/fields/factories/refile.rb +0 -25
  529. data/lib/rails_admin/config/fields/types/refile.rb +0 -27
  530. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +0 -57
  531. data/lib/rails_admin/extensions/cancan.rb +0 -3
  532. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  533. data/lib/rails_admin/extensions/history/history.rb +0 -44
  534. data/lib/rails_admin/extensions/history.rb +0 -3
  535. data/lib/rails_admin/support/i18n.rb +0 -43
  536. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2444
  537. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -9977
  538. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  539. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
  540. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
  541. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
  542. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
@@ -1,32 +1,37 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'mongoid'
2
4
  require 'rails_admin/config/sections/list'
3
- require 'rails_admin/adapters/mongoid/abstract_object'
4
5
  require 'rails_admin/adapters/mongoid/association'
6
+ require 'rails_admin/adapters/mongoid/object_extension'
5
7
  require 'rails_admin/adapters/mongoid/property'
6
8
  require 'rails_admin/adapters/mongoid/bson'
7
9
 
8
10
  module RailsAdmin
9
11
  module Adapters
10
12
  module Mongoid
11
- DISABLED_COLUMN_TYPES = %w(Range Moped::BSON::Binary BSON::Binary Mongoid::Geospatial::Point).freeze
13
+ DISABLED_COLUMN_TYPES = %w[Range Moped::BSON::Binary BSON::Binary Mongoid::Geospatial::Point].freeze
12
14
 
13
15
  def parse_object_id(value)
14
16
  Bson.parse_object_id(value)
15
17
  end
16
18
 
17
19
  def new(params = {})
18
- AbstractObject.new(model.new(params))
20
+ model.new(params).extend(ObjectExtension)
19
21
  end
20
22
 
21
- def get(id)
22
- AbstractObject.new(model.find(id))
23
- rescue => e
24
- raise e if %w(
23
+ def get(id, scope = scoped)
24
+ object = scope.find(id)
25
+ return nil unless object
26
+
27
+ object.extend(ObjectExtension)
28
+ rescue StandardError => e
29
+ raise e if %w[
25
30
  Mongoid::Errors::DocumentNotFound
26
31
  Mongoid::Errors::InvalidFind
27
32
  Moped::Errors::InvalidObjectId
28
33
  BSON::InvalidObjectId
29
- ).exclude?(e.class.to_s)
34
+ ].exclude?(e.class.to_s)
30
35
  end
31
36
 
32
37
  def scoped
@@ -42,13 +47,19 @@ module RailsAdmin
42
47
  scope = scope.includes(*options[:include]) if options[:include]
43
48
  scope = scope.limit(options[:limit]) if options[:limit]
44
49
  scope = scope.any_in(_id: options[:bulk_ids]) if options[:bulk_ids]
45
- scope = scope.where(query_conditions(options[:query])) if options[:query]
46
- scope = scope.where(filter_conditions(options[:filters])) if options[:filters]
47
- if options[:page] && options[:per]
48
- scope = scope.send(Kaminari.config.page_method_name, options[:page]).per(options[:per])
49
- end
50
+ scope = query_scope(scope, options[:query]) if options[:query]
51
+ scope = filter_scope(scope, options[:filters]) if options[:filters]
52
+ scope = scope.send(Kaminari.config.page_method_name, options[:page]).per(options[:per]) if options[:page] && options[:per]
50
53
  scope = sort_by(options, scope) if options[:sort]
51
54
  scope
55
+ rescue NoMethodError => e
56
+ if /page/.match?(e.message)
57
+ e = e.exception <<~ERROR
58
+ #{e.message}
59
+ If you don't have kaminari-mongoid installed, add `gem 'kaminari-mongoid'` to your Gemfile.
60
+ ERROR
61
+ end
62
+ raise e
52
63
  end
53
64
 
54
65
  def count(options = {}, scope = nil)
@@ -74,6 +85,12 @@ module RailsAdmin
74
85
  fields.collect { |_name, field| Property.new(field, model) }
75
86
  end
76
87
 
88
+ def base_class
89
+ klass = model
90
+ klass = klass.superclass while klass.hereditary?
91
+ klass
92
+ end
93
+
77
94
  def table_name
78
95
  model.collection_name.to_s
79
96
  end
@@ -104,36 +121,41 @@ module RailsAdmin
104
121
  conditions_per_collection = {}
105
122
  field.searchable_columns.each do |column_infos|
106
123
  collection_name, column_name = parse_collection_name(column_infos[:column])
107
- value = parse_field_value(field, value)
108
124
  statement = build_statement(column_name, column_infos[:type], value, operator)
109
125
  next unless statement
126
+
110
127
  conditions_per_collection[collection_name] ||= []
111
128
  conditions_per_collection[collection_name] << statement
112
129
  end
113
130
  conditions_per_collection
114
131
  end
115
132
 
116
- def query_conditions(query, fields = config.list.fields.select(&:queryable?))
117
- statements = []
133
+ def query_scope(scope, query, fields = config.list.fields.select(&:queryable?))
134
+ if config.list.search_by
135
+ scope.send(config.list.search_by, query)
136
+ else
137
+ statements = []
118
138
 
119
- fields.each do |field|
120
- value = parse_field_value(field, query)
121
- conditions_per_collection = make_field_conditions(field, value, field.search_operator)
122
- statements.concat make_condition_for_current_collection(field, conditions_per_collection)
123
- end
139
+ fields.each do |field|
140
+ value = parse_field_value(field, query)
141
+ conditions_per_collection = make_field_conditions(field, value, field.search_operator)
142
+ statements.concat make_condition_for_current_collection(field, conditions_per_collection)
143
+ end
124
144
 
125
- statements.any? ? {'$or' => statements} : {}
145
+ scope.where(statements.any? ? {'$or' => statements} : {})
146
+ end
126
147
  end
127
148
 
128
149
  # filters example => {"string_field"=>{"0055"=>{"o"=>"like", "v"=>"test_value"}}, ...}
129
150
  # "0055" is the filter index, no use here. o is the operator, v the value
130
- def filter_conditions(filters, fields = config.list.fields.select(&:filterable?))
151
+ def filter_scope(scope, filters, fields = config.list.fields.select(&:filterable?))
131
152
  statements = []
132
153
 
133
154
  filters.each_pair do |field_name, filters_dump|
134
155
  filters_dump.each do |_, filter_dump|
135
156
  field = fields.detect { |f| f.name.to_s == field_name }
136
157
  next unless field
158
+
137
159
  value = parse_field_value(field, filter_dump[:v])
138
160
  conditions_per_collection = make_field_conditions(field, value, (filter_dump[:o] || 'default'))
139
161
  field_statements = make_condition_for_current_collection(field, conditions_per_collection)
@@ -145,7 +167,7 @@ module RailsAdmin
145
167
  end
146
168
  end
147
169
 
148
- statements.any? ? {'$and' => statements} : {}
170
+ scope.where(statements.any? ? {'$and' => statements} : {})
149
171
  end
150
172
 
151
173
  def parse_collection_name(column)
@@ -174,11 +196,12 @@ module RailsAdmin
174
196
  def perform_search_on_associated_collection(field_name, conditions)
175
197
  target_association = associations.detect { |a| a.name == field_name }
176
198
  return [] unless target_association
199
+
177
200
  model = target_association.klass
178
201
  case target_association.type
179
202
  when :belongs_to, :has_and_belongs_to_many
180
203
  [{target_association.foreign_key.to_s => {'$in' => model.where('$or' => conditions).all.collect { |r| r.send(target_association.primary_key) }}}]
181
- when :has_many
204
+ when :has_many, :has_one
182
205
  [{target_association.primary_key.to_s => {'$in' => model.where('$or' => conditions).all.collect { |r| r.send(target_association.foreign_key) }}}]
183
206
  end
184
207
  end
@@ -189,9 +212,7 @@ module RailsAdmin
189
212
  case options[:sort]
190
213
  when String
191
214
  field_name, collection_name = options[:sort].split('.').reverse
192
- if collection_name && collection_name != table_name
193
- raise('sorting by associated model column is not supported in Non-Relational databases')
194
- end
215
+ raise 'sorting by associated model column is not supported in Non-Relational databases' if collection_name && collection_name != table_name
195
216
  when Symbol
196
217
  field_name = options[:sort].to_s
197
218
  end
@@ -229,8 +250,8 @@ module RailsAdmin
229
250
  end
230
251
 
231
252
  def build_statement_for_boolean
232
- return {@column => false} if %w(false f 0).include?(@value)
233
- return {@column => true} if %w(true t 1).include?(@value)
253
+ return {@column => false} if %w[false f 0].include?(@value)
254
+ return {@column => true} if %w[true t 1].include?(@value)
234
255
  end
235
256
 
236
257
  def column_for_value(value)
@@ -239,8 +260,11 @@ module RailsAdmin
239
260
 
240
261
  def build_statement_for_string_or_text
241
262
  return if @value.blank?
242
- @value = begin
263
+
264
+ @value =
243
265
  case @operator
266
+ when 'not_like'
267
+ Regexp.compile("^((?!#{Regexp.escape(@value)}).)*$", Regexp::IGNORECASE)
244
268
  when 'default', 'like'
245
269
  Regexp.compile(Regexp.escape(@value), Regexp::IGNORECASE)
246
270
  when 'starts_with'
@@ -252,12 +276,13 @@ module RailsAdmin
252
276
  else
253
277
  return
254
278
  end
255
- end
279
+
256
280
  {@column => @value}
257
281
  end
258
282
 
259
283
  def build_statement_for_enum
260
284
  return if @value.blank?
285
+
261
286
  {@column => {'$in' => Array.wrap(@value)}}
262
287
  end
263
288
 
@@ -266,7 +291,9 @@ module RailsAdmin
266
291
  end
267
292
 
268
293
  def range_filter(min, max)
269
- if min && max
294
+ if min && max && min == max
295
+ {@column => min}
296
+ elsif min && max
270
297
  {@column => {'$gte' => min, '$lte' => max}}
271
298
  elsif min
272
299
  {@column => {'$gte' => min}}
@@ -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'
@@ -18,9 +20,25 @@ module RailsAdmin
18
20
  []
19
21
  end
20
22
 
23
+ register_instance_option :show_in_navigation do
24
+ root?
25
+ end
26
+
27
+ register_instance_option :show_in_sidebar do
28
+ !show_in_navigation
29
+ end
30
+
31
+ register_instance_option :show_in_menu do
32
+ true
33
+ end
34
+
35
+ register_instance_option :sidebar_label do
36
+ nil
37
+ end
38
+
21
39
  # http://getbootstrap.com/2.3.2/base-css.html#icons
22
40
  register_instance_option :link_icon do
23
- 'icon-question-sign'
41
+ 'fas fa-question'
24
42
  end
25
43
 
26
44
  # Should the action be visible
@@ -33,7 +51,7 @@ module RailsAdmin
33
51
  (only.nil? || [only].flatten.collect(&:to_s).include?(bindings[:abstract_model].to_s)) &&
34
52
  ![except].flatten.collect(&:to_s).include?(bindings[:abstract_model].to_s) &&
35
53
  !bindings[:abstract_model].config.excluded?
36
- )
54
+ ) && (!respond_to?(:writable?) || writable?)
37
55
  end
38
56
 
39
57
  register_instance_option :authorized? do
@@ -57,8 +75,13 @@ module RailsAdmin
57
75
  false
58
76
  end
59
77
 
60
- # Render via pjax?
61
- register_instance_option :pjax? do
78
+ # Target window [_self, _blank]
79
+ register_instance_option :link_target do
80
+ nil
81
+ end
82
+
83
+ # Determines whether to navigate via Turbo Drive or not
84
+ register_instance_option :turbo? do
62
85
  true
63
86
  end
64
87
 
@@ -83,7 +106,7 @@ module RailsAdmin
83
106
  key.to_sym
84
107
  end
85
108
 
86
- # For Cancan and the like
109
+ # For CanCanCan and the like
87
110
  register_instance_option :authorization_key do
88
111
  key.to_sym
89
112
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -9,7 +11,7 @@ module RailsAdmin
9
11
  end
10
12
 
11
13
  register_instance_option :http_methods do
12
- [:post, :delete]
14
+ %i[post delete]
13
15
  end
14
16
 
15
17
  register_instance_option :controller do
@@ -36,7 +38,7 @@ module RailsAdmin
36
38
  destroyed = processed_objects.select(&:destroyed?)
37
39
  not_destroyed = processed_objects - destroyed
38
40
  destroyed.each do |object|
39
- @auditing_adapter && @auditing_adapter.delete_object(object, @abstract_model, _current_user)
41
+ @auditing_adapter&.delete_object(object, @abstract_model, _current_user)
40
42
  end
41
43
  end
42
44
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -18,20 +20,21 @@ module RailsAdmin
18
20
 
19
21
  register_instance_option :controller do
20
22
  proc do
21
- @history = @auditing_adapter && @auditing_adapter.latest(@action.auditing_versions_limit) || []
23
+ @history = @auditing_adapter&.latest(@action.auditing_versions_limit) if @action.history?
22
24
  if @action.statistics?
23
- @abstract_models = RailsAdmin::Config.visible_models(controller: self).collect(&:abstract_model)
25
+ model_configs = RailsAdmin::Config.visible_models(controller: self)
24
26
 
27
+ @abstract_models = model_configs.map(&:abstract_model)
25
28
  @most_recent_created = {}
26
29
  @count = {}
27
30
  @max = 0
28
- @abstract_models.each do |t|
29
- scope = @authorization_adapter && @authorization_adapter.query(:index, t)
30
- current_count = t.count({}, scope)
31
+ model_configs.each do |config|
32
+ scope = @authorization_adapter&.query(:index, config.abstract_model)
33
+ current_count = config.abstract_model.count({}, scope)
31
34
  @max = current_count > @max ? current_count : @max
32
- @count[t.model.name] = current_count
33
- next unless t.properties.detect { |c| c.name == :created_at }
34
- @most_recent_created[t.model.name] = t.model.last.try(:created_at)
35
+ name = config.abstract_model.model.name
36
+ @count[name] = current_count
37
+ @most_recent_created[name] = config.last_created_at
35
38
  end
36
39
  end
37
40
  render @action.template_name, status: @status_code || :ok
@@ -43,12 +46,16 @@ module RailsAdmin
43
46
  end
44
47
 
45
48
  register_instance_option :link_icon do
46
- 'icon-home'
49
+ 'fas fa-home'
47
50
  end
48
51
 
49
52
  register_instance_option :statistics? do
50
53
  true
51
54
  end
55
+
56
+ register_instance_option :history? do
57
+ true
58
+ end
52
59
  end
53
60
  end
54
61
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -13,7 +15,7 @@ module RailsAdmin
13
15
  end
14
16
 
15
17
  register_instance_option :http_methods do
16
- [:get, :delete]
18
+ %i[get delete]
17
19
  end
18
20
 
19
21
  register_instance_option :authorization_key do
@@ -31,24 +33,24 @@ module RailsAdmin
31
33
 
32
34
  elsif request.delete? # DESTROY
33
35
 
34
- redirect_path = nil
35
- @auditing_adapter && @auditing_adapter.delete_object(@object, @abstract_model, _current_user)
36
+ @auditing_adapter&.delete_object(@object, @abstract_model, _current_user)
36
37
  if @object.destroy
37
38
  flash[:success] = t('admin.flash.successful', name: @model_config.label, action: t('admin.actions.delete.done'))
38
- redirect_path = index_path
39
+ redirect_to index_path
39
40
  else
40
- flash[:error] = t('admin.flash.error', name: @model_config.label, action: t('admin.actions.delete.done'))
41
- redirect_path = back_or_index
41
+ handle_save_error :delete
42
42
  end
43
43
 
44
- redirect_to redirect_path
45
-
46
44
  end
47
45
  end
48
46
  end
49
47
 
50
48
  register_instance_option :link_icon do
51
- 'icon-remove'
49
+ 'fas fa-times'
50
+ end
51
+
52
+ register_instance_option :writable? do
53
+ !(bindings[:object] && bindings[:object].readonly?)
52
54
  end
53
55
  end
54
56
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -9,7 +11,7 @@ module RailsAdmin
9
11
  end
10
12
 
11
13
  register_instance_option :http_methods do
12
- [:get, :put]
14
+ %i[get put]
13
15
  end
14
16
 
15
17
  register_instance_option :controller do
@@ -18,22 +20,20 @@ module RailsAdmin
18
20
 
19
21
  respond_to do |format|
20
22
  format.html { render @action.template_name }
21
- format.js { render @action.template_name, layout: false }
23
+ format.js { render @action.template_name, layout: 'rails_admin/modal', content_type: Mime[:html].to_s }
22
24
  end
23
25
 
24
26
  elsif request.put? # UPDATE
25
27
  sanitize_params_for!(request.xhr? ? :modal : :update)
26
28
 
27
- @object.set_attributes(params[@abstract_model.param_key])
28
- @authorization_adapter && @authorization_adapter.attributes_for(:update, @abstract_model).each do |name, value|
29
- @object.send("#{name}=", value)
30
- end
29
+ @object.assign_attributes(params[@abstract_model.param_key])
30
+ @authorization_adapter&.authorize(:update, @abstract_model, @object)
31
31
  changes = @object.changes
32
32
  if @object.save
33
- @auditing_adapter && @auditing_adapter.update_object(@object, @abstract_model, _current_user, changes)
33
+ @auditing_adapter&.update_object(@object, @abstract_model, _current_user, changes)
34
34
  respond_to do |format|
35
35
  format.html { redirect_to_on_success }
36
- format.js { render json: {id: @object.id.to_s, label: @model_config.with(object: @object).object_label} }
36
+ format.json { render json: {id: @object.id.to_s, label: @model_config.with(object: @object).object_label} }
37
37
  end
38
38
  else
39
39
  handle_save_error :edit
@@ -44,7 +44,11 @@ module RailsAdmin
44
44
  end
45
45
 
46
46
  register_instance_option :link_icon do
47
- 'icon-pencil'
47
+ 'fas fa-pencil-alt'
48
+ end
49
+
50
+ register_instance_option :writable? do
51
+ !(bindings[:object] && bindings[:object].readonly?)
48
52
  end
49
53
  end
50
54
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -9,12 +11,13 @@ module RailsAdmin
9
11
  end
10
12
 
11
13
  register_instance_option :http_methods do
12
- [:get, :post]
14
+ %i[get post]
13
15
  end
14
16
 
15
17
  register_instance_option :controller do
16
18
  proc do
17
- if format = params[:json] && :json || params[:csv] && :csv || params[:xml] && :xml
19
+ format = params[:json] && :json || params[:csv] && :csv || params[:xml] && :xml
20
+ if format
18
21
  request.format = format
19
22
  @schema = HashHelper.symbolize(params[:schema].slice(:except, :include, :methods, :only).permit!.to_h) if params[:schema] # to_json and to_xml expect symbols for keys AND values.
20
23
  @objects = list_entries(@model_config, :export)
@@ -30,7 +33,7 @@ module RailsAdmin
30
33
  end
31
34
 
32
35
  register_instance_option :link_icon do
33
- 'icon-share'
36
+ 'fas fa-file-export'
34
37
  end
35
38
  end
36
39
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -19,7 +21,7 @@ module RailsAdmin
19
21
  register_instance_option :controller do
20
22
  proc do
21
23
  @general = true
22
- @history = @auditing_adapter && @auditing_adapter.listing_for_model(@abstract_model, params[:query], params[:sort], params[:sort_reverse], params[:all], params[:page]) || []
24
+ @history = @auditing_adapter&.listing_for_model(@abstract_model, params[:query], params[:sort], params[:sort_reverse], params[:all], params[Kaminari.config.param_name]) || []
23
25
 
24
26
  render @action.template_name
25
27
  end
@@ -30,7 +32,7 @@ module RailsAdmin
30
32
  end
31
33
 
32
34
  register_instance_option :link_icon do
33
- 'icon-book'
35
+ 'fas fa-book'
34
36
  end
35
37
  end
36
38
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Actions
@@ -19,7 +21,7 @@ module RailsAdmin
19
21
  register_instance_option :controller do
20
22
  proc do
21
23
  @general = false
22
- @history = @auditing_adapter && @auditing_adapter.listing_for_object(@abstract_model, @object, params[:query], params[:sort], params[:sort_reverse], params[:all], params[:page]) || []
24
+ @history = @auditing_adapter&.listing_for_object(@abstract_model, @object, params[:query], params[:sort], params[:sort_reverse], params[:all], params[Kaminari.config.param_name]) || []
23
25
 
24
26
  render @action.template_name
25
27
  end
@@ -30,7 +32,7 @@ module RailsAdmin
30
32
  end
31
33
 
32
34
  register_instance_option :link_icon do
33
- 'icon-book'
35
+ 'fas fa-book'
34
36
  end
35
37
  end
36
38
  end
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'activemodel-serializers-xml'
4
+
1
5
  module RailsAdmin
2
6
  module Config
3
7
  module Actions
@@ -9,7 +13,7 @@ module RailsAdmin
9
13
  end
10
14
 
11
15
  register_instance_option :http_methods do
12
- [:get, :post]
16
+ %i[get post]
13
17
  end
14
18
 
15
19
  register_instance_option :route_fragment do
@@ -18,7 +22,8 @@ module RailsAdmin
18
22
 
19
23
  register_instance_option :breadcrumb_parent do
20
24
  parent_model = bindings[:abstract_model].try(:config).try(:parent)
21
- if am = parent_model && RailsAdmin.config(parent_model).try(:abstract_model)
25
+ am = parent_model && RailsAdmin.config(parent_model).try(:abstract_model)
26
+ if am
22
27
  [:index, am]
23
28
  else
24
29
  [:dashboard]
@@ -31,9 +36,7 @@ module RailsAdmin
31
36
 
32
37
  unless @model_config.list.scopes.empty?
33
38
  if params[:scope].blank?
34
- unless @model_config.list.scopes.first.nil?
35
- @objects = @objects.send(@model_config.list.scopes.first)
36
- end
39
+ @objects = @objects.send(@model_config.list.scopes.first) unless @model_config.list.scopes.first.nil?
37
40
  elsif @model_config.list.scopes.collect(&:to_s).include?(params[:scope])
38
41
  @objects = @objects.send(params[:scope].to_sym)
39
42
  end
@@ -45,7 +48,7 @@ module RailsAdmin
45
48
  end
46
49
 
47
50
  format.json do
48
- output = begin
51
+ output =
49
52
  if params[:compact]
50
53
  primary_key_method = @association ? @association.associated_primary_key : @model_config.abstract_model.primary_key
51
54
  label_method = @model_config.object_label_method
@@ -53,7 +56,7 @@ module RailsAdmin
53
56
  else
54
57
  @objects.to_json(@schema)
55
58
  end
56
- end
59
+
57
60
  if params[:send_data]
58
61
  send_data output, filename: "#{params[:model_name]}_#{DateTime.now.strftime('%Y-%m-%d_%Hh%Mm%S')}.json"
59
62
  else
@@ -76,10 +79,8 @@ module RailsAdmin
76
79
  send_data output,
77
80
  type: "text/csv; charset=#{encoding}; #{'header=present' if header}",
78
81
  disposition: "attachment; filename=#{params[:model_name]}_#{DateTime.now.strftime('%Y-%m-%d_%Hh%Mm%S')}.csv"
79
- elsif Rails.version.to_s >= '5'
80
- render plain: output
81
82
  else
82
- render text: output
83
+ render plain: output
83
84
  end
84
85
  end
85
86
  end
@@ -87,7 +88,7 @@ module RailsAdmin
87
88
  end
88
89
 
89
90
  register_instance_option :link_icon do
90
- 'icon-th-list'
91
+ 'fas fa-th-list'
91
92
  end
92
93
  end
93
94
  end