rails_admin 0.8.1 → 2.2.1

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.

Potentially problematic release.


This version of rails_admin might be problematic. Click here for more details.

Files changed (313) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +17 -34
  3. data/LICENSE.md +1 -1
  4. data/README.md +34 -26
  5. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  6. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  7. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  8. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  9. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  10. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  11. data/app/assets/images/rails_admin/calendar.png +0 -0
  12. data/app/assets/images/rails_admin/clock.png +0 -0
  13. data/app/assets/images/rails_admin/magnifier.png +0 -0
  14. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  15. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  16. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  17. data/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
  18. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +8 -0
  19. data/app/assets/javascripts/rails_admin/jquery.migrate.js +3 -0
  20. data/app/assets/javascripts/rails_admin/ra.filter-box.js +148 -60
  21. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +31 -26
  22. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +211 -110
  23. data/app/assets/javascripts/rails_admin/ra.i18n.js +28 -0
  24. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +59 -0
  25. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +31 -0
  26. data/app/assets/javascripts/rails_admin/ra.widgets.js +379 -0
  27. data/app/assets/javascripts/rails_admin/rails_admin.js +5 -5
  28. data/app/assets/javascripts/rails_admin/ui.js +135 -0
  29. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  30. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  31. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  32. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  33. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +5 -5
  34. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +29 -0
  35. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +9 -1
  36. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +2 -1
  37. data/app/controllers/rails_admin/application_controller.rb +14 -8
  38. data/app/controllers/rails_admin/main_controller.rb +9 -9
  39. data/app/helpers/rails_admin/application_helper.rb +26 -11
  40. data/app/helpers/rails_admin/form_builder.rb +20 -12
  41. data/app/helpers/rails_admin/main_helper.rb +8 -7
  42. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_gap.html.haml +0 -0
  43. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_next_page.html.haml +0 -0
  44. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_page.html.haml +0 -0
  45. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_paginator.html.haml +0 -0
  46. data/app/views/kaminari/{twitter-bootstrap → ra-twitter-bootstrap}/_prev_page.html.haml +0 -0
  47. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +4 -0
  48. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +4 -0
  49. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +4 -0
  50. data/app/views/layouts/rails_admin/_head.html.haml +7 -0
  51. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +2 -2
  52. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +2 -1
  53. data/app/views/layouts/rails_admin/application.html.haml +4 -10
  54. data/app/views/layouts/rails_admin/pjax.html.haml +1 -5
  55. data/app/views/rails_admin/main/_delete_notice.html.haml +14 -9
  56. data/app/views/rails_admin/main/_form_action_text.html.haml +7 -0
  57. data/app/views/rails_admin/main/_form_colorpicker.html.haml +1 -1
  58. data/app/views/rails_admin/main/_form_enumeration.html.haml +4 -3
  59. data/app/views/rails_admin/main/_form_file_upload.html.haml +5 -5
  60. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +7 -6
  61. data/app/views/rails_admin/main/_form_filtering_select.html.haml +1 -1
  62. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +16 -0
  63. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +18 -3
  64. data/app/views/rails_admin/main/_form_simple_mde.haml +8 -0
  65. data/app/views/rails_admin/main/dashboard.html.haml +5 -6
  66. data/app/views/rails_admin/main/export.html.haml +45 -36
  67. data/app/views/rails_admin/main/history.html.haml +3 -3
  68. data/app/views/rails_admin/main/index.html.haml +37 -26
  69. data/app/views/rails_admin/main/show.html.haml +6 -7
  70. data/config/initializers/active_record_extensions.rb +3 -3
  71. data/config/initializers/haml.rb +4 -1
  72. data/config/locales/rails_admin.en.yml +5 -2
  73. data/lib/generators/rails_admin/templates/initializer.erb +6 -2
  74. data/lib/rails_admin/abstract_model.rb +9 -10
  75. data/lib/rails_admin/adapters/active_record/abstract_object.rb +9 -3
  76. data/lib/rails_admin/adapters/active_record/property.rb +1 -5
  77. data/lib/rails_admin/adapters/active_record.rb +83 -28
  78. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +3 -3
  79. data/lib/rails_admin/adapters/mongoid/association.rb +18 -6
  80. data/lib/rails_admin/adapters/mongoid/bson.rb +29 -0
  81. data/lib/rails_admin/adapters/mongoid/extension.rb +4 -2
  82. data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
  83. data/lib/rails_admin/adapters/mongoid.rb +40 -26
  84. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +1 -1
  85. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +1 -3
  86. data/lib/rails_admin/bootstrap-sass.rb +8 -6
  87. data/lib/rails_admin/config/actions/base.rb +20 -5
  88. data/lib/rails_admin/config/actions/bulk_delete.rb +2 -4
  89. data/lib/rails_admin/config/actions/dashboard.rb +9 -5
  90. data/lib/rails_admin/config/actions/edit.rb +1 -3
  91. data/lib/rails_admin/config/actions/export.rb +1 -1
  92. data/lib/rails_admin/config/actions/index.rb +5 -3
  93. data/lib/rails_admin/config/actions/new.rb +4 -5
  94. data/lib/rails_admin/config/actions.rb +1 -1
  95. data/lib/rails_admin/config/configurable.rb +25 -18
  96. data/lib/rails_admin/config/fields/association.rb +11 -3
  97. data/lib/rails_admin/config/fields/base.rb +20 -27
  98. data/lib/rails_admin/config/fields/factories/action_text.rb +12 -0
  99. data/lib/rails_admin/config/fields/factories/active_storage.rb +30 -0
  100. data/lib/rails_admin/config/fields/factories/carrierwave.rb +4 -2
  101. data/lib/rails_admin/config/fields/factories/dragonfly.rb +1 -1
  102. data/lib/rails_admin/config/fields/factories/shrine.rb +27 -0
  103. data/lib/rails_admin/config/fields/types/action_text.rb +30 -0
  104. data/lib/rails_admin/config/fields/types/active_record_enum.rb +19 -2
  105. data/lib/rails_admin/config/fields/types/active_storage.rb +49 -0
  106. data/lib/rails_admin/config/fields/types/all.rb +7 -1
  107. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +8 -0
  108. data/lib/rails_admin/config/fields/types/bson_object_id.rb +1 -15
  109. data/lib/rails_admin/config/fields/types/ck_editor.rb +7 -7
  110. data/lib/rails_admin/config/fields/types/code_mirror.rb +10 -12
  111. data/lib/rails_admin/config/fields/types/color.rb +2 -2
  112. data/lib/rails_admin/config/fields/types/datetime.rb +6 -3
  113. data/lib/rails_admin/config/fields/types/file_upload.rb +12 -4
  114. data/lib/rails_admin/config/fields/types/froala.rb +9 -11
  115. data/lib/rails_admin/config/fields/types/has_many_association.rb +1 -1
  116. data/lib/rails_admin/config/fields/types/hidden.rb +2 -2
  117. data/lib/rails_admin/config/fields/types/json.rb +9 -1
  118. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +53 -0
  119. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +56 -0
  120. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +125 -0
  121. data/lib/rails_admin/config/fields/types/password.rb +5 -1
  122. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +12 -1
  123. data/lib/rails_admin/config/fields/types/serialized.rb +2 -2
  124. data/lib/rails_admin/config/fields/types/shrine.rb +54 -0
  125. data/lib/rails_admin/config/fields/types/simple_mde.rb +36 -0
  126. data/lib/rails_admin/config/fields/types/string.rb +8 -7
  127. data/lib/rails_admin/config/fields/types/string_like.rb +19 -0
  128. data/lib/rails_admin/config/fields/types/text.rb +2 -20
  129. data/lib/rails_admin/config/fields/types/wysihtml5.rb +14 -10
  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 +1 -1
  133. data/lib/rails_admin/config/has_groups.rb +1 -1
  134. data/lib/rails_admin/config/hideable.rb +1 -1
  135. data/lib/rails_admin/config/inspectable.rb +39 -0
  136. data/lib/rails_admin/config/lazy_model.rb +48 -8
  137. data/lib/rails_admin/config/model.rb +10 -22
  138. data/lib/rails_admin/config/proxyable/proxy.rb +7 -9
  139. data/lib/rails_admin/config/proxyable.rb +13 -1
  140. data/lib/rails_admin/config/sections/base.rb +4 -17
  141. data/lib/rails_admin/config/sections/list.rb +37 -0
  142. data/lib/rails_admin/config.rb +46 -25
  143. data/lib/rails_admin/engine.rb +37 -4
  144. data/lib/rails_admin/extension.rb +16 -4
  145. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +23 -7
  146. data/lib/rails_admin/extensions/cancancan.rb +1 -1
  147. data/lib/rails_admin/extensions/controller_extension.rb +6 -0
  148. data/lib/rails_admin/extensions/history/auditing_adapter.rb +2 -2
  149. data/lib/rails_admin/extensions/history/history.rb +2 -2
  150. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +59 -17
  151. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +11 -3
  152. data/lib/rails_admin/support/csv_converter.rb +20 -14
  153. data/lib/rails_admin/support/datetime.rb +7 -6
  154. data/lib/rails_admin/support/i18n.rb +7 -5
  155. data/lib/rails_admin/version.rb +2 -2
  156. data/lib/rails_admin.rb +23 -1
  157. data/lib/tasks/rails_admin.rake +16 -7
  158. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  159. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  160. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +2671 -0
  161. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  162. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  163. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  164. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
  165. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  166. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  167. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  168. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  169. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  170. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  171. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  172. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  173. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  174. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  175. data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  176. data/{app → vendor}/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  177. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  178. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  179. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  180. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  181. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  182. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  183. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  184. data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  185. data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  186. data/{app → vendor}/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  187. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  188. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  189. data/{app → vendor}/assets/images/rails_admin/colorpicker/select2.png +0 -0
  190. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  191. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +50 -28
  192. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +10 -7
  193. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +35 -20
  194. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +48 -25
  195. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +70 -28
  196. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +56 -42
  197. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +118 -40
  198. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +26 -16
  199. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +29 -27
  200. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +46 -19
  201. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +280 -60
  202. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +5 -5
  203. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -0
  204. data/{app → vendor}/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -0
  205. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +317 -150
  206. data/{app → vendor}/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -0
  207. data/{app → vendor}/assets/javascripts/rails_admin/jquery.pjax.js +316 -161
  208. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +16528 -8420
  209. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -0
  210. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -0
  211. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -0
  212. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -0
  213. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +0 -0
  214. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +0 -0
  215. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_close.scss +0 -0
  216. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -0
  217. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -0
  218. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -0
  219. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_forms.scss +0 -0
  220. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -0
  221. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_grid.scss +0 -0
  222. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -0
  223. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -0
  224. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -0
  225. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +0 -0
  226. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -0
  227. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +0 -0
  228. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -0
  229. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +0 -0
  230. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -0
  231. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -0
  232. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -0
  233. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +0 -0
  234. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -0
  235. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -0
  236. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -0
  237. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -0
  238. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -0
  239. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -0
  240. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -0
  241. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_tables.scss +0 -0
  242. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -0
  243. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -0
  244. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +0 -0
  245. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_type.scss +0 -0
  246. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +0 -0
  247. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_variables.scss +0 -0
  248. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -0
  249. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +0 -0
  250. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -0
  251. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -0
  252. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +0 -0
  253. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +0 -0
  254. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -0
  255. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +0 -0
  256. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +0 -0
  257. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +0 -0
  258. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -0
  259. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +0 -0
  260. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -0
  261. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +0 -0
  262. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -0
  263. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +0 -0
  264. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -0
  265. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -0
  266. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -0
  267. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +0 -0
  268. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -0
  269. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -0
  270. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -0
  271. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +0 -0
  272. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -0
  273. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -0
  274. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -0
  275. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -0
  276. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -0
  277. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_text-overflow.scss +0 -0
  278. data/{app → vendor}/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -0
  279. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +2342 -0
  280. data/{app → vendor}/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -0
  281. metadata +214 -199
  282. data/app/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
  283. data/app/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  284. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  285. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  286. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  287. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  288. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  289. data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  290. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  291. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  292. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  293. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  294. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  295. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  296. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  297. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  298. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  299. data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  300. data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  301. data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
  302. data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
  303. data/app/assets/javascripts/rails_admin/custom/ui.coffee +0 -1
  304. data/app/assets/javascripts/rails_admin/jquery.remotipart.fixed.js +0 -72
  305. data/app/assets/javascripts/rails_admin/ra.i18n.coffee +0 -8
  306. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +0 -52
  307. data/app/assets/javascripts/rails_admin/ra.widgets.coffee +0 -308
  308. data/app/assets/javascripts/rails_admin/ui.coffee +0 -102
  309. data/config/initializers/devise_patch.rb +0 -9
  310. data/lib/rails_admin/config/fields/factories/refile.rb +0 -25
  311. data/lib/rails_admin/config/fields/types/refile.rb +0 -27
  312. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +0 -57
  313. data/lib/rails_admin/extensions/cancan.rb +0 -3
