rails_admin 2.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (522) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +12 -11
  3. data/README.md +42 -43
  4. data/Rakefile +15 -2
  5. data/app/assets/javascripts/rails_admin/application.js.erb +29 -0
  6. data/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
  7. data/app/assets/stylesheets/rails_admin/custom/mixins.scss +1 -1
  8. data/app/assets/stylesheets/rails_admin/custom/variables.scss +1 -1
  9. data/app/controllers/rails_admin/application_controller.rb +6 -3
  10. data/app/controllers/rails_admin/main_controller.rb +55 -50
  11. data/app/helpers/rails_admin/application_helper.rb +129 -63
  12. data/app/helpers/rails_admin/form_builder.rb +19 -6
  13. data/app/helpers/rails_admin/main_helper.rb +18 -42
  14. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
  15. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
  16. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
  17. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
  18. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
  19. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
  20. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
  21. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
  22. data/app/views/layouts/rails_admin/_head.html.erb +29 -0
  23. data/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  24. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
  25. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  26. data/app/views/layouts/rails_admin/application.html.erb +27 -0
  27. data/app/views/layouts/rails_admin/content.html.erb +22 -0
  28. data/app/views/layouts/rails_admin/modal.js.erb +7 -0
  29. data/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
  30. data/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
  31. data/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
  32. data/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
  33. data/app/views/rails_admin/main/{_form_ck_editor.html.haml → _form_ck_editor.html.erb} +3 -3
  34. data/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
  35. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
  36. data/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
  37. data/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
  38. data/app/views/rails_admin/main/_form_field.html.erb +1 -0
  39. data/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
  40. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +49 -0
  41. data/app/views/rails_admin/main/_form_filtering_select.html.erb +33 -0
  42. data/app/views/rails_admin/main/_form_froala.html.erb +8 -0
  43. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
  44. data/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
  45. data/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
  46. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +32 -0
  47. data/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
  48. data/app/views/rails_admin/main/_form_text.html.erb +1 -0
  49. data/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
  50. data/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
  51. data/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
  52. data/app/views/rails_admin/main/dashboard.html.erb +64 -0
  53. data/app/views/rails_admin/main/delete.html.erb +21 -0
  54. data/app/views/rails_admin/main/edit.html.erb +3 -0
  55. data/app/views/rails_admin/main/export.html.erb +149 -0
  56. data/app/views/rails_admin/main/history.html.erb +80 -0
  57. data/app/views/rails_admin/main/index.html.erb +184 -0
  58. data/app/views/rails_admin/main/new.html.erb +3 -0
  59. data/app/views/rails_admin/main/show.html.erb +30 -0
  60. data/config/initializers/active_record_extensions.rb +25 -0
  61. data/config/initializers/mongoid_extensions.rb +3 -1
  62. data/config/locales/rails_admin.en.yml +8 -3
  63. data/config/routes.rb +2 -0
  64. data/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  65. data/lib/generators/rails_admin/install_generator.rb +117 -5
  66. data/lib/generators/rails_admin/templates/initializer.erb +2 -1
  67. data/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  68. data/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  69. data/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  70. data/lib/generators/rails_admin/utils.rb +2 -0
  71. data/lib/rails_admin/abstract_model.rb +35 -15
  72. data/lib/rails_admin/adapters/active_record/association.rb +31 -2
  73. data/lib/rails_admin/adapters/active_record/object_extension.rb +31 -0
  74. data/lib/rails_admin/adapters/active_record/property.rb +4 -2
  75. data/lib/rails_admin/adapters/active_record.rb +60 -28
  76. data/lib/rails_admin/adapters/composite_primary_keys/association.rb +45 -0
  77. data/lib/rails_admin/adapters/composite_primary_keys.rb +40 -0
  78. data/lib/rails_admin/adapters/mongoid/association.rb +52 -13
  79. data/lib/rails_admin/adapters/mongoid/bson.rb +6 -5
  80. data/lib/rails_admin/adapters/mongoid/extension.rb +2 -0
  81. data/lib/rails_admin/adapters/mongoid/object_extension.rb +34 -0
  82. data/lib/rails_admin/adapters/mongoid/property.rb +7 -5
  83. data/lib/rails_admin/adapters/mongoid.rb +33 -23
  84. data/lib/rails_admin/config/actions/base.rb +11 -4
  85. data/lib/rails_admin/config/actions/bulk_delete.rb +4 -2
  86. data/lib/rails_admin/config/actions/dashboard.rb +16 -9
  87. data/lib/rails_admin/config/actions/delete.rb +11 -9
  88. data/lib/rails_admin/config/actions/edit.rb +13 -7
  89. data/lib/rails_admin/config/actions/export.rb +6 -3
  90. data/lib/rails_admin/config/actions/history_index.rb +4 -2
  91. data/lib/rails_admin/config/actions/history_show.rb +4 -2
  92. data/lib/rails_admin/config/actions/index.rb +9 -8
  93. data/lib/rails_admin/config/actions/new.rb +18 -10
  94. data/lib/rails_admin/config/actions/show.rb +3 -1
  95. data/lib/rails_admin/config/actions/show_in_app.rb +9 -3
  96. data/lib/rails_admin/config/actions.rb +6 -4
  97. data/lib/rails_admin/config/configurable.rb +4 -2
  98. data/lib/rails_admin/config/const_load_suppressor.rb +78 -0
  99. data/lib/rails_admin/config/fields/association.rb +21 -11
  100. data/lib/rails_admin/config/fields/base.rb +86 -36
  101. data/lib/rails_admin/config/fields/factories/action_text.rb +2 -0
  102. data/lib/rails_admin/config/fields/factories/active_storage.rb +5 -1
  103. data/lib/rails_admin/config/fields/factories/association.rb +12 -13
  104. data/lib/rails_admin/config/fields/factories/carrierwave.rb +6 -2
  105. data/lib/rails_admin/config/fields/factories/devise.rb +6 -2
  106. data/lib/rails_admin/config/fields/factories/dragonfly.rb +6 -2
  107. data/lib/rails_admin/config/fields/factories/enum.rb +2 -0
  108. data/lib/rails_admin/config/fields/factories/paperclip.rb +6 -2
  109. data/lib/rails_admin/config/fields/factories/password.rb +2 -0
  110. data/lib/rails_admin/config/fields/factories/shrine.rb +3 -1
  111. data/lib/rails_admin/config/fields/group.rb +3 -2
  112. data/lib/rails_admin/config/fields/types/action_text.rb +7 -1
  113. data/lib/rails_admin/config/fields/types/active_record_enum.rb +4 -0
  114. data/lib/rails_admin/config/fields/types/active_storage.rb +23 -7
  115. data/lib/rails_admin/config/fields/types/all.rb +4 -0
  116. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +9 -15
  117. data/lib/rails_admin/config/fields/types/boolean.rb +38 -8
  118. data/lib/rails_admin/config/fields/types/bson_object_id.rb +2 -0
  119. data/lib/rails_admin/config/fields/types/carrierwave.rb +3 -0
  120. data/lib/rails_admin/config/fields/types/citext.rb +15 -0
  121. data/lib/rails_admin/config/fields/types/ck_editor.rb +2 -0
  122. data/lib/rails_admin/config/fields/types/code_mirror.rb +2 -0
  123. data/lib/rails_admin/config/fields/types/color.rb +8 -2
  124. data/lib/rails_admin/config/fields/types/composite_keys_belongs_to_association.rb +31 -0
  125. data/lib/rails_admin/config/fields/types/date.rb +12 -6
  126. data/lib/rails_admin/config/fields/types/datetime.rb +36 -21
  127. data/lib/rails_admin/config/fields/types/decimal.rb +11 -2
  128. data/lib/rails_admin/config/fields/types/dragonfly.rb +5 -1
  129. data/lib/rails_admin/config/fields/types/enum.rb +16 -3
  130. data/lib/rails_admin/config/fields/types/file_upload.rb +6 -3
  131. data/lib/rails_admin/config/fields/types/float.rb +11 -2
  132. data/lib/rails_admin/config/fields/types/froala.rb +2 -0
  133. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +2 -0
  134. data/lib/rails_admin/config/fields/types/has_many_association.rb +7 -5
  135. data/lib/rails_admin/config/fields/types/has_one_association.rb +12 -14
  136. data/lib/rails_admin/config/fields/types/hidden.rb +2 -0
  137. data/lib/rails_admin/config/fields/types/inet.rb +2 -0
  138. data/lib/rails_admin/config/fields/types/integer.rb +4 -6
  139. data/lib/rails_admin/config/fields/types/json.rb +2 -0
  140. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +30 -6
  141. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +3 -0
  142. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +6 -3
  143. data/lib/rails_admin/config/fields/types/numeric.rb +24 -0
  144. data/lib/rails_admin/config/fields/types/paperclip.rb +2 -0
  145. data/lib/rails_admin/config/fields/types/password.rb +2 -0
  146. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +5 -2
  147. data/lib/rails_admin/config/fields/types/serialized.rb +2 -0
  148. data/lib/rails_admin/config/fields/types/shrine.rb +2 -0
  149. data/lib/rails_admin/config/fields/types/simple_mde.rb +2 -0
  150. data/lib/rails_admin/config/fields/types/string.rb +3 -1
  151. data/lib/rails_admin/config/fields/types/string_like.rb +6 -0
  152. data/lib/rails_admin/config/fields/types/text.rb +2 -0
  153. data/lib/rails_admin/config/fields/types/time.rb +16 -4
  154. data/lib/rails_admin/config/fields/types/timestamp.rb +2 -4
  155. data/lib/rails_admin/config/fields/types/uuid.rb +2 -0
  156. data/lib/rails_admin/config/fields/types/wysihtml5.rb +2 -0
  157. data/lib/rails_admin/config/fields/types.rb +3 -1
  158. data/lib/rails_admin/config/fields.rb +6 -2
  159. data/lib/rails_admin/config/groupable.rb +2 -0
  160. data/lib/rails_admin/config/has_description.rb +2 -0
  161. data/lib/rails_admin/config/has_fields.rb +12 -7
  162. data/lib/rails_admin/config/has_groups.rb +2 -0
  163. data/lib/rails_admin/config/hideable.rb +3 -1
  164. data/lib/rails_admin/config/inspectable.rb +3 -3
  165. data/lib/rails_admin/config/lazy_model.rb +13 -7
  166. data/lib/rails_admin/config/model.rb +22 -10
  167. data/lib/rails_admin/config/proxyable/proxy.rb +2 -0
  168. data/lib/rails_admin/config/proxyable.rb +2 -0
  169. data/lib/rails_admin/config/sections/base.rb +4 -3
  170. data/lib/rails_admin/config/sections/create.rb +2 -0
  171. data/lib/rails_admin/config/sections/edit.rb +2 -0
  172. data/lib/rails_admin/config/sections/export.rb +2 -0
  173. data/lib/rails_admin/config/sections/list.rb +14 -19
  174. data/lib/rails_admin/config/sections/modal.rb +2 -0
  175. data/lib/rails_admin/config/sections/nested.rb +2 -0
  176. data/lib/rails_admin/config/sections/show.rb +2 -0
  177. data/lib/rails_admin/config/sections/update.rb +2 -0
  178. data/lib/rails_admin/config/sections.rb +3 -1
  179. data/lib/rails_admin/config.rb +81 -44
  180. data/lib/rails_admin/engine.rb +43 -32
  181. data/lib/rails_admin/extension.rb +8 -14
  182. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +25 -6
  183. data/lib/rails_admin/extensions/cancancan.rb +2 -0
  184. data/lib/rails_admin/extensions/controller_extension.rb +2 -0
  185. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +62 -35
  186. data/lib/rails_admin/extensions/paper_trail.rb +2 -0
  187. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +8 -7
  188. data/lib/rails_admin/extensions/pundit.rb +2 -0
  189. data/lib/rails_admin/support/csv_converter.rb +14 -15
  190. data/lib/rails_admin/support/datetime.rb +50 -85
  191. data/lib/rails_admin/support/es_module_processor.rb +23 -0
  192. data/lib/rails_admin/support/hash_helper.rb +8 -5
  193. data/lib/rails_admin/version.rb +41 -2
  194. data/lib/rails_admin.rb +7 -5
  195. data/lib/tasks/rails_admin.rake +5 -3
  196. data/package.json +30 -0
  197. data/src/rails_admin/base.js +29 -0
  198. data/src/rails_admin/filter-box.js +360 -0
  199. data/src/rails_admin/filtering-multiselect.js +389 -0
  200. data/src/rails_admin/filtering-select.js +308 -0
  201. data/src/rails_admin/i18n.js +18 -0
  202. data/src/rails_admin/jquery.js +3 -0
  203. data/src/rails_admin/nested-form-hooks.js +110 -0
  204. data/src/rails_admin/remote-form.js +193 -0
  205. data/src/rails_admin/sidescroll.js +20 -0
  206. data/src/rails_admin/styles/base/theming.scss +342 -0
  207. data/src/rails_admin/styles/base/variables.scss +3 -0
  208. data/src/rails_admin/styles/base.scss +27 -0
  209. data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  210. data/src/rails_admin/styles/filtering-select.scss +70 -0
  211. data/src/rails_admin/styles/widgets.scss +26 -0
  212. data/src/rails_admin/ui.js +176 -0
  213. data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  214. data/src/rails_admin/widgets.js +507 -0
  215. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  216. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  217. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  218. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
  219. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  220. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  221. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  222. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  223. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  224. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  225. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  226. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  227. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  228. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  229. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  230. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  231. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  232. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  233. data/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
  234. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  251. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  252. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  253. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  254. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  255. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  256. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  257. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  258. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  259. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  260. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  261. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  262. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  263. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  264. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  265. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  266. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  267. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  268. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  269. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  270. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  271. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  272. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  273. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  274. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  275. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  276. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  277. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  278. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  279. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  280. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  281. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  282. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  283. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  284. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  285. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  286. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  287. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  288. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  289. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  290. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  291. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  292. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  293. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  294. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  295. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  296. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  297. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  298. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  299. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  300. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  301. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  302. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  303. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  304. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  305. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  306. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  307. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  308. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  309. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  310. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  311. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  312. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  313. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  314. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  315. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  316. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  317. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  318. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +6291 -2282
  319. metadata +182 -330
  320. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  321. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  322. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  323. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  324. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  325. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  326. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  327. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  328. data/app/assets/images/rails_admin/calendar.png +0 -0
  329. data/app/assets/images/rails_admin/clock.png +0 -0
  330. data/app/assets/images/rails_admin/logo.png +0 -0
  331. data/app/assets/images/rails_admin/magnifier.png +0 -0
  332. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  333. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  334. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  335. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  336. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  337. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  338. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -248
  339. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  340. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
  341. data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
  342. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
  343. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  344. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
  345. data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
  346. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -20
  347. data/app/assets/javascripts/rails_admin/ui.js +0 -135
  348. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  349. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  350. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  351. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  352. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  353. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  354. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  355. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  356. data/app/assets/stylesheets/rails_admin/base/theming.scss +0 -341
  357. data/app/assets/stylesheets/rails_admin/base/variables.scss +0 -1
  358. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  359. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
  360. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
  361. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
  362. data/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.scss +0 -0
  363. data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.scss +0 -133
  364. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  365. data/app/assets/stylesheets/rails_admin/themes/default/mixins.scss +0 -8
  366. data/app/assets/stylesheets/rails_admin/themes/default/theming.scss +0 -11
  367. data/app/assets/stylesheets/rails_admin/themes/default/variables.scss +0 -12
  368. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  369. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  370. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  371. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  372. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  373. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  374. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  375. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  376. data/app/views/layouts/rails_admin/_head.html.haml +0 -7
  377. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  378. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  379. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
  380. data/app/views/layouts/rails_admin/application.html.haml +0 -16
  381. data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
  382. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  383. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  384. data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
  385. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  386. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  387. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  388. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  389. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -19
  390. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  391. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  392. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +0 -49
  393. data/app/views/rails_admin/main/_form_filtering_select.html.haml +0 -37
  394. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  395. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
  396. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  397. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  398. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
  399. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  400. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  401. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  402. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  403. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  404. data/app/views/rails_admin/main/dashboard.html.haml +0 -34
  405. data/app/views/rails_admin/main/delete.html.haml +0 -18
  406. data/app/views/rails_admin/main/edit.html.haml +0 -2
  407. data/app/views/rails_admin/main/export.html.haml +0 -92
  408. data/app/views/rails_admin/main/history.html.haml +0 -51
  409. data/app/views/rails_admin/main/index.html.haml +0 -126
  410. data/app/views/rails_admin/main/new.html.haml +0 -2
  411. data/app/views/rails_admin/main/show.html.haml +0 -15
  412. data/config/initializers/devise_patch.rb +0 -9
  413. data/config/initializers/haml.rb +0 -5
  414. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -38
  415. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  416. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  417. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
  418. data/lib/rails_admin/bootstrap-sass.rb +0 -49
  419. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  420. data/lib/rails_admin/extensions/history/history.rb +0 -44
  421. data/lib/rails_admin/extensions/history.rb +0 -3
  422. data/lib/rails_admin/support/i18n.rb +0 -43
  423. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  424. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  425. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
  426. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  427. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  428. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  429. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings-white.png +0 -0
  430. data/vendor/assets/images/rails_admin/bootstrap/glyphicons-halflings.png +0 -0
  431. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  432. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  433. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  434. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  435. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  436. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  437. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  438. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  439. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  440. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  441. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  442. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  443. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  444. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  445. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  446. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  447. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  448. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  449. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  450. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  451. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  452. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  453. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  454. data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
  455. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  456. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -142
  457. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -92
  458. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -110
  459. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -223
  460. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -170
  461. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -151
  462. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -280
  463. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -113
  464. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -170
  465. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -128
  466. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -457
  467. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  468. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  469. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  470. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2444
  471. data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  472. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -741
  473. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -16165
  474. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  475. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  476. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  477. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  478. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  479. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  480. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  481. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  482. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  483. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  484. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  485. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  486. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  487. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  488. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  489. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  490. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  491. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  492. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  493. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  494. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  495. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  496. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  497. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  498. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  499. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  500. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  501. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  502. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  503. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  504. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  505. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  506. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  507. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  508. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  509. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  510. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  511. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  512. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  513. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  514. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  515. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  516. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  517. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  518. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  519. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
  520. data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
  521. /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
  522. /data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
