rails_admin 2.0.2 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -16
  3. data/README.md +44 -44
  4. data/Rakefile +15 -2
  5. data/app/assets/javascripts/rails_admin/application.js.erb +29 -0
  6. data/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
  7. data/app/assets/stylesheets/rails_admin/custom/mixins.scss +1 -1
  8. data/app/assets/stylesheets/rails_admin/custom/variables.scss +1 -1
  9. data/app/controllers/rails_admin/application_controller.rb +6 -3
  10. data/app/controllers/rails_admin/main_controller.rb +55 -50
  11. data/app/helpers/rails_admin/application_helper.rb +129 -63
  12. data/app/helpers/rails_admin/form_builder.rb +25 -13
  13. data/app/helpers/rails_admin/main_helper.rb +18 -41
  14. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
  15. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
  16. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
  17. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
  18. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
  19. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
  20. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
  21. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
  22. data/app/views/layouts/rails_admin/_head.html.erb +29 -0
  23. data/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  24. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
  25. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  26. data/app/views/layouts/rails_admin/application.html.erb +27 -0
  27. data/app/views/layouts/rails_admin/content.html.erb +22 -0
  28. data/app/views/layouts/rails_admin/modal.js.erb +7 -0
  29. data/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
  30. data/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
  31. data/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
  32. data/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
  33. data/app/views/rails_admin/main/{_form_ck_editor.html.haml → _form_ck_editor.html.erb} +3 -3
  34. data/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
  35. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
  36. data/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
  37. data/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
  38. data/app/views/rails_admin/main/_form_field.html.erb +1 -0
  39. data/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
  40. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +49 -0
  41. data/app/views/rails_admin/main/_form_filtering_select.html.erb +33 -0
  42. data/app/views/rails_admin/main/_form_froala.html.erb +8 -0
  43. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
  44. data/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
  45. data/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
  46. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +32 -0
  47. data/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
  48. data/app/views/rails_admin/main/_form_text.html.erb +1 -0
  49. data/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
  50. data/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
  51. data/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
  52. data/app/views/rails_admin/main/dashboard.html.erb +64 -0
  53. data/app/views/rails_admin/main/delete.html.erb +21 -0
  54. data/app/views/rails_admin/main/edit.html.erb +3 -0
  55. data/app/views/rails_admin/main/export.html.erb +149 -0
  56. data/app/views/rails_admin/main/history.html.erb +80 -0
  57. data/app/views/rails_admin/main/index.html.erb +184 -0
  58. data/app/views/rails_admin/main/new.html.erb +3 -0
  59. data/app/views/rails_admin/main/show.html.erb +30 -0
  60. data/config/initializers/active_record_extensions.rb +25 -0
  61. data/config/initializers/mongoid_extensions.rb +3 -1
  62. data/config/locales/rails_admin.en.yml +8 -4
  63. data/config/routes.rb +2 -0
  64. data/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  65. data/lib/generators/rails_admin/install_generator.rb +117 -5
  66. data/lib/generators/rails_admin/templates/initializer.erb +2 -1
  67. data/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  68. data/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  69. data/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  70. data/lib/generators/rails_admin/utils.rb +2 -0
  71. data/lib/rails_admin/abstract_model.rb +35 -15
  72. data/lib/rails_admin/adapters/active_record/association.rb +31 -2
  73. data/lib/rails_admin/adapters/active_record/object_extension.rb +31 -0
  74. data/lib/rails_admin/adapters/active_record/property.rb +4 -2
  75. data/lib/rails_admin/adapters/active_record.rb +67 -29
  76. data/lib/rails_admin/adapters/composite_primary_keys/association.rb +45 -0
  77. data/lib/rails_admin/adapters/composite_primary_keys.rb +40 -0
  78. data/lib/rails_admin/adapters/mongoid/association.rb +52 -13
  79. data/lib/rails_admin/adapters/mongoid/bson.rb +6 -5
  80. data/lib/rails_admin/adapters/mongoid/extension.rb +2 -0
  81. data/lib/rails_admin/adapters/mongoid/object_extension.rb +34 -0
  82. data/lib/rails_admin/adapters/mongoid/property.rb +7 -5
  83. data/lib/rails_admin/adapters/mongoid.rb +33 -23
  84. data/lib/rails_admin/config/actions/base.rb +11 -4
  85. data/lib/rails_admin/config/actions/bulk_delete.rb +4 -2
  86. data/lib/rails_admin/config/actions/dashboard.rb +16 -9
  87. data/lib/rails_admin/config/actions/delete.rb +11 -9
  88. data/lib/rails_admin/config/actions/edit.rb +13 -7
  89. data/lib/rails_admin/config/actions/export.rb +6 -3
  90. data/lib/rails_admin/config/actions/history_index.rb +4 -2
  91. data/lib/rails_admin/config/actions/history_show.rb +4 -2
  92. data/lib/rails_admin/config/actions/index.rb +9 -8
  93. data/lib/rails_admin/config/actions/new.rb +18 -10
  94. data/lib/rails_admin/config/actions/show.rb +3 -1
  95. data/lib/rails_admin/config/actions/show_in_app.rb +9 -3
  96. data/lib/rails_admin/config/actions.rb +6 -4
  97. data/lib/rails_admin/config/configurable.rb +4 -2
  98. data/lib/rails_admin/config/const_load_suppressor.rb +78 -0
  99. data/lib/rails_admin/config/fields/association.rb +21 -11
  100. data/lib/rails_admin/config/fields/base.rb +86 -32
  101. data/lib/rails_admin/config/fields/factories/action_text.rb +2 -0
  102. data/lib/rails_admin/config/fields/factories/active_storage.rb +5 -1
  103. data/lib/rails_admin/config/fields/factories/association.rb +12 -13
  104. data/lib/rails_admin/config/fields/factories/carrierwave.rb +6 -2
  105. data/lib/rails_admin/config/fields/factories/devise.rb +6 -2
  106. data/lib/rails_admin/config/fields/factories/dragonfly.rb +6 -2
  107. data/lib/rails_admin/config/fields/factories/enum.rb +2 -0
  108. data/lib/rails_admin/config/fields/factories/paperclip.rb +6 -2
  109. data/lib/rails_admin/config/fields/factories/password.rb +2 -0
  110. data/lib/rails_admin/config/fields/factories/shrine.rb +3 -1
  111. data/lib/rails_admin/config/fields/group.rb +3 -2
  112. data/lib/rails_admin/config/fields/types/action_text.rb +7 -1
  113. data/lib/rails_admin/config/fields/types/active_record_enum.rb +4 -0
  114. data/lib/rails_admin/config/fields/types/active_storage.rb +23 -3
  115. data/lib/rails_admin/config/fields/types/all.rb +4 -0
  116. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +9 -15
  117. data/lib/rails_admin/config/fields/types/boolean.rb +38 -8
  118. data/lib/rails_admin/config/fields/types/bson_object_id.rb +2 -0
  119. data/lib/rails_admin/config/fields/types/carrierwave.rb +3 -0
  120. data/lib/rails_admin/config/fields/types/citext.rb +15 -0
  121. data/lib/rails_admin/config/fields/types/ck_editor.rb +2 -0
  122. data/lib/rails_admin/config/fields/types/code_mirror.rb +2 -0
  123. data/lib/rails_admin/config/fields/types/color.rb +8 -2
  124. data/lib/rails_admin/config/fields/types/composite_keys_belongs_to_association.rb +31 -0
  125. data/lib/rails_admin/config/fields/types/date.rb +12 -6
  126. data/lib/rails_admin/config/fields/types/datetime.rb +36 -21
  127. data/lib/rails_admin/config/fields/types/decimal.rb +11 -2
  128. data/lib/rails_admin/config/fields/types/dragonfly.rb +5 -1
  129. data/lib/rails_admin/config/fields/types/enum.rb +16 -3
  130. data/lib/rails_admin/config/fields/types/file_upload.rb +11 -4
  131. data/lib/rails_admin/config/fields/types/float.rb +11 -2
  132. data/lib/rails_admin/config/fields/types/froala.rb +2 -0
  133. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +2 -0
  134. data/lib/rails_admin/config/fields/types/has_many_association.rb +7 -5
  135. data/lib/rails_admin/config/fields/types/has_one_association.rb +12 -14
  136. data/lib/rails_admin/config/fields/types/hidden.rb +2 -0
  137. data/lib/rails_admin/config/fields/types/inet.rb +2 -0
  138. data/lib/rails_admin/config/fields/types/integer.rb +4 -6
  139. data/lib/rails_admin/config/fields/types/json.rb +2 -0
  140. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +30 -2
  141. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +3 -0
  142. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +8 -4
  143. data/lib/rails_admin/config/fields/types/numeric.rb +24 -0
  144. data/lib/rails_admin/config/fields/types/paperclip.rb +2 -0
  145. data/lib/rails_admin/config/fields/types/password.rb +2 -0
  146. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +5 -2
  147. data/lib/rails_admin/config/fields/types/serialized.rb +2 -0
  148. data/lib/rails_admin/config/fields/types/shrine.rb +15 -11
  149. data/lib/rails_admin/config/fields/types/simple_mde.rb +2 -0
  150. data/lib/rails_admin/config/fields/types/string.rb +3 -1
  151. data/lib/rails_admin/config/fields/types/string_like.rb +6 -0
  152. data/lib/rails_admin/config/fields/types/text.rb +2 -0
  153. data/lib/rails_admin/config/fields/types/time.rb +16 -4
  154. data/lib/rails_admin/config/fields/types/timestamp.rb +2 -4
  155. data/lib/rails_admin/config/fields/types/uuid.rb +2 -0
  156. data/lib/rails_admin/config/fields/types/wysihtml5.rb +2 -0
  157. data/lib/rails_admin/config/fields/types.rb +3 -1
  158. data/lib/rails_admin/config/fields.rb +6 -2
  159. data/lib/rails_admin/config/groupable.rb +2 -0
  160. data/lib/rails_admin/config/has_description.rb +2 -0
  161. data/lib/rails_admin/config/has_fields.rb +12 -7
  162. data/lib/rails_admin/config/has_groups.rb +2 -0
  163. data/lib/rails_admin/config/hideable.rb +3 -1
  164. data/lib/rails_admin/config/inspectable.rb +3 -3
  165. data/lib/rails_admin/config/lazy_model.rb +13 -7
  166. data/lib/rails_admin/config/model.rb +22 -10
  167. data/lib/rails_admin/config/proxyable/proxy.rb +2 -0
  168. data/lib/rails_admin/config/proxyable.rb +2 -0
  169. data/lib/rails_admin/config/sections/base.rb +4 -3
  170. data/lib/rails_admin/config/sections/create.rb +2 -0
  171. data/lib/rails_admin/config/sections/edit.rb +2 -0
  172. data/lib/rails_admin/config/sections/export.rb +2 -0
  173. data/lib/rails_admin/config/sections/list.rb +14 -19
  174. data/lib/rails_admin/config/sections/modal.rb +2 -0
  175. data/lib/rails_admin/config/sections/nested.rb +2 -0
  176. data/lib/rails_admin/config/sections/show.rb +2 -0
  177. data/lib/rails_admin/config/sections/update.rb +2 -0
  178. data/lib/rails_admin/config/sections.rb +3 -1
  179. data/lib/rails_admin/config.rb +80 -47
  180. data/lib/rails_admin/engine.rb +43 -32
  181. data/lib/rails_admin/extension.rb +8 -14
  182. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +25 -6
  183. data/lib/rails_admin/extensions/cancancan.rb +2 -0
  184. data/lib/rails_admin/extensions/controller_extension.rb +2 -0
  185. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +62 -35
  186. data/lib/rails_admin/extensions/paper_trail.rb +2 -0
  187. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +8 -7
  188. data/lib/rails_admin/extensions/pundit.rb +2 -0
  189. data/lib/rails_admin/support/csv_converter.rb +14 -15
  190. data/lib/rails_admin/support/datetime.rb +50 -85
  191. data/lib/rails_admin/support/es_module_processor.rb +23 -0
  192. data/lib/rails_admin/support/hash_helper.rb +8 -5
  193. data/lib/rails_admin/version.rb +41 -2
  194. data/lib/rails_admin.rb +7 -5
  195. data/lib/tasks/rails_admin.rake +19 -8
  196. data/package.json +30 -0
  197. data/src/rails_admin/base.js +29 -0
  198. data/src/rails_admin/filter-box.js +360 -0
  199. data/src/rails_admin/filtering-multiselect.js +389 -0
  200. data/src/rails_admin/filtering-select.js +308 -0
  201. data/src/rails_admin/i18n.js +18 -0
  202. data/src/rails_admin/jquery.js +3 -0
  203. data/src/rails_admin/nested-form-hooks.js +110 -0
  204. data/src/rails_admin/remote-form.js +193 -0
  205. data/src/rails_admin/sidescroll.js +20 -0
  206. data/src/rails_admin/styles/base/theming.scss +342 -0
  207. data/src/rails_admin/styles/base/variables.scss +3 -0
  208. data/src/rails_admin/styles/base.scss +27 -0
  209. data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  210. data/src/rails_admin/styles/filtering-select.scss +70 -0
  211. data/src/rails_admin/styles/widgets.scss +26 -0
  212. data/src/rails_admin/ui.js +176 -0
  213. data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  214. data/src/rails_admin/widgets.js +507 -0
  215. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  216. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  217. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  218. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
  219. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  220. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  221. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  222. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  223. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  224. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  225. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  226. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  227. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  228. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  229. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  230. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  231. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  232. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  233. data/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
  234. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  251. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  252. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  253. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  254. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  255. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  256. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  257. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  258. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  259. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  260. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  261. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  262. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  263. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  264. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  265. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  266. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  267. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  268. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  269. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  270. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  271. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  272. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  273. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  274. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  275. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  276. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  277. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  278. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  279. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  280. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  281. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  282. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  283. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  284. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  285. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  286. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  287. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  288. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  289. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  290. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  291. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  292. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  293. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  294. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  295. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  296. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  297. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  298. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  299. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  300. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  301. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  302. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  303. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  304. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  305. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  306. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  307. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  308. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  309. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  310. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  311. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  312. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  313. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  314. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  315. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  316. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  317. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  318. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +6291 -2282
  319. metadata +182 -330
  320. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  321. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  322. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  323. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  324. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  325. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  326. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  327. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  328. data/app/assets/images/rails_admin/calendar.png +0 -0
  329. data/app/assets/images/rails_admin/clock.png +0 -0
  330. data/app/assets/images/rails_admin/logo.png +0 -0
  331. data/app/assets/images/rails_admin/magnifier.png +0 -0
  332. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  333. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  334. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  335. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  336. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  337. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  338. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -226
  339. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  340. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
  341. data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
  342. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
  343. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  344. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
  345. data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
  346. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -20
  347. data/app/assets/javascripts/rails_admin/ui.js +0 -135
  348. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  349. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  350. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  351. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  352. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  353. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  354. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  355. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  356. data/app/assets/stylesheets/rails_admin/base/theming.scss +0 -341
  357. data/app/assets/stylesheets/rails_admin/base/variables.scss +0 -1
  358. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  359. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
  360. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
  361. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
  362. data/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.scss +0 -0
  363. data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.scss +0 -133
  364. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  365. data/app/assets/stylesheets/rails_admin/themes/default/mixins.scss +0 -8
  366. data/app/assets/stylesheets/rails_admin/themes/default/theming.scss +0 -11
  367. data/app/assets/stylesheets/rails_admin/themes/default/variables.scss +0 -12
  368. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  369. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  370. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  371. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  372. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  373. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  374. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  375. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  376. data/app/views/layouts/rails_admin/_head.html.haml +0 -7
  377. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  378. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  379. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
  380. data/app/views/layouts/rails_admin/application.html.haml +0 -16
  381. data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
  382. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  383. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  384. data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
  385. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  386. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  387. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  388. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  389. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -18
  390. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  391. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  392. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +0 -48
  393. data/app/views/rails_admin/main/_form_filtering_select.html.haml +0 -37
  394. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  395. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
  396. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  397. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  398. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
  399. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  400. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  401. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  402. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  403. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  404. data/app/views/rails_admin/main/dashboard.html.haml +0 -34
  405. data/app/views/rails_admin/main/delete.html.haml +0 -18
  406. data/app/views/rails_admin/main/edit.html.haml +0 -2
  407. data/app/views/rails_admin/main/export.html.haml +0 -92
  408. data/app/views/rails_admin/main/history.html.haml +0 -51
  409. data/app/views/rails_admin/main/index.html.haml +0 -126
  410. data/app/views/rails_admin/main/new.html.haml +0 -2
  411. data/app/views/rails_admin/main/show.html.haml +0 -15
  412. data/config/initializers/devise_patch.rb +0 -9
  413. data/config/initializers/haml.rb +0 -5
  414. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -32
  415. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  416. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  417. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
  418. data/lib/rails_admin/bootstrap-sass.rb +0 -49
  419. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  420. data/lib/rails_admin/extensions/history/history.rb +0 -44
  421. data/lib/rails_admin/extensions/history.rb +0 -3
  422. data/lib/rails_admin/support/i18n.rb +0 -43
  423. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  424. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  425. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
  426. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  427. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  428. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  429. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
  430. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  431. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  432. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  433. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  434. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  435. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  436. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  437. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  438. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  439. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  440. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  441. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  442. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  443. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  444. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  445. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  446. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  447. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  448. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  449. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  450. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  451. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  452. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  453. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  454. data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
  455. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  456. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -142
  457. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -92
  458. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -110
  459. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -223
  460. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -170
  461. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -151
  462. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -280
  463. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -113
  464. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -170
  465. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -128
  466. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -457
  467. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  468. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  469. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  470. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2444
  471. data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  472. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -741
  473. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -16165
  474. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  475. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  476. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  477. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  478. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  479. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  480. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  481. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  482. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  483. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  484. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  485. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  486. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  487. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  488. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  489. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  490. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  491. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  492. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  493. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  494. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  495. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  496. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  497. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  498. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  499. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  500. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  501. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  502. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  503. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  504. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  505. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  506. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  507. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  508. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  509. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  510. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  511. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  512. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  513. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  514. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  515. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  516. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  517. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  518. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  519. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
  520. data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
  521. /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
  522. /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext/string/strip'