@@ -1,10 +1,10 @@
1
- require 'rails_admin/config/fields/base'
1
+ require 'rails_admin/config/fields/types/text'
2
2
 
3
3
  module RailsAdmin
4
4
  module Config
5
5
  module Fields
6
6
  module Types
7
- class CodeMirror < RailsAdmin::Config::Fields::Types::Text
7
+ class CodeMirror < Text
8
8
  # Register field type for the type loader
9
9
  RailsAdmin::Config::Fields::Types.register(self)
10
10
 
@@ -16,31 +16,29 @@ module RailsAdmin
16
16
  }
17
17
  end
18
18
 
19
+ register_instance_option :version do
20
+ '5.46.0'
21
+ end
22
+
19
23
  # Pass the location of the theme and mode for Codemirror
20
24
  register_instance_option :assets do
21
25
  {
22
- mode: '/assets/codemirror/modes/css.js',
23
- theme: '/assets/codemirror/themes/night.css',
26
+ mode: "https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/mode/css/css.min.js",
27
+ theme: "https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/theme/night.min.css",
24
28
  }
25
29
  end
26
30
 
27
- # Use this if you want to point to a cloud instances of CodeMirror
28
31
  register_instance_option :js_location do
29
- '/assets/codemirror.js'
32
+ "https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/codemirror.min.js"
30
33
  end
