rails_admin 2.2.1 → 3.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (328) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -11
  3. data/README.md +37 -31
  4. data/Rakefile +2 -2
  5. data/app/assets/javascripts/rails_admin.js +21 -0
  6. data/app/assets/stylesheets/rails_admin/custom/mixins.scss +1 -1
  7. data/app/assets/stylesheets/rails_admin/custom/variables.scss +1 -1
  8. data/app/assets/stylesheets/rails_admin.scss.erb +76 -0
  9. data/app/controllers/rails_admin/application_controller.rb +4 -3
  10. data/app/controllers/rails_admin/main_controller.rb +43 -24
  11. data/app/helpers/rails_admin/application_helper.rb +69 -52
  12. data/app/helpers/rails_admin/form_builder.rb +5 -4
  13. data/app/helpers/rails_admin/main_helper.rb +27 -43
  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 +13 -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 +6 -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 +17 -0
  23. data/app/views/layouts/rails_admin/_navigation.html.erb +21 -0
  24. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +24 -0
  25. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +9 -0
  26. data/app/views/layouts/rails_admin/application.html.erb +27 -0
  27. data/app/views/layouts/rails_admin/modal.js.erb +7 -0
  28. data/app/views/layouts/rails_admin/pjax.html.erb +20 -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 +7 -0
  32. data/app/views/rails_admin/main/_form_boolean.html.erb +16 -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 +1 -0
  36. data/app/views/rails_admin/main/_form_datetime.html.erb +9 -0
  37. data/app/views/rails_admin/main/_form_enumeration.html.erb +21 -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.haml → _form_filtering_multiselect.html.erb} +11 -11
  41. data/app/views/rails_admin/main/{_form_filtering_select.html.haml → _form_filtering_select.html.erb} +13 -12
  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 +27 -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 +146 -0
  56. data/app/views/rails_admin/main/history.html.erb +78 -0
  57. data/app/views/rails_admin/main/index.html.erb +193 -0
  58. data/app/views/rails_admin/main/new.html.erb +3 -0
  59. data/app/views/rails_admin/main/show.html.erb +28 -0
  60. data/config/initializers/active_record_extensions.rb +3 -1
  61. data/config/initializers/mongoid_extensions.rb +1 -1
  62. data/config/locales/rails_admin.en.yml +6 -1
  63. data/lib/generators/rails_admin/install_generator.rb +51 -3
  64. data/lib/generators/rails_admin/templates/environment.js +6 -0
  65. data/lib/generators/rails_admin/templates/initializer.erb +2 -1
  66. data/lib/generators/rails_admin/templates/rails_admin.js.erb +2 -0
  67. data/lib/generators/rails_admin/templates/rails_admin.scss +1 -0
  68. data/lib/generators/rails_admin/templates/webpack.config.js +32 -0
  69. data/lib/rails_admin/abstract_model.rb +24 -10
  70. data/lib/rails_admin/adapters/active_record/association.rb +20 -1
  71. data/lib/rails_admin/adapters/active_record/object_extension.rb +29 -0
  72. data/lib/rails_admin/adapters/active_record/property.rb +1 -1
  73. data/lib/rails_admin/adapters/active_record.rb +27 -23
  74. data/lib/rails_admin/adapters/mongoid/association.rb +38 -9
  75. data/lib/rails_admin/adapters/mongoid/bson.rb +4 -5
  76. data/lib/rails_admin/adapters/mongoid/extension.rb +3 -1
  77. data/lib/rails_admin/adapters/mongoid/object_extension.rb +32 -0
  78. data/lib/rails_admin/adapters/mongoid/property.rb +2 -2
  79. data/lib/rails_admin/adapters/mongoid.rb +27 -19
  80. data/lib/rails_admin/config/actions/base.rb +7 -2
  81. data/lib/rails_admin/config/actions/bulk_delete.rb +2 -2
  82. data/lib/rails_admin/config/actions/dashboard.rb +4 -3
  83. data/lib/rails_admin/config/actions/delete.rb +5 -9
  84. data/lib/rails_admin/config/actions/edit.rb +7 -7
  85. data/lib/rails_admin/config/actions/export.rb +2 -2
  86. data/lib/rails_admin/config/actions/history_index.rb +2 -2
  87. data/lib/rails_admin/config/actions/history_show.rb +2 -2
  88. data/lib/rails_admin/config/actions/index.rb +5 -7
  89. data/lib/rails_admin/config/actions/new.rb +9 -9
  90. data/lib/rails_admin/config/actions/show.rb +1 -1
  91. data/lib/rails_admin/config/actions/show_in_app.rb +6 -2
  92. data/lib/rails_admin/config/actions.rb +4 -4
  93. data/lib/rails_admin/config/configurable.rb +2 -2
  94. data/lib/rails_admin/config/fields/association.rb +15 -12
  95. data/lib/rails_admin/config/fields/base.rb +44 -24
  96. data/lib/rails_admin/config/fields/factories/active_storage.rb +1 -0
  97. data/lib/rails_admin/config/fields/factories/association.rb +6 -8
  98. data/lib/rails_admin/config/fields/factories/carrierwave.rb +2 -1
  99. data/lib/rails_admin/config/fields/factories/devise.rb +2 -1
  100. data/lib/rails_admin/config/fields/factories/dragonfly.rb +2 -1
  101. data/lib/rails_admin/config/fields/factories/paperclip.rb +2 -1
  102. data/lib/rails_admin/config/fields/factories/shrine.rb +1 -1
  103. data/lib/rails_admin/config/fields/group.rb +1 -2
  104. data/lib/rails_admin/config/fields/types/active_record_enum.rb +2 -0
  105. data/lib/rails_admin/config/fields/types/active_storage.rb +9 -7
  106. data/lib/rails_admin/config/fields/types/all.rb +1 -0
  107. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +4 -12
  108. data/lib/rails_admin/config/fields/types/boolean.rb +32 -8
  109. data/lib/rails_admin/config/fields/types/carrierwave.rb +1 -0
  110. data/lib/rails_admin/config/fields/types/citext.rb +13 -0
  111. data/lib/rails_admin/config/fields/types/color.rb +6 -2
  112. data/lib/rails_admin/config/fields/types/date.rb +5 -8
  113. data/lib/rails_admin/config/fields/types/datetime.rb +18 -21
  114. data/lib/rails_admin/config/fields/types/decimal.rb +9 -2
  115. data/lib/rails_admin/config/fields/types/dragonfly.rb +3 -1
  116. data/lib/rails_admin/config/fields/types/enum.rb +1 -1
  117. data/lib/rails_admin/config/fields/types/file_upload.rb +4 -3
  118. data/lib/rails_admin/config/fields/types/float.rb +9 -2
  119. data/lib/rails_admin/config/fields/types/has_many_association.rb +1 -5
  120. data/lib/rails_admin/config/fields/types/has_one_association.rb +1 -13
  121. data/lib/rails_admin/config/fields/types/integer.rb +2 -6
  122. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +8 -6
  123. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +1 -0
  124. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +4 -3
  125. data/lib/rails_admin/config/fields/types/numeric.rb +18 -0
  126. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +3 -2
  127. data/lib/rails_admin/config/fields/types/string.rb +1 -1
  128. data/lib/rails_admin/config/fields/types/time.rb +1 -4
  129. data/lib/rails_admin/config/fields/types/timestamp.rb +0 -4
  130. data/lib/rails_admin/config/fields/types.rb +1 -1
  131. data/lib/rails_admin/config/fields.rb +3 -1
  132. data/lib/rails_admin/config/has_fields.rb +5 -6
  133. data/lib/rails_admin/config/hideable.rb +1 -1
  134. data/lib/rails_admin/config/inspectable.rb +1 -3
  135. data/lib/rails_admin/config/model.rb +10 -10
  136. data/lib/rails_admin/config/sections/base.rb +2 -3
  137. data/lib/rails_admin/config/sections/list.rb +4 -15
  138. data/lib/rails_admin/config/sections.rb +1 -1
  139. data/lib/rails_admin/config.rb +73 -38
  140. data/lib/rails_admin/engine.rb +36 -23
  141. data/lib/rails_admin/extension.rb +6 -14
  142. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +4 -2
  143. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +12 -7
  144. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +6 -7
  145. data/lib/rails_admin/support/csv_converter.rb +12 -13
  146. data/lib/rails_admin/support/datetime.rb +40 -74
  147. data/lib/rails_admin/support/esmodule_preprocessor.rb +32 -0
  148. data/lib/rails_admin/support/hash_helper.rb +6 -5
  149. data/lib/rails_admin/version.rb +8 -4
  150. data/lib/rails_admin.rb +1 -4
  151. data/lib/tasks/rails_admin.rake +3 -3
  152. data/package.json +28 -0
  153. data/src/rails_admin/base.js +21 -0
  154. data/src/rails_admin/filter-box.js +405 -0
  155. data/src/rails_admin/filtering-multiselect.js +394 -0
  156. data/src/rails_admin/filtering-select.js +302 -0
  157. data/src/rails_admin/i18n.js +19 -0
  158. data/src/rails_admin/nested-form-hooks.js +100 -0
  159. data/src/rails_admin/remote-form.js +190 -0
  160. data/src/rails_admin/sidescroll.js +20 -0
  161. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/README.txt +0 -0
  162. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/mixins.scss +0 -0
  163. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/theming.scss +93 -34
  164. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/base/variables.scss +0 -0
  165. data/src/rails_admin/styles/base.scss +64 -0
  166. data/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  167. data/src/rails_admin/styles/filtering-select.scss +70 -0
  168. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/cerulean/mixins.scss +0 -0
  169. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/cerulean/theming.scss +23 -21
  170. data/src/rails_admin/styles/themes/cerulean/variables.scss +830 -0
  171. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/default/mixins.scss +1 -1
  172. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/default/theming.scss +0 -0
  173. data/{app/assets/stylesheets/rails_admin → src/rails_admin/styles}/themes/default/variables.scss +1 -1
  174. data/src/rails_admin/styles/widgets.scss +35 -0
  175. data/src/rails_admin/ui.js +172 -0
  176. data/src/rails_admin/vendor/jquery.pjax.js +899 -0
  177. data/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  178. data/src/rails_admin/widgets.js +512 -0
  179. data/vendor/assets/fonts/rails_admin/fa-solid-900.eot +0 -0
  180. data/vendor/assets/fonts/rails_admin/fa-solid-900.svg +5034 -0
  181. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  182. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff +0 -0
  183. data/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  184. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  185. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  186. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  187. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  188. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  189. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  190. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  191. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  192. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  193. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  194. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  195. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  196. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  197. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  198. data/vendor/assets/javascripts/rails_admin/jquery3.js +10872 -0
  199. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +4476 -2216
  200. metadata +118 -262
  201. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  202. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  203. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  204. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  205. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  206. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  207. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  208. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  209. data/app/assets/images/rails_admin/calendar.png +0 -0
  210. data/app/assets/images/rails_admin/clock.png +0 -0
  211. data/app/assets/images/rails_admin/logo.png +0 -0
  212. data/app/assets/images/rails_admin/magnifier.png +0 -0
  213. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  214. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  215. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  216. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  217. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  218. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  219. data/app/assets/javascripts/rails_admin/jquery.migrate.js +0 -3
  220. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -246
  221. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  222. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
  223. data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
  224. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
  225. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  226. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
  227. data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
  228. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -21
  229. data/app/assets/javascripts/rails_admin/ui.js +0 -135
  230. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  231. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  232. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  233. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  234. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  235. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  236. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  237. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  238. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  239. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
  240. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
  241. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
  242. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  243. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  244. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  245. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  246. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  247. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  248. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  249. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  250. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  251. data/app/views/layouts/rails_admin/_head.html.haml +0 -7
  252. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  253. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  254. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
  255. data/app/views/layouts/rails_admin/application.html.haml +0 -16
  256. data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
  257. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  258. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  259. data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
  260. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  261. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  262. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  263. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  264. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -19
  265. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  266. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  267. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  268. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
  269. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  270. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  271. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
  272. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  273. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  274. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  275. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  276. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  277. data/app/views/rails_admin/main/dashboard.html.haml +0 -34
  278. data/app/views/rails_admin/main/delete.html.haml +0 -18
  279. data/app/views/rails_admin/main/edit.html.haml +0 -2
  280. data/app/views/rails_admin/main/export.html.haml +0 -92
  281. data/app/views/rails_admin/main/history.html.haml +0 -51
  282. data/app/views/rails_admin/main/index.html.haml +0 -126
  283. data/app/views/rails_admin/main/new.html.haml +0 -2
  284. data/app/views/rails_admin/main/show.html.haml +0 -15
  285. data/config/initializers/haml.rb +0 -5
  286. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -38
  287. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  288. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  289. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
  290. data/lib/rails_admin/bootstrap-sass.rb +0 -49
  291. data/lib/rails_admin/config/lazy_model.rb +0 -68
  292. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  293. data/lib/rails_admin/extensions/history/history.rb +0 -44
  294. data/lib/rails_admin/extensions/history.rb +0 -3
  295. data/lib/rails_admin/support/i18n.rb +0 -43
  296. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  297. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  298. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
  299. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  300. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  301. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  302. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  303. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  304. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  305. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  306. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  307. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  308. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  309. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  310. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  311. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  312. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  313. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  314. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  315. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  316. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  317. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  318. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  319. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  320. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  321. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  322. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  323. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  324. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  325. data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
  326. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  327. data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  328. data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