2
4
 
3
5
  module RailsAdmin
@@ -11,7 +13,7 @@ module RailsAdmin
11
13
 
12
14
  def message
13
15
  @message = @version.event
14
- @version.respond_to?(:changeset) && @version.changeset.present? ? @message + ' [' + @version.changeset.to_a.collect { |c| c[0] + ' = ' + c[1][1].to_s }.join(', ') + ']' : @message
16
+ @version.respond_to?(:changeset) && @version.changeset.present? ? @message + ' [' + @version.changeset.to_a.collect { |c| "#{c[0]} = #{c[1][1]}" }.join(', ') + ']' : @message
15
17
  end
16
18
 
17
19
  def created_at
@@ -23,7 +25,11 @@ module RailsAdmin
23
25
  end
24
26
 
25
27
  def username
26
- (@user_class.find(@version.whodunnit).try(:email) rescue nil) || @version.whodunnit
28
+ begin
29
+ @user_class.find(@version.whodunnit).try(:email)
30
+ rescue StandardError
31
+ nil
32
+ end || @version.whodunnit
27
33
  end
28
34
 
29
35
  def item
@@ -45,42 +51,63 @@ module RailsAdmin
45
51
  created_at: :created_at,
46
52
  message: :event,
47
53
  }.freeze
48
- E_VERSION_MODEL_NOT_SET = <<-EOS.strip_heredoc.freeze
54
+ E_USER_CLASS_NOT_SET = <<~ERROR
55
+ Please set up PaperTrail's user class explicitly.
56
+
57
+ config.audit_with :paper_trail do
58
+ user_class { User }
59
+ end
60
+ ERROR
61
+ E_VERSION_MODEL_NOT_SET = <<~ERROR
49
62
  Please set up PaperTrail's version model explicitly.
