spree_backend 4.1.12 → 4.2.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/backend-add.svg +5 -0
  3. data/app/assets/images/backend-adjust.svg +5 -0
  4. data/app/assets/images/backend-approve.svg +3 -0
  5. data/app/assets/images/backend-arrow-down.svg +1 -0
  6. data/app/assets/images/backend-arrow-left.svg +1 -0
  7. data/app/assets/images/backend-arrow-right.svg +1 -0
  8. data/app/assets/images/backend-arrow-up.svg +1 -0
  9. data/app/assets/images/backend-calendar.svg +9 -0
  10. data/app/assets/images/backend-cancel.svg +7 -0
  11. data/app/assets/images/backend-capture.svg +3 -0
  12. data/app/assets/images/backend-cart.svg +1 -0
  13. data/app/assets/images/backend-chevron-down.svg +1 -0
  14. data/app/assets/images/backend-chevron-left.svg +1 -0
  15. data/app/assets/images/backend-chevron-right.svg +1 -0
  16. data/app/assets/images/backend-chevron-up.svg +1 -0
  17. data/app/assets/images/backend-clone.svg +7 -0
  18. data/app/assets/images/backend-close.svg +7 -0
  19. data/app/assets/images/backend-delete.svg +6 -0
  20. data/app/assets/images/backend-double-chevron-left.svg +15 -0
  21. data/app/assets/images/backend-double-chevron-right.svg +17 -0
  22. data/app/assets/images/backend-edit.svg +14 -0
  23. data/app/assets/images/backend-enter.svg +6 -0
  24. data/app/assets/images/backend-envelope.svg +3 -0
  25. data/app/assets/images/backend-exit.svg +13 -0
  26. data/app/assets/images/backend-extensions.svg +4 -0
  27. data/app/assets/images/backend-eye-open.svg +8 -0
  28. data/app/assets/images/backend-file.svg +6 -0
  29. data/app/assets/images/backend-filter.svg +3 -0
  30. data/app/assets/images/backend-folder.svg +4 -0
  31. data/app/assets/images/backend-images.svg +7 -0
  32. data/app/assets/images/backend-info.svg +7 -0
  33. data/app/assets/images/backend-items.svg +5 -0
  34. data/app/assets/images/backend-leaf.svg +7 -0
  35. data/app/assets/images/backend-list.svg +5 -0
  36. data/app/assets/images/backend-location.svg +4 -0
  37. data/app/assets/images/backend-menu.svg +5 -0
  38. data/app/assets/images/backend-money.svg +1 -0
  39. data/app/assets/images/backend-move.svg +5 -0
  40. data/app/assets/images/backend-ok.svg +3 -0
  41. data/app/assets/images/backend-pagination-double-arrow-right.svg +8 -0
  42. data/app/assets/images/backend-payments.svg +8 -0
  43. data/app/assets/images/backend-pencil.svg +1 -0
  44. data/app/assets/images/backend-products.svg +5 -0
  45. data/app/assets/images/backend-promotion.svg +8 -0
  46. data/app/assets/images/backend-recycle.svg +5 -0
  47. data/app/assets/images/backend-remove.svg +6 -0
  48. data/app/assets/images/backend-report.svg +6 -0
  49. data/app/assets/images/backend-resume.svg +5 -0
  50. data/app/assets/images/backend-returns.svg +3 -0
  51. data/app/assets/images/backend-save.svg +3 -0
  52. data/app/assets/images/backend-search.svg +1 -0
  53. data/app/assets/images/backend-settings.svg +6 -0
  54. data/app/assets/images/backend-shipping.svg +3 -0
  55. data/app/assets/images/backend-slack.svg +3 -0
  56. data/app/assets/images/backend-sort.svg +5 -0
  57. data/app/assets/images/backend-split.svg +3 -0
  58. data/app/assets/images/backend-store.svg +14 -0
  59. data/app/assets/images/backend-tick.svg +3 -0
  60. data/app/assets/images/backend-update.svg +3 -0
  61. data/app/assets/images/backend-user.svg +3 -0
  62. data/app/assets/images/backend-users.svg +6 -0
  63. data/app/assets/images/backend-view.svg +8 -0
  64. data/app/assets/images/backend-void.svg +7 -0
  65. data/app/assets/javascripts/spree/backend.js +5 -3
  66. data/app/assets/javascripts/spree/backend/address_states.js +20 -9
  67. data/app/assets/javascripts/spree/backend/admin.js +160 -149
  68. data/app/assets/javascripts/spree/backend/calculator.js +2 -0
  69. data/app/assets/javascripts/spree/backend/checkouts/edit.js +99 -70
  70. data/app/assets/javascripts/spree/backend/flatpickr_locals.js +37 -0
  71. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +1 -1
  72. data/app/assets/javascripts/spree/backend/multi_currency.js +38 -0
  73. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +31 -37
  74. data/app/assets/javascripts/spree/backend/option_value_picker.js +50 -23
  75. data/app/assets/javascripts/spree/backend/payments/edit.js +4 -3
  76. data/app/assets/javascripts/spree/backend/payments/new.js +18 -18
  77. data/app/assets/javascripts/spree/backend/product_picker.js +35 -19
  78. data/app/assets/javascripts/spree/backend/promotions.js +33 -28
  79. data/app/assets/javascripts/spree/backend/shipments.js +28 -37
  80. data/app/assets/javascripts/spree/backend/spree-select2.js +38 -5
  81. data/app/assets/javascripts/spree/backend/stock_management.js +2 -1
  82. data/app/assets/javascripts/spree/backend/stock_transfer.js +32 -13
  83. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +30 -43
  84. data/app/assets/javascripts/spree/backend/taxon_tree_menu.js +4 -4
  85. data/app/assets/javascripts/spree/backend/taxonomy.js +8 -1
  86. data/app/assets/javascripts/spree/backend/taxons.js +85 -63
  87. data/app/assets/javascripts/spree/backend/user_picker.js +16 -18
  88. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +23 -22
  89. data/app/assets/javascripts/spree/backend/variant_management.js +2 -1
  90. data/app/assets/stylesheets/spree/backend.css +1 -1
  91. data/app/assets/stylesheets/spree/backend/components/_badges.scss +1 -1
  92. data/app/assets/stylesheets/spree/backend/components/_buttons.scss +27 -11
  93. data/app/assets/stylesheets/spree/backend/components/_filters.scss +35 -5
  94. data/app/assets/stylesheets/spree/backend/components/_icons.scss +39 -4
  95. data/app/assets/stylesheets/spree/backend/components/_main.scss +32 -6
  96. data/app/assets/stylesheets/spree/backend/components/_navbar.scss +16 -8
  97. data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +119 -55
  98. data/app/assets/stylesheets/spree/backend/components/_tables.scss +62 -19
  99. data/app/assets/stylesheets/spree/backend/components/_taxon_products_view.scss +26 -63
  100. data/app/assets/stylesheets/spree/backend/global/_variables.scss +6 -2
  101. data/app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss +95 -0
  102. data/app/assets/stylesheets/spree/backend/plugins/_jquery_ui.scss +0 -117
  103. data/app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss +11 -0
  104. data/app/assets/stylesheets/spree/backend/plugins/select2_bootstrap4.scss +622 -0
  105. data/app/assets/stylesheets/spree/backend/shared/_base.scss +40 -0
  106. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +38 -0
  107. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +7 -1
  108. data/app/assets/stylesheets/spree/backend/views/_order_payments.scss +12 -0
  109. data/app/assets/stylesheets/spree/backend/views/_product_properties.scss +11 -0
  110. data/app/assets/stylesheets/spree/backend/views/prototypes.scss +42 -0
  111. data/app/controllers/spree/admin/adjustments_controller.rb +8 -0
  112. data/app/controllers/spree/admin/general_settings_controller.rb +27 -0
  113. data/app/controllers/spree/admin/orders_controller.rb +15 -2
  114. data/app/controllers/spree/admin/prices_controller.rb +39 -0
  115. data/app/controllers/spree/admin/products_controller.rb +2 -2
  116. data/app/controllers/spree/admin/states_controller.rb +1 -1
  117. data/app/controllers/spree/admin/stock_transfers_controller.rb +8 -1
  118. data/app/controllers/spree/admin/stores_controller.rb +66 -1
  119. data/app/controllers/spree/admin/taxons_controller.rb +20 -6
  120. data/app/helpers/spree/admin/base_helper.rb +46 -13
  121. data/app/helpers/spree/admin/navigation_helper.rb +61 -20
  122. data/app/helpers/spree/admin/orders_helper.rb +2 -2
  123. data/app/helpers/spree/admin/payments_helper.rb +3 -3
  124. data/app/helpers/spree/admin/stock_movements_helper.rb +2 -0
  125. data/app/helpers/spree/admin/stores_helper.rb +9 -0
  126. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_first_page.html.erb +1 -1
  127. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_gap.html.erb +1 -1
  128. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_last_page.html.erb +1 -1
  129. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_next_page.html.erb +1 -1
  130. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_page.html.erb +0 -0
  131. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_paginator.html.erb +1 -1
  132. data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_prev_page.html.erb +1 -1
  133. data/app/views/spree/admin/adjustments/_adjustment.html.erb +2 -2
  134. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +16 -16
  135. data/app/views/spree/admin/adjustments/edit.html.erb +2 -2
  136. data/app/views/spree/admin/adjustments/index.html.erb +3 -3
  137. data/app/views/spree/admin/adjustments/new.html.erb +1 -1
  138. data/app/views/spree/admin/countries/_form.html.erb +9 -4
  139. data/app/views/spree/admin/countries/index.html.erb +27 -24
  140. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +37 -35
  141. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +5 -1
  142. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +47 -43
  143. data/app/views/spree/admin/customer_returns/index.html.erb +5 -3
  144. data/app/views/spree/admin/customer_returns/new.html.erb +2 -2
  145. data/app/views/spree/admin/general_settings/edit.html.erb +28 -4
  146. data/app/views/spree/admin/images/edit.html.erb +2 -2
  147. data/app/views/spree/admin/images/index.html.erb +7 -7
  148. data/app/views/spree/admin/images/new.html.erb +2 -2
  149. data/app/views/spree/admin/log_entries/index.html.erb +4 -3
  150. data/app/views/spree/admin/option_types/_form.html.erb +9 -0
  151. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
  152. data/app/views/spree/admin/option_types/edit.html.erb +22 -20
  153. data/app/views/spree/admin/option_types/index.html.erb +29 -25
  154. data/app/views/spree/admin/orders/_add_line_item.html.erb +1 -1
  155. data/app/views/spree/admin/orders/_add_product.html.erb +1 -1
  156. data/app/views/spree/admin/orders/_adjustments.html.erb +26 -26
  157. data/app/views/spree/admin/orders/_channel_form.html.erb +18 -0
  158. data/app/views/spree/admin/orders/_line_items.html.erb +7 -7
  159. data/app/views/spree/admin/orders/_order_actions.html.erb +1 -1
  160. data/app/views/spree/admin/orders/_risk_analysis.html.erb +44 -42
  161. data/app/views/spree/admin/orders/_shipment.html.erb +9 -7
  162. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +5 -5
  163. data/app/views/spree/admin/orders/_store_form.html.erb +4 -4
  164. data/app/views/spree/admin/orders/channel.html.erb +7 -0
  165. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +35 -12
  166. data/app/views/spree/admin/orders/customer_details/_form.html.erb +3 -3
  167. data/app/views/spree/admin/orders/customer_details/edit.html.erb +1 -1
  168. data/app/views/spree/admin/orders/index.html.erb +139 -132
  169. data/app/views/spree/admin/payment_methods/_form.html.erb +65 -46
  170. data/app/views/spree/admin/payment_methods/index.html.erb +7 -5
  171. data/app/views/spree/admin/payments/_capture_events.html.erb +18 -16
  172. data/app/views/spree/admin/payments/_form.html.erb +1 -1
  173. data/app/views/spree/admin/payments/_list.html.erb +39 -37
  174. data/app/views/spree/admin/payments/index.html.erb +2 -3
  175. data/app/views/spree/admin/payments/new.html.erb +1 -1
  176. data/app/views/spree/admin/payments/show.html.erb +1 -1
  177. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +30 -30
  178. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +20 -18
  179. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +28 -26
  180. data/app/views/spree/admin/prices/_variant_prices.html.erb +43 -0
  181. data/app/views/spree/admin/prices/index.html.erb +21 -0
  182. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +16 -4
  183. data/app/views/spree/admin/product_properties/index.html.erb +24 -19
  184. data/app/views/spree/admin/products/_add_stock_form.html.erb +1 -1
  185. data/app/views/spree/admin/products/_autocomplete.js.erb +27 -21
  186. data/app/views/spree/admin/products/_form.html.erb +44 -13
  187. data/app/views/spree/admin/products/edit.html.erb +1 -1
  188. data/app/views/spree/admin/products/index.html.erb +26 -20
  189. data/app/views/spree/admin/products/new.html.erb +12 -3
  190. data/app/views/spree/admin/products/stock.html.erb +3 -3
  191. data/app/views/spree/admin/promotion_categories/index.html.erb +4 -1
  192. data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
  193. data/app/views/spree/admin/promotions/_actions.html.erb +2 -2
  194. data/app/views/spree/admin/promotions/_form.html.erb +45 -18
  195. data/app/views/spree/admin/promotions/_promotion_action.html.erb +1 -1
  196. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -1
  197. data/app/views/spree/admin/promotions/_rules.html.erb +4 -4
  198. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +1 -1
  199. data/app/views/spree/admin/promotions/edit.html.erb +2 -2
  200. data/app/views/spree/admin/promotions/index.html.erb +5 -3
  201. data/app/views/spree/admin/promotions/new.html.erb +7 -6
  202. data/app/views/spree/admin/promotions/rules/_country.html.erb +1 -1
  203. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +5 -5
  204. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +13 -19
  205. data/app/views/spree/admin/promotions/rules/_product.html.erb +2 -2
  206. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +2 -2
  207. data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
  208. data/app/views/spree/admin/properties/index.html.erb +5 -3
  209. data/app/views/spree/admin/prototypes/_prototypes.html.erb +30 -28
  210. data/app/views/spree/admin/prototypes/index.html.erb +21 -19
  211. data/app/views/spree/admin/prototypes/show.html.erb +21 -8
  212. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  213. data/app/views/spree/admin/refunds/new.html.erb +3 -3
  214. data/app/views/spree/admin/reimbursement_types/_form.html.erb +4 -4
  215. data/app/views/spree/admin/reimbursement_types/index.html.erb +4 -2
  216. data/app/views/spree/admin/reimbursements/edit.html.erb +68 -63
  217. data/app/views/spree/admin/reimbursements/index.html.erb +21 -20
  218. data/app/views/spree/admin/reimbursements/show.html.erb +68 -60
  219. data/app/views/spree/admin/reports/index.html.erb +18 -17
  220. data/app/views/spree/admin/reports/sales_total.html.erb +20 -19
  221. data/app/views/spree/admin/return_authorizations/_form.html.erb +10 -7
  222. data/app/views/spree/admin/return_authorizations/edit.html.erb +3 -3
  223. data/app/views/spree/admin/return_authorizations/index.html.erb +5 -3
  224. data/app/views/spree/admin/return_authorizations/new.html.erb +2 -2
  225. data/app/views/spree/admin/return_index/customer_returns.html.erb +6 -6
  226. data/app/views/spree/admin/return_index/return_authorizations.html.erb +6 -6
  227. data/app/views/spree/admin/roles/index.html.erb +21 -19
  228. data/app/views/spree/admin/shared/_account_nav.html.erb +51 -65
  229. data/app/views/spree/admin/shared/_address_form.html.erb +31 -73
  230. data/app/views/spree/admin/shared/_cal_close.html.erb +10 -0
  231. data/app/views/spree/admin/shared/_content_header.html.erb +40 -21
  232. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +2 -2
  233. data/app/views/spree/admin/shared/_head.html.erb +4 -0
  234. data/app/views/spree/admin/shared/_header.html.erb +14 -11
  235. data/app/views/spree/admin/shared/_index_table_options.html.erb +5 -7
  236. data/app/views/spree/admin/shared/_main_menu.html.erb +25 -14
  237. data/app/views/spree/admin/shared/_new_resource_links.html.erb +2 -2
  238. data/app/views/spree/admin/shared/_order_summary.html.erb +27 -21
  239. data/app/views/spree/admin/shared/_order_tabs.html.erb +18 -9
  240. data/app/views/spree/admin/shared/_product_tabs.html.erb +13 -5
  241. data/app/views/spree/admin/shared/_refunds.html.erb +31 -29
  242. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +27 -6
  243. data/app/views/spree/admin/shared/_sidebar.html.erb +19 -1
  244. data/app/views/spree/admin/shared/_table_filter.html.erb +3 -3
  245. data/app/views/spree/admin/shared/_translations.html.erb +34 -1
  246. data/app/views/spree/admin/shared/_update_order_state.js.erb +6 -2
  247. data/app/views/spree/admin/shared/_version.html.erb +1 -1
  248. data/app/views/spree/admin/shared/named_types/_index.html.erb +4 -2
  249. data/app/views/spree/admin/shipping_categories/index.html.erb +3 -1
  250. data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
  251. data/app/views/spree/admin/shipping_methods/index.html.erb +8 -2
  252. data/app/views/spree/admin/state_changes/index.html.erb +5 -2
  253. data/app/views/spree/admin/states/_state_list.html.erb +25 -24
  254. data/app/views/spree/admin/states/index.html.erb +1 -1
  255. data/app/views/spree/admin/stock_locations/_form.html.erb +1 -1
  256. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +2 -2
  257. data/app/views/spree/admin/stock_locations/index.html.erb +5 -3
  258. data/app/views/spree/admin/stock_movements/index.html.erb +28 -26
  259. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +20 -18
  260. data/app/views/spree/admin/stock_transfers/index.html.erb +46 -39
  261. data/app/views/spree/admin/stock_transfers/new.html.erb +4 -4
  262. data/app/views/spree/admin/stock_transfers/show.html.erb +3 -3
  263. data/app/views/spree/admin/store_credit_categories/index.html.erb +3 -1
  264. data/app/views/spree/admin/store_credits/index.html.erb +3 -1
  265. data/app/views/spree/admin/stores/_form.html.erb +199 -70
  266. data/app/views/spree/admin/stores/edit.html.erb +1 -1
  267. data/app/views/spree/admin/stores/index.html.erb +14 -7
  268. data/app/views/spree/admin/tax_categories/index.html.erb +29 -27
  269. data/app/views/spree/admin/tax_rates/index.html.erb +5 -3
  270. data/app/views/spree/admin/taxonomies/_list.html.erb +24 -22
  271. data/app/views/spree/admin/taxonomies/edit.html.erb +2 -2
  272. data/app/views/spree/admin/taxonomies/index.html.erb +1 -1
  273. data/app/views/spree/admin/taxons/_form.html.erb +40 -36
  274. data/app/views/spree/admin/taxons/_taxon_table.html.erb +24 -22
  275. data/app/views/spree/admin/taxons/edit.html.erb +6 -2
  276. data/app/views/spree/admin/taxons/index.html.erb +2 -2
  277. data/app/views/spree/admin/users/_addresses_form.html.erb +4 -6
  278. data/app/views/spree/admin/users/_lifetime_stats.html.erb +24 -23
  279. data/app/views/spree/admin/users/_sidebar.html.erb +5 -5
  280. data/app/views/spree/admin/users/_user_page_actions.html.erb +1 -1
  281. data/app/views/spree/admin/users/edit.html.erb +2 -2
  282. data/app/views/spree/admin/users/index.html.erb +25 -23
  283. data/app/views/spree/admin/users/items.html.erb +3 -2
  284. data/app/views/spree/admin/users/orders.html.erb +30 -29
  285. data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +3 -3
  286. data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +2 -2
  287. data/app/views/spree/admin/variants/_form.html.erb +16 -4
  288. data/app/views/spree/admin/variants/_split.js.erb +2 -2
  289. data/app/views/spree/admin/variants/index.html.erb +7 -5
  290. data/app/views/spree/admin/zones/index.html.erb +5 -5
  291. data/app/views/spree/layouts/admin.html.erb +33 -27
  292. data/config/initializers/ransack.rb +31 -0
  293. data/config/routes.rb +8 -1
  294. data/lib/spree/backend.rb +2 -0
  295. data/lib/spree_backend.rb +0 -1
  296. data/spec/fixtures/thinking-cat.jpg +0 -0
  297. data/spree_backend.gemspec +7 -5
  298. data/vendor/assets/javascripts/js.cookie.js +154 -156
  299. data/vendor/assets/javascripts/purify.js +1217 -0
  300. data/vendor/assets/javascripts/sortable.js +3709 -0
  301. data/vendor/assets/stylesheets/animate.css +7 -3156
  302. data/vendor/assets/stylesheets/jquery.jstree/themes/spree/style.scss +23 -9
  303. metadata +141 -26
  304. data/app/assets/javascripts/spree/backend/tag_picker.js +0 -52
  305. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +0 -141
