hyper-max-sys 0.0.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.
Files changed (329) hide show
  1. checksums.yaml +7 -0
  2. data/hyper-max-sys.gemspec +12 -0
  3. data/rails_admin-3.3.0/Gemfile +56 -0
  4. data/rails_admin-3.3.0/LICENSE.md +20 -0
  5. data/rails_admin-3.3.0/README.md +105 -0
  6. data/rails_admin-3.3.0/Rakefile +37 -0
  7. data/rails_admin-3.3.0/app/assets/javascripts/rails_admin/application.js.erb +30 -0
  8. data/rails_admin-3.3.0/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
  9. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
  10. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/mixins.scss +11 -0
  11. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/theming.scss +13 -0
  12. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/variables.scss +15 -0
  13. data/rails_admin-3.3.0/app/controllers/rails_admin/application_controller.rb +84 -0
  14. data/rails_admin-3.3.0/app/controllers/rails_admin/main_controller.rb +153 -0
  15. data/rails_admin-3.3.0/app/helpers/rails_admin/application_helper.rb +264 -0
  16. data/rails_admin-3.3.0/app/helpers/rails_admin/form_builder.rb +157 -0
  17. data/rails_admin-3.3.0/app/helpers/rails_admin/main_helper.rb +61 -0
  18. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
  19. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
  20. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
  21. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
  22. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
  23. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
  24. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
  25. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
  26. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_head.html.erb +32 -0
  27. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  28. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
  29. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  30. data/rails_admin-3.3.0/app/views/layouts/rails_admin/application.html.erb +27 -0
  31. data/rails_admin-3.3.0/app/views/layouts/rails_admin/content.html.erb +22 -0
  32. data/rails_admin-3.3.0/app/views/layouts/rails_admin/modal.js.erb +7 -0
  33. data/rails_admin-3.3.0/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
  34. data/rails_admin-3.3.0/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
  35. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
  36. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
  37. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_ck_editor.html.erb +10 -0
  38. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
  39. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
  40. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
  41. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
  42. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_field.html.erb +1 -0
  43. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
  44. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +19 -0
  45. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_filtering_select.html.erb +21 -0
  46. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_froala.html.erb +8 -0
  47. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
  48. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
  49. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
  50. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_polymorphic_association.html.erb +23 -0
  51. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
  52. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_text.html.erb +1 -0
  53. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
  54. data/rails_admin-3.3.0/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
  55. data/rails_admin-3.3.0/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
  56. data/rails_admin-3.3.0/app/views/rails_admin/main/dashboard.html.erb +64 -0
  57. data/rails_admin-3.3.0/app/views/rails_admin/main/delete.html.erb +21 -0
  58. data/rails_admin-3.3.0/app/views/rails_admin/main/edit.html.erb +3 -0
  59. data/rails_admin-3.3.0/app/views/rails_admin/main/export.html.erb +149 -0
  60. data/rails_admin-3.3.0/app/views/rails_admin/main/history.html.erb +80 -0
  61. data/rails_admin-3.3.0/app/views/rails_admin/main/index.html.erb +184 -0
  62. data/rails_admin-3.3.0/app/views/rails_admin/main/new.html.erb +3 -0
  63. data/rails_admin-3.3.0/app/views/rails_admin/main/show.html.erb +30 -0
  64. data/rails_admin-3.3.0/config/initializers/active_record_extensions.rb +23 -0
  65. data/rails_admin-3.3.0/config/initializers/mongoid_extensions.rb +6 -0
  66. data/rails_admin-3.3.0/config/locales/rails_admin.en.yml +158 -0
  67. data/rails_admin-3.3.0/config/routes.rb +14 -0
  68. data/rails_admin-3.3.0/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  69. data/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb +142 -0
  70. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/initializer.erb +42 -0
  71. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  72. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  73. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.vite.js +2 -0
  74. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  75. data/rails_admin-3.3.0/lib/generators/rails_admin/utils.rb +21 -0
  76. data/rails_admin-3.3.0/lib/rails_admin/abstract_model.rb +275 -0
  77. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/association.rb +130 -0
  78. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/object_extension.rb +13 -0
  79. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/property.rb +58 -0
  80. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record.rb +367 -0
  81. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record.rb.bak +348 -0
  82. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/association.rb +161 -0
  83. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/bson.rb +31 -0
  84. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/extension.rb +49 -0
  85. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/object_extension.rb +29 -0
  86. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/property.rb +101 -0
  87. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid.rb +312 -0
  88. data/rails_admin-3.3.0/lib/rails_admin/config/actions/base.rb +162 -0
  89. data/rails_admin-3.3.0/lib/rails_admin/config/actions/bulk_delete.rb +67 -0
  90. data/rails_admin-3.3.0/lib/rails_admin/config/actions/dashboard.rb +62 -0
  91. data/rails_admin-3.3.0/lib/rails_admin/config/actions/delete.rb +58 -0
  92. data/rails_admin-3.3.0/lib/rails_admin/config/actions/edit.rb +56 -0
  93. data/rails_admin-3.3.0/lib/rails_admin/config/actions/export.rb +41 -0
  94. data/rails_admin-3.3.0/lib/rails_admin/config/actions/history_index.rb +40 -0
  95. data/rails_admin-3.3.0/lib/rails_admin/config/actions/history_show.rb +40 -0
  96. data/rails_admin-3.3.0/lib/rails_admin/config/actions/index.rb +98 -0
  97. data/rails_admin-3.3.0/lib/rails_admin/config/actions/new.rb +69 -0
  98. data/rails_admin-3.3.0/lib/rails_admin/config/actions/show.rb +36 -0
  99. data/rails_admin-3.3.0/lib/rails_admin/config/actions/show_in_app.rb +37 -0
  100. data/rails_admin-3.3.0/lib/rails_admin/config/actions.rb +122 -0
  101. data/rails_admin-3.3.0/lib/rails_admin/config/configurable.rb +107 -0
  102. data/rails_admin-3.3.0/lib/rails_admin/config/const_load_suppressor.rb +78 -0
  103. data/rails_admin-3.3.0/lib/rails_admin/config/fields/association.rb +168 -0
  104. data/rails_admin-3.3.0/lib/rails_admin/config/fields/base.rb +391 -0
  105. data/rails_admin-3.3.0/lib/rails_admin/config/fields/collection_association.rb +90 -0
  106. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/action_text.rb +14 -0
  107. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/active_storage.rb +34 -0
  108. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/association.rb +32 -0
  109. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/carrierwave.rb +30 -0
  110. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/devise.rb +28 -0
  111. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/dragonfly.rb +28 -0
  112. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/enum.rb +23 -0
  113. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/paperclip.rb +29 -0
  114. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/password.rb +19 -0
  115. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/shrine.rb +29 -0
  116. data/rails_admin-3.3.0/lib/rails_admin/config/fields/group.rb +77 -0
  117. data/rails_admin-3.3.0/lib/rails_admin/config/fields/singular_association.rb +59 -0
  118. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/action_text.rb +36 -0
  119. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/active_record_enum.rb +62 -0
  120. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/active_storage.rb +70 -0
  121. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/all.rb +43 -0
  122. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/belongs_to_association.rb +48 -0
  123. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/boolean.rb +70 -0
  124. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/bson_object_id.rb +42 -0
  125. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/carrierwave.rb +34 -0
  126. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/citext.rb +15 -0
  127. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/ck_editor.rb +40 -0
  128. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/code_mirror.rb +48 -0
  129. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/color.rb +43 -0
  130. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/date.rb +41 -0
  131. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/datetime.rb +96 -0
  132. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/decimal.rb +23 -0
  133. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/dragonfly.rb +44 -0
  134. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/enum.rb +52 -0
  135. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/file_upload.rb +87 -0
  136. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/float.rb +23 -0
  137. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/froala.rb +37 -0
  138. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +16 -0
  139. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_many_association.rb +16 -0
  140. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_one_association.rb +35 -0
  141. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/hidden.rb +31 -0
  142. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/inet.rb +15 -0
  143. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/integer.rb +20 -0
  144. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/json.rb +37 -0
  145. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_active_storage.rb +82 -0
  146. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +59 -0
  147. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_file_upload.rb +134 -0
  148. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/numeric.rb +24 -0
  149. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/paperclip.rb +30 -0
  150. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/password.rb +45 -0
  151. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/polymorphic_association.rb +118 -0
  152. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/serialized.rb +28 -0
  153. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/shrine.rb +56 -0
  154. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/simple_mde.rb +38 -0
  155. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/string.rb +50 -0
  156. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/string_like.rb +25 -0
  157. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/text.rb +28 -0
  158. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/time.rb +36 -0
  159. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/timestamp.rb +16 -0
  160. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/uuid.rb +15 -0
  161. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/wysihtml5.rb +43 -0
  162. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types.rb +29 -0
  163. data/rails_admin-3.3.0/lib/rails_admin/config/fields.rb +92 -0
  164. data/rails_admin-3.3.0/lib/rails_admin/config/groupable.rb +20 -0
  165. data/rails_admin-3.3.0/lib/rails_admin/config/has_description.rb +14 -0
  166. data/rails_admin-3.3.0/lib/rails_admin/config/has_fields.rb +144 -0
  167. data/rails_admin-3.3.0/lib/rails_admin/config/has_groups.rb +27 -0
  168. data/rails_admin-3.3.0/lib/rails_admin/config/hideable.rb +30 -0
  169. data/rails_admin-3.3.0/lib/rails_admin/config/inspectable.rb +39 -0
  170. data/rails_admin-3.3.0/lib/rails_admin/config/lazy_model.rb +74 -0
  171. data/rails_admin-3.3.0/lib/rails_admin/config/model.rb +120 -0
  172. data/rails_admin-3.3.0/lib/rails_admin/config/proxyable/proxy.rb +39 -0
  173. data/rails_admin-3.3.0/lib/rails_admin/config/proxyable.rb +26 -0
  174. data/rails_admin-3.3.0/lib/rails_admin/config/sections/base.rb +36 -0
  175. data/rails_admin-3.3.0/lib/rails_admin/config/sections/create.rb +13 -0
  176. data/rails_admin-3.3.0/lib/rails_admin/config/sections/edit.rb +13 -0
  177. data/rails_admin-3.3.0/lib/rails_admin/config/sections/export.rb +13 -0
  178. data/rails_admin-3.3.0/lib/rails_admin/config/sections/list.rb +63 -0
  179. data/rails_admin-3.3.0/lib/rails_admin/config/sections/modal.rb +12 -0
  180. data/rails_admin-3.3.0/lib/rails_admin/config/sections/nested.rb +12 -0
  181. data/rails_admin-3.3.0/lib/rails_admin/config/sections/show.rb +12 -0
  182. data/rails_admin-3.3.0/lib/rails_admin/config/sections/update.rb +12 -0
  183. data/rails_admin-3.3.0/lib/rails_admin/config/sections.rb +39 -0
  184. data/rails_admin-3.3.0/lib/rails_admin/config.rb +403 -0
  185. data/rails_admin-3.3.0/lib/rails_admin/engine.rb +84 -0
  186. data/rails_admin-3.3.0/lib/rails_admin/extension.rb +35 -0
  187. data/rails_admin-3.3.0/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +90 -0
  188. data/rails_admin-3.3.0/lib/rails_admin/extensions/cancancan.rb +5 -0
  189. data/rails_admin-3.3.0/lib/rails_admin/extensions/controller_extension.rb +8 -0
  190. data/rails_admin-3.3.0/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +187 -0
  191. data/rails_admin-3.3.0/lib/rails_admin/extensions/paper_trail.rb +5 -0
  192. data/rails_admin-3.3.0/lib/rails_admin/extensions/pundit/authorization_adapter.rb +72 -0
  193. data/rails_admin-3.3.0/lib/rails_admin/extensions/pundit.rb +5 -0
  194. data/rails_admin-3.3.0/lib/rails_admin/extensions/url_for_extension.rb +15 -0
  195. data/rails_admin-3.3.0/lib/rails_admin/support/composite_keys_serializer.rb +15 -0
  196. data/rails_admin-3.3.0/lib/rails_admin/support/csv_converter.rb +107 -0
  197. data/rails_admin-3.3.0/lib/rails_admin/support/datetime.rb +66 -0
  198. data/rails_admin-3.3.0/lib/rails_admin/support/es_module_processor.rb +23 -0
  199. data/rails_admin-3.3.0/lib/rails_admin/support/hash_helper.rb +31 -0
  200. data/rails_admin-3.3.0/lib/rails_admin/version.rb +54 -0
  201. data/rails_admin-3.3.0/lib/rails_admin.rb +62 -0
  202. data/rails_admin-3.3.0/lib/tasks/rails_admin.rake +47 -0
  203. data/rails_admin-3.3.0/package.json +30 -0
  204. data/rails_admin-3.3.0/src/rails_admin/abstract-select.js +30 -0
  205. data/rails_admin-3.3.0/src/rails_admin/base.js +32 -0
  206. data/rails_admin-3.3.0/src/rails_admin/filter-box.js +360 -0
  207. data/rails_admin-3.3.0/src/rails_admin/filtering-multiselect.js +387 -0
  208. data/rails_admin-3.3.0/src/rails_admin/filtering-select.js +306 -0
  209. data/rails_admin-3.3.0/src/rails_admin/i18n.js +18 -0
  210. data/rails_admin-3.3.0/src/rails_admin/jquery.js +3 -0
  211. data/rails_admin-3.3.0/src/rails_admin/nested-form-hooks.js +110 -0
  212. data/rails_admin-3.3.0/src/rails_admin/remote-form.js +193 -0
  213. data/rails_admin-3.3.0/src/rails_admin/sidescroll.js +20 -0
  214. data/rails_admin-3.3.0/src/rails_admin/styles/base/README.txt +2 -0
  215. data/rails_admin-3.3.0/src/rails_admin/styles/base/mixins.scss +1 -0
  216. data/rails_admin-3.3.0/src/rails_admin/styles/base/theming.scss +342 -0
  217. data/rails_admin-3.3.0/src/rails_admin/styles/base/variables.scss +3 -0
  218. data/rails_admin-3.3.0/src/rails_admin/styles/base.scss +27 -0
  219. data/rails_admin-3.3.0/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  220. data/rails_admin-3.3.0/src/rails_admin/styles/filtering-select.scss +70 -0
  221. data/rails_admin-3.3.0/src/rails_admin/styles/widgets.scss +26 -0
  222. data/rails_admin-3.3.0/src/rails_admin/ui.js +176 -0
  223. data/rails_admin-3.3.0/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  224. data/rails_admin-3.3.0/src/rails_admin/widgets.js +507 -0
  225. data/rails_admin-3.3.0/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  226. data/rails_admin-3.3.0/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  227. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  228. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
  229. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  230. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  231. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  232. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  233. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  234. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  235. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  236. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  237. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  238. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  239. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  240. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  241. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  242. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  243. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
  244. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  245. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  246. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  247. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  248. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  249. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  250. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +111 -0
  251. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  252. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +229 -0
  253. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +40 -0
  254. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  255. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  256. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -0
  257. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  258. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +33 -0
  259. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  260. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  261. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +174 -0
  262. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +43 -0
  263. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  264. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  265. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +335 -0
  266. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  267. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +64 -0
  268. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  269. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  270. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  271. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  272. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  273. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  274. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +155 -0
  275. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  276. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +115 -0
  277. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  278. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +104 -0
  279. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +630 -0
  280. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1641 -0
  281. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +53 -0
  282. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  283. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  284. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  285. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  286. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  287. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  288. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  289. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  290. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  291. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  292. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  293. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  294. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  295. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  296. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  297. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  298. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  299. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  300. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  301. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  302. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +78 -0
  303. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  304. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  305. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +133 -0
  306. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  307. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +9 -0
  308. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  309. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  310. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  311. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +144 -0
  312. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +47 -0
  313. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +151 -0
  314. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +16 -0
  315. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +24 -0
  316. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  317. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +31 -0
  318. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  319. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +6 -0
  320. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  321. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-truncate.scss +8 -0
  322. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  323. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  324. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  325. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  326. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  327. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  328. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/font-awesome.scss +6351 -0
  329. metadata +368 -0