@@ -0,0 +1,18 @@
1
+ var I18n = {
2
+ locale: null,
3
+ translations: null,
4
+ init(locale, translations) {
5
+ this.locale = locale;
6
+ this.translations = translations;
7
+ if (typeof this.translations === "string") {
8
+ this.translations = JSON.parse(this.translations);
9
+ }
10
+ },
11
+ t(key) {
12
+ var humanize;
13
+ humanize = key.charAt(0).toUpperCase() + key.replace(/_/g, " ").slice(1);
14
+ return this.translations[key] || humanize;
15
+ },
16
+ };
17
+
18
+ export { I18n as default };
@@ -0,0 +1,3 @@
1
+ import jQuery from "jquery";
2
+
3
+ window.$ = window.jQuery = jQuery;
@@ -0,0 +1,110 @@
1
+ import jQuery from "jquery";
2
+ import * as bootstrap from "bootstrap";
3
+
4
+ (function ($) {
5
+ $(document).ready(function () {
6
+ return (window.nestedFormEvents.insertFields = function (
7
+ content,
8
+ assoc,
9
+ link
10
+ ) {
11
+ var tab_content;
12
+ tab_content = $(link).closest(".controls").siblings(".tab-content");
13
+ tab_content.append(content);
14
+ return tab_content.children().last();
15
+ });
16
+ });
17
+
18
+ $(document).on("nested:fieldAdded", "form", function (content) {
19
+ var controls, field, nav, new_tab, one_to_one, parent_group, toggler;
20
+ field = content.field
21
+ .addClass("tab-pane")
22
+ .attr("id", "unique-id-" + new Date().getTime());
23
+ new_tab = $("<li></li>")
24
+ .append(
25
+ $("<a></a>")
26
+ .addClass("nav-link")
27
+ .attr("data-bs-toggle", "tab")
28
+ .attr("href", "#" + field.attr("id"))
29
+ .text(field.children(".object-infos").data("object-label"))
30
+ )
31
+ .addClass("nav-item");
32
+ parent_group = field.closest(".control-group");
33
+ controls = parent_group.children(".controls");
34
+ one_to_one = controls.data("nestedone") !== void 0;
35
+ nav = controls.children(".nav");
36
+ content = parent_group.children(".tab-content");
37
+ toggler = controls.find(".toggler");
38
+ nav.append(new_tab);
39
+
40
+ const event = new CustomEvent("rails_admin.dom_ready", { detail: field });
41
+ document.dispatchEvent(event);
42
+
43
+ new_tab.children("a").each(function (index, element) {
44
+ bootstrap.Tab.getOrCreateInstance(element).show();
45
+ });
46
+ if (!one_to_one) {
47
+ new bootstrap.Collapse(nav[0], { toggle: false }).show();
48
+ }
49
+ new bootstrap.Collapse(content[0], { toggle: false }).show();
50
+ toggler
51
+ .addClass("active")
52
+ .removeClass("disabled")
53
+ .children("i")
54
+ .addClass("fa-chevron-down")
55
+ .removeClass("fa-chevron-right");
56
+ if (one_to_one) {
57
+ controls
58
+ .find(".add_nested_fields")
59
+ .removeClass("add_nested_fields")
60
+ .text(field.children(".object-infos").data("object-label"));
61
+ }
62
+ });
63
+
64
+ $(document).on("nested:fieldRemoved", "form", function (content) {
65
+ var add_button,
66
+ controls,
67
+ current_li,
68
+ field,
69
+ nav,
70
+ one_to_one,
71
+ parent_group,
72
+ toggler;
73
+ field = content.field;
74
+ nav = field
75
+ .closest(".control-group")
76
+ .children(".controls")
77
+ .children(".nav");
78
+ current_li = nav.children("li").has('a[href="#' + field.attr("id") + '"]');
79
+ parent_group = field.closest(".control-group");
80
+ controls = parent_group.children(".controls");
81
+ one_to_one = controls.data("nestedone") !== void 0;
82
+ toggler = controls.find(".toggler");
83
+ (current_li.next().length ? current_li.next() : current_li.prev())
84
+ .children("a:first")
85
+ .each(function (index, element) {
86
+ bootstrap.Tab.getOrCreateInstance(element).show();
87
+ });
88
+ current_li.remove();
89
+ if (nav.children().length === 0) {
90
+ new bootstrap.Collapse(controls.siblings(".tab-content")[0], {
91
+ toggle: false,
92
+ }).hide();
93
+ toggler
94
+ .removeClass("active")
95
+ .addClass("disabled")
96
+ .children("i")
97
+ .removeClass("fa-chevron-down")
98
+ .addClass("fa-chevron-right");
99
+ }
100
+ if (one_to_one) {
101
+ add_button = toggler.next();
102
+ add_button
103
+ .addClass("add_nested_fields")
104
+ .html(add_button.data("add-label"));
105
+ }
106
+ field.find("[required]").each(function () {
107
+ $(this).prop("required", false);
108
+ });
109
+ });
110
+ })(jQuery);
@@ -0,0 +1,193 @@
1
+ import Rails from "@rails/ujs";
2
+ import jQuery from "jquery";
3
+ import "jquery-ui/ui/widget.js";
4
+ import * as bootstrap from "bootstrap";
5
+
6
+ (function ($) {
7
+ $.widget("ra.remoteForm", {
8
+ _create: function () {
9
+ var widget = this;
10
+ var dom_widget = widget.element;
11
+
12
+ var edit_url =
13
+ dom_widget.find("select").first().data("options") &&
14
+ dom_widget.find("select").first().data("options")["edit-url"];
15
+ if (typeof edit_url != "undefined" && edit_url.length) {
16
+ dom_widget.on(
17
+ "dblclick",
18
+ ".ra-multiselect option:not(:disabled)",
19
+ function (e) {
20
+ widget._bindModalOpening(e, edit_url.replace("__ID__", this.value));
21
+ }
22
+ );
23
+ }
24
+
25
+ dom_widget
26
+ .find(".create")
27
+ .unbind()
28
+ .bind("click", function (e) {
29
+ widget._bindModalOpening(e, $(this).data("link"));
30
+ });
31
+
32
+ dom_widget
33
+ .find(".update")
34
+ .unbind()
35
+ .bind("click", function (e) {
36
+ var value = dom_widget.find("select").val();
37
+ if (value) {
38
+ widget._bindModalOpening(
39
+ e,
40
+ $(this).data("link").replace("__ID__", value)
41
+ );
42
+ } else {
43
+ e.preventDefault();
44
+ }
45
+ });
46
+ },
47
+
48
+ _bindModalOpening: function (e, url) {
49
+ e.preventDefault();
50
+ var widget = this;
51
+ if ($("#modal").length) return false;
52
+
53
+ var dialog = this._getModal();
54
+
55
+ setTimeout(function () {
56
+ // fix race condition with modal insertion in the dom (Chrome => Team/add a new fan => #modal not found when it should have). Somehow .on('show') is too early, tried it too.
57
+ $.ajax({
58
+ url: url,
59
+ beforeSend: function (xhr) {
60
+ xhr.setRequestHeader("Accept", "text/javascript");
61
+ },
62
+ success: function (data, status, xhr) {
63
+ dialog.find(".modal-body").html(data);
64
+ widget._bindFormEvents();
65
+ },
66
+ error: function (xhr, status, error) {
67
+ dialog.find(".modal-body").html(xhr.responseText);
68
+ },
69
+ dataType: "text",
70
+ });
71
+ }, 200);
72
+ },
73
+
74
+ _bindFormEvents: function () {
75
+ var widget = this,
76
+ dialog = this._getModal(),
77
+ form = dialog.find("form"),
78
+ saveButtonText = dialog.find(":submit[name=_save]").html(),
79
+ cancelButtonText = dialog.find(":submit[name=_continue]").html();
80
+ dialog.find(".form-actions").remove();
81
+
82
+ form.attr("data-remote", true).attr("data-type", "json");
83
+ dialog.find(".modal-header-title").text(form.data("title"));
84
+ dialog
85
+ .find(".cancel-action")
86
+ .unbind()
87
+ .click(function () {
88
+ dialog.each(function (index, element) {
89
+ bootstrap.Modal.getInstance(element).hide();
90
+ });
91
+ return false;
92
+ })
93
+ .html(cancelButtonText);
94
+
95
+ dialog
96
+ .find(".save-action")
97
+ .unbind()
98
+ .click(function () {
99
+ Rails.fire(form[0], "submit");
100
+ return false;
101
+ })
102
+ .html(saveButtonText);
103
+
104
+ const event = new CustomEvent("rails_admin.dom_ready", { detail: form });
105
+ document.dispatchEvent(event);
106
+
107
+ form.bind("ajax:complete", function (event) {
108
+ var data = event.detail[0];
109
+ if (data.status == 200) {
110
+ var json = $.parseJSON(data.responseText);
111
+ var option =
112
+ '<option value="' +
113
+ json.id +
114
+ '" selected>' +
115
+ json.label +
116
+ "</option>";
117
+ var select = widget.element.find("select").filter(":hidden");
118
+
119
+ if (widget.element.find(".filtering-select").length) {
120
+ // select input
121
+ var input = widget.element
122
+ .find(".filtering-select")
123
+ .children(".ra-filtering-select-input");
124
+ input.val(json.label);
125
+ if (!select.find("option[value=" + json.id + "]").length) {
126
+ // not a replace
127
+ select.html(option).val(json.id);
128
+ widget.element.find(".update").removeClass("disabled");
129
+ }
130
+ } else {
131
+ // multi-select input
132
+ var multiselect = widget.element.find(".ra-multiselect");
133
+ if (multiselect.find("option[value=" + json.id + "]").length) {
134
+ // replace
135
+ select.find("option[value=" + json.id + "]").text(json.label);
136
+ multiselect
137
+ .find("option[value= " + json.id + "]")
138
+ .text(json.label);
139
+ } else {
140
+ // add
141
+ select.append(option);
142
+ multiselect
143
+ .find("select.ra-multiselect-selection")
144
+ .append(option);
145
+ }
146
+ }
147
+ widget._trigger("success");
148
+ dialog.each(function (index, element) {
149
+ bootstrap.Modal.getInstance(element).hide();
150
+ });
151
+ } else {
152
+ dialog.find(".modal-body").html(data.responseText);
153
+ widget._bindFormEvents();
154
+ }
155
+ });
156
+ },
157
+
158
+ _getModal: function () {
159
+ var widget = this;
160
+ if (!widget.dialog) {
161
+ widget.dialog = $(
162
+ '<div id="modal" class="modal fade">\
163
+ <div class="modal-dialog modal-lg">\
164
+ <div class="modal-content">\
165
+ <div class="modal-header">\
166
+ <h3 class="modal-header-title">...</h3>\
167
+ <button type="button" class="btn-close" data-bs-dismiss="modal"></button>\
168
+ </div>\
169
+ <div class="modal-body">\
170
+ ...\
171
+ </div>\
172
+ <div class="modal-footer">\
173
+ <a href="#" class="btn cancel-action">...</a>\
174
+ <a href="#" class="btn btn-primary save-action">...</a>\
175
+ </div>\
176
+ </div>\
177
+ </div>\
178
+ </div>'
179
+ ).on("hidden.bs.modal", function () {
180
+ widget.dialog.remove(); // We don't want to reuse closed modals
181
+ widget.dialog = null;
182
+ });
183
+ new bootstrap.Modal(widget.dialog[0], {
184
+ keyboard: true,
185
+ backdrop: true,
186
+ focus: false,
187
+ show: true,
188
+ }).show();
189
+ }
190
+ return this.dialog;
191
+ },
192
+ });
193
+ })(jQuery);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ {
4
+ document.addEventListener("rails_admin.dom_ready", () => {
5
+ const scroller = document.getElementById("sidescroll");
6
+ if (!scroller) {
7
+ return;
8
+ }
9
+
10
+ scroller.querySelectorAll("tr").forEach((tr, index) => {
11
+ let firstPosition;
12
+ tr.querySelectorAll("th.sticky, td.sticky").forEach((td, idx) => {
13
+ if (idx === 0) {
14
+ firstPosition = td.offsetLeft;
15
+ }
16
+ td.style.left = `${td.offsetLeft - firstPosition}px`;
17
+ });
18
+ });
19
+ });
20
+ }
@@ -0,0 +1,342 @@
1
+ /*
2
+ RailsAdmin main CSS
3
+ Keep it clean, people
4
+ */
5
+
6
+ $avatar-size: 30px;
7
+
8
+ body.rails_admin {
9
+ .thumbnail {
10
+ display: inline-block;
11
+ }
12
+
13
+ /* Top navigation */
14
+ padding-top: $nav-link-height + $navbar-padding-y * 2;
15
+
16
+ .navbar {
17
+ .edit_user_root_link {
18
+ position: relative;
19
+
20
+ img {
21
+ position: absolute;
22
+ top: calc((40px - $avatar-size) / 2);
23
+
24
+ & + span {
25
+ margin-left: ($avatar-size + 5px);
26
+ }
27
+ }
28
+ }
29
+ }
30
+
31
+ /* Sidebar navigation */
32
+ .sidebar.btn-toggle-nav {
33
+ padding: 0;
34
+
35
+ .btn-toggle {
36
+ margin-top: calc(#{$grid-gutter-width} / 2);
37
+ padding: 3px calc(#{$grid-gutter-width} / 2);
38
+ font-weight: bold;
39
+ color: $gray-600;
40
+ }
41
+
42
+ .btn-toggle[aria-expanded="true"] {
43
+ color: $gray-700;
44
+ }
45
+
46
+ .btn-toggle-nav > li > a {
47
+ padding: calc(#{$navbar-padding-y} / 2) calc(#{$grid-gutter-width} / 2);
48
+
49
+ &.active {
50
+ background-color: map-get($theme-colors, primary);
51
+ color: color-contrast(map-get($theme-colors, primary));
52
+ }
53
+
54
+ &:hover {
55
+ background-color: map-get($theme-colors, primary);
56
+ color: color-contrast(map-get($theme-colors, primary));
57
+ }
58
+
59
+ &.nav-level-1 {
60
+ padding-left: $grid-gutter-width;
61
+ }
62
+
63
+ &.nav-level-2 {
64
+ padding-left: ($grid-gutter-width * 1.5);
65
+ }
66
+
67
+ &.nav-level-3 {
68
+ padding-left: ($grid-gutter-width * 2);
69
+ }
70
+ }
71
+ }
72
+
73
+ /* Main form */
74
+ form.main {
75
+ /* hide hidden fields controls by default */
76
+ .control-group .hidden_type {
77
+ display: none;
78
+ }
79
+
80
+ /* nested forms */
81
+ .tab-content {
82
+ .tab-pane {
83
+ border-left: 5px solid map-get($theme-colors, primary);
84
+ position: relative;
85
+
86
+ fieldset {
87
+ padding-top: 30px;
88
+ }
89
+
90
+ .form-group {
91
+ margin-right: 0;
92
+ margin-left: -5px; /* Balance border-left */
93
+ }
94
+
95
+ & > .remove_nested_fields,
96
+ & > .remove_nested_one_fields {
97
+ display: block;
98
+ opacity: 0;
99
+ position: absolute;
100
+ top: 0px;
101
+ left: 5px;
102
+ transition: opacity 0.15s ease;
103
+ }
104
+ &:hover > .remove_nested_fields,
105
+ &:hover > .remove_nested_one_fields,
106
+ & > .remove_nested_one_fields.active {
107
+ opacity: 1;
108
+ }
109
+ }
110
+ }
111
+
112
+ /* double nesting, guys. Easy. */
113
+ .tab-content .tab-content .tab-pane {
114
+ border-color: lighten(map-get($theme-colors, info), 20%);
115
+ margin-left: 10px;
116
+
117
+ .form-group {
118
+ margin-left: -15px; /* Balance border-left */
119
+ }
120
+ }
121
+
122
+ /* triple nesting!*/
123
+ .tab-content .tab-content .tab-content .tab-pane {
124
+ border-color: lighten(map-get($theme-colors, warning), 30%);
125
+ margin-left: 20px;
126
+
127
+ .form-group {
128
+ margin-left: -25px; /* Balance border-left */
129
+ }
130
+ }
131
+
132
+ /* totally awesome! nesting on 4 levels! */
133
+ .tab-content .tab-content .tab-content .tab-content .tab-pane {
134
+ border-color: lighten(map-get($theme-colors, success), 40%);
135
+ margin-left: 30px;
136
+
137
+ .form-group {
138
+ margin-left: -35px; /* Balance border-left */
139
+ }
140
+ }
141
+ }
142
+
143
+ /* Action tabs */
144
+ .nav.nav-tabs {
145
+ li.nav-item.icon + li.nav-item.dropdown {
146
+ margin-left: auto;
147
+ }
148
+ /* To silence Popper's warning: 'CSS "margin" styles cannot be used...' */
149
+ .dropdown-menu {
150
+ margin: 0;
151
+ }
152
+ }
153
+
154
+ /* Table cells behaviour */
155
+ .table {
156
+ height: 100%;
157
+
158
+ // Cells
159
+ > thead,
160
+ > tbody,
161
+ > tfoot {
162
+ > tr {
163
+ > th {
164
+ border-bottom: 0px;
165
+ }
166
+ }
167
+ }
168
+ .thumbnail {
169
+ float: left;
170
+ & + * {
171
+ clear: left;
172
+ }
173
+ }
174
+ /* backport of Bootstrap 1.4 table headers */
175
+ .header {
176
+ cursor: pointer;
177
+ padding-right: 18px;
178
+ &:after {
179
+ content: "";
180
+ float: right;
181
+ margin-top: 7px;
182
+ margin-left: 8px;
183
+ margin-right: -16px;
184
+ border-width: 0 4px 4px;
185
+ border-style: solid;
186
+ border-color: $dark transparent;
187
+ visibility: hidden;
188
+ }
189
+ }
190
+ .headerSortUp,
191
+ .headerSortDown {
192
+ background-color: rgba($info, 0.25);
193
+ text-shadow: 0 1px 1px rgba($light, 0.75);
194
+ }
195
+ .header:hover {
196
+ &:after {
197
+ visibility: visible;
198
+ }
199
+ }
200
+ .headerSortDown,
201
+ .headerSortDown:hover {
202
+ &:after {
203
+ visibility: visible;
204
+ opacity: 60;
205
+ }
206
+ }
207
+ .headerSortUp {
208
+ &:after {
209
+ border-bottom: none;
210
+ border-left: 4px solid transparent;
211
+ border-right: 4px solid transparent;
212
+ border-top: 4px solid $dark;
213
+ visibility: visible;
214
+ @include box-shadow(none);
215
+ opacity: 60;
216
+ }
217
+ }
218
+
219
+ th {
220
+ white-space: nowrap;
221
+ }
222
+
223
+ /* text-overflow when cell content > 150px */
224
+ td {
225
+ white-space: nowrap;
226
+ overflow: hidden;
227
+ text-overflow: ellipsis;
228
+ max-width: 150px;
229
+ }
230
+
231
+ th,
232
+ td {
233
+ padding: 5px 10px;
234
+ }
235
+
236
+ .sticky {
237
+ position: sticky;
238
+ }
239
+
240
+ th.last,
241
+ td.last {
242
+ position: sticky;
243
+ right: 0px;
244
+ }
245
+
246
+ /* icons */
247
+ td.links {
248
+ max-width: none;
249
+ .list-inline {
250
+ margin-bottom: 0;
251
+ li {
252
+ display: inline-block;
253
+ padding: 0 3px;
254
+ .nav-link {
255
+ padding: 0 0.1em;
256
+ }
257
+ }
258
+ }
259
+ }
260
+
261
+ /* Shrink to content width */
262
+ .shrink {
263
+ width: 1px;
264
+ white-space: nowrap;
265
+ }
266
+
267
+ /* History */
268
+ th.created_at {
269
+ width: 160px;
270
+ }
271
+ th.username {
272
+ width: 140px;
273
+ }
274
+ th.item {
275
+ width: 60px;
276
+ }
277
+ }
278
+
279
+ /* Dashboard */
280
+ .table {
281
+ .progress {
282
+ height: 100%;
283
+ }
284
+ }
285
+
286
+ /* Index */
287
+ #filters_box {
288
+ .form-control {
289
+ display: inline-block;
290
+ vertical-align: middle;
291
+ width: auto;
292
+ }
293
+ }
294
+ #sidescroll {
295
+ margin-bottom: 20px;
296
+ overflow-x: auto;
297
+ .table {
298
+ margin-bottom: 0;
299
+ }
300
+
301
+ // Remove transparency on sticky cells.
302
+ $table-bg-default: if(
303
+ $table-bg == transparent,
304
+ if($body-bg == transparent, #fff, $body-bg),
305
+ $table-bg
306
+ ) !default;
307
+ .table-striped > tbody > tr > td,
308
+ .table-striped > thead > tr > th {
309
+ background-color: $table-bg-default;
310
+ }
311
+ $table-bg-header-sort: #e2eff6 !default;
312
+ .table .sticky,
313
+ .table .last {
314
+ &.headerSortUp,
315
+ &.headerSortDown {
316
+ background-color: $table-bg-header-sort;
317
+ }
318
+ }
319
+ }
320
+ .pagination .page-item {
321
+ white-space: nowrap;
322
+ }
323
+ }
324
+
325
+ @media screen and (min-width: map-get($grid-breakpoints, "sm")) {
326
+ body.rails_admin {
327
+ .sidebar.btn-toggle-nav {
328
+ position: fixed;
329
+ top: $nav-link-height + $navbar-padding-y * 2;
330
+ bottom: 0;
331
+ overflow-y: auto;
332
+ }
333
+ }
334
+ }
335
+
336
+ @media screen and (max-width: map-get($grid-breakpoints, "sm")) {
337
+ body.rails_admin {
338
+ .container {
339
+ padding: 0;
340
+ }
341
+ }
342
+ }
@@ -0,0 +1,3 @@
1
+ /* RailsAdmin SASS variables */
2
+
3
+ $font-size-base: 0.85rem !default;