@@ -1,294 +0,0 @@
1
- /*
2
- * RailsAdmin filtering select @VERSION
3
- *
4
- * Based on the combobox example from jQuery UI documentation
5
- * http://jqueryui.com/demos/autocomplete/#combobox
6
- *
7
- * License
8
- *
9
- * http://www.railsadmin.org
10
- *
11
- * Depends:
12
- * jquery.ui.core.js
13
- * jquery.ui.widget.js
14
- * jquery.ui.autocomplete.js
15
- */
16
- (function($) {
17
- 'use strict';
18
-
19
- $.widget('ra.filteringSelect', {
20
- options: {
21
- createQuery: function(query) {
22
- return { query: query };
23
- },
24
- minLength: 0,
25
- searchDelay: 200,
26
- remote_source: null,
27
- source: null,
28
- xhr: false
29
- },
30
-
31
- button: null,
32
- input: null,
33
- select: null,
34
- filtering_select: null,
35
-
36
- _create: function() {
37
- this.filtering_select = this.element.siblings(
38
- '[data-input-for="' + this.element.attr('id') + '"]'
39
- );
40
-
41
- // When using the browser back and forward buttons, it is possible that
42
- // the autocomplete field will be cached which causes duplicate fields
43
- // to be generated.
44
- if (this.filtering_select.length > 0) {
45
- this.input = this.filtering_select.children('input');
46
- this.button = this.filtering_select.children('.input-group-btn');
47
- } else {
48
- this.element.hide();
49
- this.filtering_select = this._inputGroup(this.element.attr('id'));
50
- this.input = this._inputField();
51
- this.button = this._buttonField();
52
- }
53
-
54
- this._setOptionsSource();
55
- this._initAutocomplete();
56
- this._initKeyEvent();
57
- this._overloadRenderItem();
58
- this._autocompleteDropdownEvent(this.button);
59
-
60
- return this.filtering_select.append(this.input)
61
- .append(this.button)
62
- .insertAfter(this.element);
63
- },
64
-
65
- _getResultSet: function(request, data, xhr) {
66
- var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), 'i');
67
-
68
- var spannedContent = function(content) {
69
- return $('<span>').text(content).html();
70
- };
71
-
72
- var highlighter = function(label, word) {
73
- if(word.length) {
74
- return $.map(
75
- label.split(word),
76
- function(el) {
77
- return spannedContent(el);
78
- })
79
- .join($('<strong>')
80
- .text(word)[0]
81
- .outerHTML
82
- );
83
- } else {
84
- return spannedContent(label);
85
- }
86
- };
87
-
88
- return $.map(
89
- data,
90
- function(el) {
91
- var id = el.id || el.value;
92
- var value = el.label || el.id;
93
- // match regexp only for local requests, remote ones are already
94
- // filtered, and label may not contain filtered term.
95
- if (id && (xhr || matcher.test(el.label))) {
96
- return {
97
- html: highlighter(value, request.term),
98
- value: value,
99
- id: id
100
- };
101
- }
102
- });
103
- },
104
-
105
- _getSourceFunction: function(source) {
106
- var self = this;
107
- var requestIndex = 0;
108
-
109
- if ($.isArray(source)) {
110
- return function(request, response) {
111
- response(self._getResultSet(request, source, false));
112
- };
113
- } else if (typeof source === 'string') {
114
- return function(request, response) {
115
- if (this.xhr) {
116
- this.xhr.abort();
117
- }
118
-
119
- this.xhr = $.ajax({
120
- url: source,
121
- data: self.options.createQuery(request.term),
122
- dataType: 'json',
123
- autocompleteRequest: ++requestIndex,
124
- success: function(data, status) {
125
- if (this.autocompleteRequest === requestIndex) {
126
- response(self._getResultSet(request, data, true));
127
- }
128
- },
129
- error: function() {
130
- if (this.autocompleteRequest === requestIndex) {
131
- response([]);
132
- }
133
- }
134
- });
135
- };
136
- } else {
137
- return source;
138
- }
139
- },
140
-
141
- _setOptionsSource: function() {
142
- if (this.options.xhr) {
143
- this.options.source = this.options.remote_source;
144
- } else {
145
- this.options.source = this.element.children('option').map(function() {
146
- return { label: $(this).text(), value: this.value };
147
- }).toArray();
148
- }
149
- },
150
-
151
- _buttonField: function() {
152
- return $(
153
- '<span class="input-group-btn">' +
154
- '<label class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false" title="Show All Items" role="button">' +
155
- '<span class="caret"></span>' +
156
- '<span class="ui-button-text">&nbsp;</span>' +
157
- '</label>' +
158
- '</span>'
159
- );
160
- },
161
-
162
- _autocompleteDropdownEvent: function(element) {
163
- var self = this;
164
-
165
- return element.click(function() {
166
- // close if already visible
167
- if (self.input.autocomplete('widget').is(':visible')) {
168
- self.input.autocomplete('close');
169
- return;
170
- }
171
-
172
- // pass empty string as value to search for, displaying all results
173
- self.input.autocomplete('search', '');
174
- self.input.focus();
175
- });
176
- },
177
-
178
- _inputField: function() {
179
- var input;
180
- var selected = this.element.children(':selected');
181
- var value = selected.val() ? selected.text() : '';
182
-
183
- input = $('<input type="text">')
184
- .val(value)
185
- .addClass('form-control ra-filtering-select-input')
186
- .attr('style', this.element.attr('style'))
187
- .show();
188
-
189
- if (this.element.attr('placeholder')) {
190
- input.attr('placeholder', this.element.attr('placeholder'));
191
- }
192
-
193
- if (this.element.attr('required')) {
194
- input.attr('required', this.element.attr('required'));
195
- this.element.attr('required', false);
196
- }
197
-
198
- return input;
199
- },
200
-
201
- _inputGroup: function(inputFor) {
202
- return $('<div>')
203
- .addClass('input-group filtering-select col-sm-2')
204
- .attr('data-input-for', inputFor)
205
- .css('float', this.element.css("float"));
206
- },
207
-
208
- _initAutocomplete: function() {
209
- var self = this;
210
-
211
- return this.input.autocomplete({
212
- delay: this.options.searchDelay,
213
- minLength: this.options.minLength,
214
- source: this._getSourceFunction(this.options.source),
215
- select: function(event, ui) {
216
- var option = $('<option>')
217
- .attr('value', ui.item.id)
218
- .attr('selected', 'selected')
219
- .text(ui.item.value);
220
- self.element.html(option)
221
- .trigger('change', ui.item.id);
222
- self._trigger('selected', event, {
223
- item: option
224
- });
225
- $(self.element.parents('.controls')[0])
226
- .find('.update')
227
- .removeClass('disabled');
228
- },
229
- change: function(event, ui) {
230
- if (ui.item) {
231
- return;
232
- }
233
-
234
- var matcher = new RegExp('^' + $.ui.autocomplete.escapeRegex($(this).val()) + '$', 'i');
235
- var valid = false;
236
-
237
- self.element.children('option')
238
- .each(function() {
239
- if ($(this).text().match(matcher)) {
240
- valid = true;
241
- return false;
242
- }
243
- });
244
-
245
- if (valid || $(this).val() !== '') {
246
- return;
247
- }
248
-
249
- // remove invalid value, as it didn't match anything
250
- $(this).val(null);
251
- self.element.html($('<option value="" selected="selected"></option>'));
252
- self.input.data('ui-autocomplete').term = '';
253
- $(self.element.parents('.controls')[0])
254
- .find('.update')
255
- .addClass('disabled');
256
- return false;
257
- }
258
- });
259
- },
260
-
261
- _initKeyEvent: function() {
262
- var self = this;
263
-
264
- return this.input.keyup(function() {
265
- if ($(this).val().length) {
266
- return;
267
- }
268
-
269
- /* Clear select options and trigger change if selected item is deleted */
270
- return self.element
271
- .html($('<option value="" selected="selected"></option>'))
272
- .trigger('change');
273
- });
274
- },
275
-
276
- _overloadRenderItem: function() {
277
- this.input.data('ui-autocomplete')._renderItem = function(ul, item) {
278
- return $('<li></li>')
279
- .data('ui-autocomplete-item', item)
280
- .append($('<a></a>')
281
- .html(item.html || item.id))
282
- .appendTo(ul);
283
- };
284
- },
285
-
286
- destroy: function() {
287
- this.input.remove();
288
- this.button.remove();
289
- this.element.show();
290
- this.filtering_select.remove();
291
- $.Widget.prototype.destroy.call(this);
292
- }
293
- });
294
- })(jQuery);
@@ -1,28 +0,0 @@
1
- (function() {
2
- var Locale;
3
-
4
- this.RailsAdmin || (this.RailsAdmin = {});
5
-
6
- this.RailsAdmin.I18n = Locale = (function() {
7
- function Locale() {}
8
-
9
- Locale.init = function(locale, translations) {
10
- this.locale = locale;
11
- this.translations = translations;
12
- moment.locale(this.locale);
13
- if (typeof this.translations === "string") {
14
- this.translations = JSON.parse(this.translations);
15
- }
16
- };
17
-
18
- Locale.t = function(key) {
19
- var humanize;
20
- humanize = key.charAt(0).toUpperCase() + key.replace(/_/g, " ").slice(1);
21
- return this.translations[key] || humanize;
22
- };
23
-
24
- return Locale;
25
-
26
- })();
27
-
28
- }).call(this);
@@ -1,59 +0,0 @@
1
- (function($) {
2
- $(document).ready(function() {
3
- return window.nestedFormEvents.insertFields = function(content, assoc, link) {
4
- var tab_content;
5
- tab_content = $(link).closest(".controls").siblings(".tab-content");
6
- tab_content.append(content);
7
- return tab_content.children().last();
8
- };
9
- });
10
-
11
- $(document).on('nested:fieldAdded', 'form', function(content) {
12
- var controls, field, nav, new_tab, one_to_one, parent_group, toggler;
13
- field = content.field.addClass('tab-pane').attr('id', 'unique-id-' + (new Date().getTime()));
14
- new_tab = $('<li></li>').append(
15
- $('<a></a>').attr('data-toggle', 'tab').attr('href', '#' + field.attr('id')).text(field.children('.object-infos').data('object-label'))
16
- )
17
- parent_group = field.closest('.control-group');
18
- controls = parent_group.children('.controls');
19
- one_to_one = controls.data('nestedone') !== void 0;
20
- nav = controls.children('.nav');
21
- content = parent_group.children('.tab-content');
22
- toggler = controls.find('.toggler');
23
- nav.append(new_tab);
24
- $(window.document).trigger('rails_admin.dom_ready', [field, parent_group]);
25
- new_tab.children('a').tab('show');
26
- if (!one_to_one) {
27
- nav.filter(':hidden').show('slow');
28
- }
29
- content.filter(':hidden').show('slow');
30
- toggler.addClass('active').removeClass('disabled').children('i').addClass('icon-chevron-down').removeClass('icon-chevron-right');
31
- if (one_to_one) {
32
- controls.find('.add_nested_fields').removeClass('add_nested_fields').text(field.children('.object-infos').data('object-label'));
33
- }
34
- });
35
-
36
- $(document).on('nested:fieldRemoved', 'form', function(content) {
37
- var add_button, controls, current_li, field, nav, one_to_one, parent_group, toggler;
38
- field = content.field;
39
- nav = field.closest(".control-group").children('.controls').children('.nav');
40
- current_li = nav.children('li').has('a[href="#' + field.attr('id') + '"]');
41
- parent_group = field.closest(".control-group");
42
- controls = parent_group.children('.controls');
43
- one_to_one = controls.data('nestedone') !== void 0;
44
- toggler = controls.find('.toggler');
45
- (current_li.next().length ? current_li.next() : current_li.prev()).children('a:first').tab('show');
46
- current_li.remove();
47
- if (nav.children().length === 0) {
48
- nav.filter(':visible').hide('slow');
49
- toggler.removeClass('active').addClass('disabled').children('i').removeClass('icon-chevron-down').addClass('icon-chevron-right');
50
- }
51
- if (one_to_one) {
52
- add_button = toggler.next();
53
- add_button.addClass('add_nested_fields').html(add_button.data('add-label'));
54
- }
55
- field.find('[required]').each(function() {
56
- $(this).removeAttr('required');
57
- });
58
- });
59
- }(jQuery));
@@ -1,155 +0,0 @@
1
- /*
2
- * RailsAdmin remote form @VERSION
3
- *
4
- * License
5
- *
6
- * http://www.railsadmin.org
7
- *
8
- * Depends:
9
- * jquery.ui.core.js
10
- * jquery.ui.widget.js
11
- * jquery.ui.dialog.js
12
- */
13
- (function($) {
14
- $.widget("ra.remoteForm", {
15
-
16
- _create: function() {
17
- var widget = this
18
- var dom_widget = widget.element;
19
-
20
- var edit_url = dom_widget.find('select').first().data('options') && dom_widget.find('select').first().data('options')['edit-url'];
21
- if(typeof(edit_url) != 'undefined' && edit_url.length) {
22
- dom_widget.on('dblclick', '.ra-multiselect option:not(:disabled)', function(e){
23
- widget._bindModalOpening(e, edit_url.replace('__ID__', this.value))
24
- });
25
- }
26
-
27
- dom_widget.find('.create').unbind().bind("click", function(e){
28
- widget._bindModalOpening(e, $(this).data('link'))
29
- });
30
-
31
- dom_widget.find('.update').unbind().bind("click", function(e){
32
- if(value = dom_widget.find('select').val()) {
33
- widget._bindModalOpening(e, $(this).data('link').replace('__ID__', value))
34
- } else {
35
- e.preventDefault();
36
- }
37
- });
38
- },
39
-
40
- _bindModalOpening: function(e, url) {
41
- e.preventDefault();
42
- widget = this;
43
- if($("#modal").length)
44
- return false;
45
-
46
- var dialog = this._getModal();
47
-
48
- setTimeout(function(){ // 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.
49
- $.ajax({
50
- url: url,
51
- beforeSend: function(xhr) {
52
- xhr.setRequestHeader("Accept", "text/javascript");
53
- },
54
- success: function(data, status, xhr) {
55
- dialog.find('.modal-body').html(data);
56
- widget._bindFormEvents();
57
- },
58
- error: function(xhr, status, error) {
59
- dialog.find('.modal-body').html(xhr.responseText);
60
- },
61
- dataType: 'text'
62
- });
63
- },200);
64
-
65
- },
66
-
67
- _bindFormEvents: function() {
68
- var widget = this,
69
- dialog = this._getModal(),
70
- form = dialog.find("form"),
71
- saveButtonText = dialog.find(":submit[name=_save]").html(),
72
- cancelButtonText = dialog.find(":submit[name=_continue]").html();
73
- dialog.find('.form-actions').remove();
74
-
75
- form.attr("data-remote", true);
76
- dialog.find('.modal-header-title').text(form.data('title'));
77
- dialog.find('.cancel-action').unbind().click(function(){
78
- dialog.modal('hide');
79
- return false;
80
- }).html(cancelButtonText);
81
-
82
- dialog.find('.save-action').unbind().click(function(){
83
- form.submit();
84
- return false;
85
- }).html(saveButtonText);
86
-
87
- $(document).trigger('rails_admin.dom_ready', [form])
88
-
89
- form.bind("ajax:complete", function(xhr, data, status) {
90
- if (status == 'error') {
91
- dialog.find('.modal-body').html(data.responseText);
92
- widget._bindFormEvents();
93
- } else {
94
- var json = $.parseJSON(data.responseText);
95
- var option = '<option value="' + json.id + '" selected>' + json.label + '</option>';
96
- var select = widget.element.find('select').filter(":hidden");
97
-
98
- if(widget.element.find('.filtering-select').length) { // select input
99
- var input = widget.element.find('.filtering-select').children('.ra-filtering-select-input');
100
- input.val(json.label);
101
- if (!select.find('option[value=' + json.id + ']').length) { // not a replace
102
- select.html(option).val(json.id);
103
- widget.element.find('.update').removeClass('disabled');
104
- }
105
- } else { // multi-select input
106
- var input = widget.element.find('.ra-filtering-select-input');
107
- var multiselect = widget.element.find('.ra-multiselect');
108
- if (multiselect.find('option[value=' + json.id + ']').length) { // replace
109
- select.find('option[value=' + json.id + ']').text(json.label);
110
- multiselect.find('option[value= ' + json.id + ']').text(json.label);
111
- } else { // add
112
- select.append(option);
113
- multiselect.find('select.ra-multiselect-selection').append(option);
114
- }
115
- }
116
- widget._trigger("success");
117
- dialog.modal("hide");
118
- }
119
- });
120
- },
121
-
122
- _getModal: function() {
123
- var widget = this;
124
- if (!widget.dialog) {
125
- widget.dialog = $('<div id="modal" class="modal fade">\
126
- <div class="modal-dialog">\
127
- <div class="modal-content">\
128
- <div class="modal-header">\
129
- <a href="#" class="close" data-dismiss="modal">&times;</a>\
130
- <h3 class="modal-header-title">...</h3>\
131
- </div>\
132
- <div class="modal-body">\
133
- ...\
134
- </div>\
135
- <div class="modal-footer">\
136
- <a href="#" class="btn cancel-action">...</a>\
137
- <a href="#" class="btn btn-primary save-action">...</a>\
138
- </div>\
139
- </div>\
140
- </div>\
141
- </div>')
142
- .modal({
143
- keyboard: true,
144
- backdrop: true,
145
- show: true
146
- })
147
- .on('hidden.bs.modal', function(){
148
- widget.dialog.remove(); // We don't want to reuse closed modals
149
- widget.dialog = null;
150
- });
151
- }
152
- return this.dialog;
153
- }
154
- });
155
- })(jQuery);
@@ -1,31 +0,0 @@
1
- (function($) {
2
- function setFrozenColPositions() {
3
- var $listForm, frozenColumns;
4
-
5
- $listForm = $('#bulk_form');
6
- if (!$listForm.is('.ra-sidescroll')) {
7
- return;
8
- }
9
- frozenColumns = $listForm.data('ra-sidescroll');
10
-
11
- $listForm.find('table tr').each(function(index, tr) {
12
- var firstPosition = 0;
13
-
14
- $(tr).children().slice(0, frozenColumns).each(function(idx, td) {
15
- var tdLeft;
16
- $(td).addClass('ra-sidescroll-frozen');
17
- if (idx === frozenColumns - 1) {
18
- $(td).addClass('last-of-frozen');
19
- }
20
- tdLeft = $(td).position().left;
21
- if (idx === 0) {
22
- firstPosition = tdLeft;
23
- }
24
- td.style.left = (tdLeft - firstPosition) + "px";
25
- });
26
- });
27
- };
28
-
29
- $(window).on('load', setFrozenColPositions);
30
- $(document).on('rails_admin.dom_ready', setFrozenColPositions);
31
- })(jQuery);