goca-spree-backend 3.1.14.rails.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +6 -0
  3. data/Rakefile +15 -0
  4. data/app/assets/images/admin/payment_banner.png +0 -0
  5. data/app/assets/images/admin/progress.gif +0 -0
  6. data/app/assets/images/credit_cards/credit_card.gif +0 -0
  7. data/app/assets/javascripts/spree/backend/address_states.js +33 -0
  8. data/app/assets/javascripts/spree/backend/adjustments.js.coffee +17 -0
  9. data/app/assets/javascripts/spree/backend/admin.js +402 -0
  10. data/app/assets/javascripts/spree/backend/calculator.js +16 -0
  11. data/app/assets/javascripts/spree/backend/checkouts/edit.js +89 -0
  12. data/app/assets/javascripts/spree/backend/gateway.js +13 -0
  13. data/app/assets/javascripts/spree/backend/general_settings.js.coffee +13 -0
  14. data/app/assets/javascripts/spree/backend/handlebar_extensions.js +7 -0
  15. data/app/assets/javascripts/spree/backend/line_items.js.coffee +64 -0
  16. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +49 -0
  17. data/app/assets/javascripts/spree/backend/nested-attribute.js +27 -0
  18. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +43 -0
  19. data/app/assets/javascripts/spree/backend/option_value_picker.js +45 -0
  20. data/app/assets/javascripts/spree/backend/orders/edit.js +5 -0
  21. data/app/assets/javascripts/spree/backend/orders/edit_form.js +21 -0
  22. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +145 -0
  23. data/app/assets/javascripts/spree/backend/payments/new.js +50 -0
  24. data/app/assets/javascripts/spree/backend/product_picker.js +49 -0
  25. data/app/assets/javascripts/spree/backend/progress.js.coffee +6 -0
  26. data/app/assets/javascripts/spree/backend/promotions.js +170 -0
  27. data/app/assets/javascripts/spree/backend/returns/expedited_exchanges_warning.coffee +4 -0
  28. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +35 -0
  29. data/app/assets/javascripts/spree/backend/shipments.js.erb +334 -0
  30. data/app/assets/javascripts/spree/backend/spree-select2.js +7 -0
  31. data/app/assets/javascripts/spree/backend/states.js +11 -0
  32. data/app/assets/javascripts/spree/backend/stock_management.js.coffee +9 -0
  33. data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +19 -0
  34. data/app/assets/javascripts/spree/backend/stock_transfer.js.coffee +198 -0
  35. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +52 -0
  36. data/app/assets/javascripts/spree/backend/taxon_tree_menu.js.coffee +22 -0
  37. data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +149 -0
  38. data/app/assets/javascripts/spree/backend/taxons.js.coffee +87 -0
  39. data/app/assets/javascripts/spree/backend/user_picker.js +40 -0
  40. data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +38 -0
  41. data/app/assets/javascripts/spree/backend/variant_management.js.coffee +10 -0
  42. data/app/assets/javascripts/spree/backend/zone.js.coffee +43 -0
  43. data/app/assets/javascripts/spree/backend.js +79 -0
  44. data/app/assets/javascripts/spree/frontend/backend.js +1 -0
  45. data/app/assets/stylesheets/spree/backend/components/_buttons.scss +37 -0
  46. data/app/assets/stylesheets/spree/backend/components/_filters.scss +26 -0
  47. data/app/assets/stylesheets/spree/backend/components/_icons.scss +257 -0
  48. data/app/assets/stylesheets/spree/backend/components/_labels.scss +53 -0
  49. data/app/assets/stylesheets/spree/backend/components/_main.scss +11 -0
  50. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +14 -0
  51. data/app/assets/stylesheets/spree/backend/components/_page_header.scss +32 -0
  52. data/app/assets/stylesheets/spree/backend/components/_panels.scss +3 -0
  53. data/app/assets/stylesheets/spree/backend/components/_progress.scss +22 -0
  54. data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +122 -0
  55. data/app/assets/stylesheets/spree/backend/components/_spinner.scss +95 -0
  56. data/app/assets/stylesheets/spree/backend/components/_tables.scss +56 -0
  57. data/app/assets/stylesheets/spree/backend/components/_taxon_products_view.scss +70 -0
  58. data/app/assets/stylesheets/spree/backend/components/_variables.scss +12 -0
  59. data/app/assets/stylesheets/spree/backend/components/_wells.scss +3 -0
  60. data/app/assets/stylesheets/spree/backend/global/_variables.scss +37 -0
  61. data/app/assets/stylesheets/spree/backend/plugins/_jquery_ui.scss +109 -0
  62. data/app/assets/stylesheets/spree/backend/plugins/_js_tree.scss +0 -0
  63. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +127 -0
  64. data/app/assets/stylesheets/spree/backend/sections/_account.scss +16 -0
  65. data/app/assets/stylesheets/spree/backend/shared/_base.scss +25 -0
  66. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +59 -0
  67. data/app/assets/stylesheets/spree/backend/shared/_typography.scss +5 -0
  68. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +28 -0
  69. data/app/assets/stylesheets/spree/backend.css +11 -0
  70. data/app/assets/stylesheets/spree/frontend/backend.css +1 -0
  71. data/app/controllers/spree/admin/adjustments_controller.rb +38 -0
  72. data/app/controllers/spree/admin/base_controller.rb +67 -0
  73. data/app/controllers/spree/admin/countries_controller.rb +11 -0
  74. data/app/controllers/spree/admin/customer_returns_controller.rb +68 -0
  75. data/app/controllers/spree/admin/general_settings_controller.rb +40 -0
  76. data/app/controllers/spree/admin/images_controller.rb +50 -0
  77. data/app/controllers/spree/admin/log_entries_controller.rb +19 -0
  78. data/app/controllers/spree/admin/option_types_controller.rb +48 -0
  79. data/app/controllers/spree/admin/option_values_controller.rb +11 -0
  80. data/app/controllers/spree/admin/orders/customer_details_controller.rb +74 -0
  81. data/app/controllers/spree/admin/orders_controller.rb +147 -0
  82. data/app/controllers/spree/admin/payment_methods_controller.rb +72 -0
  83. data/app/controllers/spree/admin/payments_controller.rb +103 -0
  84. data/app/controllers/spree/admin/product_properties_controller.rb +18 -0
  85. data/app/controllers/spree/admin/products_controller.rb +156 -0
  86. data/app/controllers/spree/admin/promotion_actions_controller.rb +45 -0
  87. data/app/controllers/spree/admin/promotion_categories_controller.rb +6 -0
  88. data/app/controllers/spree/admin/promotion_rules_controller.rb +50 -0
  89. data/app/controllers/spree/admin/promotions_controller.rb +36 -0
  90. data/app/controllers/spree/admin/properties_controller.rb +23 -0
  91. data/app/controllers/spree/admin/prototypes_controller.rb +27 -0
  92. data/app/controllers/spree/admin/refund_reasons_controller.rb +6 -0
  93. data/app/controllers/spree/admin/refunds_controller.rb +38 -0
  94. data/app/controllers/spree/admin/reimbursement_types_controller.rb +6 -0
  95. data/app/controllers/spree/admin/reimbursements_controller.rb +45 -0
  96. data/app/controllers/spree/admin/reports_controller.rb +65 -0
  97. data/app/controllers/spree/admin/resource_controller.rb +260 -0
  98. data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +6 -0
  99. data/app/controllers/spree/admin/return_authorizations_controller.rb +51 -0
  100. data/app/controllers/spree/admin/return_index_controller.rb +28 -0
  101. data/app/controllers/spree/admin/return_items_controller.rb +9 -0
  102. data/app/controllers/spree/admin/roles_controller.rb +6 -0
  103. data/app/controllers/spree/admin/root_controller.rb +18 -0
  104. data/app/controllers/spree/admin/search_controller.rb +41 -0
  105. data/app/controllers/spree/admin/shipping_categories_controller.rb +6 -0
  106. data/app/controllers/spree/admin/shipping_methods_controller.rb +46 -0
  107. data/app/controllers/spree/admin/state_changes_controller.rb +18 -0
  108. data/app/controllers/spree/admin/states_controller.rb +29 -0
  109. data/app/controllers/spree/admin/stock_items_controller.rb +51 -0
  110. data/app/controllers/spree/admin/stock_locations_controller.rb +16 -0
  111. data/app/controllers/spree/admin/stock_movements_controller.rb +39 -0
  112. data/app/controllers/spree/admin/stock_transfers_controller.rb +51 -0
  113. data/app/controllers/spree/admin/store_credit_categories_controller.rb +6 -0
  114. data/app/controllers/spree/admin/store_credits_controller.rb +94 -0
  115. data/app/controllers/spree/admin/tax_categories_controller.rb +6 -0
  116. data/app/controllers/spree/admin/tax_rates_controller.rb +15 -0
  117. data/app/controllers/spree/admin/taxonomies_controller.rb +15 -0
  118. data/app/controllers/spree/admin/taxons_controller.rb +126 -0
  119. data/app/controllers/spree/admin/trackers_controller.rb +6 -0
  120. data/app/controllers/spree/admin/users_controller.rb +145 -0
  121. data/app/controllers/spree/admin/variants_controller.rb +57 -0
  122. data/app/controllers/spree/admin/variants_including_master_controller.rb +16 -0
  123. data/app/controllers/spree/admin/zones_controller.rb +26 -0
  124. data/app/helpers/spree/admin/adjustments_helper.rb +37 -0
  125. data/app/helpers/spree/admin/base_helper.rb +157 -0
  126. data/app/helpers/spree/admin/customer_returns_helper.rb +9 -0
  127. data/app/helpers/spree/admin/general_settings_helper.rb +13 -0
  128. data/app/helpers/spree/admin/images_helper.rb +18 -0
  129. data/app/helpers/spree/admin/inventory_settings_helper.rb +9 -0
  130. data/app/helpers/spree/admin/navigation_helper.rb +248 -0
  131. data/app/helpers/spree/admin/orders_helper.rb +69 -0
  132. data/app/helpers/spree/admin/payments_helper.rb +11 -0
  133. data/app/helpers/spree/admin/products_helper.rb +29 -0
  134. data/app/helpers/spree/admin/reimbursement_type_helper.rb +9 -0
  135. data/app/helpers/spree/admin/reimbursements_helper.rb +14 -0
  136. data/app/helpers/spree/admin/stock_locations_helper.rb +15 -0
  137. data/app/helpers/spree/admin/stock_movements_helper.rb +24 -0
  138. data/app/helpers/spree/admin/tables_helper.rb +15 -0
  139. data/app/helpers/spree/admin/taxons_helper.rb +9 -0
  140. data/app/helpers/spree/promotion_rules_helper.rb +13 -0
  141. data/app/models/spree/admin/resource.rb +35 -0
  142. data/app/models/spree/backend_configuration.rb +21 -0
  143. data/app/views/kaminari/_first_page.html.erb +11 -0
  144. data/app/views/kaminari/_gap.html.erb +8 -0
  145. data/app/views/kaminari/_last_page.html.erb +11 -0
  146. data/app/views/kaminari/_next_page.html.erb +15 -0
  147. data/app/views/kaminari/_page.html.erb +12 -0
  148. data/app/views/kaminari/_paginator.html.erb +23 -0
  149. data/app/views/kaminari/_prev_page.html.erb +15 -0
  150. data/app/views/spree/admin/adjustments/_adjustment.html.erb +17 -0
  151. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +31 -0
  152. data/app/views/spree/admin/adjustments/_form.html.erb +12 -0
  153. data/app/views/spree/admin/adjustments/edit.html.erb +19 -0
  154. data/app/views/spree/admin/adjustments/index.html.erb +34 -0
  155. data/app/views/spree/admin/adjustments/new.html.erb +19 -0
  156. data/app/views/spree/admin/countries/_form.html.erb +20 -0
  157. data/app/views/spree/admin/countries/edit.html.erb +14 -0
  158. data/app/views/spree/admin/countries/index.html.erb +31 -0
  159. data/app/views/spree/admin/countries/new.html.erb +13 -0
  160. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +36 -0
  161. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +50 -0
  162. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +45 -0
  163. data/app/views/spree/admin/customer_returns/edit.html.erb +61 -0
  164. data/app/views/spree/admin/customer_returns/index.html.erb +56 -0
  165. data/app/views/spree/admin/customer_returns/new.html.erb +47 -0
  166. data/app/views/spree/admin/general_settings/edit.html.erb +143 -0
  167. data/app/views/spree/admin/images/_form.html.erb +18 -0
  168. data/app/views/spree/admin/images/edit.html.erb +30 -0
  169. data/app/views/spree/admin/images/index.html.erb +55 -0
  170. data/app/views/spree/admin/images/new.html.erb +19 -0
  171. data/app/views/spree/admin/inventory_units/adjust.html.erb +29 -0
  172. data/app/views/spree/admin/log_entries/index.html.erb +33 -0
  173. data/app/views/spree/admin/option_types/_form.html.erb +17 -0
  174. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +9 -0
  175. data/app/views/spree/admin/option_types/edit.html.erb +49 -0
  176. data/app/views/spree/admin/option_types/index.html.erb +44 -0
  177. data/app/views/spree/admin/option_types/new.html.erb +13 -0
  178. data/app/views/spree/admin/orders/_add_line_item.html.erb +17 -0
  179. data/app/views/spree/admin/orders/_add_product.html.erb +18 -0
  180. data/app/views/spree/admin/orders/_adjustments.html.erb +33 -0
  181. data/app/views/spree/admin/orders/_form.html.erb +56 -0
  182. data/app/views/spree/admin/orders/_line_item.html.erb +21 -0
  183. data/app/views/spree/admin/orders/_line_items.html.erb +46 -0
  184. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +39 -0
  185. data/app/views/spree/admin/orders/_order_actions.html.erb +12 -0
  186. data/app/views/spree/admin/orders/_risk_analysis.html.erb +47 -0
  187. data/app/views/spree/admin/orders/_shipment.html.erb +108 -0
  188. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +42 -0
  189. data/app/views/spree/admin/orders/cart.html.erb +31 -0
  190. data/app/views/spree/admin/orders/customer_details/_form.html.erb +106 -0
  191. data/app/views/spree/admin/orders/customer_details/edit.html.erb +29 -0
  192. data/app/views/spree/admin/orders/edit.html.erb +35 -0
  193. data/app/views/spree/admin/orders/index.html.erb +226 -0
  194. data/app/views/spree/admin/payment_methods/_form.html.erb +56 -0
  195. data/app/views/spree/admin/payment_methods/edit.html.erb +13 -0
  196. data/app/views/spree/admin/payment_methods/index.html.erb +46 -0
  197. data/app/views/spree/admin/payment_methods/new.html.erb +13 -0
  198. data/app/views/spree/admin/payments/_capture_events.html.erb +19 -0
  199. data/app/views/spree/admin/payments/_form.html.erb +33 -0
  200. data/app/views/spree/admin/payments/_list.html.erb +38 -0
  201. data/app/views/spree/admin/payments/credit.html.erb +18 -0
  202. data/app/views/spree/admin/payments/index.html.erb +38 -0
  203. data/app/views/spree/admin/payments/new.html.erb +25 -0
  204. data/app/views/spree/admin/payments/show.html.erb +28 -0
  205. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +56 -0
  206. data/app/views/spree/admin/payments/source_forms/_storecredit.html.erb +9 -0
  207. data/app/views/spree/admin/payments/source_views/_check.html.erb +0 -0
  208. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +21 -0
  209. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +29 -0
  210. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +19 -0
  211. data/app/views/spree/admin/product_properties/index.html.erb +43 -0
  212. data/app/views/spree/admin/products/_add_stock_form.html.erb +42 -0
  213. data/app/views/spree/admin/products/_autocomplete.js.erb +25 -0
  214. data/app/views/spree/admin/products/_form.html.erb +224 -0
  215. data/app/views/spree/admin/products/_properties_form.erb +10 -0
  216. data/app/views/spree/admin/products/edit.html.erb +15 -0
  217. data/app/views/spree/admin/products/index.html.erb +91 -0
  218. data/app/views/spree/admin/products/new.html.erb +89 -0
  219. data/app/views/spree/admin/products/stock.html.erb +78 -0
  220. data/app/views/spree/admin/promotion_actions/create.js.erb +12 -0
  221. data/app/views/spree/admin/promotion_actions/destroy.js.erb +1 -0
  222. data/app/views/spree/admin/promotion_categories/_form.html.erb +11 -0
  223. data/app/views/spree/admin/promotion_categories/edit.html.erb +11 -0
  224. data/app/views/spree/admin/promotion_categories/index.html.erb +34 -0
  225. data/app/views/spree/admin/promotion_categories/new.html.erb +11 -0
  226. data/app/views/spree/admin/promotion_rules/create.js.erb +10 -0
  227. data/app/views/spree/admin/promotion_rules/destroy.js.erb +3 -0
  228. data/app/views/spree/admin/promotions/_actions.html.erb +35 -0
  229. data/app/views/spree/admin/promotions/_form.html.erb +60 -0
  230. data/app/views/spree/admin/promotions/_promotion_action.html.erb +12 -0
  231. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +11 -0
  232. data/app/views/spree/admin/promotions/_rules.html.erb +46 -0
  233. data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +30 -0
  234. data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +28 -0
  235. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +25 -0
  236. data/app/views/spree/admin/promotions/calculators/_default_fields.html.erb +10 -0
  237. data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +42 -0
  238. data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +42 -0
  239. data/app/views/spree/admin/promotions/edit.html.erb +30 -0
  240. data/app/views/spree/admin/promotions/index.html.erb +82 -0
  241. data/app/views/spree/admin/promotions/new.html.erb +11 -0
  242. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +12 -0
  243. data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +9 -0
  244. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +42 -0
  245. data/app/views/spree/admin/promotions/rules/_product.html.erb +10 -0
  246. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +10 -0
  247. data/app/views/spree/admin/promotions/rules/_user.html.erb +6 -0
  248. data/app/views/spree/admin/properties/_form.html.erb +16 -0
  249. data/app/views/spree/admin/properties/edit.html.erb +13 -0
  250. data/app/views/spree/admin/properties/index.html.erb +68 -0
  251. data/app/views/spree/admin/properties/new.html.erb +15 -0
  252. data/app/views/spree/admin/prototypes/_form.html.erb +28 -0
  253. data/app/views/spree/admin/prototypes/_prototypes.html.erb +21 -0
  254. data/app/views/spree/admin/prototypes/available.js.erb +2 -0
  255. data/app/views/spree/admin/prototypes/edit.html.erb +13 -0
  256. data/app/views/spree/admin/prototypes/index.html.erb +34 -0
  257. data/app/views/spree/admin/prototypes/new.html.erb +13 -0
  258. data/app/views/spree/admin/prototypes/select.js.erb +4 -0
  259. data/app/views/spree/admin/prototypes/show.html.erb +39 -0
  260. data/app/views/spree/admin/refund_reasons/destroy.js.erb +1 -0
  261. data/app/views/spree/admin/refund_reasons/edit.html.erb +3 -0
  262. data/app/views/spree/admin/refund_reasons/index.html.erb +6 -0
  263. data/app/views/spree/admin/refund_reasons/new.html.erb +4 -0
  264. data/app/views/spree/admin/refunds/edit.html.erb +27 -0
  265. data/app/views/spree/admin/refunds/new.html.erb +35 -0
  266. data/app/views/spree/admin/reimbursement_types/index.html.erb +30 -0
  267. data/app/views/spree/admin/reimbursements/edit.html.erb +102 -0
  268. data/app/views/spree/admin/reimbursements/index.html.erb +28 -0
  269. data/app/views/spree/admin/reimbursements/show.html.erb +90 -0
  270. data/app/views/spree/admin/reports/index.html.erb +20 -0
  271. data/app/views/spree/admin/reports/sales_total.html.erb +29 -0
  272. data/app/views/spree/admin/return_authorization_reasons/destroy.js.erb +1 -0
  273. data/app/views/spree/admin/return_authorization_reasons/edit.html.erb +3 -0
  274. data/app/views/spree/admin/return_authorization_reasons/index.html.erb +6 -0
  275. data/app/views/spree/admin/return_authorization_reasons/new.html.erb +4 -0
  276. data/app/views/spree/admin/return_authorizations/_form.html.erb +91 -0
  277. data/app/views/spree/admin/return_authorizations/edit.html.erb +26 -0
  278. data/app/views/spree/admin/return_authorizations/index.html.erb +53 -0
  279. data/app/views/spree/admin/return_authorizations/new.html.erb +18 -0
  280. data/app/views/spree/admin/return_index/customer_returns.html.erb +64 -0
  281. data/app/views/spree/admin/return_index/return_authorizations.html.erb +76 -0
  282. data/app/views/spree/admin/roles/_form.html.erb +9 -0
  283. data/app/views/spree/admin/roles/edit.html.erb +13 -0
  284. data/app/views/spree/admin/roles/index.html.erb +34 -0
  285. data/app/views/spree/admin/roles/new.html.erb +13 -0
  286. data/app/views/spree/admin/search/products.rabl +9 -0
  287. data/app/views/spree/admin/search/users.rabl +30 -0
  288. data/app/views/spree/admin/shared/_address.html.erb +38 -0
  289. data/app/views/spree/admin/shared/_address_form.html.erb +78 -0
  290. data/app/views/spree/admin/shared/_calculator_fields.html.erb +27 -0
  291. data/app/views/spree/admin/shared/_content_header.html.erb +26 -0
  292. data/app/views/spree/admin/shared/_destroy.js.erb +9 -0
  293. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +5 -0
  294. data/app/views/spree/admin/shared/_error_messages.html.erb +12 -0
  295. data/app/views/spree/admin/shared/_head.html.erb +26 -0
  296. data/app/views/spree/admin/shared/_header.html.erb +32 -0
  297. data/app/views/spree/admin/shared/_index_table_options.html.erb +19 -0
  298. data/app/views/spree/admin/shared/_main_menu.html.erb +41 -0
  299. data/app/views/spree/admin/shared/_new_resource_links.html.erb +5 -0
  300. data/app/views/spree/admin/shared/_order_summary.html.erb +121 -0
  301. data/app/views/spree/admin/shared/_order_tabs.html.erb +60 -0
  302. data/app/views/spree/admin/shared/_product_tabs.html.erb +24 -0
  303. data/app/views/spree/admin/shared/_refunds.html.erb +32 -0
  304. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +17 -0
  305. data/app/views/spree/admin/shared/_sidebar.html.erb +5 -0
  306. data/app/views/spree/admin/shared/_table_filter.html.erb +24 -0
  307. data/app/views/spree/admin/shared/_translations.html.erb +48 -0
  308. data/app/views/spree/admin/shared/_update_order_state.js +7 -0
  309. data/app/views/spree/admin/shared/named_types/_edit.html.erb +13 -0
  310. data/app/views/spree/admin/shared/named_types/_form.html.erb +13 -0
  311. data/app/views/spree/admin/shared/named_types/_index.html.erb +42 -0
  312. data/app/views/spree/admin/shared/named_types/_new.html.erb +13 -0
  313. data/app/views/spree/admin/shared/sub_menu/_configuration.html.erb +23 -0
  314. data/app/views/spree/admin/shared/sub_menu/_product.html.erb +8 -0
  315. data/app/views/spree/admin/shared/sub_menu/_promotion.html.erb +4 -0
  316. data/app/views/spree/admin/shared/sub_menu/_returns.html.erb +4 -0
  317. data/app/views/spree/admin/shipping_categories/_form.html.erb +9 -0
  318. data/app/views/spree/admin/shipping_categories/edit.html.erb +11 -0
  319. data/app/views/spree/admin/shipping_categories/index.html.erb +34 -0
  320. data/app/views/spree/admin/shipping_categories/new.html.erb +13 -0
  321. data/app/views/spree/admin/shipping_methods/_form.html.erb +119 -0
  322. data/app/views/spree/admin/shipping_methods/edit.html.erb +17 -0
  323. data/app/views/spree/admin/shipping_methods/index.html.erb +40 -0
  324. data/app/views/spree/admin/shipping_methods/new.html.erb +20 -0
  325. data/app/views/spree/admin/state_changes/index.html.erb +42 -0
  326. data/app/views/spree/admin/states/_form.html.erb +15 -0
  327. data/app/views/spree/admin/states/_state_list.html.erb +26 -0
  328. data/app/views/spree/admin/states/edit.html.erb +13 -0
  329. data/app/views/spree/admin/states/index.html.erb +18 -0
  330. data/app/views/spree/admin/states/new.html.erb +13 -0
  331. data/app/views/spree/admin/states/new.js.erb +2 -0
  332. data/app/views/spree/admin/stock_items/destroy.js.erb +1 -0
  333. data/app/views/spree/admin/stock_locations/_form.html.erb +95 -0
  334. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +39 -0
  335. data/app/views/spree/admin/stock_locations/edit.html.erb +13 -0
  336. data/app/views/spree/admin/stock_locations/index.html.erb +41 -0
  337. data/app/views/spree/admin/stock_locations/new.html.erb +13 -0
  338. data/app/views/spree/admin/stock_movements/_form.html.erb +12 -0
  339. data/app/views/spree/admin/stock_movements/edit.html.erb +17 -0
  340. data/app/views/spree/admin/stock_movements/index.html.erb +43 -0
  341. data/app/views/spree/admin/stock_movements/new.html.erb +14 -0
  342. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +22 -0
  343. data/app/views/spree/admin/stock_transfers/index.html.erb +82 -0
  344. data/app/views/spree/admin/stock_transfers/new.html.erb +107 -0
  345. data/app/views/spree/admin/stock_transfers/show.html.erb +44 -0
  346. data/app/views/spree/admin/store_credit_categories/_form.html.erb +9 -0
  347. data/app/views/spree/admin/store_credit_categories/edit.html.erb +13 -0
  348. data/app/views/spree/admin/store_credit_categories/index.html.erb +34 -0
  349. data/app/views/spree/admin/store_credit_categories/new.html.erb +13 -0
  350. data/app/views/spree/admin/store_credits/_form.html.erb +18 -0
  351. data/app/views/spree/admin/store_credits/edit.html.erb +14 -0
  352. data/app/views/spree/admin/store_credits/index.html.erb +46 -0
  353. data/app/views/spree/admin/store_credits/new.html.erb +14 -0
  354. data/app/views/spree/admin/tax_categories/_form.html.erb +24 -0
  355. data/app/views/spree/admin/tax_categories/edit.html.erb +13 -0
  356. data/app/views/spree/admin/tax_categories/index.html.erb +42 -0
  357. data/app/views/spree/admin/tax_categories/new.html.erb +13 -0
  358. data/app/views/spree/admin/tax_categories/show.html.erb +1 -0
  359. data/app/views/spree/admin/tax_rates/_form.html.erb +54 -0
  360. data/app/views/spree/admin/tax_rates/edit.html.erb +11 -0
  361. data/app/views/spree/admin/tax_rates/index.html.erb +46 -0
  362. data/app/views/spree/admin/tax_rates/new.html.erb +14 -0
  363. data/app/views/spree/admin/taxonomies/_form.html.erb +7 -0
  364. data/app/views/spree/admin/taxonomies/_js_head.html.erb +13 -0
  365. data/app/views/spree/admin/taxonomies/_list.html.erb +23 -0
  366. data/app/views/spree/admin/taxonomies/edit.erb +37 -0
  367. data/app/views/spree/admin/taxonomies/index.html.erb +18 -0
  368. data/app/views/spree/admin/taxonomies/new.html.erb +12 -0
  369. data/app/views/spree/admin/taxons/_form.html.erb +46 -0
  370. data/app/views/spree/admin/taxons/_taxon_table.html.erb +23 -0
  371. data/app/views/spree/admin/taxons/edit.html.erb +32 -0
  372. data/app/views/spree/admin/taxons/index.html.erb +13 -0
  373. data/app/views/spree/admin/trackers/_form.html.erb +29 -0
  374. data/app/views/spree/admin/trackers/edit.html.erb +13 -0
  375. data/app/views/spree/admin/trackers/index.html.erb +42 -0
  376. data/app/views/spree/admin/trackers/new.html.erb +13 -0
  377. data/app/views/spree/admin/users/_addresses_form.html.erb +35 -0
  378. data/app/views/spree/admin/users/_form.html.erb +36 -0
  379. data/app/views/spree/admin/users/_lifetime_stats.html.erb +30 -0
  380. data/app/views/spree/admin/users/_sidebar.html.erb +23 -0
  381. data/app/views/spree/admin/users/_user_page_actions.html.erb +3 -0
  382. data/app/views/spree/admin/users/addresses.html.erb +26 -0
  383. data/app/views/spree/admin/users/edit.html.erb +72 -0
  384. data/app/views/spree/admin/users/index.html.erb +67 -0
  385. data/app/views/spree/admin/users/items.html.erb +64 -0
  386. data/app/views/spree/admin/users/new.html.erb +18 -0
  387. data/app/views/spree/admin/users/orders.html.erb +52 -0
  388. data/app/views/spree/admin/variants/_autocomplete.js.erb +21 -0
  389. data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +46 -0
  390. data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +48 -0
  391. data/app/views/spree/admin/variants/_form.html.erb +49 -0
  392. data/app/views/spree/admin/variants/_split.js.erb +33 -0
  393. data/app/views/spree/admin/variants/edit.html.erb +13 -0
  394. data/app/views/spree/admin/variants/index.html.erb +65 -0
  395. data/app/views/spree/admin/variants/new.html.erb +11 -0
  396. data/app/views/spree/admin/variants/new.js.erb +3 -0
  397. data/app/views/spree/admin/variants/update.js.erb +1 -0
  398. data/app/views/spree/admin/zones/_country_members.html.erb +16 -0
  399. data/app/views/spree/admin/zones/_form.html.erb +49 -0
  400. data/app/views/spree/admin/zones/_state_members.html.erb +16 -0
  401. data/app/views/spree/admin/zones/edit.html.erb +12 -0
  402. data/app/views/spree/admin/zones/index.html.erb +44 -0
  403. data/app/views/spree/admin/zones/new.html.erb +11 -0
  404. data/app/views/spree/layouts/admin.html.erb +81 -0
  405. data/config/initializers/assets.rb +1 -0
  406. data/config/initializers/form_builder.rb +15 -0
  407. data/config/routes.rb +185 -0
  408. data/lib/spree/backend/action_callbacks.rb +26 -0
  409. data/lib/spree/backend/callbacks.rb +48 -0
  410. data/lib/spree/backend/engine.rb +34 -0
  411. data/lib/spree/backend.rb +13 -0
  412. data/lib/spree_backend.rb +3 -0
  413. data/script/rails +9 -0
  414. data/spree_backend.gemspec +28 -0
  415. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  416. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  417. data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  418. data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  419. data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  420. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  421. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  422. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  423. data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  424. data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  425. data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
  426. data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  427. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  428. data/vendor/assets/javascripts/handlebars.js +2746 -0
  429. data/vendor/assets/javascripts/jquery.cookie.js +117 -0
  430. data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +4564 -0
  431. data/vendor/assets/javascripts/modernizr.js +4 -0
  432. data/vendor/assets/javascripts/underscore-min.js +6 -0
  433. data/vendor/assets/javascripts/underscore-min.map +1 -0
  434. data/vendor/assets/javascripts/velocity.js +3831 -0
  435. data/vendor/assets/stylesheets/animate.css +3158 -0
  436. data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +357 -0
  437. data/vendor/assets/stylesheets/jquery.jstree/themes/spree/style.scss +216 -0
  438. data/vendor/assets/stylesheets/jquery.jstree/themes/spree/throbber.gif +0 -0
  439. metadata +565 -0
