rails_admin 2.2.1 → 3.0.0.rc2

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 (477) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -11
  3. data/README.md +41 -38
  4. data/Rakefile +13 -2
  5. data/app/assets/javascripts/rails_admin/application.js +21 -0
  6. data/app/assets/stylesheets/rails_admin/application.scss +31 -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 +4 -3
  10. data/app/controllers/rails_admin/main_controller.rb +49 -38
  11. data/app/helpers/rails_admin/application_helper.rb +74 -58
  12. data/app/helpers/rails_admin/form_builder.rb +7 -6
  13. data/app/helpers/rails_admin/main_helper.rb +27 -43
  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 +17 -0
  23. data/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  24. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +24 -0
  25. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  26. data/app/views/layouts/rails_admin/application.html.erb +24 -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 +7 -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.haml → _form_filtering_multiselect.html.erb} +17 -17
  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 +196 -0
  58. data/app/views/rails_admin/main/new.html.erb +3 -0
  59. data/app/views/rails_admin/main/show.html.erb +28 -0
  60. data/config/initializers/active_record_extensions.rb +3 -1
  61. data/config/initializers/mongoid_extensions.rb +1 -1
  62. data/config/locales/rails_admin.en.yml +6 -2
  63. data/lib/generators/rails_admin/install_generator.rb +57 -5
  64. data/lib/generators/rails_admin/templates/initializer.erb +2 -1
  65. data/lib/generators/rails_admin/templates/rails_admin.js.erb +2 -0
  66. data/lib/generators/rails_admin/templates/rails_admin.scss +1 -0
  67. data/lib/generators/rails_admin/templates/webpack.config.js +29 -0
  68. data/lib/rails_admin/abstract_model.rb +24 -10
  69. data/lib/rails_admin/adapters/active_record/association.rb +20 -1
  70. data/lib/rails_admin/adapters/active_record/object_extension.rb +29 -0
  71. data/lib/rails_admin/adapters/active_record/property.rb +2 -2
  72. data/lib/rails_admin/adapters/active_record.rb +34 -26
  73. data/lib/rails_admin/adapters/mongoid/association.rb +38 -9
  74. data/lib/rails_admin/adapters/mongoid/bson.rb +4 -5
  75. data/lib/rails_admin/adapters/mongoid/extension.rb +3 -1
  76. data/lib/rails_admin/adapters/mongoid/object_extension.rb +32 -0
  77. data/lib/rails_admin/adapters/mongoid/property.rb +5 -5
  78. data/lib/rails_admin/adapters/mongoid.rb +28 -20
  79. data/lib/rails_admin/config/actions/base.rb +5 -5
  80. data/lib/rails_admin/config/actions/bulk_delete.rb +2 -2
  81. data/lib/rails_admin/config/actions/dashboard.rb +14 -9
  82. data/lib/rails_admin/config/actions/delete.rb +9 -9
  83. data/lib/rails_admin/config/actions/edit.rb +11 -7
  84. data/lib/rails_admin/config/actions/export.rb +2 -2
  85. data/lib/rails_admin/config/actions/history_index.rb +2 -2
  86. data/lib/rails_admin/config/actions/history_show.rb +2 -2
  87. data/lib/rails_admin/config/actions/index.rb +5 -7
  88. data/lib/rails_admin/config/actions/new.rb +14 -9
  89. data/lib/rails_admin/config/actions/show.rb +1 -1
  90. data/lib/rails_admin/config/actions/show_in_app.rb +6 -6
  91. data/lib/rails_admin/config/actions.rb +4 -4
  92. data/lib/rails_admin/config/configurable.rb +2 -2
  93. data/lib/rails_admin/config/fields/association.rb +19 -11
  94. data/lib/rails_admin/config/fields/base.rb +45 -25
  95. data/lib/rails_admin/config/fields/factories/active_storage.rb +1 -0
  96. data/lib/rails_admin/config/fields/factories/association.rb +6 -8
  97. data/lib/rails_admin/config/fields/factories/carrierwave.rb +2 -1
  98. data/lib/rails_admin/config/fields/factories/devise.rb +2 -1
  99. data/lib/rails_admin/config/fields/factories/dragonfly.rb +2 -1
  100. data/lib/rails_admin/config/fields/factories/paperclip.rb +2 -1
  101. data/lib/rails_admin/config/fields/factories/shrine.rb +1 -1
  102. data/lib/rails_admin/config/fields/group.rb +1 -2
  103. data/lib/rails_admin/config/fields/types/action_text.rb +1 -1
  104. data/lib/rails_admin/config/fields/types/active_record_enum.rb +2 -0
  105. data/lib/rails_admin/config/fields/types/active_storage.rb +9 -7
  106. data/lib/rails_admin/config/fields/types/all.rb +1 -0
  107. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +4 -12
  108. data/lib/rails_admin/config/fields/types/boolean.rb +32 -8
  109. data/lib/rails_admin/config/fields/types/carrierwave.rb +1 -0
  110. data/lib/rails_admin/config/fields/types/citext.rb +13 -0
  111. data/lib/rails_admin/config/fields/types/color.rb +6 -2
  112. data/lib/rails_admin/config/fields/types/date.rb +10 -6
  113. data/lib/rails_admin/config/fields/types/datetime.rb +24 -22
  114. data/lib/rails_admin/config/fields/types/decimal.rb +9 -2
  115. data/lib/rails_admin/config/fields/types/dragonfly.rb +3 -1
  116. data/lib/rails_admin/config/fields/types/enum.rb +1 -1
  117. data/lib/rails_admin/config/fields/types/file_upload.rb +4 -3
  118. data/lib/rails_admin/config/fields/types/float.rb +9 -2
  119. data/lib/rails_admin/config/fields/types/has_many_association.rb +5 -5
  120. data/lib/rails_admin/config/fields/types/has_one_association.rb +5 -13
  121. data/lib/rails_admin/config/fields/types/integer.rb +2 -6
  122. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +8 -6
  123. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +1 -0
  124. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +4 -3
  125. data/lib/rails_admin/config/fields/types/numeric.rb +18 -0
  126. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +3 -2
  127. data/lib/rails_admin/config/fields/types/string.rb +1 -1
  128. data/lib/rails_admin/config/fields/types/time.rb +10 -4
  129. data/lib/rails_admin/config/fields/types/timestamp.rb +0 -4
  130. data/lib/rails_admin/config/fields/types.rb +1 -1
  131. data/lib/rails_admin/config/fields.rb +3 -1
  132. data/lib/rails_admin/config/has_fields.rb +9 -6
  133. data/lib/rails_admin/config/hideable.rb +1 -1
  134. data/lib/rails_admin/config/inspectable.rb +1 -3
  135. data/lib/rails_admin/config/model.rb +18 -10
  136. data/lib/rails_admin/config/sections/base.rb +2 -3
  137. data/lib/rails_admin/config/sections/list.rb +8 -19
  138. data/lib/rails_admin/config/sections.rb +1 -1
  139. data/lib/rails_admin/config.rb +87 -38
  140. data/lib/rails_admin/engine.rb +37 -27
  141. data/lib/rails_admin/extension.rb +6 -14
  142. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +4 -2
  143. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +12 -7
  144. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +6 -7
  145. data/lib/rails_admin/support/csv_converter.rb +12 -13
  146. data/lib/rails_admin/support/datetime.rb +49 -86
  147. data/lib/rails_admin/support/esmodule_preprocessor.rb +33 -0
  148. data/lib/rails_admin/support/hash_helper.rb +6 -5
  149. data/lib/rails_admin/version.rb +8 -4
  150. data/lib/rails_admin.rb +1 -4
  151. data/lib/tasks/rails_admin.rake +3 -3
  152. data/package.json +30 -0
  153. data/src/rails_admin/base.js +18 -0
  154. data/src/rails_admin/filter-box.js +404 -0
  155. data/src/rails_admin/filtering-multiselect.js +394 -0
  156. data/src/rails_admin/filtering-select.js +299 -0
  157. data/src/rails_admin/i18n.js +16 -0
  158. data/src/rails_admin/nested-form-hooks.js +108 -0
  159. data/src/rails_admin/remote-form.js +193 -0
  160. data/src/rails_admin/sidescroll.js +20 -0
  161. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
  162. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
  163. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/theming.scss +125 -141
  164. data/src/rails_admin/styles/base/variables.scss +3 -0
  165. data/src/rails_admin/styles/base.scss +27 -0
  166. data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  167. data/src/rails_admin/styles/filtering-select.scss +70 -0
  168. data/src/rails_admin/styles/widgets.scss +26 -0
  169. data/src/rails_admin/ui.js +134 -0
  170. data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  171. data/src/rails_admin/widgets.js +502 -0
  172. data/vendor/assets/fonts/rails_admin/fa-solid-900.eot +0 -0
  173. data/vendor/assets/fonts/rails_admin/fa-solid-900.svg +5034 -0
  174. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  175. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff +0 -0
  176. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  177. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  178. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +10683 -0
  179. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  180. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  181. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  182. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  183. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  184. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  185. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  186. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  187. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  188. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  189. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  190. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  191. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  192. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  193. data/vendor/assets/javascripts/rails_admin/jquery3.js +10872 -0
  194. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  195. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  196. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  197. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  198. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  199. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  200. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  201. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  202. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  203. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  204. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  205. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  206. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  207. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  208. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  209. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  210. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  211. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  212. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  213. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  214. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  215. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  216. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  217. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  218. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  219. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  220. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  221. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  222. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  223. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  224. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  225. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  226. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  227. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  228. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  229. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  230. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  231. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  232. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  233. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  234. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  251. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  252. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  253. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  254. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  255. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  256. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  257. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  258. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  259. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  260. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  261. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  262. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  263. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  264. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  265. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  266. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  267. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  268. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  269. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  270. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  271. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  272. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  273. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  274. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  275. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  276. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  277. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  278. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +4476 -2216
  279. metadata +179 -329
  280. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  281. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  282. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  283. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  284. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  285. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  286. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  287. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  288. data/app/assets/images/rails_admin/calendar.png +0 -0
  289. data/app/assets/images/rails_admin/clock.png +0 -0
  290. data/app/assets/images/rails_admin/logo.png +0 -0
  291. data/app/assets/images/rails_admin/magnifier.png +0 -0
  292. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  293. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  294. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  295. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  296. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  297. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  298. data/app/assets/javascripts/rails_admin/jquery.migrate.js +0 -3
  299. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -246
  300. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  301. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
  302. data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
  303. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
  304. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  305. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
  306. data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
  307. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -21
  308. data/app/assets/javascripts/rails_admin/ui.js +0 -135
  309. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  310. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  311. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  312. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  313. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  314. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  315. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  316. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  317. data/app/assets/stylesheets/rails_admin/base/variables.scss +0 -1
  318. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  319. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
  320. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
  321. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
  322. data/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.scss +0 -0
  323. data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.scss +0 -133
  324. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  325. data/app/assets/stylesheets/rails_admin/themes/default/mixins.scss +0 -8
  326. data/app/assets/stylesheets/rails_admin/themes/default/theming.scss +0 -11
  327. data/app/assets/stylesheets/rails_admin/themes/default/variables.scss +0 -12
  328. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  329. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  330. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  331. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  332. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  333. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  334. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  335. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  336. data/app/views/layouts/rails_admin/_head.html.haml +0 -7
  337. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  338. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  339. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
  340. data/app/views/layouts/rails_admin/application.html.haml +0 -16
  341. data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
  342. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  343. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  344. data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
  345. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  346. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  347. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  348. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  349. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -19
  350. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  351. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  352. data/app/views/rails_admin/main/_form_filtering_select.html.haml +0 -37
  353. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  354. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
  355. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  356. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  357. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
  358. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  359. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  360. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  361. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  362. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  363. data/app/views/rails_admin/main/dashboard.html.haml +0 -34
  364. data/app/views/rails_admin/main/delete.html.haml +0 -18
  365. data/app/views/rails_admin/main/edit.html.haml +0 -2
  366. data/app/views/rails_admin/main/export.html.haml +0 -92
  367. data/app/views/rails_admin/main/history.html.haml +0 -51
  368. data/app/views/rails_admin/main/index.html.haml +0 -126
  369. data/app/views/rails_admin/main/new.html.haml +0 -2
  370. data/app/views/rails_admin/main/show.html.haml +0 -15
  371. data/config/initializers/haml.rb +0 -5
  372. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -38
  373. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  374. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  375. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
  376. data/lib/rails_admin/bootstrap-sass.rb +0 -49
  377. data/lib/rails_admin/config/lazy_model.rb +0 -68
  378. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  379. data/lib/rails_admin/extensions/history/history.rb +0 -44
  380. data/lib/rails_admin/extensions/history.rb +0 -3
  381. data/lib/rails_admin/support/i18n.rb +0 -43
  382. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  383. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  384. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
  385. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  386. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  387. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  388. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  389. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  390. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  391. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  392. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  393. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  394. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  395. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  396. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  397. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  398. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  399. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  400. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  401. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  402. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  403. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  404. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  405. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  406. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  407. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  408. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  409. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  410. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  411. data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
  412. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  413. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -164
  414. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -95
  415. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -125
  416. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -246
  417. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -212
  418. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -165
  419. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -358
  420. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -123
  421. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -172
  422. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -155
  423. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -677
  424. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  425. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  426. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  427. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2611
  428. data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  429. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -898
  430. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -18085
  431. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  432. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  433. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  434. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  435. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  436. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  437. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  438. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  439. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  440. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  441. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  442. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  443. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  444. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  445. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  446. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  447. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  448. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  449. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  450. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  451. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  452. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  453. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  454. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  455. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  456. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  457. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  458. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  459. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  460. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  461. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  462. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  463. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  464. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  465. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  466. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  467. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  468. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  469. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  470. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  471. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  472. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  473. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  474. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  475. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  476. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
  477. data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f7dc936446d63b1ecdd6f711d291c25d8c69222a8b4694edc248c9930e67983
