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,264 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module ApplicationHelper
5
+ def authorized?(action_name, abstract_model = nil, object = nil)
6
+ object = nil if object.try :new_record?
7
+ action(action_name, abstract_model, object).try(:authorized?)
8
+ end
9
+
10
+ def current_action
11
+ params[:action].in?(%w[create new]) ? 'create' : 'update'
12
+ end
13
+
14
+ def current_action?(action, abstract_model = @abstract_model, object = @object)
15
+ @action.custom_key == action.custom_key &&
16
+ abstract_model.try(:to_param) == @abstract_model.try(:to_param) &&
17
+ (@object.try(:persisted?) ? @object.id == object.try(:id) : !object.try(:persisted?))
18
+ end
19
+
20
+ def action(key, abstract_model = nil, object = nil)
21
+ RailsAdmin::Config::Actions.find(key, controller: controller, abstract_model: abstract_model, object: object)
22
+ end
23
+
24
+ def actions(scope = :all, abstract_model = nil, object = nil)
25
+ RailsAdmin::Config::Actions.all(scope, controller: controller, abstract_model: abstract_model, object: object)
26
+ end
27
+
28
+ def edit_user_link
29
+ return nil unless _current_user.try(:email).present?
30
+ return nil unless (abstract_model = RailsAdmin.config(_current_user.class).abstract_model)
31
+
32
+ edit_action = action(:edit, abstract_model, _current_user)
33
+ authorized = edit_action.try(:authorized?)
34
+ content = edit_user_link_label
35
+
36
+ if authorized
37
+ edit_url = rails_admin.url_for(
38
+ action: edit_action.action_name,
39
+ model_name: abstract_model.to_param,
40
+ controller: 'rails_admin/main',
41
+ id: _current_user.id,
42
+ )
43
+
44
+ link_to content, edit_url, class: 'nav-link'
45
+ else
46
+ content_tag :span, content, class: 'nav-link'
47
+ end
48
+ end
49
+
50
+ def logout_path
51
+ if defined?(Devise)
52
+ scope = Devise::Mapping.find_scope!(_current_user)
53
+ begin
54
+ main_app.send("destroy_#{scope}_session_path")
55
+ rescue StandardError
56
+ false
57
+ end
58
+ elsif main_app.respond_to?(:logout_path)
59
+ main_app.logout_path
60
+ end
61
+ end
62
+
63
+ def logout_method
64
+ return [Devise.sign_out_via].flatten.first if defined?(Devise)
65
+
66
+ :delete
67
+ end
68
+
69
+ def wording_for(label, action = @action, abstract_model = @abstract_model, object = @object)
70
+ model_config = abstract_model.try(:config)
71
+ object = nil unless abstract_model && object.is_a?(abstract_model.model)
72
+ action = RailsAdmin::Config::Actions.find(action.to_sym) if action.is_a?(Symbol) || action.is_a?(String)
73
+
74
+ I18n.t(
75
+ "admin.actions.#{action.i18n_key}.#{label}",
76
+ model_label: model_config&.label,
77
+ model_label_plural: model_config&.label_plural,
78
+ object_label: model_config && object.try(model_config.object_label_method),
79
+ )
80
+ end
81
+
82
+ def main_navigation
83
+ nodes_stack = RailsAdmin::Config.visible_models(controller: controller)
84
+ node_model_names = nodes_stack.collect { |c| c.abstract_model.model_name }
85
+ parent_groups = nodes_stack.group_by { |n| n.parent&.to_s }
86
+
87
+ nodes_stack.group_by(&:navigation_label).collect do |navigation_label, nodes|
88
+ nodes = nodes.select { |n| n.parent.nil? || !n.parent.to_s.in?(node_model_names) }
89
+ li_stack = navigation parent_groups, nodes
90
+
91
+ label = navigation_label || t('admin.misc.navigation')
92
+
93
+ collapsible_stack(label, 'main', li_stack)
94
+ end.join.html_safe
95
+ end
96
+
97
+ def root_navigation
98
+ actions(:root).select(&:show_in_sidebar).group_by(&:sidebar_label).collect do |label, nodes|
99
+ li_stack = nodes.map do |node|
100
+ url = rails_admin.url_for(action: node.action_name, controller: 'rails_admin/main')
101
+ nav_icon = node.link_icon ? %(<i class="#{node.link_icon}"></i>).html_safe : ''
102
+ content_tag :li do
103
+ link_to nav_icon + " " + wording_for(:menu, node), url, class: "nav-link"
104
+ end
105
+ end.join.html_safe
106
+ label ||= t('admin.misc.root_navigation')
107
+
108
+ collapsible_stack(label, 'action', li_stack)
109
+ end.join.html_safe
110
+ end
111
+
112
+ def static_navigation
113
+ li_stack = RailsAdmin::Config.navigation_static_links.collect do |title, url|
114
+ content_tag(:li, link_to(title.to_s, url, target: '_blank', rel: 'noopener noreferrer', class: 'nav-link'))
115
+ end.join.html_safe
116
+
117
+ label = RailsAdmin::Config.navigation_static_label || t('admin.misc.navigation_static_label')
118
+ collapsible_stack(label, 'static', li_stack) || ''
119
+ end
120
+
121
+ def navigation(parent_groups, nodes, level = 0)
122
+ nodes.collect do |node|
123
+ abstract_model = node.abstract_model
124
+ model_param = abstract_model.to_param
125
+ url = rails_admin.url_for(action: :index, controller: 'rails_admin/main', model_name: model_param)
126
+ nav_icon = node.navigation_icon ? %(<i class="#{node.navigation_icon}"></i>).html_safe : ''
127
+ css_classes = ['nav-link']
128
+ css_classes.push("nav-level-#{level}") if level > 0
129
+ css_classes.push('active') if @action && current_action?(@action, model_param)
130
+ li = content_tag :li, data: {model: model_param} do
131
+ link_to nav_icon + " " + node.label_plural, url, class: css_classes.join(' ')
132
+ end
133
+ child_nodes = parent_groups[abstract_model.model_name]
134
+ child_nodes ? li + navigation(parent_groups, child_nodes, level + 1) : li
135
+ end.join.html_safe
136
+ end
137
+
138
+ def breadcrumb(action = @action, _acc = [])
139
+ begin
140
+ (parent_actions ||= []) << action
141
+ end while action.breadcrumb_parent && (action = action(*action.breadcrumb_parent)) # rubocop:disable Lint/Loop
142
+
143
+ content_tag(:ol, class: 'breadcrumb') do
144
+ parent_actions.collect do |a|
145
+ am = a.send(:eval, 'bindings[:abstract_model]')
146
+ o = a.send(:eval, 'bindings[:object]')
147
+ content_tag(:li, class: ['breadcrumb-item', current_action?(a, am, o) && 'active']) do
148
+ if current_action?(a, am, o)
149
+ wording_for(:breadcrumb, a, am, o)
150
+ elsif a.http_methods.include?(:get)
151
+ link_to rails_admin.url_for(action: a.action_name, controller: 'rails_admin/main', model_name: am.try(:to_param), id: (o.try(:persisted?) && o.try(:id) || nil)) do
152
+ wording_for(:breadcrumb, a, am, o)
153
+ end
154
+ else
155
+ content_tag(:span, wording_for(:breadcrumb, a, am, o))
156
+ end
157
+ end
158
+ end.reverse.join.html_safe
159
+ end
160
+ end
161
+
162
+ # parent => :root, :collection, :member
163
+ # perf matters here (no action view trickery)
164
+ def menu_for(parent, abstract_model = nil, object = nil, only_icon = false)
165
+ actions = actions(parent, abstract_model, object).select { |a| a.http_methods.include?(:get) && a.show_in_menu }
166
+ actions.collect do |action|
167
+ wording = wording_for(:menu, action)
168
+ li_class = ['nav-item', 'icon', "#{action.key}_#{parent}_link"].
169
+ concat(action.enabled? ? [] : ['disabled'])
170
+ content_tag(:li, {class: li_class}.merge(only_icon ? {title: wording, rel: 'tooltip'} : {})) do
171
+ label = content_tag(:i, '', {class: action.link_icon}) + ' ' + content_tag(:span, wording, (only_icon ? {style: 'display:none'} : {}))
172
+ if action.enabled? || !only_icon
173
+ href =
174
+ if action.enabled?
175
+ rails_admin.url_for(action: action.action_name, controller: 'rails_admin/main', model_name: abstract_model.try(:to_param), id: (object.try(:persisted?) && object.try(:id) || nil))
176
+ else
177
+ 'javascript:void(0)'
178
+ end
179
+ content_tag(:a, label, {href: href, target: action.link_target, class: ['nav-link', current_action?(action) && 'active', !action.enabled? && 'disabled'].compact}.merge(action.turbo? ? {} : {data: {turbo: 'false'}}))
180
+ else
181
+ content_tag(:span, label)
182
+ end
183
+ end
184
+ end.join(' ').html_safe
185
+ end
186
+
187
+ def bulk_menu(abstract_model = @abstract_model)
188
+ actions = actions(:bulkable, abstract_model)
189
+ return '' if actions.empty?
190
+
191
+ content_tag :li, class: 'nav-item dropdown dropdown-menu-end' do
192
+ content_tag(:a, class: 'nav-link dropdown-toggle', data: {'bs-toggle': 'dropdown'}, href: '#') { t('admin.misc.bulk_menu_title').html_safe + ' ' + '<b class="caret"></b>'.html_safe } +
193
+ content_tag(:ul, class: 'dropdown-menu', style: 'left:auto; right:0;') do
194
+ actions.collect do |action|
195
+ content_tag :li do
196
+ link_to wording_for(:bulk_link, action, abstract_model), '#', class: 'dropdown-item bulk-link', data: {action: action.action_name}
197
+ end
198
+ end.join.html_safe
199
+ end
200
+ end.html_safe
201
+ end
202
+
203
+ def flash_alert_class(flash_key)
204
+ case flash_key.to_s
205
+ when 'error' then 'alert-danger'
206
+ when 'alert' then 'alert-warning'
207
+ when 'notice' then 'alert-info'
208
+ else "alert-#{flash_key}"
209
+ end
210
+ end
211
+
212
+ def handle_asset_dependency_error
213
+ yield
214
+ rescue LoadError => e
215
+ if /sassc/.match?(e.message)
216
+ e = e.exception <<~MSG
217
+ #{e.message}
218
+ RailsAdmin requires the gem sassc-rails, make sure to put `gem 'sassc-rails'` to Gemfile.
219
+ MSG
220
+ end
221
+ raise e
222
+ end
223
+
224
+ # Workaround for https://github.com/rails/rails/issues/31325
225
+ def image_tag(source, options = {})
226
+ if %w[ActiveStorage::Variant ActiveStorage::VariantWithRecord ActiveStorage::Preview].include? source.class.to_s
227
+ super main_app.route_for(ActiveStorage.resolve_model_to_route, source), options
228
+ else
229
+ super
230
+ end
231
+ end
232
+
233
+ private
234
+
235
+ def edit_user_link_label
236
+ [
237
+ RailsAdmin::Config.show_gravatar &&
238
+ image_tag(gravatar_url(_current_user.email), alt: ''),
239
+
240
+ content_tag(:span, _current_user.email),
241
+ ].filter(&:present?).join.html_safe
242
+ end
243
+
244
+ def gravatar_url(email)
245
+ "https://secure.gravatar.com/avatar/#{Digest::MD5.hexdigest email}?s=30"
246
+ end
247
+
248
+ def collapsible_stack(label, class_prefix, li_stack)
249
+ return nil unless li_stack.present?
250
+
251
+ collapse_classname = "#{class_prefix}-#{Digest::MD5.hexdigest(label)[0..7]}"
252
+ content_tag(:li, class: 'mb-1') do
253
+ content_tag(:button, 'aria-expanded': true, class: 'btn btn-toggle align-items-center rounded', data: {bs_toggle: "collapse", bs_target: ".sidebar .#{collapse_classname}"}) do
254
+ content_tag(:i, '', class: 'fas fa-chevron-down') + html_escape(' ' + label)
255
+ end +
256
+ content_tag(:div, class: "collapse show #{collapse_classname}") do
257
+ content_tag(:ul, class: 'btn-toggle-nav list-unstyled fw-normal pb-1') do
258
+ li_stack
259
+ end
260
+ end
261
+ end
262
+ end
263
+ end
264
+ end
@@ -0,0 +1,157 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'nested_form/builder_mixin'
4
+
5
+ module RailsAdmin
6
+ class FormBuilder < ::ActionView::Helpers::FormBuilder
7
+ include ::NestedForm::BuilderMixin
8
+ include ::RailsAdmin::ApplicationHelper
9
+
10
+ def generate(options = {})
11
+ without_field_error_proc_added_div do
12
+ options.reverse_merge!(
13
+ action: @template.controller.params[:action],
14
+ model_config: @template.instance_variable_get(:@model_config),
15
+ nested_in: false,
16
+ )
17
+
18
+ object_infos +
19
+ visible_groups(options[:model_config], generator_action(options[:action], options[:nested_in])).collect do |fieldset|
20
+ fieldset_for fieldset, options[:nested_in]
21
+ end.join.html_safe +
22
+ (options[:nested_in] ? '' : @template.render(partial: 'rails_admin/main/submit_buttons'))
23
+ end
24
+ end
25
+
26
+ def fieldset_for(fieldset, nested_in)
27
+ fields = fieldset.with(
28
+ form: self,
29
+ object: @object,
30
+ view: @template,
31
+ controller: @template.controller,
32
+ ).visible_fields
33
+ return if fields.empty?
34
+
35
+ @template.content_tag :fieldset do
36
+ contents = []
37
+ contents << @template.content_tag(:legend, %(<i class="fas fa-chevron-#{fieldset.active? ? 'down' : 'right'}"></i> #{fieldset.label}).html_safe, style: fieldset.name == :default ? 'display:none' : '')
38
+ contents << @template.content_tag(:p, fieldset.help) if fieldset.help.present?
39
+ contents << fields.collect { |field| field_wrapper_for(field, nested_in) }.join
40
+ contents.join.html_safe
41
+ end
42
+ end
43
+
44
+ def field_wrapper_for(field, nested_in)
45
+ # do not show nested field if the target is the origin
46
+ return if nested_field_association?(field, nested_in)
47
+
48
+ @template.content_tag(:div, class: "control-group row mb-3 #{field.type_css_class} #{field.css_class} #{'error' if field.errors.present?}", id: "#{dom_id(field)}_field") do
49
+ if field.label
50
+ label(field.method_name, field.label, class: 'col-sm-2 col-form-label text-md-end') +
51
+ (field.nested_form ? field_for(field) : input_for(field))
52
+ else
53
+ field.nested_form ? field_for(field) : input_for(field)
54
+ end
55
+ end
56
+ end
57
+
58
+ def input_for(field)
59
+ css = 'col-sm-10 controls'
60
+ css += ' has-error' if field.errors.present?
61
+ @template.content_tag(:div, class: css) do
62
+ field_for(field) +
63
+ errors_for(field) +
64
+ help_for(field)
65
+ end
66
+ end
67
+
68
+ def errors_for(field)
69
+ field.errors.present? ? @template.content_tag(:span, field.errors.to_sentence, class: 'help-inline text-danger') : ''.html_safe
70
+ end
71
+
72
+ def help_for(field)
73
+ field.help.present? ? @template.content_tag(:div, field.help, class: 'form-text') : ''.html_safe
74
+ end
75
+
76
+ def field_for(field)
77
+ field.read_only? ? @template.content_tag(:div, field.pretty_value, class: 'form-control-static') : field.render
78
+ end
79
+
80
+ def object_infos
81
+ model_config = RailsAdmin.config(object)
82
+ model_label = model_config.label
83
+ object_label =
84
+ if object.new_record?
85
+ I18n.t('admin.form.new_model', name: model_label)
86
+ else
87
+ object.send(model_config.object_label_method).presence || "#{model_config.label} ##{object.id}"
88
+ end
89
+
90
+ %(<span style="display:none" class="object-infos" data-model-label="#{model_label}" data-object-label="#{CGI.escapeHTML(object_label.to_s)}"></span>).html_safe
91
+ end
92
+
93
+ def jquery_namespace(field)
94
+ %(#{'#modal ' if @template.controller.params[:modal]}##{dom_id(field)}_field)
95
+ end
96
+
97
+ def dom_id(field)
98
+ (@dom_id ||= {})[field.name] ||=
99
+ [
100
+ @object_name.to_s.gsub(/\]\[|[^-a-zA-Z0-9:.]/, '_').sub(/_$/, ''),
101
+ options[:index],
102
+ field.method_name,
103
+ ].reject(&:blank?).join('_')
104
+ end
105
+
106
+ def dom_name(field)
107
+ (@dom_name ||= {})[field.name] ||= %(#{@object_name}#{options[:index] && "[#{options[:index]}]"}[#{field.method_name}]#{field.is_a?(Config::Fields::Association) && field.multiple? ? '[]' : ''})
108
+ end
109
+
110
+ def hidden_field(method, options = {})
111
+ if method == :id && object.id.is_a?(Array)
112
+ super method, {value: RailsAdmin.config.composite_keys_serializer.serialize(object.id)}
113
+ else
114
+ super
115
+ end
116
+ end
117
+
118
+ protected
119
+
120
+ def generator_action(action, nested)
121
+ if nested
122
+ action = :nested
123
+ elsif @template.request.format == 'text/javascript'
124
+ action = :modal
125
+ end
126
+
127
+ action
128
+ end
129
+
130
+ def visible_groups(model_config, action)
131
+ model_config.send(action).with(
132
+ form: self,
133
+ object: @object,
134
+ view: @template,
135
+ controller: @template.controller,
136
+ ).visible_groups
137
+ end
138
+
139
+ def without_field_error_proc_added_div
140
+ default_field_error_proc = ::ActionView::Base.field_error_proc
141
+ begin
142
+ ::ActionView::Base.field_error_proc = proc { |html_tag, _instance| html_tag }
143
+ yield
144
+ ensure
145
+ ::ActionView::Base.field_error_proc = default_field_error_proc
146
+ end
147
+ end
148
+
149
+ private
150
+
151
+ def nested_field_association?(field, nested_in)
152
+ field.inverse_of.presence && nested_in.presence && field.inverse_of == nested_in.name &&
153
+ (@template.instance_variable_get(:@model_config).abstract_model == field.abstract_model ||
154
+ field.name == nested_in.inverse_of)
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module MainHelper
5
+ def rails_admin_form_for(*args, &block)
6
+ options = args.extract_options!.reverse_merge(builder: RailsAdmin::FormBuilder)
7
+ (options[:html] ||= {})[:novalidate] ||= !RailsAdmin::Config.browser_validations
8
+
9
+ form_for(*(args << options), &block) << after_nested_form_callbacks
10
+ end
11
+
12
+ def get_indicator(percent)
13
+ return '' if percent < 0 # none
14
+ return 'info' if percent < 34 # < 1/100 of max
15
+ return 'success' if percent < 67 # < 1/10 of max
16
+ return 'warning' if percent < 84 # < 1/3 of max
17
+
18
+ 'danger' # > 1/3 of max
19
+ end
20
+
21
+ def filterable_fields
22
+ @filterable_fields ||= @model_config.list.fields.select(&:filterable?)
23
+ end
24
+
25
+ def ordered_filters
26
+ return @ordered_filters if @ordered_filters.present?
27
+
28
+ @index = 0
29
+ @ordered_filters = (params[:f].try(:permit!).try(:to_h) || @model_config.list.filters).inject({}) do |memo, filter|
30
+ field_name = filter.is_a?(Array) ? filter.first : filter
31
+ (filter.is_a?(Array) ? filter.last : {(@index += 1) => {'v' => ''}}).each do |index, filter_hash|
32
+ if filter_hash['disabled'].blank?
33
+ memo[index] = {field_name => filter_hash}
34
+ else
35
+ params[:f].delete(field_name)
36
+ end
37
+ end
38
+ memo
39
+ end.to_a.sort_by(&:first)
40
+ end
41
+
42
+ def ordered_filter_options
43
+ if ordered_filters
44
+ @ordered_filter_options ||= ordered_filters.map do |duplet|
45
+ filter_for_field = duplet[1]
46
+ filter_name = filter_for_field.keys.first
47
+ filter_hash = filter_for_field.values.first
48
+ unless (field = filterable_fields.find { |f| f.name == filter_name.to_sym }&.with({view: self}))
49
+ raise "#{filter_name} is not currently filterable; filterable fields are #{filterable_fields.map(&:name).join(', ')}"
50
+ end
51
+
52
+ field.filter_options.merge(
53
+ index: duplet[0],
54
+ operator: filter_hash['o'] || field.default_filter_operator,
55
+ value: filter_hash['v'],
56
+ )
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,5 @@
1
+ <li class="page-item disabled">
2
+ <a href="#" class="page-link">
3
+ <%= raw(t 'admin.pagination.truncate') %>
4
+ </a>
5
+ </li>
@@ -0,0 +1,9 @@
1
+ <% if current_page.last? %>
2
+ <li class="page-item next disabled">
3
+ <%= link_to raw(t 'admin.pagination.next'), '#', class: 'page-link' %>
4
+ </li>
5
+ <% else %>
6
+ <li class="page-item next">
7
+ <%= link_to raw(t 'admin.pagination.next'), url, class: 'page-link' %>
8
+ </li>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% if page.current? %>
2
+ <li class="page-item active">
3
+ <%= link_to page, url, class: 'page-link' %>
4
+ </li>
5
+ <% else %>
6
+ <li class="page-item">
7
+ <%= link_to page, url, class: 'page-link' %>
8
+ </li>
9
+ <% end %>
@@ -0,0 +1,15 @@
1
+ <%= paginator.render do %>
2
+ <nav aria-label="Page navigation">
3
+ <ul class="pagination">
4
+ <%= prev_page_tag %>
5
+ <% each_page do |page| %>
6
+ <% if page.left_outer? or page.right_outer? or page.inside_window? %>
7
+ <%= page_tag page %>
8
+ <% elsif !page.was_truncated? %>
9
+ <%= gap_tag %>
10
+ <% end %>
11
+ <% end %>
12
+ <%= next_page_tag %>
13
+ </ul>
14
+ </nav>
15
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% if current_page.first? %>
2
+ <li class="page-item prev disabled">
3
+ <%= link_to raw(t 'admin.pagination.previous'), '#', class: 'page-link' %>
4
+ </li>
5
+ <% else %>
6
+ <li class="page-item prev">
7
+ <%= link_to raw(t 'admin.pagination.previous'), url, class: 'page-link' %>
8
+ </li>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% if current_page.last? %>
2
+ <li class="page-item next disabled">
3
+ <%= link_to raw(t 'admin.pagination.next'), '#', class: 'page-link' %>
4
+ </li>
5
+ <% else %>
6
+ <li class="page-item next">
7
+ <%= link_to raw(t 'admin.pagination.next'), url, class: 'page-link' %>
8
+ </li>
9
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= paginator.render do %>
2
+ <nav aria-label="Page navigation">
3
+ <ul class="pagination">
4
+ <%= prev_page_tag if !current_page.first? %>
5
+ <%= next_page_tag %>
6
+ </ul>
7
+ </nav>
8
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% if current_page.first? %>
2
+ <li class="page-item prev disabled">
3
+ <%= link_to raw(t 'admin.pagination.previous'), '#', class: 'page-link' %>
4
+ </li>
5
+ <% else %>
6
+ <li class="page-item prev">
7
+ <%= link_to raw(t 'admin.pagination.previous'), url, class: 'page-link' %>
8
+ </li>
9
+ <% end %>
@@ -0,0 +1,32 @@
1
+ <meta content="IE=edge" http-equiv="X-UA-Compatible">
2
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
3
+ <meta content="width=device-width, initial-scale=1" name="viewport; charset=utf-8">
4
+ <meta content="NONE,NOARCHIVE" name="robots">
5
+ <meta content="false" name="turbo-prefetch">
6
+ <%= csrf_meta_tag %>
7
+ <% case RailsAdmin::config.asset_source
8
+ when :webpacker %>
9
+ <%= stylesheet_pack_tag "rails_admin", data: {'turbo-track': 'reload'} %>
10
+ <%= javascript_pack_tag "rails_admin", defer: true, data: {'turbo-track': 'reload'} %>
11
+ <% when :sprockets %>
12
+ <% handle_asset_dependency_error do %>
13
+ <%= stylesheet_link_tag "rails_admin/application.css", media: :all, data: {'turbo-track': 'reload'} %>
14
+ <%= javascript_include_tag "rails_admin/application.js", defer: true, data: {'turbo-track': 'reload'} %>
15
+ <% end %>
16
+ <% when :vite %>
17
+ <%= vite_javascript_tag "rails_admin", defer: true, data: {'turbo-track': 'reload'} %>
18
+ <% when :webpack %>
19
+ <%= stylesheet_link_tag "rails_admin.css", media: :all, data: {'turbo-track': 'reload'} %>
20
+ <%= javascript_include_tag "rails_admin.js", defer: true, data: {'turbo-track': 'reload'} %>
21
+ <% when :importmap %>
22
+ <%= stylesheet_link_tag "rails_admin.css", media: :all, data: {'turbo-track': 'reload'} %>
23
+ <%= javascript_inline_importmap_tag(RailsAdmin::Engine.importmap.to_json(resolver: self)) %>
24
+ <%= javascript_importmap_module_preload_tags(RailsAdmin::Engine.importmap) %>
25
+ <%= javascript_importmap_shim_nonce_configuration_tag if respond_to? :javascript_importmap_shim_nonce_configuration_tag %>
26
+ <%= javascript_importmap_shim_tag if respond_to? :javascript_importmap_shim_tag %>
27
+ <%= # Preload jQuery and make it global, unless jQuery UI fails to initialize
28
+ tag.script "import jQuery from 'jquery'; window.jQuery = jQuery;".html_safe, type: "module" %>
29
+ <%= javascript_import_module_tag 'rails_admin' %>
30
+ <% else
31
+ raise "Unknown asset_source: #{RailsAdmin::config.asset_source}"
32
+ end %>
@@ -0,0 +1,17 @@
1
+ <div class="container-fluid">
2
+ <a class="navbar-brand" href="<%= dashboard_path %>">
3
+ <%= _get_plugin_name[0] || 'Rails' %>
4
+ <small>
5
+ <%= _get_plugin_name[1] || 'Admin' %>
6
+ </small>
7
+ </a>
8
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#secondary-navigation">
9
+ <span class="sr-only">
10
+ <%= t('admin.toggle_navigation') %>
11
+ </span>
12
+ <span class="navbar-toggler-icon"></span>
13
+ </button>
14
+ <div class="collapse navbar-collapse" id="secondary-navigation">
15
+ <%= render partial: 'layouts/rails_admin/secondary_navigation' %>
16
+ </div>
17
+ </div>
@@ -0,0 +1,26 @@
1
+ <ul class="navbar-nav ms-auto root_links">
2
+ <% actions(:root).select(&:show_in_navigation).each do |action| %>
3
+ <li class="nav-item <%= action.action_name %>_root_link">
4
+ <%= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, {class: ['nav-link']}.merge(action.turbo? ? {} : {data: {turbo: 'false'}}) %>
5
+ </li>
6
+ <% end %>
7
+ <% if main_app_root_path = (main_app.root_path rescue false) %>
8
+ <li class="nav-item">
9
+ <%= link_to t('admin.home.name'), main_app_root_path, class: 'nav-link' %>
10
+ </li>
11
+ <% end %>
12
+ <% if _current_user %>
13
+ <% if user_link = edit_user_link %>
14
+ <li class="nav-item edit_user_root_link">
15
+ <%= user_link %>
16
+ </li>
17
+ <% end %>
18
+ <% if logout_path.present? %>
19
+ <li class="nav-item">
20
+ <%= link_to logout_path, method: logout_method, class: 'nav-link', data: {turbo: 'false'} do %>
21
+ <span class="badge bg-danger"><%= t('admin.misc.log_out') %></span>
22
+ <% end %>
23
+ </li>
24
+ <% end %>
25
+ <% end %>
26
+ </ul>
@@ -0,0 +1,5 @@
1
+ <ul class="sidebar col-sm-3 col-md-2 nav btn-toggle-nav flex-column flex-nowrap bg-light">
2
+ <%= main_navigation %>
3
+ <%= root_navigation %>
4
+ <%= static_navigation %>
5
+ </ul>