31
34
 
32
- # Use this if you want to point to a cloud instances of CodeMirror
33
35
  register_instance_option :css_location do
34
- '/assets/codemirror.css'
36
+ "https://cdnjs.cloudflare.com/ajax/libs/codemirror/#{version}/codemirror.min.css"
35
37
  end
36
38
 
37
39
  register_instance_option :partial do
38
40
  :form_code_mirror
39
41
  end
40
-
41
- [:assets, :config, :css_location, :js_location].each do |key|
42
- register_deprecated_instance_option :"codemirror_#{key}", key
43
- end
44
42
  end
45
43
  end
46
44
  end
@@ -1,10 +1,10 @@
1
- require 'rails_admin/config/fields/base'
1
+ require 'rails_admin/config/fields/types/string_like'
2
2
 
3
3
  module RailsAdmin
4
4
  module Config
5
5
  module Fields
6
6
  module Types
7
- class Color < RailsAdmin::Config::Fields::Base
7
+ class Color < StringLike
8
8
  RailsAdmin::Config::Fields::Types.register(self)
9
9
 
10
10
  register_instance_option :pretty_value do
@@ -9,7 +9,7 @@ module RailsAdmin
9
9
  RailsAdmin::Config::Fields::Types.register(self)
10
10
 
11
11
  def parser
