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,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'importmap/packager'
4
+
5
+ module RailsAdmin
6
+ class ImportmapFormatter
7
+ attr_reader :packager
8
+
9
+ def initialize(path = 'config/importmap.rails_admin.rb')
10
+ @packager = Importmap::Packager.new(path)
11
+ end
12
+
13
+ def format
14
+ imports = packager.import("rails_admin@#{RailsAdmin::Version.js}", from: 'jspm.io')
15
+
16
+ # Use ESM compatible version to work around https://github.com/cljsjs/packages/issues/1579
17
+ imports['@popperjs/core'].gsub!('lib/index.js', 'dist/esm/popper.js')
18
+
19
+ # Tidy up jQuery UI dependencies
20
+ jquery_uis = imports.keys.filter { |key, _| key =~ /jquery-ui/ }
21
+ imports['jquery-ui/'] = imports[jquery_uis.first].gsub(%r{(@[^/@]+)/[^@]+$}, '\1/')
22
+ imports.reject! { |key, _| jquery_uis.include? key }
23
+
24
+ pins = ['pin "rails_admin", preload: true', packager.pin_for('rails_admin/src/rails_admin/base', imports.delete('rails_admin'))]
25
+ (pins + imports.map { |package, url| packager.pin_for(package, url) }).join("\n")
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+ require 'rails_admin/version'
5
+ require File.expand_path('utils', __dir__)
6
+
7
+ module RailsAdmin
8
+ class InstallGenerator < Rails::Generators::Base
9
+ source_root File.expand_path('templates', __dir__)
10
+ include Generators::Utils::InstanceMethods
11
+
12
+ argument :_namespace, type: :string, required: false, desc: 'RailsAdmin url namespace'
13
+ class_option :asset, type: :string, required: false, default: nil, desc: 'Asset delivery method [options: webpacker, webpack, sprockets, importmap, vite]'
14
+ desc 'RailsAdmin installation generator'
15
+
16
+ def install
17
+ if File.read(File.join(destination_root, 'config/routes.rb')).include?('mount RailsAdmin::Engine')
18
+ display "Skipped route addition, since it's already there"
19
+ else
20
+ namespace = ask_for('Where do you want to mount rails_admin?', 'admin', _namespace)
21
+ route("mount RailsAdmin::Engine => '/#{namespace}', as: 'rails_admin'")
22
+ end
23
+ if File.exist? File.join(destination_root, 'config/initializers/rails_admin.rb')
24
+ insert_into_file 'config/initializers/rails_admin.rb', " config.asset_source = :#{asset}\n", after: "RailsAdmin.config do |config|\n"
25
+ else
26
+ template 'initializer.erb', 'config/initializers/rails_admin.rb'
27
+ end
28
+ display "Using [#{asset}] for asset delivery method"
29
+ case asset
30
+ when 'webpack'
31
+ configure_for_webpack
32
+ when 'importmap'
33
+ configure_for_importmap
34
+ when 'webpacker'
35
+ configure_for_webpacker5
36
+ when 'vite'
37
+ configure_for_vite
38
+ when 'sprockets'
39
+ configure_for_sprockets
40
+ else
41
+ raise "Unknown asset source: #{asset}"
42
+ end
43
+ end
44
+
45
+ private
46
+
47
+ def asset
48
+ return options['asset'] if options['asset']
49
+
50
+ if defined?(Webpacker)
51
+ 'webpacker'
52
+ elsif Rails.root.join('webpack.config.js').exist?
53
+ 'webpack'
54
+ elsif Rails.root.join('config/importmap.rb').exist?
55
+ 'importmap'
56
+ elsif defined?(ViteRuby)
57
+ 'vite'
58
+ else
59
+ 'sprockets'
60
+ end
61
+ end
62
+
63
+ def configure_for_sprockets
64
+ gem 'sassc-rails'
65
+ end
66
+
67
+ def configure_for_webpacker5
68
+ run "yarn add rails_admin@#{RailsAdmin::Version.js}"
69
+ template 'rails_admin.webpacker.js', 'app/javascript/packs/rails_admin.js'
70
+ template 'rails_admin.scss.erb', 'app/javascript/stylesheets/rails_admin.scss'
71
+ # To work around https://github.com/railsadminteam/rails_admin/issues/3565
72
+ add_package_json_field('resolutions', {'rails_admin/@fortawesome/fontawesome-free' => '^5.15.0'})
73
+ end
74
+
75
+ def configure_for_vite
76
+ vite_source_code_dir = ViteRuby.config.source_code_dir
77
+ run "yarn add rails_admin@#{RailsAdmin::Version.js} sass"
78
+ template('rails_admin.vite.js', File.join(vite_source_code_dir, 'entrypoints', 'rails_admin.js'))
79
+ @fa_font_path = '@fortawesome/fontawesome-free/webfonts'
80
+ template('rails_admin.scss.erb', File.join(vite_source_code_dir, 'stylesheets', 'rails_admin.scss'))
81
+ end
82
+
83
+ def configure_for_webpack
84
+ run "yarn add rails_admin@#{RailsAdmin::Version.js}"
85
+ template 'rails_admin.js', 'app/javascript/rails_admin.js'
86
+ webpack_config = File.join(destination_root, 'webpack.config.js')
87
+ marker = %r{application: ["']./app/javascript/application.js["']}
88
+ if File.exist?(webpack_config) && File.read(webpack_config) =~ marker
89
+ insert_into_file 'webpack.config.js', %(,\n rails_admin: "./app/javascript/rails_admin.js"), after: marker
90
+ else
91
+ say 'Add `rails_admin: "./app/javascript/rails_admin.js"` to the entry section in your webpack.config.js.', :red
92
+ end
93
+ setup_css({'build' => 'webpack --config webpack.config.js'})
94
+ end
95
+
96
+ def configure_for_importmap
97
+ run "yarn add rails_admin@#{RailsAdmin::Version.js}"
98
+ template 'rails_admin.js', 'app/javascript/rails_admin.js'
99
+ require_relative 'importmap_formatter'
100
+ add_file 'config/importmap.rails_admin.rb', ImportmapFormatter.new.format
101
+ setup_css
102
+ end
103
+
104
+ def setup_css(additional_script_entries = {})
105
+ gem 'cssbundling-rails'
106
+ rake 'css:install:sass'
107
+
108
+ @fa_font_path = '.'
109
+ template 'rails_admin.scss.erb', 'app/assets/stylesheets/rails_admin.scss'
110
+ asset_config = %{Rails.application.config.assets.paths << Rails.root.join("node_modules/@fortawesome/fontawesome-free/webfonts")\n}
111
+ if File.exist? File.join(destination_root, 'config/initializers/assets.rb')
112
+ append_to_file 'config/initializers/assets.rb', asset_config
113
+ else
114
+ add_file 'config/initializers/assets.rb', asset_config
115
+ end
116
+ add_package_json_field('scripts', additional_script_entries.merge({'build:css' => 'sass ./app/assets/stylesheets/rails_admin.scss:./app/assets/builds/rails_admin.css --no-source-map --load-path=node_modules'}), <<~INSTRUCTION)
117
+ Taking 'build:css' as an example, if you're already have application.sass.css for the sass build, the resulting script would look like:
118
+ sass ./app/assets/stylesheets/application.sass.scss:./app/assets/builds/application.css ./app/assets/stylesheets/rails_admin.scss:./app/assets/builds/rails_admin.css --no-source-map --load-path=node_modules
119
+ INSTRUCTION
120
+ end
121
+
122
+ def add_package_json_field(name, entries, instruction = nil)
123
+ display "Add #{name} to package.json"
124
+ package = begin
125
+ JSON.parse(File.read(File.join(destination_root, 'package.json')))
126
+ rescue Errno::ENOENT, JSON::ParserError
127
+ {}
128
+ end
129
+ if package[name] && (package[name].keys & entries.keys).any?
130
+ say <<~MESSAGE, :red
131
+ You need to merge "#{name}": #{JSON.pretty_generate(entries)} into the existing #{name} in your package.json.#{instruction && "\n#{instruction}"}
132
+ MESSAGE
133
+ else
134
+ package[name] ||= {}
135
+ entries.each do |entry, value|
136
+ package[name][entry] = value
137
+ end
138
+ add_file 'package.json', "#{JSON.pretty_generate(package)}\n"
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,42 @@
1
+ RailsAdmin.config do |config|
2
+ config.asset_source = :<%= asset %>
3
+
4
+ ### Popular gems integration
5
+
6
+ ## == Devise ==
7
+ # config.authenticate_with do
8
+ # warden.authenticate! scope: :user
9
+ # end
10
+ # config.current_user_method(&:current_user)
11
+
12
+ ## == CancanCan ==
13
+ # config.authorize_with :cancancan
14
+
15
+ ## == Pundit ==
16
+ # config.authorize_with :pundit
17
+
18
+ ## == PaperTrail ==
19
+ # config.audit_with :paper_trail, 'User', 'PaperTrail::Version' # PaperTrail >= 3.0.0
20
+
21
+ ### More at https://github.com/railsadminteam/rails_admin/wiki/Base-configuration
22
+
23
+ ## == Gravatar integration ==
24
+ ## To disable Gravatar integration in Navigation Bar set to false
25
+ # config.show_gravatar = true
26
+
27
+ config.actions do
28
+ dashboard # mandatory
29
+ index # mandatory
30
+ new
31
+ export
32
+ bulk_delete
33
+ show
34
+ edit
35
+ delete
36
+ show_in_app
37
+
38
+ ## With an audit adapter, you can add:
39
+ # history_index
40
+ # history_show
41
+ end
42
+ end
@@ -0,0 +1 @@
1
+ import "rails_admin/src/rails_admin/base";
@@ -0,0 +1 @@
1
+ <%= @fa_font_path ? %{$fa-font-path: "#{@fa_font_path}";\n} : '' %>@import "rails_admin/src/rails_admin/styles/base";
@@ -0,0 +1,2 @@
1
+ import "~/stylesheets/rails_admin.scss";
2
+ import "rails_admin/src/rails_admin/base";
@@ -0,0 +1,2 @@
1
+ import "rails_admin/src/rails_admin/base";
2
+ import "../stylesheets/rails_admin.scss";
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Generators
5
+ module Utils
6
+ module InstanceMethods
7
+ def display(output, color = :green)
8
+ say(" - #{output}", color)
9
+ end
10
+
11
+ def ask_for(wording, default_value = nil, override_if_present_value = nil)
12
+ if override_if_present_value.present?
13
+ display("Using [#{override_if_present_value}] for question '#{wording}'") && override_if_present_value
14
+ else
15
+ ask(" ? #{wording} Press <enter> for [#{default_value}] >", :yellow).presence || default_value
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,275 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/support/datetime'
4
+
5
+ module RailsAdmin
6
+ class AbstractModel
7
+ cattr_accessor :all
8
+ attr_reader :adapter, :model_name
9
+
10
+ class << self
11
+ def reset
12
+ @@all = nil
13
+ end
14
+
15
+ def all(adapter = nil)
16
+ @@all ||= Config.models_pool.collect { |m| new(m) }.compact
17
+ adapter ? @@all.select { |m| m.adapter == adapter } : @@all
18
+ end
19
+
20
+ alias_method :old_new, :new
21
+ def new(m)
22
+ m = m.constantize unless m.is_a?(Class)
23
+ (am = old_new(m)).model && am.adapter ? am : nil
24
+ rescue *([LoadError, NameError] + (defined?(ActiveRecord) ? ['ActiveRecord::NoDatabaseError'.constantize, 'ActiveRecord::ConnectionNotEstablished'.constantize] : []))
25
+ puts "[RailsAdmin] Could not load model #{m}, assuming model is non existing. (#{$ERROR_INFO})" unless Rails.env.test?
26
+ nil
27
+ end
28
+
29
+ @@polymorphic_parents = {}
30
+
31
+ def polymorphic_parents(adapter, model_name, name)
32
+ @@polymorphic_parents[adapter.to_sym] ||= {}.tap do |hash|
33
+ all(adapter).each do |am|
34
+ am.associations.select(&:as).each do |association|
35
+ (hash[[association.klass.to_s.underscore, association.as].join('_').to_sym] ||= []) << am.model
36
+ end
37
+ end
38
+ end
39
+ @@polymorphic_parents[adapter.to_sym][[model_name.to_s.underscore, name].join('_').to_sym]
40
+ end
41
+
42
+ # For testing
43
+ def reset_polymorphic_parents
44
+ @@polymorphic_parents = {}
45
+ end
46
+ end
47
+
48
+ def initialize(model_or_model_name)
49
+ @model_name = model_or_model_name.to_s
50
+ ancestors = model.ancestors.collect(&:to_s)
51
+ if ancestors.include?('ActiveRecord::Base') && !model.abstract_class? && model.table_exists?
52
+ initialize_active_record
53
+ elsif ancestors.include?('Mongoid::Document')
54
+ initialize_mongoid
55
+ end
56
+ end
57
+
58
+ # do not store a reference to the model, does not play well with ActiveReload/Rails3.2
59
+ def model
60
+ @model_name.constantize
61
+ end
62
+
63
+ def quoted_table_name
64
+ table_name
65
+ end
66
+
67
+ def quote_column_name(name)
68
+ name
69
+ end
70
+
71
+ def to_s
72
+ model.to_s
73
+ end
74
+
75
+ def config
76
+ Config.model self
77
+ end
78
+
79
+ def to_param
80
+ @model_name.split('::').collect(&:underscore).join('~')
81
+ end
82
+
83
+ def param_key
84
+ @model_name.split('::').collect(&:underscore).join('_')
85
+ end
86
+
87
+ def pretty_name
88
+ model.model_name.human
89
+ end
90
+
91
+ def where(conditions)
92
+ model.where(conditions)
93
+ end
94
+
95
+ def each_associated_children(object)
96
+ associations.each do |association|
97
+ case association.type
98
+ when :has_one
99
+ child = object.send(association.name)
100
+ yield(association, [child]) if child
101
+ when :has_many
102
+ children = object.send(association.name)
103
+ yield(association, Array.new(children))
104
+ end
105
+ end
106
+ end
107
+
108
+ def format_id(id)
109
+ id
110
+ end
111
+
112
+ def parse_id(id)
113
+ id
114
+ end
115
+
116
+ private
117
+
118
+ def initialize_active_record
119
+ @adapter = :active_record
120
+ require 'rails_admin/adapters/active_record'
121
+ extend Adapters::ActiveRecord
122
+ end
123
+
124
+ def initialize_mongoid
125
+ @adapter = :mongoid
126
+ require 'rails_admin/adapters/mongoid'
127
+ extend Adapters::Mongoid
128
+ end
129
+
130
+ def parse_field_value(field, value)
131
+ value.is_a?(Array) ? value.map { |v| field.parse_value(v) } : field.parse_value(value)
132
+ end
133
+
134
+ class StatementBuilder
135
+ def initialize(column, type, value, operator)
136
+ @column = column
137
+ @type = type
138
+ @value = value
139
+ @operator = operator
140
+ end
141
+
142
+ def to_statement
143
+ return if [@operator, @value].any? { |v| v == '_discard' }
144
+
145
+ unary_operators[@operator] || unary_operators[@value] ||
146
+ build_statement_for_type_generic
147
+ end
148
+
149
+ protected
150
+
151
+ def get_filtering_duration
152
+ FilteringDuration.new(@operator, @value).get_duration
153
+ end
154
+
155
+ def build_statement_for_type_generic
156
+ build_statement_for_type || begin
157
+ case @type
158
+ when :date
159
+ build_statement_for_date
160
+ when :datetime, :timestamp, :time
161
+ build_statement_for_datetime_or_timestamp
162
+ end
163
+ end
164
+ end
165
+
166
+ def build_statement_for_type
167
+ raise 'You must override build_statement_for_type in your StatementBuilder'
168
+ end
169
+
170
+ def build_statement_for_integer_decimal_or_float
171
+ case @value
172
+ when Array
173
+ val, range_begin, range_end = *@value.collect do |v|
174
+ next unless v.to_i.to_s == v || v.to_f.to_s == v
175
+
176
+ @type == :integer ? v.to_i : v.to_f
177
+ end
178
+ case @operator
179
+ when 'between'
180
+ range_filter(range_begin, range_end)
181
+ else
182
+ column_for_value(val) if val
183
+ end
184
+ else
185
+ if @value.to_i.to_s == @value || @value.to_f.to_s == @value
186
+ @type == :integer ? column_for_value(@value.to_i) : column_for_value(@value.to_f)
187
+ end
188
+ end
189
+ end
190
+
191
+ def build_statement_for_date
192
+ start_date, end_date = get_filtering_duration
193
+ if start_date
194
+ start_date = begin
195
+ start_date.to_date
196
+ rescue StandardError
197
+ nil
198
+ end
199
+ end
200
+ if end_date
201
+ end_date = begin
202
+ end_date.to_date
203
+ rescue StandardError
204
+ nil
205
+ end
206
+ end
207
+ range_filter(start_date, end_date)
208
+ end
209
+
210
+ def build_statement_for_datetime_or_timestamp
211
+ start_date, end_date = get_filtering_duration
212
+ start_date = start_date.beginning_of_day if start_date.is_a?(Date)
213
+ end_date = end_date.end_of_day if end_date.is_a?(Date)
214
+ range_filter(start_date, end_date)
215
+ end
216
+
217
+ def unary_operators
218
+ raise 'You must override unary_operators in your StatementBuilder'
219
+ end
220
+
221
+ def range_filter(_min, _max)
222
+ raise 'You must override range_filter in your StatementBuilder'
223
+ end
224
+
225
+ class FilteringDuration
226
+ def initialize(operator, value)
227
+ @value = value
228
+ @operator = operator
229
+ end
230
+
231
+ def get_duration
232
+ case @operator
233
+ when 'between' then between
234
+ when 'today' then today
235
+ when 'yesterday' then yesterday
236
+ when 'this_week' then this_week
237
+ when 'last_week' then last_week
238
+ else default
239
+ end
240
+ end
241
+
242
+ def today
243
+ [Date.today, Date.today]
244
+ end
245
+
246
+ def yesterday
247
+ [Date.yesterday, Date.yesterday]
248
+ end
249
+
250
+ def this_week
251
+ [Date.today.beginning_of_week, Date.today.end_of_week]
252
+ end
253
+
254
+ def last_week
255
+ [1.week.ago.to_date.beginning_of_week,
256
+ 1.week.ago.to_date.end_of_week]
257
+ end
258
+
259
+ def between
260
+ [@value[1], @value[2]]
261
+ end
262
+
263
+ def default
264
+ [default_date, default_date]
265
+ end
266
+
267
+ private
268
+
269
+ def default_date
270
+ Array.wrap(@value).first
271
+ end
272
+ end
273
+ end
274
+ end
275
+ end
@@ -0,0 +1,130 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Adapters
5
+ module ActiveRecord
6
+ class Association
7
+ attr_reader :association, :model
8
+
9
+ def initialize(association, model)
10
+ @association = association
11
+ @model = model
12
+ end
13
+
14
+ def name
15
+ association.name.to_sym
16
+ end
17
+
18
+ def pretty_name
19
+ name.to_s.tr('_', ' ').capitalize
20
+ end
21
+
22
+ def type
23
+ association.macro
24
+ end
25
+
26
+ def field_type
27
+ if polymorphic?
28
+ :polymorphic_association
29
+ else
30
+ :"#{association.macro}_association"
31
+ end
32
+ end
33
+
34
+ def klass
35
+ if options[:polymorphic]
36
+ polymorphic_parents(:active_record, association.active_record.name.to_s, name) || []
37
+ else
38
+ association.klass
39
+ end
40
+ end
41
+
42
+ def primary_key
43
+ return nil if polymorphic?
44
+
45
+ value =
46
+ case type
47
+ when :has_one
48
+ association.klass.primary_key
49
+ else
50
+ association.association_primary_key
51
+ end
52
+
53
+ if value.is_a? Array
54
+ :id
55
+ else
56
+ value.to_sym
57
+ end
58
+ end
59
+
60
+ def foreign_key
61
+ if association.options[:query_constraints].present?
62
+ association.options[:query_constraints].map(&:to_sym)
63
+ elsif association.foreign_key.is_a?(Array)
64
+ association.foreign_key.map(&:to_sym)
65
+ else
66
+ association.foreign_key.to_sym
67
+ end
68
+ end
69
+
70
+ def foreign_key_nullable?
71
+ return true if foreign_key.nil? || type != :has_many
72
+
73
+ (column = klass.columns_hash[foreign_key.to_s]).nil? || column.null
74
+ end
75
+
76
+ def foreign_type
77
+ options[:foreign_type].try(:to_sym) || :"#{name}_type" if options[:polymorphic]
78
+ end
79
+
80
+ def foreign_inverse_of
81
+ nil
82
+ end
83
+
84
+ def key_accessor
85
+ case type
86
+ when :has_many, :has_and_belongs_to_many
87
+ :"#{name.to_s.singularize}_ids"
88
+ when :has_one
89
+ :"#{name}_id"
90
+ else
91
+ if foreign_key.is_a?(Array)
92
+ :"#{name}_id"
93
+ else
94
+ foreign_key
95
+ end
96
+ end
97
+ end
98
+
99
+ def as
100
+ options[:as].try :to_sym
101
+ end
102
+
103
+ def polymorphic?
104
+ options[:polymorphic] || false
105
+ end
106
+
107
+ def inverse_of
108
+ options[:inverse_of].try :to_sym
109
+ end
110
+
111
+ def read_only?
112
+ (klass.all.instance_exec(&scope).readonly_value if scope.is_a?(Proc) && scope.arity == 0) ||
113
+ association.nested? ||
114
+ false
115
+ end
116
+
117
+ def nested_options
118
+ model.nested_attributes_options.try { |o| o[name.to_sym] }
119
+ end
120
+
121
+ def association?
122
+ true
123
+ end
124
+
125
+ delegate :options, :scope, to: :association, prefix: false
126
+ delegate :polymorphic_parents, to: RailsAdmin::AbstractModel
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Adapters
5
+ module ActiveRecord
6
+ module ObjectExtension
7
+ def assign_attributes(attributes)
8
+ super if attributes
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end