@@ -6,10 +6,12 @@ $(function () {
6
6
  // eslint-disable-next-line
7
7
  if (calculatorSelect.prop('value') == originalCalcType) {
8
8
  $('div.calculator-settings').show()
9
+ $('#shipping_method_calculator_attributes_preferred_currency').removeAttr('disabled')
9
10
  $('.calculator-settings-warning').hide()
10
11
  $('.calculator-settings').find('input, textarea').prop('disabled', false)
11
12
  } else {
12
13
  $('div.calculator-settings').hide()
14
+ $('#shipping_method_calculator_attributes_preferred_currency').attr('disabled', 'disabled')
13
15
  $('.calculator-settings-warning').show()
14
16
  $('.calculator-settings').find('input, textarea').prop('disabled', true)
15
17
  }
@@ -1,84 +1,109 @@
1
- //= require_self
2
- /* global customerTemplate, update_state */
3
- // eslint-disable-next-line camelcase
4
- var clear_address_fields = function () {
5
- var fields = ['firstname', 'lastname', 'company', 'address1', 'address2', 'city', 'zipcode', 'state_id', 'country_id', 'phone']
6
- $.each(fields, function (i, field) {
7
- $('#order_bill_address_attributes_' + field).val('')
8
- $('#order_ship_address_attributes_' + field).val('')
1
+ function clearAddressFields(addressKinds) {
2
+ if (addressKinds === undefined) {
3
+ addressKinds = ['ship', 'bill']
4
+ }
5
+ addressKinds.forEach(function(addressKind) {
6
+ ADDRESS_FIELDS.forEach(function(field) {
7
+ $('#order_' + addressKind + '_address_attributes_' + field).val('')
8
+ })
9
9
  })
10
10
  }
11
11
 
12
- $(document).ready(function () {
13
- if ($('#customer_autocomplete_template').length > 0) {
14
- window.customerTemplate = Handlebars.compile($('#customer_autocomplete_template').text())
12
+ function formatCustomerResult(customer) {
13
+ var escapedResult = window.customerTemplate({
14
+ customer: customer,
15
+ bill_address: customer.bill_address,
16
+ ship_address: customer.ship_address
17
+ })
18
+ return $(escapedResult)
19
+ }
20
+
21
+ function formatCustomerAddress(address, kind) {
22
+ $('#order_' + kind + '_address_attributes_firstname').val(address.firstname)
23
+ $('#order_' + kind + '_address_attributes_lastname').val(address.lastname)
24
+ $('#order_' + kind + '_address_attributes_address1').val(address.address1)
25
+ $('#order_' + kind + '_address_attributes_company').val(address.company)
26
+ $('#order_' + kind + '_address_attributes_address2').val(address.address2)
27
+ $('#order_' + kind + '_address_attributes_city').val(address.city)
28
+ $('#order_' + kind + '_address_attributes_zipcode').val(address.zipcode)
29
+ $('#order_' + kind + '_address_attributes_phone').val(address.phone)
30
+ $('#order_' + kind + '_address_attributes_phone').val(address.phone)
31
+ $('#order_' + kind + '_address_attributes_country_id').val(address.country_id)
32
+ $('#order_' + kind + '_address_attributes_country_id').trigger('change')
33
+
34
+ var stateSelect = $('#order_' + kind + '_address_attributes_state_id')
35
+
36
+ update_state(kind.charAt(0), function() {
37
+ stateSelect.val(address.state_id).trigger('change')
38
+ })
39
+ }
40
+
41
+ function formatCustomerSelection(customer) {
42
+ $('#order_email').val(customer.email)
43
+ $('#order_user_id').val(customer.id)
44
+ $('#guest_checkout_true').prop('checked', false)
45
+ $('#guest_checkout_false').prop('checked', true)
46
+ $('#guest_checkout_false').prop('disabled', false)
47
+
48
+ var billAddress = customer.bill_address
49
+ var shipAddress = customer.ship_address
50
+
51
+ if (billAddress) {
52
+ formatCustomerAddress(billAddress, 'bill')
53
+ } else {
54
+ clearAddressFields(['bill'])
15
55
  }
16
56
 
17
- var formatCustomerResult = function (customer) {
18
- return customerTemplate({
19
- customer: customer,
20
- bill_address: customer.bill_address,
21
- ship_address: customer.ship_address
22
- })
57
+ if (shipAddress) {
58
+ formatCustomerAddress(shipAddress, 'ship')
59
+ } else {
60
+ clearAddressFields(['ship'])
23
61
  }
24
62
 
25
- if ($('#customer_search').length > 0) {
26
- $('#customer_search').select2({
27
- placeholder: Spree.translations.choose_a_customer,
28
- ajax: {
29
- url: Spree.routes.users_api,
30
- datatype: 'json',
31
- cache: true,
32
- data: function (term, page) {
33
- return {
34
- q: {
35
- 'm': 'or',
36
- 'email_start': term,
37
- 'ship_address_firstname_start': term,
38
- 'ship_address_lastname_start': term,
39
- 'bill_address_firstname_start': term,
40
- 'bill_address_lastname_start': term
41
- },
42
- token: Spree.api_key
43
- }
44
- },
45
- results: function (data, page) {
46
- return { results: data.users }
63
+ return customer.email
64
+ }
65
+
66
+ $.fn.customerAutocomplete = function() {
67
+ this.select2({
68
+ minimumInputLength: 3,
69
+ placeholder: Spree.translations.choose_a_customer,
70
+ ajax: {
71
+ url: Spree.routes.users_api,
72
+ datatype: 'json',
73
+ data: function (params) {
74
+ return {
75
+ q: {
76
+ 'm': 'or',
77
+ email_start: params.term,
78
+ ship_address_firstname_start: params.term,
79
+ ship_address_lastname_start: params.term,
80
+ bill_address_firstname_start: params.term,
81
+ bill_address_lastname_start: params.term
82
+ },
83
+ token: Spree.api_key
47
84
  }
48
85
  },
49
- dropdownCssClass: 'customer_search',
50
- formatResult: formatCustomerResult,
51
- formatSelection: function (customer) {
52
- $('#order_email').val(customer.email)
53
- $('#order_user_id').val(customer.id)
54
- $('#guest_checkout_true').prop('checked', false)
55
- $('#guest_checkout_false').prop('checked', true)
56
- $('#guest_checkout_false').prop('disabled', false)
57
-
58
- var billAddress = customer.bill_address
59
- if (billAddress) {
60
- $('#order_bill_address_attributes_firstname').val(billAddress.firstname)
61
- $('#order_bill_address_attributes_lastname').val(billAddress.lastname)
62
- $('#order_bill_address_attributes_address1').val(billAddress.address1)
63
- $('#order_bill_address_attributes_address2').val(billAddress.address2)
64
- $('#order_bill_address_attributes_city').val(billAddress.city)
65
- $('#order_bill_address_attributes_zipcode').val(billAddress.zipcode)
66
- $('#order_bill_address_attributes_phone').val(billAddress.phone)
67
-
68
- $('#order_bill_address_attributes_country_id').select2('val', billAddress.country_id).promise().done(function () {
69
- update_state('b', function () {
70
- $('#order_bill_address_attributes_state_id').select2('val', billAddress.state_id)
71
- })
72
- })
73
- } else {
74
- clear_address_fields()
75
- }
76
- return Select2.util.escapeMarkup(customer.email)
86
+ processResults: function (data) {
87
+ return { results: data.users }
77
88
  }
78
- })
89
+ },
90
+ templateResult: formatCustomerResult
91
+ }).on('select2:select', function (e) {
92
+ var data = e.params.data;
93
+ formatCustomerSelection(data)
94
+ })
95
+ }
96
+
97
+ document.addEventListener('DOMContentLoaded', function() {
98
+ $('#customer_search').customerAutocomplete()
99
+
100
+ if ($('#customer_autocomplete_template').length > 0) {
101
+ window.customerTemplate = Handlebars.compile($('#customer_autocomplete_template').text())
79
102
  }
80
103
 
104
+ // Handle Billing Shipping Address
81
105
  var orderUseBillingInput = $('input#order_use_billing')
106
+
82
107
  var orderUseBilling = function () {
83
108
  if (!orderUseBillingInput.is(':checked')) {
84
109
  $('#shipping').show()
@@ -87,13 +112,17 @@ $(document).ready(function () {
87
112
  }
88
113
  }
89
114
 
90
- orderUseBillingInput.click(orderUseBilling)
115
+ // On page load hide shipping address from
91
116
  orderUseBilling()
92
117
 
118
+ // On click togggle shipping address from
119
+ orderUseBillingInput.click(orderUseBilling)
120
+
121
+ // If guest checkout clear fields
93
122
  $('#guest_checkout_true').change(function () {
94
123
  $('#customer_search').val('')
95
124
  $('#order_user_id').val('')
96
125
  $('#order_email').val('')
97
- clear_address_fields()
126
+ clearAddressFields()
98
127
  })
99
128
  })
@@ -0,0 +1,37 @@
1
+ /* global flatpickr */
2
+ document.addEventListener('DOMContentLoaded', function() {
3
+ flatpickr.l10ns.default.firstDayOfWeek = Spree.translations.firstDay
4
+ flatpickr.l10ns.default.rangeSeparator = Spree.translations.rangeSep
5
+ flatpickr.l10ns.default.weekAbbreviation = Spree.translations.weekAbbr
6
+ flatpickr.l10ns.default.scrollTitle = Spree.translations.scrollTitle
7
+ flatpickr.l10ns.default.toggleTitle = Spree.translations.toggleTitle
8
+ flatpickr.l10ns.default.amPM = [Spree.translations.am, Spree.translations.pm]
9
+ flatpickr.l10ns.default.yearAriaLabel = Spree.translations.yearAriaLabel
10
+ flatpickr.l10ns.default.hourAriaLabel = Spree.translations.hourAriaLabel
11
+ flatpickr.l10ns.default.minuteAriaLabel = Spree.translations.minuteAriaLabel
12
+ flatpickr.l10ns.default.weekdays = {
13
+ shorthand: [
14
+ Spree.translations.sun,
15
+ Spree.translations.mon,
16
+ Spree.translations.tue,
17
+ Spree.translations.wed,
18
+ Spree.translations.thu,
19
+ Spree.translations.fri,
20
+ Spree.translations.sat]
21
+ }
22
+ flatpickr.l10ns.default.months = {
23
+ longhand: [
24
+ Spree.translations.lh_jan,
25
+ Spree.translations.lh_feb,
26
+ Spree.translations.lh_mar,
27
+ Spree.translations.lh_apr,
28
+ Spree.translations.lh_may,
29
+ Spree.translations.lh_jun,
30
+ Spree.translations.lh_jul,
31
+ Spree.translations.lh_aug,
32
+ Spree.translations.lh_sep,
33
+ Spree.translations.lh_oct,
34
+ Spree.translations.lh_nov,
35
+ Spree.translations.lh_dec]
36
+ }
37
+ })
@@ -19,7 +19,7 @@ $(document).ready(function () {
19
19
 
20
20
  function addVariant () {
21
21
  $('#stock_details').hide()
22
- var variantId = $('input.variant_autocomplete').val()
22
+ var variantId = $('select.variant_autocomplete').val()
23
23
  var quantity = $('input#variant_quantity').val()
24
24
 
25
25
  adjustLineItems(order_number, variantId, quantity)
@@ -0,0 +1,38 @@
1
+ //= require spree/backend
2
+
3
+ $(document).ready(function () {
4
+ $.expr[':'].Contains = function (a, i, m) {
5
+ return (
6
+ (a.textContent || a.innerText || '')
7
+ .toUpperCase()
8
+ .indexOf(m[3].toUpperCase()) >= 0
9
+ )
10
+ }
11
+
12
+ function listFilter (list) {
13
+ var input = $('#variant-price-search')
14
+
15
+ $(input)
16
+ .change(function () {
17
+ var filter = $(this).val()
18
+ if (filter) {
19
+ $(list).find('.panel-title:not(:Contains(' + filter + '))').parent().hide()
20
+ $(list).find('.panel-title:Contains(' + filter + ')').parent().show()
21
+ } else {
22
+ $(list)
23
+ .find('.panel')
24
+ .parent()
25
+ .show()
26
+ }
27
+ return false
28
+ })
29
+ .keyup(function () {
30
+ $(this).change()
31
+ })
32
+ }
33
+
34
+ // ondomready
35
+ $(function () {
36
+ listFilter($('#variant-prices'))
37
+ })
38
+ })
@@ -1,43 +1,37 @@
1
- $(document).ready(function () {
1
+ $.fn.optionTypeAutocomplete = function () {
2
2
  'use strict'
3
3
 
4
- function formatOptionType (optionType) {
5
- return Select2.util.escapeMarkup(optionType.presentation + ' (' + optionType.name + ')')
6
- }
7
-
8
- if ($('#product_option_type_ids').length > 0) {
9
- $('#product_option_type_ids').select2({
10
- placeholder: Spree.translations.option_type_placeholder,
11
- multiple: true,
12
- initSelection: function (element, callback) {
13
- var url = Spree.url(Spree.routes.option_types_api, {
14
- ids: element.val(),
4
+ this.select2({
5
+ minimumInputLength: 2,
6
+ multiple: true,
7
+ ajax: {
8
+ url: Spree.routes.option_types_api,
9
+ datatype: 'json',
10
+ data: function (params) {
11
+ var query = {
12
+ q: {
13
+ name_cont: params.term
14
+ },
15
15
  token: Spree.api_key
16
- })
17
- return $.getJSON(url, null, function (data) {
18
- return callback(data)
19
- })
20
- },
21
- ajax: {
22
- url: Spree.routes.option_types_api,
23
- quietMillis: 200,
24
- datatype: 'json',
25
- data: function (term) {
26
- return {
27
- q: {
28
- name_cont: term
29
- },
30
- token: Spree.api_key
31
- }
32
- },
33
- results: function (data) {
34
- return {
35
- results: data
36
- }
37
16
  }
17
+
18
+ return query
38
19
  },
39
- formatResult: formatOptionType,
40
- formatSelection: formatOptionType
41
- })
42
- }
20
+ processResults: function (data) {
21
+ return {
22
+ results: data
23
+ }
24
+ }
25
+ },
26
+ templateResult: function (optionType) {
27
+ return optionType.name
28
+ },
29
+ templateSelection: function (optionType) {
30
+ return optionType.text
31
+ }
32
+ })
33
+ }
34
+
35
+ $(document).ready(function () {
36
+ $('#product_option_type_ids').optionTypeAutocomplete()
43
37
  })
@@ -5,40 +5,67 @@ $.fn.optionValueAutocomplete = function (options) {
5
5
  options = options || {}
6
6
  var multiple = typeof (options.multiple) !== 'undefined' ? options.multiple : true
7
7
  var productSelect = options.productSelect
8
+ var productId = options.productId
9
+ var values = options.values
10
+ var clearSelection = options.clearSelection
11
+
12
+ function formatOptionValueList(values) {
13
+ return values.map(function(obj) {
14
+ return { id: obj.id, text: obj.name }
15
+ })
16
+ }
17
+
18
+ function addOptions(select, productId, values) {
19
+ $.ajax({
20
+ type: 'GET',
21
+ url: Spree.routes.option_values_api,
22
+ dataType: 'json',
23
+ data: {
24
+ token: Spree.api_key,
25
+ q: {
26
+ id_in: values,
27
+ variants_product_id_eq: productId
28
+ }
29
+ }
30
+ }).then(function (data) {
31
+ select.addSelect2Options(data)
32
+ })
33
+ }
8
34
 
9
35
  this.select2({
10
- minimumInputLength: 3,
11
36
  multiple: multiple,
12
- initSelection: function (element, callback) {
13
- $.get(Spree.routes.option_values_api, {
14
- ids: element.val().split(','),
15
- token: Spree.api_key
16
- }, function (data) {
17
- callback(multiple ? data : data[0])
18
- })
19
- },
37
+ minimumInputLength: 1,
20
38
  ajax: {
21
39
  url: Spree.routes.option_values_api,
22
- datatype: 'json',
23
- data: function (term) {
24
- var productId = typeof (productSelect) !== 'undefined' ? $(productSelect).select2('val') : null
25
- return {
40
+ dataType: 'json',
41
+ data: function (params) {
42
+ var selectedProductId = typeof (productSelect) !== 'undefined' ? productSelect.val() : null
43
+
44
+ var query = {
26
45
  q: {
27
- name_cont: term,
28
- variants_product_id_eq: productId
46
+ name_cont: params.term,
47
+ variants_product_id_eq: selectedProductId
29
48
  },
30
49
  token: Spree.api_key
31
50
  }
51
+
52
+ return query;
32
53
  },
33
- results: function (data) {
34
- return { results: data }
54
+ processResults: function(data) {
55
+ var results = formatOptionValueList(data)
56
+
57
+ return {
58
+ results: results
59
+ }
35
60
  }
36
- },
37
- formatResult: function (optionValue) {
38
- return optionValue.name
39
- },
40
- formatSelection: function (optionValue) {
41
- return optionValue.name
42
61
  }
43
62
  })
63
+
64
+ if (values && productId && !clearSelection) {
65
+ addOptions(this, productId, values)
66
+ }
67
+
68
+ if (clearSelection) {
69
+ this.val(null).trigger('change')
70
+ }
44
71
  }