12
- @parser ||= RailsAdmin::Support::Datetime.new(strftime_format)
12
+ RailsAdmin::Support::Datetime.new(strftime_format)
13
13
  end
14
14
 
15
15
  def parse_value(value)
@@ -38,8 +38,11 @@ module RailsAdmin
38
38
  end
39
39
 
40
40
  register_instance_option :strftime_format do
41
- fallback = ::I18n.t(date_format, scope: i18n_scope, locale: :en)
42
- ::I18n.t(date_format, scope: i18n_scope, default: fallback).to_s
41
+ begin
42
+ ::I18n.t(date_format, scope: i18n_scope, raise: true)
43
+ rescue ::I18n::ArgumentError
44
+ "%B %d, %Y %H:%M"
45
+ end
43
46
  end
44
47
 
45
48
  register_instance_option :datepicker_options do
@@ -23,10 +23,18 @@ module RailsAdmin
23
23
  nil
24
24
  end
25
25
 
26
+ register_instance_option :cache_value do
27
+ bindings[:object].public_send(cache_method) if cache_method
28
+ end
29
+
26
30
  register_instance_option :export_value do
27
31
  resource_url.to_s
28
32
  end
29
33
 
34
+ register_instance_option :link_name do
35
+ value
36
+ end
37
+
30
38
  register_instance_option :pretty_value do
31
39
  if value.presence
32
40
  v = bindings[:view]
@@ -34,15 +42,15 @@ module RailsAdmin
34
42
  if image
35
43
  thumb_url = resource_url(thumb_method)
36
44
  image_html = v.image_tag(thumb_url, class: 'img-thumbnail')
37
- url != thumb_url ? v.link_to(image_html, url, target: '_blank') : image_html
45
+ url != thumb_url ? v.link_to(image_html, url, target: '_blank', rel: 'noopener noreferrer') : image_html
38
46
  else
