rails_admin 2.1.0 → 3.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rails_admin might be problematic. Click here for more details.

Files changed (343) 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 +7 -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 +13 -8
  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 +7 -3
  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/bootstrap/bootstrap-affix.js +50 -28
  185. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +10 -7
  186. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +35 -20
  187. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +48 -25
  188. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +70 -28
  189. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +56 -42
  190. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +118 -40
  191. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +26 -16
  192. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +29 -27
  193. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +46 -19
  194. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +280 -60
  195. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +5 -5
  196. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +317 -150
  197. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  198. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  199. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  200. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  201. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  202. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  203. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  204. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  205. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  206. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  207. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  208. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  209. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  210. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  211. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +317 -160
  212. data/vendor/assets/javascripts/rails_admin/jquery3.js +10872 -0
  213. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +11210 -9290
  214. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +4476 -2216
  215. metadata +118 -262
  216. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  217. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  218. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  219. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  220. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  221. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  222. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  223. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  224. data/app/assets/images/rails_admin/calendar.png +0 -0
  225. data/app/assets/images/rails_admin/clock.png +0 -0
  226. data/app/assets/images/rails_admin/logo.png +0 -0
  227. data/app/assets/images/rails_admin/magnifier.png +0 -0
  228. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  229. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  230. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  231. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  232. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  233. data/app/assets/javascripts/rails_admin/jquery-ui.js.erb +0 -8
  234. data/app/assets/javascripts/rails_admin/ra.filter-box.js +0 -248
  235. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +0 -331
  236. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +0 -294
  237. data/app/assets/javascripts/rails_admin/ra.i18n.js +0 -28
  238. data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.js +0 -59
  239. data/app/assets/javascripts/rails_admin/ra.remote-form.js +0 -155
  240. data/app/assets/javascripts/rails_admin/ra.sidescroll.js +0 -31
  241. data/app/assets/javascripts/rails_admin/ra.widgets.js +0 -379
  242. data/app/assets/javascripts/rails_admin/rails_admin.js +0 -20
  243. data/app/assets/javascripts/rails_admin/ui.js +0 -135
  244. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  245. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  246. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  247. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  248. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  249. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  250. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +0 -733
  251. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +0 -153
  252. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss +0 -88
  253. data/app/assets/stylesheets/rails_admin/ra.sidescroll.scss +0 -29
  254. data/app/assets/stylesheets/rails_admin/ra.widgets.scss +0 -17
  255. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +0 -110
  256. data/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss +0 -857
  257. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.haml +0 -2
  258. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.haml +0 -4
  259. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.haml +0 -4
  260. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.haml +0 -9
  261. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.haml +0 -4
  262. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.haml +0 -4
  263. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.haml +0 -4
  264. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.haml +0 -4
  265. data/app/views/layouts/rails_admin/_head.html.haml +0 -7
  266. data/app/views/layouts/rails_admin/_navigation.html.haml +0 -12
  267. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +0 -10
  268. data/app/views/layouts/rails_admin/_sidebar_navigation.html.haml +0 -3
  269. data/app/views/layouts/rails_admin/application.html.haml +0 -16
  270. data/app/views/layouts/rails_admin/pjax.html.haml +0 -12
  271. data/app/views/rails_admin/main/_dashboard_history.html.haml +0 -21
  272. data/app/views/rails_admin/main/_delete_notice.html.haml +0 -24
  273. data/app/views/rails_admin/main/_form_action_text.html.haml +0 -7
  274. data/app/views/rails_admin/main/_form_boolean.html.haml +0 -3
  275. data/app/views/rails_admin/main/_form_code_mirror.html.haml +0 -9
  276. data/app/views/rails_admin/main/_form_colorpicker.html.haml +0 -1
  277. data/app/views/rails_admin/main/_form_datetime.html.haml +0 -5
  278. data/app/views/rails_admin/main/_form_enumeration.html.haml +0 -19
  279. data/app/views/rails_admin/main/_form_field.html.haml +0 -1
  280. data/app/views/rails_admin/main/_form_file_upload.html.haml +0 -17
  281. data/app/views/rails_admin/main/_form_froala.html.haml +0 -8
  282. data/app/views/rails_admin/main/_form_multiple_file_upload.html.haml +0 -16
  283. data/app/views/rails_admin/main/_form_nested_many.html.haml +0 -15
  284. data/app/views/rails_admin/main/_form_nested_one.html.haml +0 -17
  285. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +0 -26
  286. data/app/views/rails_admin/main/_form_simple_mde.haml +0 -8
  287. data/app/views/rails_admin/main/_form_text.html.haml +0 -1
  288. data/app/views/rails_admin/main/_form_wysihtml5.html.haml +0 -8
  289. data/app/views/rails_admin/main/_submit_buttons.html.haml +0 -16
  290. data/app/views/rails_admin/main/bulk_delete.html.haml +0 -11
  291. data/app/views/rails_admin/main/dashboard.html.haml +0 -34
  292. data/app/views/rails_admin/main/delete.html.haml +0 -18
  293. data/app/views/rails_admin/main/edit.html.haml +0 -2
  294. data/app/views/rails_admin/main/export.html.haml +0 -92
  295. data/app/views/rails_admin/main/history.html.haml +0 -51
  296. data/app/views/rails_admin/main/index.html.haml +0 -126
  297. data/app/views/rails_admin/main/new.html.haml +0 -2
  298. data/app/views/rails_admin/main/show.html.haml +0 -15
  299. data/config/initializers/devise_patch.rb +0 -9
  300. data/config/initializers/haml.rb +0 -5
  301. data/lib/rails_admin/adapters/active_record/abstract_object.rb +0 -32
  302. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +0 -42
  303. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +0 -28
  304. data/lib/rails_admin/bootstrap-sass/sass_functions.rb +0 -16
  305. data/lib/rails_admin/bootstrap-sass.rb +0 -49
  306. data/lib/rails_admin/config/lazy_model.rb +0 -68
  307. data/lib/rails_admin/extensions/history/auditing_adapter.rb +0 -37
  308. data/lib/rails_admin/extensions/history/history.rb +0 -44
  309. data/lib/rails_admin/extensions/history.rb +0 -3
  310. data/lib/rails_admin/support/i18n.rb +0 -43
  311. data/vendor/assets/fonts/rails_admin/FontAwesome.otf +0 -0
  312. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.eot +0 -0
  313. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.svg +0 -2671
  314. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.ttf +0 -0
  315. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff +0 -0
  316. data/vendor/assets/fonts/rails_admin/fontawesome-webfont.woff2 +0 -0
  317. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  318. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  319. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  320. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  321. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  322. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  323. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  324. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  325. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  326. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  327. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  328. data/vendor/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  329. data/vendor/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  330. data/vendor/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  331. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  332. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  333. data/vendor/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  334. data/vendor/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  335. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  336. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  337. data/vendor/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  338. data/vendor/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  339. data/vendor/assets/images/rails_admin/colorpicker/select.png +0 -0
  340. data/vendor/assets/images/rails_admin/colorpicker/select2.png +0 -0
  341. data/vendor/assets/images/rails_admin/colorpicker/slider.png +0 -0
  342. data/vendor/assets/javascripts/rails_admin/jquery.colorpicker.js +0 -484
  343. data/vendor/assets/stylesheets/rails_admin/jquery.colorpicker.scss +0 -182