@@ -0,0 +1,391 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/proxyable'
4
+ require 'rails_admin/config/configurable'
5
+ require 'rails_admin/config/hideable'
6
+ require 'rails_admin/config/groupable'
7
+ require 'rails_admin/config/inspectable'
8
+
9
+ module RailsAdmin
10
+ module Config
11
+ module Fields
12
+ class Base # rubocop:disable Metrics/ClassLength
13
+ include RailsAdmin::Config::Proxyable
14
+ include RailsAdmin::Config::Configurable
15
+ include RailsAdmin::Config::Hideable
16
+ include RailsAdmin::Config::Groupable
17
+ include RailsAdmin::Config::Inspectable
18
+
19
+ attr_reader :name, :properties, :abstract_model, :parent, :root
20
+ attr_accessor :defined, :order, :section
21
+
22
+ NAMED_INSTANCE_VARIABLES = %i[
23
+ @parent @root @section @children_fields_registered
24
+ @associated_model_config @group
25
+ ].freeze
26
+
27
+ def initialize(parent, name, properties)
28
+ @parent = parent
29
+ @root = parent.root
30
+
31
+ @abstract_model = parent.abstract_model
32
+ @defined = false
33
+ @name = name.to_sym
34
+ @order = 0
35
+ @properties = properties
36
+ @section = parent
37
+ end
38
+
39
+ register_instance_option :css_class do
40
+ "#{name}_field"
41
+ end
42
+
43
+ def type_css_class
44
+ "#{type}_type"
45
+ end
46
+
47
+ def virtual?
48
+ properties.blank?
49
+ end
50
+
51
+ register_instance_option :column_width do
52
+ nil
53
+ end
54
+
55
+ register_instance_option :sticky? do
56
+ false
57
+ end
58
+
59
+ register_instance_option :sortable do
60
+ !virtual? || children_fields.first || false
61
+ end
62
+
63
+ def sort_column
64
+ if sortable == true
65
+ "#{abstract_model.quoted_table_name}.#{abstract_model.quote_column_name(name)}"
66
+ elsif (sortable.is_a?(String) || sortable.is_a?(Symbol)) && sortable.to_s.include?('.') # just provide sortable, don't do anything smart
67
+ sortable
68
+ elsif sortable.is_a?(Hash) # just join sortable hash, don't do anything smart
69
+ "#{sortable.keys.first}.#{sortable.values.first}"
70
+ elsif association? # use column on target table
71
+ "#{associated_model_config.abstract_model.quoted_table_name}.#{abstract_model.quote_column_name(sortable)}"
72
+ else # use described column in the field conf.
73
+ "#{abstract_model.quoted_table_name}.#{abstract_model.quote_column_name(sortable)}"
74
+ end
75
+ end
76
+
77
+ register_instance_option :searchable do
78
+ !virtual? || children_fields.first || false
79
+ end
80
+
81
+ register_instance_option :search_operator do
82
+ RailsAdmin::Config.default_search_operator
83
+ end
84
+
85
+ register_instance_option :queryable? do
86
+ !virtual?
87
+ end
88
+
89
+ register_instance_option :filterable? do
90
+ !!searchable
91
+ end
92
+
93
+ register_instance_option :filter_operators do
94
+ []
95
+ end
96
+
97
+ register_instance_option :default_filter_operator do
98
+ nil
99
+ end
100
+
101
+ def filter_options
102
+ {
103
+ label: label,
104
+ name: name,
105
+ operator: default_filter_operator,
106
+ operators: filter_operators,
107
+ type: type,
108
+ }
109
+ end
110
+
111
+ # serials and dates are reversed in list, which is more natural (last modified items first).
112
+ register_instance_option :sort_reverse? do
113
+ false
114
+ end
115
+
116
+ # list of columns I should search for that field [{ column: 'table_name.column', type: field.type }, {..}]
117
+ register_instance_option :searchable_columns do
118
+ @searchable_columns ||=
119
+ case searchable
120
+ when true
121
+ [{column: "#{abstract_model.table_name}.#{name}", type: type}]
122
+ when false
123
+ []
124
+ when :all # valid only for associations
125
+ table_name = associated_model_config.abstract_model.table_name
126
+ associated_model_config.list.fields.collect { |f| {column: "#{table_name}.#{f.name}", type: f.type} }
127
+ else
128
+ [searchable].flatten.collect do |f|
129
+ if f.is_a?(String) && f.include?('.') # table_name.column
130
+ table_name, column = f.split '.'
131
+ type = nil
132
+ elsif f.is_a?(Hash) # <Model|table_name> => <attribute|column>
133
+ am = AbstractModel.new(f.keys.first) if f.keys.first.is_a?(Class)
134
+ table_name = am&.table_name || f.keys.first
135
+ column = f.values.first
136
+ property = am&.properties&.detect { |p| p.name == f.values.first.to_sym }
137
+ type = property&.type
138
+ else # <attribute|column>
139
+ am = (association? ? associated_model_config.abstract_model : abstract_model)
140
+ table_name = am.table_name
141
+ column = f
142
+ property = am.properties.detect { |p| p.name == f.to_sym }
143
+ type = property&.type
144
+ end
145
+ {column: "#{table_name}.#{column}", type: (type || :string)}
146
+ end
147
+ end
148
+ end
149
+
150
+ register_instance_option :formatted_value do
151
+ value
152
+ end
153
+
154
+ # output for pretty printing (show, list)
155
+ register_instance_option :pretty_value do
156
+ formatted_value.presence || ' - '
157
+ end
158
+
159
+ # output for printing in export view (developers beware: no bindings[:view] and no data!)
160
+ register_instance_option :export_value do
161
+ pretty_value
162
+ end
163
+
164
+ # Accessor for field's help text displayed below input field.
165
+ register_instance_option :help do
166
+ (@help ||= {})[::I18n.locale] ||= generic_field_help
167
+ end
168
+
169
+ register_instance_option :html_attributes do
170
+ {
171
+ required: required?,
172
+ }
173
+ end
174
+
175
+ register_instance_option :default_value do
176
+ nil
177
+ end
178
+
179
+ # Accessor for field's label.
180
+ #
181
+ # @see RailsAdmin::AbstractModel.properties
182
+ register_instance_option :label do
183
+ (@label ||= {})[::I18n.locale] ||= abstract_model.model.human_attribute_name name
184
+ end
185
+
186
+ register_instance_option :hint do
187
+ (@hint ||= '')
188
+ end
189
+
190
+ # Accessor for field's maximum length per database.
191
+ #
192
+ # @see RailsAdmin::AbstractModel.properties
193
+ register_instance_option :length do
194
+ @length ||= properties&.length
195
+ end
196
+
197
+ # Accessor for field's length restrictions per validations
198
+ #
199
+ register_instance_option :valid_length do
200
+ @valid_length ||= abstract_model.model.validators_on(name).detect { |v| v.kind == :length }.try(&:options) || {}
201
+ end
202
+
203
+ register_instance_option :partial do
204
+ :form_field
205
+ end
206
+
207
+ # Accessor for whether this is field is mandatory.
208
+ #
209
+ # @see RailsAdmin::AbstractModel.properties
210
+ register_instance_option :required? do
211
+ context =
212
+ if bindings && bindings[:object]
213
+ bindings[:object].persisted? ? :update : :create
214
+ else
215
+ :nil
216
+ end
217
+
218
+ (@required ||= {})[context] ||= !!([name] + children_fields).uniq.detect do |column_name|
219
+ abstract_model.model.validators_on(column_name).detect do |v|
220
+ !(v.options[:allow_nil] || v.options[:allow_blank]) &&
221
+ %i[presence numericality attachment_presence].include?(v.kind) &&
222
+ (v.options[:on] == context || v.options[:on].blank?) &&
223
+ (v.options[:if].blank? && v.options[:unless].blank?)
224
+ end
225
+ end
226
+ end
227
+
228
+ # Accessor for whether this is a serial field (aka. primary key, identifier).
229
+ #
230
+ # @see RailsAdmin::AbstractModel.properties
231
+ register_instance_option :serial? do
232
+ properties&.serial?
233
+ end
234
+
235
+ register_instance_option :view_helper do
236
+ :text_field
237
+ end
238
+
239
+ register_instance_option :read_only? do
240
+ !editable?
241
+ end
242
+
243
+ # init status in the view
244
+ register_instance_option :active? do
245
+ false
246
+ end
247
+
248
+ register_instance_option :visible? do
249
+ returned = true
250
+ (RailsAdmin.config.default_hidden_fields || {}).each do |section, fields|
251
+ next unless self.section.is_a?("RailsAdmin::Config::Sections::#{section.to_s.camelize}".constantize)
252
+
253
+ returned = false if fields.include?(name)
254
+ end
255
+ returned
256
+ end
257
+
258
+ # columns mapped (belongs_to, paperclip, etc.). First one is used for searching/sorting by default
259
+ register_instance_option :children_fields do
260
+ []
261
+ end
262
+
263
+ register_instance_option :eager_load do
264
+ false
265
+ end
266
+
267
+ register_deprecated_instance_option :eager_load?, :eager_load
268
+
269
+ def eager_load_values
270
+ case eager_load
271
+ when true
272
+ [name]
273
+ when false, nil
274
+ []
275
+ else
276
+ Array.wrap(eager_load)
277
+ end
278
+ end
279
+
280
+ register_instance_option :render do
281
+ bindings[:view].render partial: "rails_admin/main/#{partial}", locals: {field: self, form: bindings[:form]}
282
+ end
283
+
284
+ def editable?
285
+ !((@properties && @properties.read_only?) || (bindings[:object] && bindings[:object].readonly?))
286
+ end
287
+
288
+ # Is this an association
289
+ def association?
290
+ is_a?(RailsAdmin::Config::Fields::Association)
291
+ end
292
+
293
+ # Reader for validation errors of the bound object
294
+ def errors
295
+ ([name] + children_fields).uniq.collect do |column_name|
296
+ bindings[:object].errors[column_name]
297
+ end.uniq.flatten
298
+ end
299
+
300
+ # Reader whether field is optional.
301
+ #
302
+ # @see RailsAdmin::Config::Fields::Base.register_instance_option :required?
303
+ def optional?
304
+ !required?
305
+ end
306
+
307
+ # Inverse accessor whether this field is required.
308
+ #
309
+ # @see RailsAdmin::Config::Fields::Base.register_instance_option :required?
310
+ def optional(state = nil, &block)
311
+ if !state.nil? || block
312
+ required state.nil? ? proc { instance_eval(&block) == false } : state == false
313
+ else
314
+ optional?
315
+ end
316
+ end
317
+
318
+ # Writer to make field optional.
319
+ #
320
+ # @see RailsAdmin::Config::Fields::Base.optional
321
+ def optional=(state)
322
+ optional(state)
323
+ end
324
+
325
+ # Reader for field's type
326
+ def type
327
+ @type ||= self.class.name.to_s.demodulize.underscore.to_sym
328
+ end
329
+
330
+ # Reader for field's value
331
+ def value
332
+ bindings[:object].safe_send(name)
333
+ rescue NoMethodError => e
334
+ raise e.exception <<~ERROR
335
+ #{e.message}
336
+ If you want to use a RailsAdmin virtual field(= a field without corresponding instance method),
337
+ you should declare 'formatted_value' in the field definition.
338
+ field :#{name} do
339
+ formatted_value{ bindings[:object].call_some_method }
340
+ end
341
+ ERROR
342
+ end
343
+
344
+ # Reader for nested attributes
345
+ register_instance_option :nested_form do
346
+ false
347
+ end
348
+
349
+ # Allowed methods for the field in forms
350
+ register_instance_option :allowed_methods do
351
+ [method_name]
352
+ end
353
+
354
+ def generic_help
355
+ "#{required? ? I18n.translate('admin.form.required') : I18n.translate('admin.form.optional')}. "
356
+ end
357
+
358
+ def generic_field_help
359
+ model = abstract_model.model_name.underscore
360
+ model_lookup = :"admin.help.#{model}.#{name}"
361
+ translated = I18n.translate(model_lookup, help: generic_help, default: [generic_help])
362
+ (translated.is_a?(Hash) ? translated.to_a.first[1] : translated).html_safe
363
+ end
364
+
365
+ def parse_value(value)
366
+ value
367
+ end
368
+
369
+ def parse_input(_params)
370
+ # overridden
371
+ end
372
+
373
+ def inverse_of
374
+ nil
375
+ end
376
+
377
+ def method_name
378
+ name
379
+ end
380
+
381
+ def form_default_value
382
+ (default_value if bindings[:object].new_record? && value.nil?)
383
+ end
384
+
385
+ def form_value
386
+ form_default_value.nil? ? formatted_value : form_default_value
387
+ end
388
+ end
389
+ end
390
+ end
391
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields/association'
4
+
5
+ module RailsAdmin
6
+ module Config
7
+ module Fields
8
+ class CollectionAssociation < Association
9
+ # orderable associated objects
10
+ register_instance_option :orderable do
11
+ false
12
+ end
13
+
14
+ register_instance_option :partial do
15
+ nested_form ? :form_nested_many : :form_filtering_multiselect
16
+ end
17
+
18
+ def collection(scope = nil)
19
+ if scope
20
+ super
21
+ elsif associated_collection_cache_all
22
+ selected = selected_ids
23
+ i = 0
24
+ super.sort_by { |a| [selected.index(a[1]) || selected.size, i += 1] }
25
+ else
26
+ value.map { |o| [o.send(associated_object_label_method), format_key(o.send(associated_primary_key))] }
27
+ end
28
+ end
29
+
30
+ def associated_prepopulate_params
31
+ {associated_model_config.abstract_model.param_key => {association.foreign_key => bindings[:object].try(:id)}}
32
+ end
33
+
34
+ def multiple?
35
+ true
36
+ end
37
+
38
+ def selected_ids
39
+ value.map { |s| format_key(s.send(associated_primary_key)).to_s }
40
+ end
41
+
42
+ def parse_input(params)
43
+ return unless associated_model_config.abstract_model.primary_key.is_a?(Array)
44
+
45
+ if nested_form
46
+ params[method_name].each_value do |value|
47
+ value[:id] = associated_model_config.abstract_model.parse_id(value[:id])
48
+ end
49
+ elsif params[method_name].is_a?(Array)
50
+ params[method_name] = params[method_name].map { |key| associated_model_config.abstract_model.parse_id(key) if key.present? }.compact
51
+ if params[method_name].empty?
52
+ # Workaround for Arel::Visitors::UnsupportedVisitError in #ids_writer, until https://github.com/rails/rails/pull/51116 is in place
53
+ params.delete(method_name)
54
+ params[name] = []
55
+ end
56
+ end
57
+ end
58
+
59
+ def form_default_value
60
+ (default_value if bindings[:object].new_record? && value.empty?)
61
+ end
62
+
63
+ def form_value
64
+ form_default_value.nil? ? selected_ids : form_default_value
65
+ end
66
+
67
+ def widget_options
68
+ {
69
+ xhr: !associated_collection_cache_all,
70
+ 'edit-url': (inline_edit && bindings[:view].authorized?(:edit, associated_model_config.abstract_model) ? bindings[:view].edit_path(model_name: associated_model_config.abstract_model.to_param, id: '__ID__') : ''),
71
+ remote_source: bindings[:view].index_path(associated_model_config.abstract_model, source_object_id: abstract_model.format_id(bindings[:object].id), source_abstract_model: abstract_model.to_param, associated_collection: name, current_action: bindings[:view].current_action, compact: true),
72
+ scopeBy: dynamic_scope_relationships,
73
+ sortable: !!orderable,
74
+ removable: !!removable,
75
+ cacheAll: !!associated_collection_cache_all,
76
+ regional: {
77
+ add: ::I18n.t('admin.misc.add_new'),
78
+ chooseAll: ::I18n.t('admin.misc.chose_all'),
79
+ clearAll: ::I18n.t('admin.misc.clear_all'),
80
+ down: ::I18n.t('admin.misc.down'),
81
+ remove: ::I18n.t('admin.misc.remove'),
82
+ search: ::I18n.t('admin.misc.search'),
83
+ up: ::I18n.t('admin.misc.up'),
84
+ },
85
+ }
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types'
5
+
6
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
7
+ if defined?(::ActionText) && properties.try(:association?) && (match = /\Arich_text_(.+)\Z/.match properties.name) && properties.klass.to_s == 'ActionText::RichText'
8
+ field = RailsAdmin::Config::Fields::Types.load(:action_text).new(parent, match[1], properties)
9
+ fields << field
10
+ true
11
+ else
12
+ false
13
+ end
14
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types'
5
+ require 'rails_admin/config/fields/types/file_upload'
6
+
7
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
8
+ if defined?(::ActiveStorage) && properties.try(:association?) && (match = /\A(.+)_attachments?\Z/.match properties.name) && properties.klass.to_s == 'ActiveStorage::Attachment'
9
+ name = match[1]
10
+ field = RailsAdmin::Config::Fields::Types.load(
11
+ properties.type == :has_many ? :multiple_active_storage : :active_storage,
12
+ ).new(parent, name, properties)
13
+ fields << field
14
+ associations =
15
+ if properties.type == :has_many
16
+ [:"#{name}_attachments", :"#{name}_blobs"]
17
+ else
18
+ [:"#{name}_attachment", :"#{name}_blob"]
19
+ end
20
+ children_fields = associations.map do |child_name|
21
+ child_association = parent.abstract_model.associations.detect { |p| p.name.to_sym == child_name }
22
+ next unless child_association
23
+
24
+ child_field = fields.detect { |f| f.name == child_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_association, fields)
25
+ child_field.hide unless field == child_field
26
+ child_field.filterable(false) unless field == child_field
27
+ child_field.name
28
+ end.flatten.compact
29
+ field.children_fields(children_fields)
30
+ true
31
+ else
32
+ false
33
+ end
34
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types'
5
+ require 'rails_admin/config/fields/types/belongs_to_association'
6
+
7
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
8
+ parent.abstract_model.associations.filter { |a| Array(a.foreign_key).include?(properties.name) && %i[belongs_to has_and_belongs_to_many].include?(a.type) }.each do |association|
9
+ field = RailsAdmin::Config::Fields::Types.load(association.field_type).new(parent, association.name, association)
10
+ fields << field
11
+
12
+ child_columns = []
13
+ possible_field_names = if association.polymorphic?
14
+ %i[foreign_key foreign_type foreign_inverse_of]
15
+ else
16
+ [:foreign_key]
17
+ end.flat_map { |k| Array(association.send(k)) }.compact
18
+
19
+ parent.abstract_model.properties.select { |p| possible_field_names.include? p.name }.each do |column|
20
+ child_field = fields.detect { |f| f.name.to_s == column.name.to_s }
21
+ child_field ||= RailsAdmin::Config::Fields.default_factory.call(parent, column, fields)
22
+ child_columns << child_field
23
+ end
24
+
25
+ child_columns.each do |child_column|
26
+ child_column.hide
27
+ child_column.filterable(false)
28
+ end
29
+
30
+ field.children_fields child_columns.collect(&:name)
31
+ end.any?
32
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types'
5
+ require 'rails_admin/config/fields/types/file_upload'
6
+
7
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
8
+ model = parent.abstract_model.model
9
+ if defined?(::CarrierWave) && model.is_a?(CarrierWave::Mount) && model.uploaders.include?(attachment_name = properties.name.to_s.chomp('_file_name').to_sym)
10
+ columns = [model.uploader_options[attachment_name][:mount_on] || attachment_name, :"#{attachment_name}_content_type", :"#{attachment_name}_file_size"]
11
+ field = RailsAdmin::Config::Fields::Types.load(
12
+ %i[serialized json].include?(properties.type) ? :multiple_carrierwave : :carrierwave,
13
+ ).new(parent, attachment_name, properties)
14
+ fields << field
15
+ children_fields = []
16
+ columns.each do |children_column_name|
17
+ child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
18
+ next unless child_properties
19
+
20
+ children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
21
+ children_field.hide unless field == children_field
22
+ children_field.filterable(false) unless field == children_field
23
+ children_fields << children_field.name
24
+ end
25
+ field.children_fields(children_fields)
26
+ true
27
+ else
28
+ false
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types'
5
+ require 'rails_admin/config/fields/types/password'
6
+
7
+ # Register a custom field factory for devise model
8
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
9
+ if properties.name == :encrypted_password
10
+ extensions = %i[password_salt reset_password_token remember_token]
11
+ fields << RailsAdmin::Config::Fields::Types.load(:password).new(parent, :password, properties)
12
+ fields << RailsAdmin::Config::Fields::Types.load(:password).new(parent, :password_confirmation, properties)
13
+ extensions.each do |ext|
14
+ properties = parent.abstract_model.properties.detect { |p| ext == p.name }
15
+ next unless properties
16
+
17
+ field = fields.detect { |f| f.name == ext }
18
+ unless field
19
+ RailsAdmin::Config::Fields.default_factory.call(parent, properties, fields)
20
+ field = fields.last
21
+ end
22
+ field.hide
23
+ end
24
+ true
25
+ else
26
+ false
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types'
5
+ require 'rails_admin/config/fields/types/file_upload'
6
+
7
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
8
+ extensions = %i[name uid]
9
+ if (properties.name.to_s =~ /^(.+)_uid$/) && defined?(::Dragonfly) && parent.abstract_model.model.respond_to?(:dragonfly_attachment_classes) && parent.abstract_model.model.dragonfly_attachment_classes.collect(&:attribute).include?(attachment_name = Regexp.last_match[1].to_sym)
10
+ field = RailsAdmin::Config::Fields::Types.load(:dragonfly).new(parent, attachment_name, properties)
11
+ children_fields = []
12
+ extensions.each do |ext|
13
+ children_column_name = :"#{attachment_name}_#{ext}"
14
+ child_properties = parent.abstract_model.properties.detect { |p| p.name.to_s == children_column_name.to_s }
15
+ next unless child_properties
16
+
17
+ children_field = fields.detect { |f| f.name == children_column_name } || RailsAdmin::Config::Fields.default_factory.call(parent, child_properties, fields)
18
+ children_field.hide
19
+ children_field.filterable(false)
20
+ children_fields << children_field.name
21
+ end
22
+ field.children_fields(children_fields)
23
+ fields << field
24
+ true
25
+ else
26
+ false
27
+ end
28
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/fields'
4
+ require 'rails_admin/config/fields/types/enum'
5
+ require 'rails_admin/config/fields/types/active_record_enum'
6
+
7
+ RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
8
+ model = parent.abstract_model.model
9
+ method_name = "#{properties.name}_enum"
10
+
11
+ # NOTICE: _method_name could be `to_enum` and this method defined in Object.
12
+ if !Object.respond_to?(method_name) && \
13
+ (model.respond_to?(method_name) || \
14
+ model.method_defined?(method_name))
15
+ fields << RailsAdmin::Config::Fields::Types::Enum.new(parent, properties.name, properties)
16
+ true
17
+ elsif model.respond_to?(:defined_enums) && model.defined_enums[properties.name.to_s]
18
+ fields << RailsAdmin::Config::Fields::Types::ActiveRecordEnum.new(parent, properties.name, properties)
19
+ true
20
+ else
21
+ false
22
+ end
23
+ end