39
- v.link_to(nil, url, target: '_blank')
47
+ v.link_to(link_name, url, target: '_blank', rel: 'noopener noreferrer')
40
48
  end
41
49
  end
42
50
  end
43
51
 
44
52
  register_instance_option :image? do
45
- (url = resource_url.to_s) && url.split('.').last =~ /jpg|jpeg|png|gif/i
53
+ (url = resource_url.to_s) && url.split('.').last =~ /jpg|jpeg|png|gif|svg/i
46
54
  end
47
55
 
48
56
  register_instance_option :allowed_methods do
@@ -57,7 +65,7 @@ module RailsAdmin
57
65
 
58
66
  # virtual class
59
67
  def resource_url
60
- fail('not implemented')
68
+ raise('not implemented')
61
69
  end
62
70
 
63
71
  def virtual?
@@ -1,35 +1,33 @@
1
- require 'rails_admin/config/fields/base'
1
+ require 'rails_admin/config/fields/types/text'
2
2
 
3
3
  module RailsAdmin
4
4
  module Config
5
5
  module Fields
6
6
  module Types
7
- class Froala < RailsAdmin::Config::Fields::Types::Text
7
+ class Froala < Text
8
8
  # Register field type for the type loader
9
9
  RailsAdmin::Config::Fields::Types.register(self)
10
10
 
11
- # If you want to have a different toolbar configuration for wysihtml5
12
- # you can use a Ruby hash to configure these options:
13
- # https://github.com/jhollingworth/bootstrap-wysihtml5/#advanced
11
+ # See https://www.froala.com/wysiwyg-editor/docs/options
14
12
  register_instance_option :config_options do
15
13
  nil
16
14
  end
17
15
 
16
+ register_instance_option :version do
17
+ '2.9.5'
18
+ end
19
+
18
20
  register_instance_option :css_location do
19
- ActionController::Base.helpers.asset_path('froala_editor.min.css')
21
+ "https://cdnjs.cloudflare.com/ajax/libs/froala-editor/#{version}/css/froala_editor.min.css"
20
22
  end
21
23
 
22
24
  register_instance_option :js_location do
23
- ActionController::Base.helpers.asset_path('froala_editor.min.js')
25
+ "https://cdnjs.cloudflare.com/ajax/libs/froala-editor/#{version}/js/froala_editor.min.js"
24
26
  end
25
27
 
26
28
  register_instance_option :partial do
27
29
  :form_froala
28
30
  end
29
-
30
- [:config_options, :css_location, :js_location].each do |key|
31
- register_deprecated_instance_option :"froala_#{key}", key
32
- end
33
31
  end
34
32
  end
35
33
  end
@@ -22,7 +22,7 @@ module RailsAdmin
22
22
  end
23
23
 
24
24
  def method_name
25
- nested_form ? "#{super}_attributes".to_sym : "#{super.to_s.singularize}_ids".to_sym # name_ids
25
+ nested_form ? "#{super}_attributes".to_sym : "#{super.to_s.singularize}_ids".to_sym # name_ids
26
26
  end
27
27
 
28
28
  # Reader for validation errors of the bound object
@@ -1,10 +1,10 @@
1
- require 'rails_admin/config/fields/base'
1
+ require 'rails_admin/config/fields/types/string_like'
2
2
 
3
3
  module RailsAdmin
4
4
  module Config
5
5
  module Fields
6
6
  module Types
7
- class Hidden < RailsAdmin::Config::Fields::Base
7
+ class Hidden < StringLike
8
8
  RailsAdmin::Config::Fields::Types.register(self)
9
9
 
10
10
  register_instance_option :view_helper do
@@ -10,7 +10,15 @@ module RailsAdmin
10
10
  RailsAdmin::Config::Fields::Types.register(:jsonb, self)
11
11
 
12
12
  register_instance_option :formatted_value do
13
- value.present? ? JSON.pretty_generate(value) : nil
13
+ value ? JSON.pretty_generate(value) : nil
14
+ end
15
+
16
+ register_instance_option :pretty_value do
17
+ bindings[:view].content_tag(:pre) { formatted_value }.html_safe
18
+ end
19
+
20
+ register_instance_option :export_value do
21
+ formatted_value
14
22
  end
15
23
 
16
24
  def parse_value(value)