50
63
 
51
- config.audit_with :paper_trail, 'User', 'PaperTrail::Version'
64
+ config.audit_with :paper_trail do
65
+ version_class { PaperTrail::Version }
66
+ end
52
67
 
53
68
  If you have configured a model to use a custom version class
54
69
  (https://github.com/paper-trail-gem/paper_trail#6a-custom-version-classes)
55
- that configuration will take precedence over what you specify in
56
- `audit_with`.
57
- EOS
70
+ that configuration will take precedence over what you specify in `audit_with`.
71
+ ERROR
72
+
73
+ include RailsAdmin::Config::Configurable
58
74
 
59
75
  def self.setup
60
- raise('PaperTrail not found') unless defined?(::PaperTrail)
61
- RailsAdmin::Extensions::ControllerExtension.send(:include, ControllerExtension)
76
+ raise 'PaperTrail not found' unless defined?(::PaperTrail)
77
+
78
+ RailsAdmin::Extensions::ControllerExtension.include ControllerExtension
62
79
  end
63
80
 
64
- def initialize(controller, user_class = 'User', version_class = '::Version')
81
+ def initialize(controller, user_class_name = nil, version_class_name = nil, &block)
65
82
  @controller = controller
66
- @controller.send(:set_paper_trail_whodunnit) if @controller
67
- begin
68
- @user_class = user_class.to_s.constantize
69
- rescue NameError
70
- raise "Please set up Papertrail's user model explicitly. Ex: config.audit_with :paper_trail, 'User'"
71
- end
83
+ @controller&.send(:set_paper_trail_whodunnit)
72
84
 
73
- begin
74
- @version_class = version_class.to_s.constantize
75
- rescue NameError
76
- raise E_VERSION_MODEL_NOT_SET
77
- end
85
+ user_class { user_class_name.to_s.constantize } if user_class_name
86
+ version_class { version_class_name.to_s.constantize } if version_class_name
87
+
88
+ instance_eval(&block) if block
89
+ end
90
+
91
+ register_instance_option :user_class do
92
+ User
93
+ rescue NameError
94
+ raise E_USER_CLASS_NOT_SET
95
+ end
96
+
97
+ register_instance_option :version_class do
98
+ PaperTrail::Version
99
+ rescue NameError
100
+ raise E_VERSION_MODEL_NOT_SET
101
+ end
102
+
103
+ register_instance_option :sort_by do
104
+ {id: :desc}
78
105
  end
79
106
 
80
107
  def latest(count = 100)
81
- @version_class.
82
- order(id: :desc).includes(:item).limit(count).
83
- collect { |version| VersionProxy.new(version, @user_class) }
108
+ version_class.
109
+ order(sort_by).includes(:item).limit(count).
110
+ collect { |version| VersionProxy.new(version, user_class) }
84
111
  end
85
112
 
86
113
  def delete_object(_object, _model, _user)
@@ -107,18 +134,18 @@ module RailsAdmin
107
134
 
108
135
  # - model - a RailsAdmin::AbstractModel
109
136
  def listing_for_model_or_object(model, object, query, sort, sort_reverse, all, page, per_page)
110
- if sort.present?
111
- sort = COLUMN_MAPPING[sort.to_sym]
112
- else
113
- sort = :created_at
114
- sort_reverse = 'true'
115
- end
137
+ sort =
138
+ if sort.present?
139
+ {COLUMN_MAPPING[sort.to_sym] => sort_reverse ? :desc : :asc}
140
+ else
141
+ sort_by
142
+ end
116
143
 
117
144
  current_page = page.presence || '1'
118
145
 
119
- versions = object.nil? ? versions_for_model(model) : object.versions
146
+ versions = object.nil? ? versions_for_model(model) : object.public_send(model.model.versions_association_name)
120
147
  versions = versions.where('event LIKE ?', "%#{query}%") if query.present?
121
- versions = versions.order(sort_reverse == 'true' ? "#{sort} DESC" : sort)
148
+ versions = versions.order(sort)
122
149
  versions = all ? versions : versions.send(Kaminari.config.page_method_name, current_page).per(per_page)
123
150
  paginated_proxies = Kaminari.paginate_array([], total_count: versions.try(:total_count) || versions.count)
124
151
  paginated_proxies = paginated_proxies.send(
@@ -126,7 +153,7 @@ module RailsAdmin
126
153
  current_page,
127
154
  ).per(per_page)
128
155
  versions.each do |version|
129
- paginated_proxies << VersionProxy.new(version, @user_class)
156
+ paginated_proxies << VersionProxy.new(version, user_class)
130
157
  end
131
158
  paginated_proxies
132
159
  end
@@ -149,10 +176,10 @@ module RailsAdmin
149
176
  # classes](https://github.com/paper-trail-gem/paper_trail#6a-custom-version-classes)
150
177
  #
151
178
  # ```ruby
152
- # has_paper_trail class_name: 'MyVersion'
179
+ # has_paper_trail versions: { class_name: 'MyVersion' }
153
180
  # ```
154
181
  def version_class_for(model)
155
- model.paper_trail_options[:class_name].try(:constantize) || @version_class
182
+ model.paper_trail.version_class
156
183
  end
157
184
  end
158
185
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/paper_trail/auditing_adapter'
2
4
 
3
5
  RailsAdmin.add_extension(:paper_trail, RailsAdmin::Extensions::PaperTrail, auditing: true)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Extensions
3
5
  module Pundit
@@ -7,7 +9,7 @@ module RailsAdmin
7
9
  class AuthorizationAdapter
8
10
  # This method is called first time only and used for setup
9
11
  def self.setup
10
- RailsAdmin::Extensions::ControllerExtension.send(:include, ::Pundit)
12
+ RailsAdmin::Extensions::ControllerExtension.include defined?(::Pundit::Authorization) ? ::Pundit::Authorization : ::Pundit
11
13
  end
12
14
 
13
15
  # See the +authorize_with+ config method for where the initialization happens.
@@ -21,10 +23,9 @@ module RailsAdmin
21
23
  # AbstractModel instance that applies. The third argument is the actual model
22
24
  # instance if it is available.
23
25
  def authorize(action, abstract_model = nil, model_object = nil)
24
- record = model_object || abstract_model && abstract_model.model
25
- if action && !policy(record).send(action_for_pundit(action))
26
- raise ::Pundit::NotAuthorizedError.new("not allowed to #{action} this #{record}")
27
- end
26
+ record = model_object || abstract_model&.model
27
+ raise ::Pundit::NotAuthorizedError.new("not allowed to #{action} this #{record}") if action && !policy(record).send(action_for_pundit(action))
28
+
28
29
  @controller.instance_variable_set(:@_pundit_policy_authorized, true)
29
30
  end
30
31
 
@@ -33,7 +34,7 @@ module RailsAdmin
33
34
  # This takes the same arguments as +authorize+. The difference is that this will
34
35
  # return a boolean whereas +authorize+ will raise an exception when not authorized.
35
36
  def authorized?(action, abstract_model = nil, model_object = nil)
36
- record = model_object || abstract_model && abstract_model.model
37
+ record = model_object || abstract_model&.model
37
38
  policy(record).send(action_for_pundit(action)) if action
38
39
  end
39
40
 
@@ -50,7 +51,7 @@ module RailsAdmin
50
51
  # records. It should return a hash of attributes which match what the user
51
52
  # is authorized to create.
52
53
  def attributes_for(action, abstract_model)
53
- record = abstract_model && abstract_model.model
54
+ record = abstract_model&.model
54
55
  policy(record).try(:attributes_for, action) || {}
55
56
  end
56
57
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/pundit/authorization_adapter'
2
4
 
3
5
  RailsAdmin.add_extension(:pundit, RailsAdmin::Extensions::Pundit, authorization: true)
@@ -1,11 +1,13 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  require 'csv'
3
4
 
4
5
  module RailsAdmin
5
6
  class CSVConverter
6
- def initialize(objects = [], schema = {})
7
+ def initialize(objects = [], schema = nil)
7
8
  @fields = []
8
9
  @associations = []
10
+ schema ||= {}
9
11
 
10
12
  return self if (@objects = objects).blank?
11
13
 
@@ -13,12 +15,14 @@ module RailsAdmin
13
15
  @abstract_model = RailsAdmin::AbstractModel.new(@model)
14
16
  @model_config = @abstract_model.config
15
17
  @methods = [(schema[:only] || []) + (schema[:methods] || [])].flatten.compact
16
- @fields = @methods.collect { |m| export_fields_for(m).first }
18
+ @fields = @methods.collect { |m| export_field_for(m) }.compact
17
19
  @empty = ::I18n.t('admin.export.empty_value_for_associated_objects')
18
20
  schema_include = schema.delete(:include) || {}
19
21
 
20
22
  @associations = schema_include.each_with_object({}) do |(key, values), hash|
21
- association = association_for(key)
23
+ association = export_field_for(key)
24
+ next unless association&.association?
25
+
22
26
  model_config = association.associated_model_config
23
27
  abstract_model = model_config.abstract_model
24
28
  methods = [(values[:only] || []) + (values[:methods] || [])].flatten.compact
@@ -28,7 +32,7 @@ module RailsAdmin
28
32
  model: abstract_model.model,
29
33
  abstract_model: abstract_model,
30
34
  model_config: model_config,
31
- fields: methods.collect { |m| export_fields_for(m, model_config).first },
35
+ fields: methods.collect { |m| export_field_for(m, model_config) }.compact,
32
36
  }