@@ -1,248 +0,0 @@
1
- (function($) {
2
-
3
- var filters;
4
-
5
- $.filters = filters = {
6
- append: function(options) {
7
- options = options || {};
8
- var field_label = options['label'];
9
- var field_name = options['name'];
10
- var field_type = options['type'];
11
- var field_value = options['value'];
12
- var field_operator = options['operator'];
13
- var select_options = options['select_options'];
14
- var required = options['required'];
15
- var index = options['index'];
16
- var value_name = 'f[' + field_name + '][' + index + '][v]';
17
- var operator_name = 'f[' + field_name + '][' + index + '][o]';
18
- var control = null;
19
- var additional_control = null;
20
-
21
- switch(field_type) {
22
- case 'boolean':
23
- control = $('<select class="input-sm form-control"></select>')
24
- .prop('name', value_name)
25
- .append('<option value="_discard">...</option>')
26
- .append($('<option value="true"></option>').prop('selected', field_value == "true").text(RailsAdmin.I18n.t("true")))
27
- .append($('<option value="false"></option>').prop('selected', field_value == "false").text(RailsAdmin.I18n.t("false")))
28
- if (!required) {
29
- control.append([
30
- '<option disabled="disabled">---------</option>',
31
- $('<option value="_present"></option>').prop('selected', field_value == "_present").text(RailsAdmin.I18n.t("is_present")),
32
- $('<option value="_blank"></option>').prop('selected', field_value == "_blank").text(RailsAdmin.I18n.t("is_blank"))
33
- ])
34
- }
35
- break;
36
- case 'date':
37
- additional_control =
38
- $('<input size="20" class="date additional-fieldset default input-sm form-control" type="text" />')
39
- .css('display', (!field_operator || field_operator == "default") ? 'inline-block' : 'none')
40
- .prop('name', value_name + '[]')
41
- .prop('value', field_value[0] || '')
42
- .add(
43
- $('<input size="20" placeholder="-∞" class="date additional-fieldset between input-sm form-control" type="text" />')
44
- .css('display', (field_operator == "between") ? 'inline-block' : 'none')
45
- .prop('name', value_name + '[]')
46
- .prop('value', field_value[1] || '')
47
- )
48
- .add(
49
- $('<input size="20" placeholder="∞" class="date additional-fieldset between input-sm form-control" type="text" />')
50
- .css('display', (field_operator == "between") ? 'inline-block' : 'none')
51
- .prop('name', value_name + '[]')
52
- .prop('value', field_value[2] || '')
53
- );
54
- case 'datetime':
55
- case 'timestamp':
56
- control = control || $('<select class="switch-additional-fieldsets input-sm form-control"></select>')
57
- .prop('name', operator_name)
58
- .append($('<option data-additional-fieldset="default" value="default"></option>').prop('selected', field_operator == "default").text(RailsAdmin.I18n.t("date")))
59
- .append($('<option data-additional-fieldset="between" value="between"></option>').prop('selected', field_operator == "between").text(RailsAdmin.I18n.t("between_and_")))
60
- .append($('<option value="today"></option>').prop('selected', field_operator == "today").text(RailsAdmin.I18n.t("today")))
61
- .append($('<option value="yesterday"></option>').prop('selected', field_operator == "yesterday").text(RailsAdmin.I18n.t("yesterday")))
62
- .append($('<option value="this_week"></option>').prop('selected', field_operator == "this_week").text(RailsAdmin.I18n.t("this_week")))
63
- .append($('<option value="last_week"></option>').prop('selected', field_operator == "last_week").text(RailsAdmin.I18n.t("last_week")))
64
- if (!required) {
65
- control.append([
66
- '<option disabled="disabled">---------</option>',
67
- $('<option value="_not_null"></option>').prop('selected', field_operator == "_not_null").text(RailsAdmin.I18n.t("is_present")),
68
- $('<option value="_null"></option>').prop('selected', field_operator == "_null").text(RailsAdmin.I18n.t("is_blank"))
69
- ])
70
- }
71
- additional_control = additional_control ||
72
- $('<input size="25" class="datetime additional-fieldset default input-sm form-control" type="text" />')
73
- .css('display', (!field_operator || field_operator == "default") ? 'inline-block' : 'none')
74
- .prop('name', value_name + '[]')
75
- .prop('value', field_value[0] || '')
76
- .add(
77
- $('<input size="25" placeholder="-∞" class="datetime additional-fieldset between input-sm form-control" type="text" />')
78
- .css('display', (field_operator == "between") ? 'inline-block' : 'none')
79
- .prop('name', value_name + '[]')
80
- .prop('value', field_value[1] || '')
81
- )
82
- .add(
83
- $('<input size="25" placeholder="∞" class="datetime additional-fieldset between input-sm form-control" type="text" />')
84
- .css('display', (field_operator == "between") ? 'inline-block' : 'none')
85
- .prop('name', value_name + '[]')
86
- .prop('value', field_value[2] || '')
87
- );
88
- break;
89
- case 'enum':
90
- var multiple_values = ((field_value instanceof Array) ? true : false)
91
- control = $('<select class="select-single input-sm form-control"></select>')
92
- .css('display', multiple_values ? 'none' : 'inline-block')
93
- .prop('name', multiple_values ? undefined : value_name)
94
- .data('name', value_name)
95
- .append('<option value="_discard">...</option>')
96
- if (!required) {
97
- control.append([
98
- $('<option value="_present"></option>').prop('selected', field_value == "_present").text(RailsAdmin.I18n.t("is_present")),
99
- $('<option value="_blank"></option>').prop('selected', field_value == "_blank").text(RailsAdmin.I18n.t("is_blank")),
100
- '<option disabled="disabled">---------</option>'
101
- ])
102
- }
103
- control.append(select_options)
104
- .add(
105
- $('<select multiple="multiple" class="select-multiple input-sm form-control"></select>')
106
- .css('display', multiple_values ? 'inline-block' : 'none')
107
- .prop('name', multiple_values ? value_name + '[]' : undefined)
108
- .data('name', value_name + '[]')
109
- .append(select_options)
110
- )
111
- .add(
112
- $('<a href="#" class="switch-select"></a>')
113
- .append($('<i></i>').addClass('icon-' + (multiple_values ? 'minus' : 'plus')))
114
- );
115
- break;
116
- case 'string':
117
- case 'text':
118
- case 'belongs_to_association':
119
- control = $('<select class="switch-additional-fieldsets input-sm form-control"></select>')
120
- .prop('value', field_operator)
121
- .prop('name', operator_name)
122
- .append('<option value="_discard">...</option>')
123
- .append($('<option data-additional-fieldset="additional-fieldset" value="like"></option>').prop('selected', field_operator == "like").text(RailsAdmin.I18n.t("contains")))
124
- .append($('<option data-additional-fieldset="additional-fieldset" value="is"></option>').prop('selected', field_operator == "is").text(RailsAdmin.I18n.t("is_exactly")))
125
- .append($('<option data-additional-fieldset="additional-fieldset" value="starts_with"></option>').prop('selected', field_operator == "starts_with").text(RailsAdmin.I18n.t("starts_with")))
126
- .append($('<option data-additional-fieldset="additional-fieldset" value="ends_with"></option>').prop('selected', field_operator == "ends_with").text(RailsAdmin.I18n.t("ends_with")))
127
- if (!required) {
128
- control.append([
129
- '<option disabled="disabled">---------</option>',
130
- $('<option value="_present"></option>').prop('selected', field_operator == "_present").text(RailsAdmin.I18n.t("is_present")),
131
- $('<option value="_blank"></option>').prop('selected', field_operator == "_blank").text(RailsAdmin.I18n.t("is_blank"))
132
- ])
133
- }
134
- additional_control = $('<input class="additional-fieldset input-sm form-control" type="text" />')
135
- .css('display', field_operator == "_present" || field_operator == "_blank" ? 'none' : 'inline-block')
136
- .prop('name', value_name)
137
- .prop('value', field_value);
138
- break;
139
- case 'integer':
140
- case 'decimal':
141
- case 'float':
142
- control = $('<select class="switch-additional-fieldsets input-sm form-control"></select>')
143
- .prop('name', operator_name)
144
- .append($('<option data-additional-fieldset="default" value="default"></option>').prop('selected', field_operator == "default").text(RailsAdmin.I18n.t("number")))
145
- .append($('<option data-additional-fieldset="between" value="between"></option>').prop('selected', field_operator == "between").text(RailsAdmin.I18n.t("between_and_")))
146
- if (!required) {
147
- control.append([
148
- '<option disabled="disabled">---------</option>',
149
- $('<option value="_not_null"></option>').prop('selected', field_operator == "_not_null").text(RailsAdmin.I18n.t("is_present")),
150
- $('<option value="_null"></option>').prop('selected', field_operator == "_null").text(RailsAdmin.I18n.t("is_blank"))
151
- ])
152
- }
153
- additional_control =
154
- $('<input class="additional-fieldset default input-sm form-control" type="text" />')
155
- .css('display', (!field_operator || field_operator == "default") ? 'inline-block' : 'none')
156
- .prop('type', field_type)
157
- .prop('name', value_name + '[]')
158
- .prop('value', field_value[0] || '')
159
- .add(
160
- $('<input placeholder="-∞" class="additional-fieldset between input-sm form-control" />')
161
- .css('display', (field_operator == "between") ? 'inline-block' : 'none')
162
- .prop('type', field_type)
163
- .prop('name', value_name + '[]')
164
- .prop('value', field_value[1] || '')
165
- )
166
- .add(
167
- $('<input placeholder="∞" class="additional-fieldset between input-sm form-control" />')
168
- .css('display', (field_operator == "between") ? 'inline-block' : 'none')
169
- .prop('type', field_type)
170
- .prop('name', value_name + '[]')
171
- .prop('value', field_value[2] || '')
172
- );
173
- break;
174
- default:
175
- control = $('<input type="text" class="input-sm form-control" />')
176
- .prop('name', value_name)
177
- .prop('value', field_value);
178
- break;
179
- }
180
-
181
- var filterContainerId = field_name + '-' + index + '-filter-container';
182
- $('p#' + filterContainerId).remove();
183
-
184
- var $content = $('<p>')
185
- .attr('id', filterContainerId)
186
- .addClass('filter form-search')
187
- .append(
188
- $('<span class="label label-info form-label"></span>')
189
- .append($('<a href="#delete" class="delete"></a>').append('<i class="fa fa-trash-o fa-fw icon-white"></i>').append(document.createTextNode(field_label)))
190
- )
191
- .append('&nbsp;')
192
- .append(control)
193
- .append('&nbsp;')
194
- .append(additional_control);
195
-
196
- $('#filters_box').append($content);
197
-
198
- $content.find('.date, .datetime').datetimepicker({
199
- locale: RailsAdmin.I18n.locale,
200
- showTodayButton: true,
201
- format: options['datetimepicker_format']
202
- });
203
-
204
- $("hr.filters_box:hidden").show('slow');
205
- }
206
- }
207
-
208
- $(document).on('click', "#filters a", function(e) {
209
- e.preventDefault();
210
- $.filters.append({
211
- label: $(this).data('field-label'),
212
- name: $(this).data('field-name'),
213
- type: $(this).data('field-type'),
214
- value: $(this).data('field-value'),
215
- operator: $(this).data('field-operator'),
216
- select_options: $(this).data('field-options'),
217
- required: $(this).data('field-required'),
218
- index: $.now().toString().slice(6,11),
219
- datetimepicker_format: $(this).data('field-datetimepicker-format')
220
- });
221
- });
222
-
223
- $(document).on('click', "#filters_box .delete", function(e) {
224
- e.preventDefault();
225
- form = $(this).parents('form');
226
- $(this).parents('.filter').remove();
227
- !$("#filters_box").children().length && $("hr.filters_box:visible").hide('slow');
228
- });
229
-
230
- $(document).on('click', "#filters_box .switch-select", function(e) {
231
- e.preventDefault();
232
- var selected_select = $(this).siblings('select:visible');
233
- var not_selected_select = $(this).siblings('select:hidden');
234
- not_selected_select.attr('name', not_selected_select.data('name')).show('slow');
235
- selected_select.attr('name', null).hide('slow');
236
- $(this).find('i').toggleClass("icon-plus icon-minus")
237
- });
238
-
239
- $(document).on('change', "#filters_box .switch-additional-fieldsets", function(e) {
240
- var selected_option = $(this).find('option:selected');
241
- if(klass = $(selected_option).data('additional-fieldset')) {
242
- $(this).siblings('.additional-fieldset:not(.' + klass + ')').hide('slow');
243
- $(this).siblings('.' + klass).show('slow');
244
- } else {
245
- $(this).siblings('.additional-fieldset').hide('slow');
246
- }
247
- });
248
- })( jQuery );
@@ -1,331 +0,0 @@
1
- /*
2
- * RailsAdmin filtering multiselect @VERSION
3
- *
4
- * License
5
- *
6
- * http://www.railsadmin.org
7
- *
8
- * Depends:
9
- * jquery.ui.core.js
10
- * jquery.ui.widget.js
11
- */
12
- (function($) {
13
- $.widget("ra.filteringMultiselect", {
14
- _cache: {},
15
- options: {
16
- createQuery: function(query) {
17
- return { query: query };
18
- },
19
- sortable: false,
20
- removable: true,
21
- regional: {
22
- add: 'Add',
23
- chooseAll: 'Choose all',
24
- clearAll: 'Clear all',
25
- down: 'Down',
26
- remove: 'Remove',
27
- search: 'Search',
28
- up: 'Up'
29
- },
30
- searchDelay: 400,
31
- remote_source: null,
32
- xhr: false
33
- },
34
-
35
- _create: function() {
36
- this._cache = {};
37
- this._build();
38
- this._buildCache();
39
- this._bindEvents();
40
- },
41
-
42
- _build: function() {
43
- var i;
44
-
45
- this.wrapper = $('<div class="ra-multiselect">');
46
-
47
- this.wrapper.insertAfter(this.element);
48
-
49
- this.header = $('<div class="ra-multiselect-header ui-helper-clearfix">');
50
-
51
- this.filter = $('<input type="search" placeholder="' + this.options.regional.search + '" class="form-control ra-multiselect-search"/>');
52
-
53
- this.header.append(this.filter);
54
-
55
- this.wrapper.append(this.header);
56
-
57
- this.columns = {
58
- left: $('<div class="ra-multiselect-column ra-multiselect-left">'),
59
- center: $('<div class="ra-multiselect-column ra-multiselect-center">'),
60
- right: $('<div class="ra-multiselect-column ra-multiselect-right">')
61
- };
62
-
63
- for (i in this.columns) {
64
- if (this.columns.hasOwnProperty(i)) {
65
- this.wrapper.append(this.columns[i]);
66
- }
67
- }
68
-
69
- this.collection = $('<select multiple="multiple"></select>');
70
-
71
- this.collection.addClass("form-control ra-multiselect-collection");
72
-
73
- this.addAll = $('<a href="#" class="ra-multiselect-item-add-all"><span class="ui-icon ui-icon-circle-triangle-e"></span>' + this.options.regional.chooseAll + '</a>');
74
-
75
- this.columns.left.html(this.collection)
76
- .append(this.addAll);
77
-
78
- this.collection.wrap('<div class="wrapper"/>');
79
-
80
-
81
- this.add = $('<a href="#" class="ui-icon ui-icon-circle-triangle-e ra-multiselect-item-add">' + this.options.regional.add + '</a>');
82
- this.columns.center.append(this.add);
83
-
84
- if (this.options.removable) {
85
- this.remove = $('<a href="#" class="ui-icon ui-icon-circle-triangle-w ra-multiselect-item-remove">' + this.options.regional.remove + '</a>');
86
- this.columns.center.append(this.remove);
87
- }
88
-
89
- if (this.options.sortable) {
90
- this.up = $('<a href="#" class="ui-icon ui-icon-circle-triangle-n ra-multiselect-item-up">' + this.options.regional.up + '</a>');
91
- this.down = $('<a href="#" class="ui-icon ui-icon-circle-triangle-s ra-multiselect-item-down">' + this.options.regional.down + '</a>');
92
- this.columns.center.append(this.up).append(this.down);
93
- }
94
-
95
- this.selection = $('<select class="form-control ra-multiselect-selection" multiple="multiple"></select>');
96
- this.columns.right.append(this.selection);
97
-
98
-
99
- if (this.options.removable) {
100
- this.removeAll = $('<a href="#" class="ra-multiselect-item-remove-all"><span class="ui-icon ui-icon-circle-triangle-w"></span>' + this.options.regional.clearAll + '</a>');
101
- this.columns.right.append(this.removeAll);
102
- }
103
-
104
- this.selection.wrap('<div class="wrapper"/>');
105
-
106
- this.element.css({display: "none"});
107
-
108
- this.tooManyObjectsPlaceholder = $('<option disabled="disabled" />').text(RailsAdmin.I18n.t("too_many_objects"));
109
- this.noObjectsPlaceholder = $('<option disabled="disabled" />').text(RailsAdmin.I18n.t("no_objects"))
110
-
111
- if(this.options.xhr){
112
- this.collection.append(this.tooManyObjectsPlaceholder);
113
- }
114
- },
115
-
116
- _bindEvents: function() {
117
- var widget = this;
118
-
119
- /* Add all to selection */
120
- this.addAll.click(function(e){
121
- widget._select($('option:not(:disabled)', widget.collection));
122
- e.preventDefault();
123
- widget.selection.trigger('change');
124
- });
125
-
126
- /* Add to selection */
127
- this.add.click(function(e){
128
- widget._select($(':selected', widget.collection));
129
-
130
- e.preventDefault();
131
- widget.selection.trigger('change');
132
- });
133
-
134
- if (this.options.removable) {
135
- /* Remove all from selection */
136
- this.removeAll.click(function(e){
137
- widget._deSelect($('option', widget.selection));
138
- e.preventDefault();
139
- widget.selection.trigger('change');
140
- });
141
-
142
- /* Remove from selection */
143
- this.remove.click(function(e){
144
- widget._deSelect($(':selected', widget.selection));
145
- e.preventDefault();
146
- widget.selection.trigger('change');
147
- });
148
- }
149
-
150
- var timeout = null;
151
- if(this.options.sortable) {
152
- /* Move selection up */
153
- this.up.click(function(e){
154
- widget._move('up', $(':selected', widget.selection));
155
- e.preventDefault();
156
- });
157
-
158
- /* Move selection down */
159
- this.down.click(function(e){
160
- widget._move('down', $(':selected', widget.selection));
161
- e.preventDefault();
162
- });
163
- }
164
-
165
- /* Typing to the filter */
166
- this.filter.bind('keyup click', function(e){
167
- if (timeout) { clearTimeout(timeout); }
168
- timeout = setTimeout(function() {
169
- widget._queryFilter(widget.filter.val());
170
- }, widget.options.searchDelay
171
- );
172
- });
173
- },
174
-
175
- _queryFilter: function(val) {
176
- var widget = this;
177
- widget._query(val, function(matches) {
178
-
179
- var filtered = [];
180
- var i;
181
-
182
- for (i = 0; i < matches.length; i++) {
183
- if (!widget.selected(matches[i].id)) {
184
- filtered.push(i);
185
- }
186
- }
187
- if (filtered.length > 0) {
188
- widget.collection[0].innerHTML = '';
189
- for (i = 0; i < filtered.length; i++) {
190
- var newOptions = $('<option></option>')
191
- .prop('value', matches[filtered[i]].id)
192
- .prop('title', matches[filtered[i]].label)
193
- .text(matches[filtered[i]].label);
194
- $(widget.collection[0]).append(newOptions);
195
- }
196
- } else {
197
- widget.collection[0].innerHTML = widget.noObjectsPlaceholder;
198
- }
199
- });
200
- },
201
-
202
- /*
203
- * Cache key is stored in the format `o_<option value>` to avoid JS
204
- * engine coercing string keys to int keys, and thereby preserving
205
- * the insertion order. The value for each key is in turn an object
206
- * that stores the option tag's HTML text and the value. Example:
207
- * cache = {
208
- * 'o_271': { id: 271, value: 'CartItem #271'},
209
- * 'o_270': { id: 270, value: 'CartItem #270'}
210
- * }
211
- */
212
- _buildCache: function(options) {
213
- var widget = this;
214
-
215
- this.element.find("option").each(function(i, option) {
216
- widget._cache['o_' + option.value] = {id: option.value, value: $(option).text()};
217
- if (option.selected) {
218
- $(option).clone().appendTo(widget.selection).prop("selected", false).prop("title", $(option).text());
219
- } else {
220
- $(option).clone().appendTo(widget.collection).prop("selected", false).prop("title", $(option).text());
221
- }
222
- });
223
- },
224
-
225
- _deSelect: function(options) {
226
- var widget = this;
227
- options.each(function(i, option) {
228
- widget.element.find('option[value="' + option.value + '"]').removeAttr("selected");
229
- });
230
- $(options).appendTo(this.collection).prop('selected', false);
231
- },
232
-
233
- _query: function(query, success) {
234
-
235
- var i, matches = [];
236
-
237
- if (query === "") {
238
-
239
- if (!this.options.xhr) {
240
- for (i in this._cache) {
241
- if (this._cache.hasOwnProperty(i)) {
242
- option = this._cache[i];
243
- matches.push({id: option.id, label: option.value});
244
- }
245
- }
246
- success.apply(this, [matches]);
247
- } else {
248
- this.collection.html(this.tooManyObjectsPlaceholder);
249
- }
250
-
251
- } else {
252
-
253
- if (this.options.xhr) {
254
-
255
- $.ajax({
256
- beforeSend: function(xhr) {
257
- xhr.setRequestHeader("Accept", "application/json");
258
- },
259
- url: this.options.remote_source,
260
- data: this.options.createQuery(query),
261
- success: success
262
- });
263
-
264
- } else {
265
-
266
- query = new RegExp(query + '.*', 'i');
267
-
268
- for (i in this._cache) {
269
- if (this._cache.hasOwnProperty(i) && query.test(this._cache[i]['value'])) {
270
- option = this._cache[i];
271
- matches.push({id: option.id, label: option.value});
272
- }
273
- }
274
-
275
- success.apply(this, [matches]);
276
- }
277
- }
278
- },
279
-
280
- _select: function(options) {
281
- var widget = this;
282
- options.each(function(i, option) {
283
- var el = widget.element.find('option[value="' + option.value + '"]');
284
- if (el.length) {
285
- el.prop("selected", true);
286
- } else {
287
- widget.element.append($('<option></option>').prop('value', option.value).prop('selected', true));
288
- }
289
- });
290
- $(options).appendTo(this.selection).prop('selected', false);
291
- },
292
-
293
- _move: function(direction, options) {
294
- var widget = this;
295
- if(direction == 'up') {
296
- options.each(function(i, option) {
297
- var prev = $(option).prev();
298
- if (prev.length > 0) {
299
- var el = widget.element.find('option[value="' + option.value + '"]');
300
- var el_prev = widget.element.find('option[value="' + prev[0].value + '"]');
301
- el_prev.before(el);
302
- prev.before($(option));
303
- }
304
- });
305
- } else {
306
- $.fn.reverse = [].reverse; // needed to lower last items first
307
- options.reverse().each(function(i, option) {
308
- var next = $(option).next();
309
- if (next.length > 0) {
310
- var el = widget.element.find('option[value="' + option.value + '"]');
311
- var el_next = widget.element.find('option[value="' + next[0].value + '"]');
312
- el_next.after(el);
313
- next.after($(option));
314
- }
315
- });
316
- }
317
- },
318
-
319
- selected: function(value) {
320
- if (this.selection[0].querySelectorAll('option[value="' + value + '"]')[0]) {
321
- return true;
322
- }
323
- },
324
-
325
- destroy: function() {
326
- this.wrapper.remove();
327
- this.element.css({display: "inline"});
328
- $.Widget.prototype.destroy.apply(this, arguments);
329
- }
330
- });
331
- })(jQuery);