@@ -0,0 +1,53 @@
1
+ require 'rails_admin/config/fields/types/multiple_file_upload'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class MultipleActiveStorage < RailsAdmin::Config::Fields::Types::MultipleFileUpload
8
+ RailsAdmin::Config::Fields::Types.register(self)
9
+
10
+ class ActiveStorageAttachment < RailsAdmin::Config::Fields::Types::MultipleFileUpload::AbstractAttachment
11
+ register_instance_option :thumb_method do
12
+ if ::ActiveStorage::VERSION::MAJOR >= 6
13
+ {resize_to_limit: [100, 100]}
14
+ else
15
+ {resize: '100x100>'}
16
+ end
17
+ end
18
+
19
+ register_instance_option :delete_value do
20
+ value.id
21
+ end
22
+
23
+ register_instance_option :image? do
24
+ if value
25
+ value.filename.to_s.split('.').last =~ /jpg|jpeg|png|gif|svg/i
26
+ end
27
+ end
28
+
29
+ def resource_url(thumb = false)
30
+ return nil unless value
31
+ if thumb && value.variable?
32
+ variant = value.variant(thumb_method)
33
+ Rails.application.routes.url_helpers.rails_blob_representation_path(
34
+ variant.blob.signed_id, variant.variation.key, variant.blob.filename, only_path: true
35
+ )
36
+ else
37
+ Rails.application.routes.url_helpers.rails_blob_path(value, only_path: true)
38
+ end
39
+ end
40
+ end
41
+
42
+ register_instance_option :attachment_class do
43
+ ActiveStorageAttachment
44
+ end
45
+
46
+ register_instance_option :delete_method do
47
+ "remove_#{name}" if bindings[:object].respond_to?("remove_#{name}")
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,56 @@
1
+ require 'rails_admin/config/fields/types/multiple_file_upload'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class MultipleCarrierwave < RailsAdmin::Config::Fields::Types::MultipleFileUpload
8
+ RailsAdmin::Config::Fields::Types.register(self)
9
+
10
+ class CarrierwaveAttachment < RailsAdmin::Config::Fields::Types::MultipleFileUpload::AbstractAttachment
11
+ register_instance_option :thumb_method do
12
+ @thumb_method ||= ((versions = value.versions.keys).detect { |k| k.in?([:thumb, :thumbnail, 'thumb', 'thumbnail']) } || versions.first.to_s)
13
+ end
14
+
15
+ register_instance_option :keep_value do
16
+ value.cache_name || value.identifier
17
+ end
18
+
19
+ register_instance_option :delete_value do
20
+ value.file.filename
21
+ end
22
+
23
+ def resource_url(thumb = false)
24
+ return nil unless value
25
+ thumb.present? ? value.send(thumb).url : value.url
26
+ end
27
+ end
28
+
29
+ register_instance_option :attachment_class do
30
+ CarrierwaveAttachment
31
+ end
32
+
33
+ register_instance_option :cache_method do
34
+ "#{name}_cache" unless ::CarrierWave::VERSION >= '2'
35
+ end
36
+
37
+ register_instance_option :keep_method do
38
+ name if ::CarrierWave::VERSION >= '2'
39
+ end
40
+
41
+ register_instance_option :reorderable? do
42
+ ::CarrierWave::VERSION >= '2'
43
+ end
44
+
45
+ register_instance_option :delete_method do
46
+ "delete_#{name}" if bindings[:object].respond_to?("delete_#{name}")
47
+ end
48
+
49
+ def value
50
+ bindings[:object].send(name)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,125 @@
1
+ module RailsAdmin
2
+ module Config
3
+ module Fields
4
+ module Types
5
+ class MultipleFileUpload < RailsAdmin::Config::Fields::Base
6
+ RailsAdmin::Config::Fields::Types.register(self)
7
+
8
+ class AbstractAttachment
9
+ include RailsAdmin::Config::Proxyable
10
+ include RailsAdmin::Config::Configurable
11
+
12
+ attr_reader :value
13
+
14
+ def initialize(value)
15
+ @value = value
16
+ end
17
+
18
+ register_instance_option :thumb_method do
19
+ nil
20
+ end
21
+
22
+ register_instance_option :keep_value do
23
+ nil
24
+ end
25
+
26
+ register_instance_option :delete_value do
27
+ nil
28
+ end
29
+
30
+ register_deprecated_instance_option :delete_key, :delete_value
31
+
32
+ register_instance_option :pretty_value do
33
+ if value.presence
34
+ v = bindings[:view]
35
+ url = resource_url
36
+ if image
37
+ thumb_url = resource_url(thumb_method)
38
+ image_html = v.image_tag(thumb_url, class: 'img-thumbnail')
39
+ url != thumb_url ? v.link_to(image_html, url, target: '_blank', rel: 'noopener noreferrer') : image_html
40
+ else
41
+ display_value = value.respond_to?(:filename) ? value.filename : value
42
+ v.link_to(display_value, url, target: '_blank', rel: 'noopener noreferrer')
43
+ end
44
+ end
45
+ end
46
+
47
+ register_instance_option :image? do
48
+ (url = resource_url.to_s) && url.split('.').last =~ /jpg|jpeg|png|gif|svg/i
49
+ end
50
+
51
+ def resource_url(_thumb = false)
52
+ raise('not implemented')
53
+ end
54
+ end
55
+
56
+ def initialize(*args)
57
+ super
58
+ @attachment_configurations = []
59
+ end
60
+
61
+ register_instance_option :attachment_class do
62
+ AbstractAttachment
63
+ end
64
+
65
+ register_instance_option :partial do
66
+ :form_multiple_file_upload
67
+ end
68
+
69
+ register_instance_option :cache_method do
70
+ nil
71
+ end
72
+
73
+ register_instance_option :delete_method do
74
+ nil
75
+ end
76
+
77
+ register_instance_option :keep_method do
78
+ nil
79
+ end
80
+
81
+ register_instance_option :reorderable? do
82
+ false
83
+ end
84
+
85
+ register_instance_option :export_value do
86
+ attachments.map(&:resource_url).map(&:to_s).join(',')
87
+ end
88
+
89
+ register_instance_option :pretty_value do
90
+ bindings[:view].safe_join attachments.map(&:pretty_value), ' '
91
+ end
92
+
93
+ register_instance_option :allowed_methods do
94
+ [method_name, cache_method, delete_method].compact
95
+ end
96
+
97
+ register_instance_option :html_attributes do
98
+ {
99
+ required: required? && !value.present?,
100
+ }
101
+ end
102
+
103
+ def attachment(&block)
104
+ @attachment_configurations << block
105
+ end
106
+
107
+ def attachments
108
+ Array(value).map do |attached|
109
+ attachment = attachment_class.new(attached)
110
+ @attachment_configurations.each do |config|
111
+ attachment.instance_eval(&config)
112
+ end
113
+ attachment.with(bindings)
114
+ end
115
+ end
116
+
117
+ # virtual class
118
+ def virtual?
119
+ true
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -13,7 +13,11 @@ module RailsAdmin
13
13
  end