33
37
  hash
34
38
  end
@@ -36,18 +40,17 @@ module RailsAdmin
36
40
 
37
41
  def to_csv(options = {})
38
42
  if CSV::VERSION == '3.0.2'
39
- raise <<-MSG.gsub(/^\s+/, '')
43
+ raise <<~MSG
40
44
  CSV library bundled with Ruby 2.6.0 has encoding issue, please upgrade Ruby to 2.6.1 or later.
41
45
  https://github.com/ruby/csv/issues/62
42
46
  MSG
43
47
  end
48
+
44
49
  options = HashWithIndifferentAccess.new(options)
45
50
  encoding_to = Encoding.find(options[:encoding_to]) if options[:encoding_to].present?
46
51
 
47
52
  csv_string = generate_csv_string(options)
48
- if encoding_to
49
- csv_string = csv_string.encode(encoding_to, invalid: :replace, undef: :replace, replace: '?')
50
- end
53
+ csv_string = csv_string.encode(encoding_to, invalid: :replace, undef: :replace, replace: '?') if encoding_to
51
54
 
52
55
  # Add a BOM for utf8 encodings, helps with utf8 auto-detect for some versions of Excel.
53
56
  # Don't add if utf8 but user don't want to touch input encoding:
@@ -61,12 +64,8 @@ module RailsAdmin
61
64
 
