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,348 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_record'
4
+ require 'rails_admin/adapters/active_record/association'
5
+ require 'rails_admin/adapters/active_record/model_extension'
6
+ require 'rails_admin/adapters/active_record/property'
7
+
8
+ module RailsAdmin
9
+ module Adapters
10
+ module ActiveRecord
11
+ DISABLED_COLUMN_TYPES = %i[tsvector blob binary spatial hstore geometry].freeze
12
+
13
+ def model_with_extension
14
+ @model_with_extension ||=
15
+ begin
16
+ klass = Class.new(model) do
17
+ include ModelExtension
18
+ end
19
+ klass.instance_eval <<-RUBY, __FILE__, __LINE__+1
20
+ def name
21
+ "#{@model_name.to_s}"
22
+ end
23
+ RUBY
24
+ klass
25
+ end
26
+ end
27
+
28
+ def new(params = {})
29
+ model_with_extension.new(params)
30
+ end
31
+
32
+ def get(id, scope = nil)
33
+ scope = model_with_extension.merge(scope || scoped)
34
+ scope.where(primary_key => id).first
35
+ end
36
+
37
+ def scoped
38
+ model_with_extension.all
39
+ end
40
+
41
+ def first(options = {}, scope = nil)
42
+ all(options, scope).first
43
+ end
44
+
45
+ def all(options = {}, scope = nil)
46
+ scope = model_with_extension.merge(scope || scoped)
47
+ scope = scope.includes(options[:include]) if options[:include]
48
+ scope = scope.limit(options[:limit]) if options[:limit]
49
+ scope = bulk_scope(scope, options) if options[:bulk_ids]
50
+ scope = query_scope(scope, options[:query]) if options[:query]
51
+ scope = filter_scope(scope, options[:filters]) if options[:filters]
52
+ scope = scope.send(Kaminari.config.page_method_name, options[:page]).per(options[:per]) if options[:page] && options[:per]
53
+ scope = sort_scope(scope, options) if options[:sort]
54
+ scope
55
+ end
56
+
57
+ def count(options = {}, scope = nil)
58
+ all(options.merge(limit: false, page: false), scope).count(:all)
59
+ end
60
+
61
+ def destroy(objects)
62
+ Array.wrap(objects).each(&:destroy)
63
+ end
64
+
65
+ def associations
66
+ model.reflect_on_all_associations.collect do |association|
67
+ Association.new(association, model)
68
+ end
69
+ end
70
+
71
+ def properties
72
+ columns = model.columns.reject do |c|
73
+ c.type.blank? ||
74
+ DISABLED_COLUMN_TYPES.include?(c.type.to_sym) ||
75
+ c.try(:array)
76
+ end
77
+ columns.collect do |property|
78
+ Property.new(property, model)
79
+ end
80
+ end
81
+
82
+ def base_class
83
+ model.base_class
84
+ end
85
+
86
+ delegate :primary_key, :table_name, to: :model, prefix: false
87
+
88
+ def quoted_table_name
89
+ model.quoted_table_name
90
+ end
91
+
92
+ def quote_column_name(name)
93
+ model.connection.quote_column_name(name)
94
+ end
95
+
96
+ def encoding
97
+ adapter =
98
+ if ::ActiveRecord::Base.respond_to?(:connection_db_config)
99
+ ::ActiveRecord::Base.connection_db_config.configuration_hash[:adapter]
100
+ else
101
+ ::ActiveRecord::Base.connection_config[:adapter]
102
+ end
103
+ case adapter
104
+ when 'postgresql'
105
+ ::ActiveRecord::Base.connection.select_one("SELECT ''::text AS str;").values.first.encoding
106
+ when 'mysql2'
107
+ if RUBY_ENGINE == 'jruby'
108
+ ::ActiveRecord::Base.connection.select_one("SELECT '' AS str;").values.first.encoding
109
+ else
110
+ ::ActiveRecord::Base.connection.raw_connection.encoding
111
+ end
112
+ when 'oracle_enhanced'
113
+ ::ActiveRecord::Base.connection.select_one('SELECT dummy FROM DUAL').values.first.encoding
114
+ else
115
+ ::ActiveRecord::Base.connection.select_one("SELECT '' AS str;").values.first.encoding
116
+ end
117
+ end
118
+
119
+ def embedded?
120
+ false
121
+ end
122
+
123
+ def cyclic?
124
+ false
125
+ end
126
+
127
+ def adapter_supports_joins?
128
+ true
129
+ end
130
+
131
+ private
132
+
133
+ def bulk_scope(scope, options)
134
+ scope.where(primary_key => options[:bulk_ids])
135
+ end
136
+
137
+ def sort_scope(scope, options)
138
+ direction = options[:sort_reverse] ? :asc : :desc
139
+ case options[:sort]
140
+ when String, Symbol
141
+ scope.reorder("#{options[:sort]} #{direction}")
142
+ when Array
143
+ scope.reorder(options[:sort].zip(Array.new(options[:sort].size) { direction }).to_h)
144
+ when Hash
145
+ scope.reorder(options[:sort].map { |table_name, column| "#{table_name}.#{column}" }.
146
+ zip(Array.new(options[:sort].size) { direction }).to_h)
147
+ else
148
+ raise ArgumentError.new("Unsupported sort value: #{options[:sort]}")
149
+ end
150
+ end
151
+
152
+ class WhereBuilder
153
+ def initialize(scope)
154
+ @statements = []
155
+ @values = []
156
+ @tables = []
157
+ @scope = scope
158
+ end
159
+
160
+ def add(field, value, operator)
161
+ field.searchable_columns.flatten.each do |column_infos|
162
+ statement, value1, value2 = StatementBuilder.new(column_infos[:column], column_infos[:type], value, operator, @scope.connection.adapter_name).to_statement
163
+ @statements << statement if statement.present?
164
+ @values << value1 unless value1.nil?
165
+ @values << value2 unless value2.nil?
166
+ table, column = column_infos[:column].split('.')
167
+ @tables.push(table) if column
168
+ end
169
+ end
170
+
171
+ def build
172
+ scope = @scope.where(@statements.join(' OR '), *@values)
173
+ scope = scope.references(*@tables.uniq) if @tables.any?
174
+ scope
175
+ end
176
+ end
177
+
178
+ def query_scope(scope, query, fields = config.list.fields.select(&:queryable?))
179
+ if config.list.search_by
180
+ scope.send(config.list.search_by, query)
181
+ else
182
+ wb = WhereBuilder.new(scope)
183
+ fields.each do |field|
184
+ value = parse_field_value(field, query)
185
+ wb.add(field, value, field.search_operator)
186
+ end
187
+ # OR all query statements
188
+ wb.build
189
+ end
190
+ end
191
+
192
+ # filters example => {"string_field"=>{"0055"=>{"o"=>"like", "v"=>"test_value"}}, ...}
193
+ # "0055" is the filter index, no use here. o is the operator, v the value
194
+ def filter_scope(scope, filters, fields = config.list.fields.select(&:filterable?))
195
+ filters.each_pair do |field_name, filters_dump|
196
+ filters_dump.each_value do |filter_dump|
197
+ wb = WhereBuilder.new(scope)
198
+ field = fields.detect { |f| f.name.to_s == field_name }
199
+ value = parse_field_value(field, filter_dump[:v])
200
+
201
+ wb.add(field, value, (filter_dump[:o] || RailsAdmin::Config.default_search_operator))
202
+ # AND current filter statements to other filter statements
203
+ scope = wb.build
204
+ end
205
+ end
206
+ scope
207
+ end
208
+
209
+ def build_statement(column, type, value, operator)
210
+ StatementBuilder.new(column, type, value, operator, model.connection.adapter_name).to_statement
211
+ end
212
+
213
+ class StatementBuilder < RailsAdmin::AbstractModel::StatementBuilder
214
+ def initialize(column, type, value, operator, adapter_name)
215
+ super column, type, value, operator
216
+ @adapter_name = adapter_name
217
+ end
218
+
219
+ protected
220
+
221
+ def unary_operators
222
+ case @type
223
+ when :boolean
224
+ boolean_unary_operators
225
+ when :uuid
226
+ uuid_unary_operators
227
+ when :integer, :decimal, :float
228
+ numeric_unary_operators
229
+ else
230
+ generic_unary_operators
231
+ end
232
+ end
233
+
234
+ private
235
+
236
+ def generic_unary_operators
237
+ {
238
+ '_blank' => ["(#{@column} IS NULL OR #{@column} = '')"],
239
+ '_present' => ["(#{@column} IS NOT NULL AND #{@column} != '')"],
240
+ '_null' => ["(#{@column} IS NULL)"],
241
+ '_not_null' => ["(#{@column} IS NOT NULL)"],
242
+ '_empty' => ["(#{@column} = '')"],
243
+ '_not_empty' => ["(#{@column} != '')"],
244
+ }
245
+ end
246
+
247
+ def boolean_unary_operators
248
+ generic_unary_operators.merge(
249
+ '_blank' => ["(#{@column} IS NULL)"],
250
+ '_empty' => ["(#{@column} IS NULL)"],
251
+ '_present' => ["(#{@column} IS NOT NULL)"],
252
+ '_not_empty' => ["(#{@column} IS NOT NULL)"],
253
+ )
254
+ end
255
+ alias_method :numeric_unary_operators, :boolean_unary_operators
256
+ alias_method :uuid_unary_operators, :boolean_unary_operators
257
+
258
+ def range_filter(min, max)
259
+ if min && max && min == max
260
+ ["(#{@column} = ?)", min]
261
+ elsif min && max
262
+ ["(#{@column} BETWEEN ? AND ?)", min, max]
263
+ elsif min
264
+ ["(#{@column} >= ?)", min]
265
+ elsif max
266
+ ["(#{@column} <= ?)", max]
267
+ end
268
+ end
269
+
270
+ def build_statement_for_type
271
+ case @type
272
+ when :boolean then build_statement_for_boolean
273
+ when :integer, :decimal, :float then build_statement_for_integer_decimal_or_float
274
+ when :string, :text, :citext then build_statement_for_string_or_text
275
+ when :enum then build_statement_for_enum
276
+ when :belongs_to_association then build_statement_for_belongs_to_association
277
+ when :uuid then build_statement_for_uuid
278
+ end
279
+ end
280
+
281
+ def build_statement_for_boolean
282
+ case @value
283
+ when 'false', 'f', '0'
284
+ ["(#{@column} IS NULL OR #{@column} = ?)", false]
285
+ when 'true', 't', '1'
286
+ ["(#{@column} = ?)", true]
287
+ end
288
+ end
289
+
290
+ def column_for_value(value)
291
+ ["(#{@column} = ?)", value]
292
+ end
293
+
294
+ def build_statement_for_belongs_to_association
295
+ return if @value.blank?
296
+
297
+ ["(#{@column} = ?)", @value.to_i] if @value.to_i.to_s == @value
298
+ end
299
+
300
+ def build_statement_for_string_or_text
301
+ return if @value.blank?
302
+
303
+ return ["(#{@column} = ?)", @value] if ['is', '='].include?(@operator)
304
+
305
+ @value = @value.mb_chars.downcase unless %w[postgresql postgis].include? ar_adapter
306
+
307
+ @value =
308
+ case @operator
309
+ when 'default', 'like', 'not_like'
310
+ "%#{@value}%"
311
+ when 'starts_with'
312
+ "#{@value}%"
313
+ when 'ends_with'
314
+ "%#{@value}"
315
+ else
316
+ return
317
+ end
318
+
319
+ if %w[postgresql postgis].include? ar_adapter
320
+ if @operator == 'not_like'
321
+ ["(#{@column} NOT ILIKE ?)", @value]
322
+ else
323
+ ["(#{@column} ILIKE ?)", @value]
324
+ end
325
+ elsif @operator == 'not_like'
326
+ ["(LOWER(#{@column}) NOT LIKE ?)", @value]
327
+ else
328
+ ["(LOWER(#{@column}) LIKE ?)", @value]
329
+ end
330
+ end
331
+
332
+ def build_statement_for_enum
333
+ return if @value.blank?
334
+
335
+ ["(#{@column} IN (?))", Array.wrap(@value)]
336
+ end
337
+
338
+ def build_statement_for_uuid
339
+ column_for_value(@value) if /\A[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\z/.match?(@value.to_s)
340
+ end
341
+
342
+ def ar_adapter
343
+ @adapter_name.downcase
344
+ end
345
+ end
346
+ end
347
+ end
348
+ end
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Adapters
5
+ module Mongoid
6
+ class Association
7
+ attr_reader :association, :model
8
+
9
+ delegate :autosave?, to: :association
10
+
11
+ def initialize(association, model)
12
+ @association = association
13
+ @model = model
14
+ end
15
+
16
+ def name
17
+ association.name.to_sym
18
+ end
19
+
20
+ def pretty_name
21
+ name.to_s.tr('_', ' ').capitalize
22
+ end
23
+
24
+ def type
25
+ case macro.to_sym
26
+ when :belongs_to, :referenced_in, :embedded_in
27
+ :belongs_to
28
+ when :has_one, :references_one, :embeds_one
29
+ :has_one
30
+ when :has_many, :references_many, :embeds_many
31
+ :has_many
32
+ when :has_and_belongs_to_many, :references_and_referenced_in_many
33
+ :has_and_belongs_to_many
34
+ else
35
+ raise "Unknown association type: #{macro.inspect}"
36
+ end
37
+ end
38
+
39
+ def field_type
40
+ if polymorphic?
41
+ :polymorphic_association
42
+ else
43
+ :"#{type}_association"
44
+ end
45
+ end
46
+
47
+ def klass
48
+ if polymorphic? && %i[referenced_in belongs_to].include?(macro)
49
+ polymorphic_parents(:mongoid, association.inverse_class_name, name) || []
50
+ else
51
+ association.klass
52
+ end
53
+ end
54
+
55
+ def primary_key
56
+ case type
57
+ when :belongs_to, :has_and_belongs_to_many
58
+ association.primary_key.to_sym
59
+ else
60
+ :_id
61
+ end
62
+ end
63
+
64
+ def foreign_key
65
+ return if embeds?
66
+
67
+ begin
68
+ association.foreign_key.to_sym
69
+ rescue StandardError
70
+ nil
71
+ end
72
+ end
73
+
74
+ def foreign_key_nullable?
75
+ return if foreign_key.nil?
76
+
77
+ true
78
+ end
79
+
80
+ def foreign_type
81
+ return unless polymorphic? && %i[referenced_in belongs_to].include?(macro)
82
+
83
+ association.inverse_type.try(:to_sym) || :"#{name}_type"
84
+ end
85
+
86
+ def foreign_inverse_of
87
+ return unless polymorphic? && %i[referenced_in belongs_to].include?(macro)
88
+
89
+ inverse_of_field.try(:to_sym)
90
+ end
91
+
92
+ def key_accessor
93
+ case macro.to_sym
94
+ when :has_many
95
+ :"#{name.to_s.singularize}_ids"
96
+ when :has_one
97
+ :"#{name}_id"
98
+ when :embedded_in, :embeds_one, :embeds_many
99
+ nil
100
+ else
101
+ foreign_key
102
+ end
103
+ end
104
+
105
+ def as
106
+ association.as.try :to_sym
107
+ end
108
+
109
+ def polymorphic?
110
+ association.polymorphic? && %i[referenced_in belongs_to].include?(macro)
111
+ end
112
+
113
+ def inverse_of
114
+ association.inverse_of.try :to_sym
115
+ end
116
+
117
+ def read_only?
118
+ false
119
+ end
120
+
121
+ def nested_options
122
+ nested = nested_attributes_options.try { |o| o[name] }
123
+ if !nested && %i[embeds_one embeds_many].include?(macro.to_sym) && !cyclic?
124
+ raise <<~MSG
125
+ Embedded association without accepts_nested_attributes_for can't be handled by RailsAdmin,
126
+ because embedded model doesn't have top-level access.
127
+ Please add `accepts_nested_attributes_for :#{association.name}' line to `#{model}' model.
128
+ MSG
129
+ end
130
+
131
+ nested
132
+ end
133
+
134
+ def association?
135
+ true
136
+ end
137
+
138
+ def macro
139
+ association.try(:macro) || association.class.name.split('::').last.underscore.to_sym
140
+ end
141
+
142
+ def embeds?
143
+ %i[embeds_one embeds_many].include?(macro)
144
+ end
145
+
146
+ private
147
+
148
+ def inverse_of_field
149
+ association.respond_to?(:inverse_of_field) && association.inverse_of_field
150
+ end
151
+
152
+ def cyclic?
153
+ association.respond_to?(:cyclic?) ? association.cyclic? : association.cyclic
154
+ end
155
+
156
+ delegate :nested_attributes_options, to: :model, prefix: false
157
+ delegate :polymorphic_parents, to: RailsAdmin::AbstractModel
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'mongoid'
4
+
5
+ module RailsAdmin
6
+ module Adapters
7
+ module Mongoid
8
+ class Bson
9
+ OBJECT_ID =
10
+ if defined?(Moped::BSON)
11
+ Moped::BSON::ObjectId
12
+ elsif defined?(BSON::ObjectId)
13
+ BSON::ObjectId
14
+ end
15
+
16
+ class << self
17
+ def parse_object_id(value)
18
+ OBJECT_ID.from_string(value)
19
+ rescue StandardError => e
20
+ raise e if %w[
21
+ Moped::Errors::InvalidObjectId
22
+ BSON::ObjectId::Invalid
23
+ BSON::InvalidObjectId
24
+ BSON::Error::InvalidObjectId
25
+ ].exclude?(e.class.to_s)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Adapters
5
+ module Mongoid
6
+ module Extension
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ class_attribute :nested_attributes_options
11
+ self.nested_attributes_options = {}
12
+ class << self
13
+ def rails_admin(&block)
14
+ RailsAdmin.config(self, &block)
15
+ end
16
+
17
+ alias_method :accepts_nested_attributes_for_without_rails_admin, :accepts_nested_attributes_for
18
+ alias_method :accepts_nested_attributes_for, :accepts_nested_attributes_for_with_rails_admin
19
+ end
20
+ end
21
+
22
+ def rails_admin_default_object_label_method
23
+ new_record? ? "new #{self.class}" : "#{self.class} ##{id}"
24
+ end
25
+
26
+ def safe_send(value)
27
+ if attributes.detect { |k, _v| k.to_s == value.to_s }
28
+ read_attribute(value)
29
+ else
30
+ send(value)
31
+ end
32
+ end
33
+
34
+ module ClassMethods
35
+ # Mongoid accepts_nested_attributes_for does not store options in accessible scope,
36
+ # so we intercept the call and store it in instance variable which can be accessed from outside
37
+ def accepts_nested_attributes_for_with_rails_admin(*args)
38
+ options = args.extract_options!
39
+ args.each do |arg|
40
+ nested_attributes_options[arg.to_sym] = options.reverse_merge(allow_destroy: false, update_only: false)
41
+ end
42
+ args << options
43
+ accepts_nested_attributes_for_without_rails_admin(*args)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Adapters
5
+ module Mongoid
6
+ module ObjectExtension
7
+ def self.extended(object)
8
+ object.associations.each do |name, association|
9
+ association = Association.new(association, object.class)
10
+ case association.macro
11
+ when :has_many
12
+ unless association.autosave?
13
+ object.singleton_class.after_create do
14
+ send(name).each(&:save)
15
+ end
16
+ end
17
+ when :has_one
18
+ unless association.autosave?
19
+ object.singleton_class.after_create do
20
+ send(name)&.save
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end