14
14
 
15
15
  def parse_input(params)
16
- params[name] = params[name].presence
16
+ if params[name].present?
17
+ params[name] = params[name]
18
+ else
19
+ params.delete(name)
20
+ end
17
21
  end
18
22
 
19
23
  register_instance_option :formatted_value do
@@ -16,7 +16,7 @@ module RailsAdmin
16
16
  # association checks that any of the child models are included in
17
17
  # configuration.
18
18
  register_instance_option :visible? do
19
- associated_model_config.length > 0
19
+ associated_model_config.any?
20
20
  end
21
21
 
22
22
  register_instance_option :formatted_value do
@@ -45,6 +45,10 @@ module RailsAdmin
45
45
  [children_fields]
46
46
  end
47
47
 
48
+ register_instance_option :eager_load? do
49
+ false
50
+ end
51
+
48
52
  def associated_collection(type)
49
53
  return [] if type.blank?
50
54
  config = RailsAdmin.config(type)
@@ -74,6 +78,13 @@ module RailsAdmin
74
78
  def value
75
79
  bindings[:object].send(association.name)
76
80
  end
81
+
82
+ def parse_input(params)
83
+ if (type_value = params[association.foreign_type.to_sym]).present?
84
+ config = associated_model_config.find { |c| type_value == c.abstract_model.model.name }
85
+ params[association.foreign_type.to_sym] = config.abstract_model.base_class.name if config
86
+ end
87
+ end
77
88
  end
78
89
  end
79
90
  end
@@ -9,11 +9,11 @@ module RailsAdmin
9
9
  RailsAdmin::Config::Fields::Types.register(self)
10
10
 
11
11
  register_instance_option :formatted_value do
12
- YAML.dump(value) unless value.nil?
12
+ RailsAdmin.yaml_dump(value) unless value.nil?
13
13
  end
14
14
 
15
15
  def parse_value(value)