62
65
  private
63
66
 
64
- def association_for(key)
65
- export_fields_for(key).detect(&:association?)
66
- end
67
-
68
- def export_fields_for(method, model_config = @model_config)
69
- model_config.export.fields.select { |f| f.name == method }
67
+ def export_field_for(method, model_config = @model_config)
68
+ model_config.export.fields.detect { |f| f.name == method }
70
69
  end
71
70
 
72
71
  def generate_csv_string(options)
@@ -1,98 +1,63 @@
1
- require 'rails_admin/support/i18n'
1
+ # frozen_string_literal: true
2
2
 
3
3
  module RailsAdmin
4
4
  module Support
5
5
  class Datetime
6
- # Ruby format options as a key and momentjs format options as a value
7
- MOMENTJS_TRANSLATIONS = {
8
- '%a' => 'ddd', # The abbreviated weekday name ("Sun")
9
- '%A' => 'dddd', # The full weekday name ("Sunday")
10
- '%b' => 'MMM', # The abbreviated month name ("Jan")
11
- '%B' => 'MMMM', # The full month name ("January")
12
- '%d' => 'DD', # Day of the month (01..31)
13
- '%-d' => 'D', # Day of the month (1..31)
14
- '%D' => 'MM/DD/YY', # American date format mm/dd/yy
15
- '%e' => 'D', # Day of the month (1..31)
16
- '%F' => 'YY-MM-DD', # ISO 8601 date format
17
- '%H' => 'HH', # Hour of the day, 24-hour clock (00..23)
18
- '%I' => 'hh', # Hour of the day, 12-hour clock (01..12)
19
- '%m' => 'MM', # Month of the year (01..12)
20
- '%-m' => 'M', # Month of the year (1..12)
21
- '%M' => 'mm', # Minute of the hour (00..59)
22
- '%p' => 'A', # Meridian indicator ('AM' or 'PM')
23
- '%S' => 'ss', # Second of the minute (00..60)
24
- '%Y' => 'YYYY', # Year with century
25
- '%y' => 'YY', # Year without a century (00..99)
6
+ # Ruby format options as a key and flatpickr format options as a value
7
+ FLATPICKR_TRANSLATIONS = {
8
+ '%A' => 'l', # The full weekday name ("Sunday")
9
+ '%a' => 'D', # The abbreviated weekday name ("Sun")
10
+ '%B' => 'F', # The full month name ("January")
11
+ '%b' => 'M', # The abbreviated month name ("Jan")
12
+ '%D' => 'm/d/y', # American date format mm/dd/yy
13
+ '%d' => 'd', # Day of the month (01..31)
14
+ '%-d' => 'j', # Day of the month (1..31)
15
+ '%e' => 'j', # Day of the month (1..31)
16
+ '%F' => 'Y-m-d', # ISO 8601 date format
17
+ '%H' => 'H', # Hour of the day, 24-hour clock (00..23)
18
+ '%-H' => 'H', # Hour of the day, 24-hour clock (0..23)
19
+ '%h' => 'M', # Same as %b
20
+ '%I' => 'G', # Hour of the day, 12-hour clock (01..12)
21
+ '%-I' => 'h', # Hour of the day, 12-hour clock (1..12)
22
+ '%k' => 'H', # Hour of the day, 24-hour clock (0..23)
23
+ '%l' => 'h', # Hour of the day, 12-hour clock (1..12)
24
+ '%M' => 'i', # Minute of the hour (00..59)
25
+ '%-M' => 'i', # Minute of the hour (00..59)
26
+ '%m' => 'm', # Month of the year (01..12)
27
+ '%-m' => 'n', # Month of the year (1..12)
28
+ '%P' => 'K', # Meridian indicator ('am' or 'pm')
29
+ '%p' => 'K', # Meridian indicator ('AM' or 'PM')
30
+ '%R' => 'H:i', # 24-hour time (%H:%M)
31
+ '%r' => 'G:i:S K', # 12-hour time (%I:%M:%S %p)
32
+ '%S' => 'S', # Second of the minute (00..60)
33
+ '%-S' => 's', # Second of the minute (0..60)
34
+ '%s' => 'U', # Number of seconds since 1970-01-01 00:00:00 UTC.
35
+ '%T' => 'H:i:S', # 24-hour time (%H:%M:%S)
36
+ '%U' => 'W', # Week number of the year. The week starts with Sunday. (00..53)
37
+ '%w' => 'w', # Day of the week (Sunday is 0, 0..6)
38
+ '%X' => 'H:i:S', # Same as %T
39
+ '%x' => 'm/d/y', # Same as %D
40
+ '%Y' => 'Y', # Year with century
41
+ '%y' => 'y', # Year without a century (00..99)
42
+ '%%' => '%',
26
43
  }.freeze
27
44
 
28
45
  class << self
29
- include RailsAdmin::Support::I18n
30
-
31
- def delocalize(date_string, format)
32
- return date_string if ::I18n.locale.to_s == 'en'
33
- format.to_s.scan(/%[AaBbp]/) do |match|
46
+ def to_flatpickr_format(strftime_format)
47
+ strftime_format.gsub(/(?<!%)(?<![-0-9:])\w/, '\\\\\0').gsub(/%([-0-9:]?\w)/) do |match|
48
+ # Timezone can't be handled by frontend, the server's one is always used
34
49
  case match
35
- when '%A'
36
- english = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
37
- day_names.each_with_index { |d, i| date_string = date_string.gsub(/#{d}/, english[i]) }
38
- when '%a'
39
- english = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
40
- abbr_day_names.each_with_index { |d, i| date_string = date_string.gsub(/#{d}/, english[i]) }
41
- when '%B'
42
- english = [nil, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][1..-1]
43
- month_names.each_with_index { |m, i| date_string = date_string.gsub(/#{m}/, english[i]) }
44
- when '%b'
45
- english = [nil, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][1..-1]
46
- abbr_month_names.each_with_index { |m, i| date_string = date_string.gsub(/#{m}/, english[i]) }
47
- when '%p'
48
- date_string = date_string.gsub(/#{::I18n.t('date.time.am', default: "am")}/, 'am')
49
- date_string = date_string.gsub(/#{::I18n.t('date.time.pm', default: "pm")}/, 'pm')
50
+ when '%Z', '%:z' # Time zone as hour and minute offset from UTC with a colon (e.g. +09:00)
51
+ Time.zone.formatted_offset
52
+ when '%z' # Time zone as hour and minute offset from UTC (e.g. +0900)
53
+ Time.zone.formatted_offset(false)
54
+ else
55
+ FLATPICKR_TRANSLATIONS[match] or raise <<~MSG
56
+ Unsupported strftime directive '#{match}' was found. Please consider explicitly setting flatpickr_format instance option for the field.
57
+ field(:name_of_field) { flatpickr_format '...' }
58
+ MSG
50
59
  end
51
60
  end
52
- date_string
53
- end
54
-
55
- def normalize(date_string, format)
56
- return unless date_string
57
- delocalize(date_string, format)
58
- parse_date_string(date_string)
59
- end
60
-
61
- # Parse normalized date strings using time zone
62
- def parse_date_string(date_string)
63
- ::Time.zone.parse(date_string)
64
- end
65
- end
66
-
67
- attr_reader :strftime_format
68
-
69
- def initialize(strftime_format)
70
- @strftime_format = strftime_format
71
- end
72
-
73
- # Ruby to javascript formatting options translator
74
- def to_momentjs
75
- strftime_format.gsub(/\w[^.(!?%)\W]{1,}/, '[\0]').gsub(/%(\w|\-\w)/) do |match|
76
- MOMENTJS_TRANSLATIONS[match]
77
- end
78
- end
79
-
80
- # Delocalize a l10n datetime strings
81
- def delocalize(value)
82
- self.class.delocalize(value, strftime_format)
83
- end
84
-
85
- def parse_string(value)
86
- return if value.blank?
87
- return value if %w(DateTime Date Time).include?(value.class.name)
88
- return if (delocalized_value = delocalize(value)).blank?
89
-
90
- begin
91
- # Adjust with the correct timezone and daylight savint time
92
- datetime_with_wrong_tz = ::DateTime.strptime(delocalized_value, strftime_format.gsub('%-d', '%d'))
93
- Time.zone.parse(datetime_with_wrong_tz.strftime('%Y-%m-%d %H:%M:%S'))
94
- rescue ArgumentError
95
- nil
96
61
  end
97
62
  end
98
63
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Support
5
+ class ESModuleProcessor
6
+ def self.instance
7
+ @instance ||= new
8
+ end
9
+
10
+ def self.call(input)
11
+ instance.call(input)
12
+ end
13
+
14
+ def initialize; end
15
+
16
+ def call(input)
17
+ return unless input[:name] == 'rails_admin/application'
18
+
19
+ input[:data].gsub(/^((?:import|export) .+)$/) { "// #{Regexp.last_match(1)}" }
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  class HashHelper
3
5
  def self.symbolize(obj)
@@ -13,11 +15,12 @@ module RailsAdmin
13
15
  when Hash
14
16
  obj.each_with_object({}) do |(key, val), res|
15
17
  nkey = key.is_a?(String) ? key.to_sym : key
16
- nval = case val
17
- when Hash, Array then symbolize(val)
18
- when String then val.to_sym
19
- else val
20
- end
18
+ nval =
19
+ case val
20
+ when Hash, Array then symbolize(val)
21
+ when String then val.to_sym
22
+ else val
23
+ end
21
24
  res[nkey] = nval
22
25
  end
23
26
  else
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  class Version
3
- MAJOR = 2
4
- MINOR = 0
5
+ MAJOR = 3
6
+ MINOR = 1
5
7
  PATCH = 2
6
8
  PRE = nil
7
9
 
@@ -10,6 +12,43 @@ module RailsAdmin
10
12
  def to_s
11
13
  [MAJOR, MINOR, PATCH, PRE].compact.join('.')
12
14
  end
15
+
16
+ def js
17
+ JSON.parse(File.read("#{__dir__}/../../package.json"))['version']
18
+ end
19
+
20
+ def actual_js_version
21
+ case RailsAdmin.config.asset_source
22
+ when :webpacker, :webpack
23
+ js_version_from_node_modules
24
+ else
25
+ js
26
+ end
27
+ end
28
+
29
+ def warn_with_js_version
30
+ return unless Rails.env.development? || Rails.env.test?
31
+
32
+ case actual_js_version
33
+ when js
34
+ # Good
35
+ when nil
36
+ warn "[Warning] Failed to detect RailsAdmin npm package, did you run 'yarn install'?"
37
+ else
38
+ warn <<~MSG
39
+ [Warning] RailsAdmin npm package version inconsistency detected, expected #{js} but actually used is #{actual_js_version}.
40
+ This may cause partial or total malfunction of RailsAdmin frontend features.
41
+ MSG
42
+ end
43
+ end
44
+
45
+ private
46
+
47
+ def js_version_from_node_modules
48
+ JSON.parse(File.read(Rails.root.join('node_modules/rails_admin/package.json')))['version']
49
+ rescue StandardError
50
+ nil
51
+ end
13
52
  end
14
53
  end
15
54
  end
data/lib/rails_admin.rb CHANGED
@@ -1,16 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/engine'
2
4
  require 'rails_admin/abstract_model'
3
5
  require 'rails_admin/config'
6
+ require 'rails_admin/config/const_load_suppressor'
4
7
  require 'rails_admin/extension'
5
8
  require 'rails_admin/extensions/cancancan'
6
9
  require 'rails_admin/extensions/pundit'
7
10
  require 'rails_admin/extensions/paper_trail'
8
- require 'rails_admin/extensions/history'
9
11
  require 'rails_admin/support/csv_converter'
10
12
  require 'rails_admin/support/hash_helper'
11
13
  require 'yaml'
12
14
 
13
15
  module RailsAdmin
16
+ extend RailsAdmin::Config::ConstLoadSuppressor
17
+
14
18
  # Setup RailsAdmin
15
19
  #
16
20
  # Given the first argument is a model class, a model class name
@@ -18,7 +22,7 @@ module RailsAdmin
18
22
  #
19
23
  # If only a block is passed it is stored to initializer stack to be evaluated
20
24
  # on first request in production mode and on each request in development. If
21
- # initialization has already occured (in other words RailsAdmin.setup has
25
+ # initialization has already occurred (in other words RailsAdmin.setup has
22
26
  # been called) the block will be added to stack and evaluated at once.
23
27
  #
24
28
  # Otherwise returns RailsAdmin::Config class.
@@ -28,7 +32,7 @@ module RailsAdmin
28
32
  if entity
29
33
  RailsAdmin::Config.model(entity, &block)
30
34
  elsif block_given?
31
- block.call(RailsAdmin::Config)
35
+ RailsAdmin::Config::ConstLoadSuppressor.suppressing { yield(RailsAdmin::Config) }
32
36
  else
33
37
  RailsAdmin::Config
34
38
  end
@@ -56,5 +60,3 @@ module RailsAdmin
56
60
  YAML.dump(object)
57
61
  end
58
62
  end
59
-
60
- require 'rails_admin/bootstrap-sass' unless defined? Bootstrap
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  namespace :rails_admin do
2
4
  desc 'Install rails_admin'
3
5
  task :install do
@@ -9,21 +11,30 @@ namespace :rails_admin do
9
11
  system 'rails g rails_admin:uninstall'
10
12
  end
11
13
 
12
- desc 'CI env for Travis'
14
+ desc 'CI env for GitHub Actions'
13
15
  task :prepare_ci_env do
14
16
  adapter = ENV['CI_DB_ADAPTER'] || 'sqlite3'
15
- database = ENV['CI_DB_DATABASE'] || ('sqlite3' == adapter ? 'db/development.sqlite3' : 'ci_rails_admin')
17
+ database = (adapter == 'sqlite3' ? 'db/development.sqlite3' : 'ci_rails_admin')
18
+ username =
19
+ case adapter
20
+ when 'postgresql'
21
+ 'postgres'
22
+ when 'mysql2'
23
+ 'root'
24
+ else
25
+ ''
26
+ end
16
27
 
17
28
  configuration = {
18
29
  'test' => {
19
30
  'adapter' => adapter,
20
31
  'database' => database,
21
- 'username' => ENV['CI_DB_USERNAME'],
22
- 'password' => ENV['CI_DB_PASSWORD'],
23
- 'host' => ENV['CI_DB_HOST'] || 'localhost',
24
- 'encoding' => ENV['CI_DB_ENCODING'] || 'utf8',
25
- 'pool' => (ENV['CI_DB_POOL'] || 5).to_int,
26
- 'timeout' => (ENV['CI_DB_TIMEOUT'] || 5000).to_int,
32
+ 'username' => username,
33
+ 'password' => (adapter == 'postgresql' ? 'postgres' : ''),
34
+ 'host' => '127.0.0.1',
35
+ 'encoding' => 'utf8',
36
+ 'pool' => 5,
37
+ 'timeout' => 5000,
27
38
  },
28
39
  }
29
40