4
- data.tar.gz: 4e89905db9dac3f8e7336e025fea98a7e03a5bd3d085406fa043f452999efc3c
3
+ metadata.gz: 142382cf0987b581cb64996e716ad77cf9ae76dab5aa1bf019b8ca38fb7daed0
4
+ data.tar.gz: 58a52e67fc458713f0245ea244e2a129f370309edc91511678ba06bbc756e9cc
5
5
  SHA512:
6
- metadata.gz: 71faff5dae3bc4102bc8fb00a4deb42c601e49c5295fb17f88444f57409ab346d466dfd02b66a8998d9394cc270a6760c3586bc8fd7df83d4a6e078b830f93ce
7
- data.tar.gz: fc96ebe4813b3621dea3eadde119932e7fd4ebcca303100cbdfc3172c7d8fa2f15f93c489554b581bcd2fe10ab4f636a5927536d94081eb75ae4f867a34b3d17
6
+ metadata.gz: 55fce15b0a7bf4f168b042ab7415fd24f0cefdb509d61efdb2f3f15de42b657bbbe24b62e686a359f18239f0c9ad36436bbd229c22b35c28be17d8f27fb5ef7f
7
+ data.tar.gz: 9d076ac618ecdbb0680e7d8e7dd3472b7d0e47d10d5d12b4bdfc260c43297ded2e430a410926d0a680cbe120406e20da3678b5adb5ef2050efebe9aa8e2f8e12
data/Gemfile CHANGED
@@ -1,9 +1,10 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'appraisal', '>= 2.0'
4
- gem 'rails'
5
- gem 'haml'
6
4
  gem 'devise'