16
- value.present? ? (SafeYAML.load(value) || nil) : nil
16
+ value.present? ? (RailsAdmin.yaml_load(value) || nil) : nil
17
17
  end
18
18
 
19
19
  def parse_input(params)
@@ -0,0 +1,54 @@
1
+ require 'rails_admin/config/fields/types/file_upload'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class Shrine < RailsAdmin::Config::Fields::Types::FileUpload
8
+ RailsAdmin::Config::Fields::Types.register(self)
9
+
10
+ register_instance_option :thumb_method do
11
+ unless defined? @thumb_method
12
+ @thumb_method = begin
13
+ next nil unless bindings[:object].respond_to?("#{name}_derivatives")
14
+
15
+ derivatives = bindings[:object].public_send("#{name}_derivatives")
16
+
17
+ if derivatives.key?(:thumb)
18
+ :thumb
19
+ elsif derivatives.key?(:thumbnail)
20
+ :thumbnail
21
+ else
22
+ derivatives.keys.first
23
+ end
24
+ end
25
+ end
26
+ @thumb_method
27
+ end
28
+
29
+ register_instance_option :delete_method do
30
+ "remove_#{name}" if bindings[:object].respond_to?("remove_#{name}")
31
+ end
32
+
33
+ register_instance_option :cache_method do
34
+ name if bindings[:object].try("cached_#{name}_data")
35
+ end
36
+
37
+ register_instance_option :cache_value do
38
+ bindings[:object].try("cached_#{name}_data")
39
+ end
40
+
41
+ register_instance_option :link_name do
42
+ value.original_filename
43
+ end
44
+
45
+ def resource_url(thumb = nil)
46
+ return nil unless value
47
+
48
+ thumb && bindings[:object].public_send(:"#{name}", thumb).try(:url) || value.url
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,36 @@
1
+ require 'rails_admin/config/fields/types/text'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class SimpleMDE < Text
8
+ # Register field type for the type loader
9
+ RailsAdmin::Config::Fields::Types.register(self)
10
+
11
+ # If you want to have a different SimpleMDE config for each instance
12
+ # you can override this option with these values: https://github.com/sparksuite/simplemde-markdown-editor#configuration
13
+ register_instance_option :instance_config do
14
+ nil
15
+ end
16
+
17
+ register_instance_option :version do
18
+ '1.11.2'
19
+ end
20
+
21
+ register_instance_option :js_location do
22
+ "https://cdnjs.cloudflare.com/ajax/libs/simplemde/#{version}/simplemde.min.js"
23
+ end
24
+
25
+ register_instance_option :css_location do
26
+ "https://cdnjs.cloudflare.com/ajax/libs/simplemde/#{version}/simplemde.min.css"
27
+ end
28
+
29
+ register_instance_option :partial do
30
+ :form_simple_mde
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,10 +1,10 @@
1
- require 'rails_admin/config/fields/base'
1
+ require 'rails_admin/config/fields/types/string_like'
2
2
 
3
3
  module RailsAdmin
4
4
  module Config
5
5
  module Fields
6
6
  module Types
7
- class String < RailsAdmin::Config::Fields::Base
7
+ class String < StringLike
8
8
  RailsAdmin::Config::Fields::Types.register(self)
9
9
 
10
10
  def input_size
@@ -27,11 +27,12 @@ module RailsAdmin
27
27
  max_length = [length, valid_length[:maximum] || nil].compact.min
28
28
  min_length = [0, valid_length[:minimum] || nil].compact.max
29
29
  if max_length
30
- if min_length == 0
31
- text += "#{I18n.translate('admin.form.char_length_up_to').capitalize} #{max_length}."
32
- else
33
- text += "#{I18n.translate('admin.form.char_length_of').capitalize} #{min_length}-#{max_length}."
34
- end
30
+ text +=
31
+ if min_length == 0
32
+ "#{I18n.translate('admin.form.char_length_up_to').capitalize} #{max_length}."
33
+ else
34
+ "#{I18n.translate('admin.form.char_length_of').capitalize} #{min_length}-#{max_length}."
35
+ end
35
36
  end
36
37
  end
37
38
  text
@@ -0,0 +1,19 @@
1
+ require 'rails_admin/config/fields/base'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class StringLike < RailsAdmin::Config::Fields::Base
8
+ register_instance_option :treat_empty_as_nil? do
9
+ properties.try(:nullable?)
10
+ end
11
+
12
+ def parse_input(params)
13
+ params[name] = params[name].presence if params.key?(name) && treat_empty_as_nil?
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end