@@ -0,0 +1,260 @@
1
+ class Spree::Admin::ResourceController < Spree::Admin::BaseController
2
+ include Spree::Backend::Callbacks
3
+
4
+ helper_method :new_object_url, :edit_object_url, :object_url, :collection_url
5
+ before_action :load_resource, except: :update_positions
6
+ rescue_from ActiveRecord::RecordNotFound, :with => :resource_not_found
7
+
8
+ respond_to :html
9
+
10
+ def new
11
+ invoke_callbacks(:new_action, :before)
12
+ respond_with(@object) do |format|
13
+ format.html { render :layout => !request.xhr? }
14
+ if request.xhr?
15
+ format.js { render :layout => false }
16
+ end
17
+ end
18
+ end
19
+
20
+ def edit
21
+ respond_with(@object) do |format|
22
+ format.html { render :layout => !request.xhr? }
23
+ if request.xhr?
24
+ format.js { render :layout => false }
25
+ end
26
+ end
27
+ end
28
+
29
+ def update
30
+ invoke_callbacks(:update, :before)
31
+ if @object.update_attributes(permitted_resource_params)
32
+ invoke_callbacks(:update, :after)
33
+ respond_with(@object) do |format|
34
+ format.html do
35
+ flash[:success] = flash_message_for(@object, :successfully_updated)
36
+ redirect_to location_after_save
37
+ end
38
+ format.js { render layout: false }
39
+ end
40
+ else
41
+ invoke_callbacks(:update, :fails)
42
+ respond_with(@object) do |format|
43
+ format.html { render action: :edit }
44
+ format.js { render layout: false }
45
+ end
46
+ end
47
+ end
48
+
49
+ def create
50
+ invoke_callbacks(:create, :before)
51
+ @object.attributes = permitted_resource_params
52
+ if @object.save
53
+ invoke_callbacks(:create, :after)
54
+ flash[:success] = flash_message_for(@object, :successfully_created)
55
+ respond_with(@object) do |format|
56
+ format.html { redirect_to location_after_save }
57
+ format.js { render :layout => false }
58
+ end
59
+ else
60
+ invoke_callbacks(:create, :fails)
61
+ respond_with(@object) do |format|
62
+ format.html { render action: :new }
63
+ format.js { render layout: false }
64
+ end
65
+ end
66
+ end
67
+
68
+ def update_positions
69
+ ActiveRecord::Base.transaction do
70
+ params[:positions].each do |id, index|
71
+ model_class.find(id).set_list_position(index)
72
+ end
73
+ end
74
+
75
+ respond_to do |format|
76
+ format.js { render text: 'Ok' }
77
+ end
78
+ end
79
+
80
+ def destroy
81
+ invoke_callbacks(:destroy, :before)
82
+ if @object.destroy
83
+ invoke_callbacks(:destroy, :after)
84
+ flash[:success] = flash_message_for(@object, :successfully_removed)
85
+ else
86
+ invoke_callbacks(:destroy, :fails)
87
+ flash[:error] = @object.errors.full_messages.join(', ')
88
+ end
89
+
90
+ respond_with(@object) do |format|
91
+ format.html { redirect_to location_after_destroy }
92
+ format.js { render_js_for_destroy }
93
+ end
94
+ end
95
+
96
+ protected
97
+
98
+ class << self
99
+ attr_accessor :parent_data
100
+
101
+ def belongs_to(model_name, options = {})
102
+ @parent_data ||= {}
103
+ @parent_data[:model_name] = model_name
104
+ @parent_data[:model_class] = model_name.to_s.classify.constantize
105
+ @parent_data[:find_by] = options[:find_by] || :id
106
+ end
107
+ end
108
+
109
+ def model_class
110
+ @model_class ||= resource.model_class
111
+ end
112
+
113
+ def resource_not_found
114
+ flash[:error] = flash_message_for(model_class.new, :not_found)
115
+ redirect_to collection_url
116
+ end
117
+
118
+ def resource
119
+ return @resource if @resource
120
+ if parent_data
121
+ parent_model_name = parent_data[:model_name]
122
+ end
123
+ @resource = Spree::Admin::Resource.new controller_path, controller_name, parent_model_name, object_name
124
+ end
125
+
126
+ def load_resource
127
+ if member_action?
128
+ @object ||= load_resource_instance
129
+
130
+ # call authorize! a third time (called twice already in Admin::BaseController)
131
+ # this time we pass the actual instance so fine-grained abilities can control
132
+ # access to individual records, not just entire models.
133
+ authorize! action, @object
134
+
135
+ instance_variable_set("@#{resource.object_name}", @object)
136
+ else
137
+ @collection ||= collection
138
+
139
+ # note: we don't call authorize here as the collection method should use
140
+ # CanCan's accessible_by method to restrict the actual records returned
141
+
142
+ instance_variable_set("@#{controller_name}", @collection)
143
+ end
144
+ end
145
+
146
+ def load_resource_instance
147
+ if new_actions.include?(action)
148
+ build_resource
149
+ elsif params[:id]
150
+ find_resource
151
+ end
152
+ end
153
+
154
+ def parent_data
155
+ self.class.parent_data
156
+ end
157
+
158
+ def parent
159
+ if parent_data.present?
160
+ @parent ||= parent_data[:model_class].
161
+ send("find_by_#{parent_data[:find_by]}", params["#{resource.model_name}_id"])
162
+ instance_variable_set("@#{resource.model_name}", @parent)
163
+ else
164
+ nil
165
+ end
166
+ end
167
+
168
+ def find_resource
169
+ if parent_data.present?
170
+ parent.send(controller_name).find(params[:id])
171
+ else
172
+ model_class.find(params[:id])
173
+ end
174
+ end
175
+
176
+ def build_resource
177
+ if parent_data.present?
178
+ parent.send(controller_name).build
179
+ else
180
+ model_class.new
181
+ end
182
+ end
183
+
184
+ def collection
185
+ return parent.send(controller_name) if parent_data.present?
186
+ if model_class.respond_to?(:accessible_by) &&
187
+ !current_ability.has_block?(params[:action], model_class)
188
+ model_class.accessible_by(current_ability, action)
189
+ else
190
+ model_class.where(nil)
191
+ end
192
+ end
193
+
194
+ def location_after_destroy
195
+ collection_url
196
+ end
197
+
198
+ def location_after_save
199
+ collection_url
200
+ end
201
+
202
+ # URL helpers
203
+
204
+ def new_object_url(options = {})
205
+ if parent_data.present?
206
+ spree.new_polymorphic_url([:admin, parent, model_class], options)
207
+ else
208
+ spree.new_polymorphic_url([:admin, model_class], options)
209
+ end
210
+ end
211
+
212
+ def edit_object_url(object, options = {})
213
+ if parent_data.present?
214
+ spree.send "edit_admin_#{resource.model_name}_#{resource.object_name}_url",
215
+ parent, object, options
216
+ else
217
+ spree.send "edit_admin_#{resource.object_name}_url", object, options
218
+ end
219
+ end
220
+
221
+ def object_url(object = nil, options = {})
222
+ target = object ? object : @object
223
+ if parent_data.present?
224
+ spree.send "admin_#{resource.model_name}_#{resource.object_name}_url", parent, target, options
225
+ else
226
+ spree.send "admin_#{resource.object_name}_url", target, options
227
+ end
228
+ end
229
+
230
+ def collection_url(options = {})
231
+ if parent_data.present?
232
+ spree.polymorphic_url([:admin, parent, model_class], options)
233
+ else
234
+ spree.polymorphic_url([:admin, model_class], options)
235
+ end
236
+ end
237
+
238
+ # This method should be overridden when object_name does not match the controller name
239
+ def object_name
240
+ end
241
+
242
+ # Allow all attributes to be updatable.
243
+ #
244
+ # Other controllers can, should, override it to set custom logic
245
+ def permitted_resource_params
246
+ params[resource.object_name].present? ? params.require(resource.object_name).permit! : ActionController::Parameters.new
247
+ end
248
+
249
+ def collection_actions
250
+ [:index]
251
+ end
252
+
253
+ def member_action?
254
+ !collection_actions.include? action
255
+ end
256
+
257
+ def new_actions
258
+ [:new, :create]
259
+ end
260
+ end
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class ReturnAuthorizationReasonsController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,51 @@
1
+ module Spree
2
+ module Admin
3
+ class ReturnAuthorizationsController < ResourceController
4
+ belongs_to 'spree/order', :find_by => :number
5
+
6
+ before_action :load_form_data, only: [:new, :edit]
7
+ create.fails :load_form_data
8
+ update.fails :load_form_data
9
+
10
+ def fire
11
+ @return_authorization.send("#{params[:e]}!")
12
+ flash[:success] = Spree.t(:return_authorization_updated)
13
+ redirect_to :back
14
+ end
15
+
16
+ private
17
+
18
+ def load_form_data
19
+ load_return_items
20
+ load_reimbursement_types
21
+ load_return_authorization_reasons
22
+ end
23
+
24
+ # To satisfy how nested attributes works we want to create placeholder ReturnItems for
25
+ # any InventoryUnits that have not already been added to the ReturnAuthorization.
26
+ def load_return_items
27
+ all_inventory_units = @return_authorization.order.inventory_units
28
+ associated_inventory_units = @return_authorization.return_items.map(&:inventory_unit)
29
+ unassociated_inventory_units = all_inventory_units - associated_inventory_units
30
+
31
+ new_return_items = unassociated_inventory_units.map do |new_unit|
32
+ Spree::ReturnItem.new(inventory_unit: new_unit).tap(&:set_default_pre_tax_amount)
33
+ end
34
+
35
+ @form_return_items = (@return_authorization.return_items + new_return_items).sort_by(&:inventory_unit_id)
36
+ end
37
+
38
+ def load_reimbursement_types
39
+ @reimbursement_types = Spree::ReimbursementType.accessible_by(current_ability, :read).active
40
+ end
41
+
42
+ def load_return_authorization_reasons
43
+ @reasons = Spree::ReturnAuthorizationReason.active
44
+ # Only allow an inactive reason if it's already associated to the RMA
45
+ if @return_authorization.reason && !@return_authorization.reason.active?
46
+ @reasons << @return_authorization.reason
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,28 @@
1
+ module Spree
2
+ module Admin
3
+ class ReturnIndexController < BaseController
4
+ def return_authorizations
5
+ collection(Spree::ReturnAuthorization)
6
+ respond_with(@collection)
7
+ end
8
+
9
+ def customer_returns
10
+ collection(Spree::CustomerReturn)
11
+ respond_with(@collection)
12
+ end
13
+
14
+ private
15
+
16
+ def collection(resource)
17
+ return @collection if @collection.present?
18
+ params[:q] ||= {}
19
+
20
+ @collection = resource.all
21
+ # @search needs to be defined as this is passed to search_form_for
22
+ @search = @collection.ransack(params[:q])
23
+ per_page = params[:per_page] || Spree::Config[:admin_products_per_page]
24
+ @collection = @search.result.order(created_at: :desc).page(params[:page]).per(per_page)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ module Admin
3
+ class ReturnItemsController < ResourceController
4
+ def location_after_save
5
+ url_for([:edit, :admin, @return_item.customer_return.order, @return_item.customer_return])
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class RolesController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,18 @@
1
+ module Spree
2
+ module Admin
3
+ class RootController < Spree::Admin::BaseController
4
+
5
+ skip_before_action :authorize_admin
6
+
7
+ def index
8
+ redirect_to admin_root_redirect_path
9
+ end
10
+
11
+ protected
12
+
13
+ def admin_root_redirect_path
14
+ spree.admin_orders_path
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,41 @@
1
+ module Spree
2
+ module Admin
3
+ class SearchController < Spree::Admin::BaseController
4
+ respond_to :json
5
+ layout false
6
+
7
+ # http://spreecommerce.com/blog/2010/11/02/json-hijacking-vulnerability/
8
+ before_action :check_json_authenticity, only: :index
9
+
10
+ # TODO: Clean this up by moving searching out to user_class_extensions
11
+ # And then JSON building with something like Active Model Serializers
12
+ def users
13
+ if params[:ids]
14
+ @users = Spree.user_class.where(id: params[:ids].split(',').flatten)
15
+ else
16
+ @users = Spree.user_class.ransack({
17
+ m: 'or',
18
+ email_start: params[:q],
19
+ ship_address_firstname_start: params[:q],
20
+ ship_address_lastname_start: params[:q],
21
+ bill_address_firstname_start: params[:q],
22
+ bill_address_lastname_start: params[:q]
23
+ }).result.limit(10)
24
+ end
25
+ end
26
+
27
+ def products
28
+ if params[:ids]
29
+ @products = Product.where(id: params[:ids].split(",").flatten)
30
+ else
31
+ @products = Product.ransack(params[:q]).result
32
+ end
33
+
34
+ @products = @products.distinct.page(params[:page]).per(params[:per_page])
35
+ expires_in 15.minutes, public: true
36
+ headers['Surrogate-Control'] = "max-age=#{15.minutes}"
37
+ end
38
+ end
39
+ end
40
+ end
41
+
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class ShippingCategoriesController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,46 @@
1
+ module Spree
2
+ module Admin
3
+ class ShippingMethodsController < ResourceController
4
+ before_action :load_data, except: :index
5
+ before_action :set_shipping_category, only: [:create, :update]
6
+ before_action :set_zones, only: [:create, :update]
7
+
8
+ def destroy
9
+ @object.destroy
10
+
11
+ flash[:success] = flash_message_for(@object, :successfully_removed)
12
+
13
+ respond_with(@object) do |format|
14
+ format.html { redirect_to collection_url }
15
+ format.js { render_js_for_destroy }
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def set_shipping_category
22
+ return true if params["shipping_method"][:shipping_categories] == ""
23
+ @shipping_method.shipping_categories = Spree::ShippingCategory.where(:id => params["shipping_method"][:shipping_categories])
24
+ @shipping_method.save
25
+ params[:shipping_method].delete(:shipping_categories)
26
+ end
27
+
28
+ def set_zones
29
+ return true if params["shipping_method"][:zones] == ""
30
+ @shipping_method.zones = Spree::Zone.where(:id => params["shipping_method"][:zones])
31
+ @shipping_method.save
32
+ params[:shipping_method].delete(:zones)
33
+ end
34
+
35
+ def location_after_save
36
+ edit_admin_shipping_method_path(@shipping_method)
37
+ end
38
+
39
+ def load_data
40
+ @available_zones = Zone.order(:name)
41
+ @tax_categories = Spree::TaxCategory.order(:name)
42
+ @calculators = ShippingMethod.calculators.sort_by(&:name)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,18 @@
1
+ module Spree
2
+ module Admin
3
+ class StateChangesController < Spree::Admin::BaseController
4
+ before_action :load_order, only: [:index]
5
+
6
+ def index
7
+ @state_changes = @order.state_changes.includes(:user)
8
+ end
9
+
10
+ private
11
+
12
+ def load_order
13
+ @order = Order.find_by_number!(params[:order_id])
14
+ authorize! action, @order
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,29 @@
1
+ module Spree
2
+ module Admin
3
+ class StatesController < ResourceController
4
+ belongs_to 'spree/country'
5
+ before_action :load_data
6
+
7
+ def index
8
+ respond_with(@collection) do |format|
9
+ format.html
10
+ format.js { render :partial => 'state_list' }
11
+ end
12
+ end
13
+
14
+ protected
15
+
16
+ def location_after_save
17
+ admin_country_states_url(@country)
18
+ end
19
+
20
+ def collection
21
+ super.order(:name)
22
+ end
23
+
24
+ def load_data
25
+ @countries = Country.order(:name)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,51 @@
1
+ module Spree
2
+ module Admin
3
+ class StockItemsController < Spree::Admin::BaseController
4
+ before_action :determine_backorderable, only: :update
5
+
6
+ def update
7
+ stock_item.save
8
+ respond_to do |format|
9
+ format.js { head :ok }
10
+ end
11
+ end
12
+
13
+ def create
14
+ variant = Variant.find(params[:variant_id])
15
+ stock_location = StockLocation.find(params[:stock_location_id])
16
+ stock_movement = stock_location.stock_movements.build(stock_movement_params)
17
+ stock_movement.stock_item = stock_location.set_up_stock_item(variant)
18
+
19
+ if stock_movement.save
20
+ flash[:success] = flash_message_for(stock_movement, :successfully_created)
21
+ else
22
+ flash[:error] = Spree.t(:could_not_create_stock_movement)
23
+ end
24
+
25
+ redirect_to :back
26
+ end
27
+
28
+ def destroy
29
+ stock_item.destroy
30
+
31
+ respond_with(@stock_item) do |format|
32
+ format.html { redirect_to :back }
33
+ format.js
34
+ end
35
+ end
36
+
37
+ private
38
+ def stock_movement_params
39
+ params.require(:stock_movement).permit(permitted_stock_movement_attributes)
40
+ end
41
+
42
+ def stock_item
43
+ @stock_item ||= StockItem.find(params[:id])
44
+ end
45
+
46
+ def determine_backorderable
47
+ stock_item.backorderable = params[:stock_item].present? && params[:stock_item][:backorderable].present?
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,16 @@
1
+ module Spree
2
+ module Admin
3
+ class StockLocationsController < ResourceController
4
+ before_action :set_country, only: :new
5
+
6
+ private
7
+
8
+ def set_country
9
+ @stock_location.country = Spree::Country.default
10
+ rescue ActiveRecord::RecordNotFound
11
+ flash[:error] = Spree.t(:stock_locations_need_a_default_country)
12
+ redirect_to admin_stock_locations_path
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,39 @@
1
+ module Spree
2
+ module Admin
3
+ class StockMovementsController < Spree::Admin::BaseController
4
+ respond_to :html
5
+ helper_method :stock_location
6
+
7
+ def index
8
+ @stock_movements = stock_location.stock_movements.recent.
9
+ includes(:stock_item => { :variant => :product }).
10
+ page(params[:page])
11
+ end
12
+
13
+ def new
14
+ @stock_movement = stock_location.stock_movements.build
15
+ end
16
+
17
+ def create
18
+ @stock_movement = stock_location.stock_movements.build(stock_movement_params)
19
+ @stock_movement.save
20
+ flash[:success] = flash_message_for(@stock_movement, :successfully_created)
21
+ redirect_to admin_stock_location_stock_movements_path(stock_location)
22
+ end
23
+
24
+ def edit
25
+ @stock_movement = StockMovement.find(params[:id])
26
+ end
27
+
28
+ private
29
+
30
+ def stock_location
31
+ @stock_location ||= StockLocation.find(params[:stock_location_id])
32
+ end
33
+
34
+ def stock_movement_params
35
+ params.require(:stock_movement).permit(:quantity, :stock_item_id, :action)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,51 @@
1
+ module Spree
2
+ module Admin
3
+ class StockTransfersController < Admin::BaseController
4
+ before_action :load_stock_locations, only: :index
5
+
6
+ def index
7
+ @q = StockTransfer.ransack(params[:q])
8
+
9
+ @stock_transfers = @q.result.
10
+ includes(stock_movements: { stock_item: :stock_location }).
11
+ order(created_at: :desc).
12
+ page(params[:page])
13
+ end
14
+
15
+ def show
16
+ @stock_transfer = StockTransfer.friendly.find(params[:id])
17
+ end
18
+
19
+ def new; end
20
+
21
+ def create
22
+ variants = Hash.new(0)
23
+ params[:variant].each_with_index do |variant_id, i|
24
+ variants[variant_id] += params[:quantity][i].to_i
25
+ end
26
+
27
+ stock_transfer = StockTransfer.create(reference: params[:reference])
28
+ stock_transfer.transfer(source_location,
29
+ destination_location,
30
+ variants)
31
+
32
+ flash[:success] = Spree.t(:stock_successfully_transferred)
33
+ redirect_to admin_stock_transfer_path(stock_transfer)
34
+ end
35
+
36
+ private
37
+ def load_stock_locations
38
+ @stock_locations = Spree::StockLocation.active.order_default
39
+ end
40
+
41
+ def source_location
42
+ @source_location ||= params.has_key?(:transfer_receive_stock) ? nil :
43
+ StockLocation.find(params[:transfer_source_location_id])
44
+ end
45
+
46
+ def destination_location
47
+ @destination_location ||= StockLocation.find(params[:transfer_destination_location_id])
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class StoreCreditCategoriesController < ResourceController
4
+ end
5
+ end
6
+ end