5
+ gem 'rails'
6
+ gem 'webpacker', require: false
7
+ gem 'webrick', '~> 1.7'
7
8
 
8
9
  group :active_record do
9
10
  gem 'paper_trail'
@@ -21,30 +22,27 @@ end
21
22
  group :test do
22
23
  gem 'cancancan', '~> 3.0'
23
24
  gem 'carrierwave', ['>= 2.0.0.rc', '< 3']
24
- gem 'database_cleaner', ['>= 1.2', '!= 1.4.0', '!= 1.5.0', '< 2.0']
25
+ gem 'cuprite'
26
+ gem 'database_cleaner-active_record', '>= 2.0', require: false
27
+ gem 'database_cleaner-mongoid', '>= 2.0', require: false
25
28
  gem 'dragonfly', '~> 1.0'
26
29
  gem 'factory_bot', '>= 4.2'
27
30
  gem 'generator_spec', '>= 0.8'
28
31
  gem 'launchy', '>= 2.2'
29
32
  gem 'mini_magick', '>= 3.4'
30
- gem 'poltergeist', '~> 1.5'
31
33
  gem 'pundit'
32
34
  gem 'rack-cache', require: 'rack/cache'
33
- gem 'rspec-rails', '>= 2.14'
34
35
  gem 'rspec-expectations', '!= 3.8.3'
36
+ gem 'rspec-rails', '>= 2.14'
35
37
  gem 'rspec-retry'
36
- gem 'rubocop', '~> 0.68.1', require: false
38
+ gem 'rubocop', ['~> 1.20', '!= 1.22.2'], require: false
37
39
  gem 'rubocop-performance', require: false
38
40
  gem 'simplecov', '>= 0.9', require: false
39
41
  gem 'simplecov-lcov', require: false
40
42
  gem 'timecop', '>= 0.5'
41
43
 
42
- platforms :ruby_19 do
43
- gem 'tins', '~> 1.6.0', require: false
44
- end
45
-
46
44
  # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
47
- gem 'tzinfo-data', platforms: %i(mingw mswin x64_mingw jruby)
45
+ gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
48
46
  end
49
47
 
50
48
  gemspec
data/README.md CHANGED
@@ -1,17 +1,15 @@
1
1
  # RailsAdmin
2
2
 
3
3
  [![Gem Version](https://img.shields.io/gem/v/rails_admin.svg)][gem]
4
- [![Build Status](https://img.shields.io/github/workflow/status/sferik/rails_admin/Test)][ghactions]
5
- [![Coverage Status](https://img.shields.io/coveralls/sferik/rails_admin.svg)][coveralls]
6
- [![Inline docs](http://inch-ci.org/github/sferik/rails_admin.svg)][inch]
7
- [![Code Climate](https://codeclimate.com/github/sferik/rails_admin.svg)][codeclimate]
4
+ [![Build Status](https://img.shields.io/github/workflow/status/railsadminteam/rails_admin/Test)][ghactions]
5
+ [![Coverage Status](https://img.shields.io/coveralls/railsadminteam/rails_admin.svg)][coveralls]
6
+ [![Code Climate](https://codeclimate.com/github/railsadminteam/rails_admin.svg)][codeclimate]
8
7
  [![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=rails_admin&package-manager=bundler&version-scheme=semver)][semver]
9
8
 
10
9
  [gem]: https://rubygems.org/gems/rails_admin
11
- [ghactions]: https://github.com/sferik/rails_admin/actions
12
- [coveralls]: https://coveralls.io/r/sferik/rails_admin
13
- [inch]: http://inch-ci.org/github/sferik/rails_admin
14
- [codeclimate]: https://codeclimate.com/github/sferik/rails_admin
10
+ [ghactions]: https://github.com/railsadminteam/rails_admin/actions
11
+ [coveralls]: https://coveralls.io/r/railsadminteam/rails_admin
12
+ [codeclimate]: https://codeclimate.com/github/railsadminteam/rails_admin
15
13
  [semver]: https://dependabot.com/compatibility-score.html?dependency-name=rails_admin&package-manager=bundler&version-scheme=semver
16
14
 
17
15
  RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.
@@ -20,49 +18,56 @@ RailsAdmin is a Rails engine that provides an easy-to-use interface for managing
20
18
 
21
19
  ### [Action required] Security issue
22
20
 
23
- **RailsAdmin 2.0.1, 2.0.0 and up to 1.4.2 have been reported to have XSS vulnerability.** We strongly recommend that you upgrade RailsAdmin to 2.0.2 (and higher) or 1.4.3 as soon as possible, if you are on those versions. See [d72090ec](https://github.com/sferik/rails_admin/commit/d72090ec6a07c3b9b7b48ab50f3d405f91ff4375) for the detail.
21
+ **RailsAdmin 2.0.1, 2.0.0 and up to 1.4.2 have been reported to have XSS vulnerability.** We strongly recommend that you upgrade RailsAdmin to 2.0.2 (and higher) or 1.4.3 as soon as possible, if you are on those versions. See [d72090ec](https://github.com/railsadminteam/rails_admin/commit/d72090ec6a07c3b9b7b48ab50f3d405f91ff4375) for the detail.
24
22
 
25
23
  ## Getting started
26
24
 
27
- * Check out [the docs][docs].
28
- * Try the [live demo][demo]. ([Source code][dummy_app])
25
+ - Check out [the docs][docs].
26
+ - Try the [live demo][demo]. ([Source code][dummy_app])
29
27
 
30
28
  [demo]: http://rails-admin-tb.herokuapp.com/
31
29
  [dummy_app]: https://github.com/bbenezech/dummy_app
32
- [docs]: https://github.com/sferik/rails_admin/wiki
30
+ [docs]: https://github.com/railsadminteam/rails_admin/wiki
33
31
 
34
32
  ## Features
35
- * CRUD any data with ease
36
- * Custom actions
37
- * Automatic form validation
38
- * Search and filtering
39
- * Export data to CSV/JSON/XML
40
- * Authentication (via [Devise](https://github.com/plataformatec/devise) or other)
41
- * Authorization (via [CanCanCan](https://github.com/CanCanCommunity/cancancan) or [Pundit](https://github.com/elabs/pundit))
42
- * User action history (via [PaperTrail](https://github.com/airblade/paper_trail))
43
- * Supported ORMs
44
- * ActiveRecord
45
- * Mongoid
46
-
47
33
 
34
+ - CRUD any data with ease
35
+ - Custom actions
36
+ - Automatic form validation
37
+ - Search and filtering
38
+ - Export data to CSV/JSON/XML
39
+ - Authentication (via [Devise](https://github.com/plataformatec/devise) or other)
40
+ - Authorization (via [CanCanCan](https://github.com/CanCanCommunity/cancancan) or [Pundit](https://github.com/elabs/pundit))
41
+ - User action history (via [PaperTrail](https://github.com/airblade/paper_trail))
42
+ - Supported ORMs
43
+ - ActiveRecord
44
+ - Mongoid
48
45
 
49
46
  ## Installation
50
47
 
51
- 1. On your gemfile: `gem 'rails_admin', '~> 2.0'`
48
+ 1. On your gemfile: `gem 'rails_admin', ['>= 3.0.0.rc2', '< 4']`
52
49
  2. Run `bundle install`
53
50
  3. Run `rails g rails_admin:install`
54
51
  4. Provide a namespace for the routes when asked
55
52
  5. Start a server `rails s` and administer your data at [/admin](http://localhost:3000/admin). (if you chose default namespace: /admin)
56
53
 
54
+ ## Upgrading from 2.x
55
+
56
+ Due to introduction of Webpack/Webpacker support, some additional dependency and configuration will be needed.
57
+ Running `rails g rails_admin:install` will suggest you some required changes, based on current setup of your app.
58
+
57
59
  ## Configuration
60
+
58
61
  ### Global
62
+
59
63
  In `config/initializers/rails_admin.rb`:
60
64
 
61
- [Details](https://github.com/sferik/rails_admin/wiki/Base-configuration)
65
+ [Details](https://github.com/railsadminteam/rails_admin/wiki/Base-configuration)
62
66
 
63
- To begin with, you may be interested in setting up [Devise](https://github.com/sferik/rails_admin/wiki/Devise), [CanCanCan](https://github.com/sferik/rails_admin/wiki/Cancancan) or [Papertrail](https://github.com/sferik/rails_admin/wiki/Papertrail)!
67
+ To begin with, you may be interested in setting up [Devise](https://github.com/railsadminteam/rails_admin/wiki/Devise), [CanCanCan](https://github.com/railsadminteam/rails_admin/wiki/Cancancan) or [Papertrail](https://github.com/railsadminteam/rails_admin/wiki/Papertrail)!
64
68
 
65
69
  ### Per model
70
+
66
71
  ```ruby
67
72
  class Ball < ActiveRecord::Base
68
73
  validates :name, presence: true
@@ -76,31 +81,29 @@ class Ball < ActiveRecord::Base
76
81
  end
77
82
  ```
78
83
 
79
- Details: [Models](https://github.com/sferik/rails_admin/wiki/Models), [Groups](https://github.com/sferik/rails_admin/wiki/Groups), [Fields](https://github.com/sferik/rails_admin/wiki/Fields)
84
+ Details: [Models](https://github.com/railsadminteam/rails_admin/wiki/Models), [Groups](https://github.com/railsadminteam/rails_admin/wiki/Groups), [Fields](https://github.com/railsadminteam/rails_admin/wiki/Fields)
80
85
 
81
86
  ## Support
87
+
82
88
  If you have a question, please check this README, the wiki, and the [list of
83
89
  known issues][troubleshoot].
84
90
 
85
- [troubleshoot]: https://github.com/sferik/rails_admin/wiki/Troubleshoot
91
+ [troubleshoot]: https://github.com/railsadminteam/rails_admin/wiki/Troubleshoot
86
92
 
87
93
  If you still have a question, you can ask the [official RailsAdmin mailing
88
94
  list][list].
89
95
 
90
96
  [list]: http://groups.google.com/group/rails_admin
91
97
 
92
- If you think you found a bug in RailsAdmin, you can [submit an issue](https://github.com/sferik/rails_admin/issues/new).
98
+ If you think you found a bug in RailsAdmin, you can [submit an issue](https://github.com/railsadminteam/rails_admin/issues/new).
93
99
 
94
100
  ## Supported Ruby Versions
101
+
95
102
  This library aims to support and is [tested against][ghactions] the following Ruby implementations:
96
103
 
97
- * Ruby 2.2
98
- * Ruby 2.3
99
- * Ruby 2.4
100
- * Ruby 2.5
101
- * Ruby 2.6
102
- * Ruby 2.7
103
- * Ruby 3.0
104
- * [JRuby][]
104
+ - Ruby 2.6
105
+ - Ruby 2.7
106
+ - Ruby 3.0
107
+ - [JRuby][]
105
108
 
106
109
  [jruby]: http://jruby.org/
data/Rakefile CHANGED
@@ -17,8 +17,19 @@ begin
17
17
  rescue LoadError
18
18
  desc 'Run RuboCop'
19
19
  task :rubocop do
20
- $stderr.puts 'Rubocop is disabled'
20
+ warn 'Rubocop is disabled'
21
21
  end
22
22
  end
23
23
 
24
- task default: [:spec, :rubocop]
24
+ task default: %i[spec rubocop]
25
+
26
+ namespace :vendorize do
27
+ desc 'Tasks for vendorizing assets'
28
+
29
+ task :flatpickr do
30
+ Dir.chdir(__dir__)
31
+ flatpickr = File.read('node_modules/flatpickr/dist/flatpickr.js')
32
+ locales = Dir.glob('node_modules/flatpickr/dist/l10n/*.js').map { |f| File.read(f) }
33
+ File.write('vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js', ([flatpickr] + locales).join("\n"))
34
+ end
35
+ end
@@ -0,0 +1,21 @@
1
+ //= require 'rails-ujs'
2
+ //= require 'turbo'
3
+ //= require 'rails_admin/jquery3'
4
+ //= require 'jquery_nested_form'
5
+ //= require 'rails_admin/jquery-ui/effect'
6
+ //= require 'rails_admin/jquery-ui/widgets/sortable'
7
+ //= require 'rails_admin/jquery-ui/widgets/autocomplete'
8
+ //= require 'rails_admin/flatpickr-with-locales'
9
+ //= require 'rails_admin/popper'
10
+ //= require 'rails_admin/bootstrap'
11
+
12
+ //= require 'rails_admin/filter-box'
13
+ //= require 'rails_admin/filtering-multiselect'
14
+ //= require 'rails_admin/filtering-select'
15
+ //= require 'rails_admin/remote-form'
16
+ //= require 'rails_admin/nested-form-hooks'
17
+ //= require 'rails_admin/i18n'
18
+ //= require 'rails_admin/widgets'
19
+ //= require 'rails_admin/sidescroll'
20
+ //= require 'rails_admin/ui'
21
+ //= require 'rails_admin/custom/ui'
@@ -0,0 +1,31 @@
1
+ @charset "UTF-8";
2
+
3
+ /*** Variables ***/
4
+
5
+ @import "rails_admin/custom/variables";
6
+ @import "rails_admin/styles/base/variables";
7
+
8
+ /*** Mixins ***/
9
+
10
+ @import "rails_admin/styles/base/mixins";
11
+ @import "rails_admin/custom/mixins";
12
+
13
+ /*** Bootstrap ***/
14
+
15
+ @import "rails_admin/bootstrap/bootstrap";
16
+
17
+ /*** Libraries ***/
18
+
19
+ @import "rails_admin/flatpickr";
20
+ @import "rails_admin/styles/filtering-select";
21
+ @import "rails_admin/styles/filtering-multiselect";
22
+ @import "rails_admin/styles/widgets";
23
+
24
+ /*** Font-awesome ***/
25
+
26
+ @import "rails_admin/font-awesome";
27
+
28
+ /*** RailsAdmin Theming ***/
29
+
30
+ @import "rails_admin/styles/base/theming";
31
+ @import "rails_admin/custom/theming";
@@ -6,6 +6,6 @@
6
6
  Available mixins to use/override:
7
7
 
8
8
  https://github.com/twbs/bootstrap-sass/tree/master/assets/stylesheets/bootstrap/mixins
9
- https://github.com/sferik/rails_admin/blob/master/app/assets/stylesheets/rails_admin/base/mixins.scss
9
+ https://github.com/railsadminteam/rails_admin/blob/master/src/rails_admin/styles/base/mixins.scss
10
10
  Plus the ones from your theme.
11
11
  */
@@ -6,7 +6,7 @@
6
6
  Available variables to use/override:
7
7
 
8
8
  https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_variables.scss
9
- https://github.com/sferik/rails_admin/blob/master/app/assets/stylesheets/rails_admin/base/variables.scss
9
+ https://github.com/railsadminteam/rails_admin/blob/master/src/rails_admin/styles/base/variables.scss
10
10
  Plus the ones from your themes.
11
11
 
12
12
  Test me: pink links
@@ -25,13 +25,14 @@ module RailsAdmin
25
25
 
26
26
  def get_model
27
27
  @model_name = to_model_name(params[:model_name])
28
- raise(RailsAdmin::ModelNotFound) unless (@abstract_model = RailsAdmin::AbstractModel.new(@model_name))
29
- raise(RailsAdmin::ModelNotFound) if (@model_config = @abstract_model.config).excluded?
28
+ raise RailsAdmin::ModelNotFound unless (@abstract_model = RailsAdmin::AbstractModel.new(@model_name))
29
+ raise RailsAdmin::ModelNotFound if (@model_config = @abstract_model.config).excluded?
30
+
30
31
  @properties = @abstract_model.properties
31
32
  end
32
33
 
33
34
  def get_object
34
- raise(RailsAdmin::ObjectNotFound) unless (@object = @abstract_model.get(params[:id]))
35
+ raise RailsAdmin::ObjectNotFound unless (@object = @abstract_model.get(params[:id], @model_config.scope))
35
36
  end
36
37
 
37
38
  def to_model_name(param)
@@ -4,33 +4,16 @@ module RailsAdmin
4
4
  include RailsAdmin::MainHelper
5
5
  include RailsAdmin::ApplicationHelper
6
6
 
7
- layout :get_layout
8
-
9
- before_action :get_model, except: RailsAdmin::Config::Actions.all(:root).collect(&:action_name)
10
- before_action :get_object, only: RailsAdmin::Config::Actions.all(:member).collect(&:action_name)
11
7
  before_action :check_for_cancel
12
8
 
13
- RailsAdmin::Config::Actions.all.each do |action|
14
- class_eval <<-EOS, __FILE__, __LINE__ + 1
15
- def #{action.action_name}
16
- action = RailsAdmin::Config::Actions.find('#{action.action_name}'.to_sym)
17
- @authorization_adapter.try(:authorize, action.authorization_key, @abstract_model, @object)
18
- @action = action.with({controller: self, abstract_model: @abstract_model, object: @object})
19
- fail(ActionNotAllowed) unless @action.enabled?
20
- @page_name = wording_for(:title)
21
-
22
- instance_eval &@action.controller
23
- end
24
- EOS
25
- end
26
-
27
9
  def bulk_action
28
- send(params[:bulk_action]) if params[:bulk_action].in?(RailsAdmin::Config::Actions.all(controller: self, abstract_model: @abstract_model).select(&:bulkable?).collect(&:route_fragment))
10
+ get_model
11
+ process(params[:bulk_action]) if params[:bulk_action].in?(RailsAdmin::Config::Actions.all(:bulkable, controller: self, abstract_model: @abstract_model).collect(&:route_fragment))
29
12
  end
30
13
 
31
14
  def list_entries(model_config = @model_config, auth_scope_key = :index, additional_scope = get_association_scope_from_params, pagination = !(params[:associated_collection] || params[:all] || params[:bulk_ids]))
32
- scope = model_config.abstract_model.scoped
33
- if auth_scope = @authorization_adapter && @authorization_adapter.query(auth_scope_key, model_config.abstract_model)
15
+ scope = model_config.scope
16
+ if auth_scope = @authorization_adapter&.query(auth_scope_key, model_config.abstract_model)
34
17
  scope = scope.merge(auth_scope)
35
18
  end
36
19
  scope = scope.instance_eval(&additional_scope) if additional_scope
@@ -39,8 +22,36 @@ module RailsAdmin
39
22
 
40
23
  private
41
24
 
42
- def get_layout
43
- "rails_admin/#{request.headers['X-PJAX'] ? 'pjax' : 'application'}"
25
+ def action_missing(name, *_args)
26
+ action = RailsAdmin::Config::Actions.find(name.to_sym)
27
+ raise AbstractController::ActionNotFound.new("The action '#{name}' could not be found for #{self.class.name}") unless action
28
+
29
+ get_model unless action.root?
30
+ get_object if action.member?
31
+ @authorization_adapter.try(:authorize, action.authorization_key, @abstract_model, @object)
32
+ @action = action.with({controller: self, abstract_model: @abstract_model, object: @object})
33
+ raise(ActionNotAllowed) unless @action.enabled?
34
+
35
+ @page_name = wording_for(:title)
36
+
37
+ instance_eval(&@action.controller)
38
+ end
39
+
40
+ def method_missing(name, *args, &block)
41
+ action = RailsAdmin::Config::Actions.find(name.to_sym)
42
+ if action
43
+ action_missing name, *args, &block
44
+ else
45
+ super
46
+ end
47
+ end
48
+
49
+ def respond_to_missing?(sym, include_private)
50
+ if RailsAdmin::Config::Actions.find(sym)
51
+ true
52
+ else
53
+ super
54
+ end
44
55
  end
45
56
 
46
57
  def back_or_index
@@ -49,16 +60,14 @@ module RailsAdmin
49
60
 
50
61
  def get_sort_hash(model_config)
51
62
  abstract_model = model_config.abstract_model
52
- params[:sort] = params[:sort_reverse] = nil unless model_config.list.fields.collect { |f| f.name.to_s }.include? params[:sort]
53
- params[:sort] ||= model_config.list.sort_by.to_s
54
- params[:sort_reverse] ||= 'false'
55
-
56
63
  field = model_config.list.fields.detect { |f| f.name.to_s == params[:sort] }
57
- column = begin
58
- if field.nil? || field.sortable == true # use params[:sort] on the base table
59
- "#{abstract_model.table_name}.#{params[:sort]}"
60
- elsif field.sortable == false # use default sort, asked field is not sortable
64
+
65
+ column =
66
+ if field.nil? || field.sortable == false # use default sort, asked field does not exist or is not sortable
67
+ field = model_config.list.possible_fields.detect { |f| f.name == model_config.list.sort_by.to_sym }
61
68
  "#{abstract_model.table_name}.#{model_config.list.sort_by}"
69
+ elsif field.sortable == true # use the given field
70
+ "#{abstract_model.table_name}.#{field.name}"
62
71
  elsif (field.sortable.is_a?(String) || field.sortable.is_a?(Symbol)) && field.sortable.to_s.include?('.') # just provide sortable, don't do anything smart
63
72
  field.sortable
64
73
  elsif field.sortable.is_a?(Hash) # just join sortable hash, don't do anything smart
@@ -68,10 +77,9 @@ module RailsAdmin
68
77
  else # use described column in the field conf.
69
78
  "#{abstract_model.table_name}.#{field.sortable}"
70
79
  end
71
- end
72
80
 
73
- reversed_sort = (field ? field.sort_reverse? : model_config.list.sort_reverse?)
74
- {sort: column, sort_reverse: (params[:sort_reverse] == reversed_sort.to_s)}
81
+ params[:sort_reverse] ||= 'false'
82
+ {sort: column, sort_reverse: (params[:sort_reverse] == (field&.sort_reverse&.to_s || 'true'))}
75
83
  end
76
84
 
77
85
  def redirect_to_on_success
@@ -91,6 +99,7 @@ module RailsAdmin
91
99
 
92
100
  def sanitize_params_for!(action, model_config = @model_config, target_params = params[@abstract_model.param_key])
93
101
  return unless target_params.present?
102
+
94
103
  fields = visible_fields(action, model_config)
95
104
  allowed_methods = fields.collect(&:allowed_methods).flatten.uniq.collect(&:to_s) << 'id' << '_destroy'
96
105
  fields.each { |field| field.parse_input(target_params) }
@@ -110,20 +119,21 @@ module RailsAdmin
110
119
 
111
120
  respond_to do |format|
112
121
  format.html { render whereto, status: :not_acceptable }
113
- format.js { render whereto, layout: false, status: :not_acceptable }
122
+ format.js { render whereto, layout: 'rails_admin/modal', status: :not_acceptable, content_type: Mime[:html].to_s }
114
123
  end
115
124
  end
116
125
 
117
126
  def check_for_cancel
118
127
  return unless params[:_continue] || (params[:bulk_action] && !params[:bulk_ids])
128
+
119
129
  redirect_to(back_or_index, notice: I18n.t('admin.flash.noaction'))
120
130
  end
121
131
 
122
132
  def get_collection(model_config, scope, pagination)
123
- associations = model_config.list.fields.select { |f| f.try(:eager_load?) }.collect { |f| f.association.name }
133
+ eager_loads = model_config.list.fields.flat_map(&:eager_load_values)
124
134
  options = {}
125
135
  options = options.merge(page: (params[Kaminari.config.param_name] || 1).to_i, per: (params[:per] || model_config.list.items_per_page)) if pagination
126
- options = options.merge(include: associations) unless associations.blank?
136
+ options = options.merge(include: eager_loads) unless eager_loads.blank?
127
137
  options = options.merge(get_sort_hash(model_config))
128
138
  options = options.merge(query: params[:query]) if params[:query].present?
129
139
  options = options.merge(filters: params[:f]) if params[:f].present?
@@ -133,10 +143,11 @@ module RailsAdmin
133
143
 
134
144
  def get_association_scope_from_params
135
145
  return nil unless params[:associated_collection].present?
146
+
136
147
  source_abstract_model = RailsAdmin::AbstractModel.new(to_model_name(params[:source_abstract_model]))
137
148
  source_model_config = source_abstract_model.config
138
149
  source_object = source_abstract_model.get(params[:source_object_id])
139
- action = params[:current_action].in?(%w(create update)) ? params[:current_action] : 'edit'
150
+ action = params[:current_action].in?(%w[create update]) ? params[:current_action] : 'edit'
140
151
  @association = source_model_config.send(action).fields.detect { |f| f.name == params[:associated_collection].to_sym }.with(controller: self, object: source_object)
141
152
  @association.associated_collection_scope
142
153
  end