spree_backend 2.0.0.rc1

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 (370) hide show
  1. checksums.yaml +15 -0
  2. data/app/assets/images/admin/bg/spree_50.png +0 -0
  3. data/app/assets/images/admin/payment_banner.png +0 -0
  4. data/app/assets/images/admin/progress.gif +0 -0
  5. data/app/assets/javascripts/admin/address_states.js +27 -0
  6. data/app/assets/javascripts/admin/admin.js.erb +283 -0
  7. data/app/assets/javascripts/admin/calculator.js +16 -0
  8. data/app/assets/javascripts/admin/checkouts/edit.js +94 -0
  9. data/app/assets/javascripts/admin/gateway.js +13 -0
  10. data/app/assets/javascripts/admin/image_settings.js.erb +62 -0
  11. data/app/assets/javascripts/admin/images/index.js.coffee +15 -0
  12. data/app/assets/javascripts/admin/images/new.js.coffee +7 -0
  13. data/app/assets/javascripts/admin/nested-attribute.js +23 -0
  14. data/app/assets/javascripts/admin/option_type_autocomplete.js.erb +35 -0
  15. data/app/assets/javascripts/admin/orders/edit.js +17 -0
  16. data/app/assets/javascripts/admin/orders/edit_form.js +16 -0
  17. data/app/assets/javascripts/admin/payments/new.js +16 -0
  18. data/app/assets/javascripts/admin/product_picker.js +37 -0
  19. data/app/assets/javascripts/admin/progress.coffee +27 -0
  20. data/app/assets/javascripts/admin/promotions.js +98 -0
  21. data/app/assets/javascripts/admin/shipments.js.erb +66 -0
  22. data/app/assets/javascripts/admin/spree-select2.js.erb +22 -0
  23. data/app/assets/javascripts/admin/spree_backend.js +19 -0
  24. data/app/assets/javascripts/admin/states.js +9 -0
  25. data/app/assets/javascripts/admin/stock_management.js.coffee +9 -0
  26. data/app/assets/javascripts/admin/stock_transfer.js.coffee +181 -0
  27. data/app/assets/javascripts/admin/taxon_autocomplete.js.erb +32 -0
  28. data/app/assets/javascripts/admin/taxon_tree_menu.js.coffee +22 -0
  29. data/app/assets/javascripts/admin/taxonomy.js.coffee +127 -0
  30. data/app/assets/javascripts/admin/underscore-min.js +1227 -0
  31. data/app/assets/javascripts/admin/user_picker.js +31 -0
  32. data/app/assets/javascripts/admin/variant_autocomplete.js.erb +180 -0
  33. data/app/assets/javascripts/admin/zone.js.coffee +39 -0
  34. data/app/assets/javascripts/store/backend.js +1 -0
  35. data/app/assets/stylesheets/admin/components/_actions.scss +31 -0
  36. data/app/assets/stylesheets/admin/components/_date-picker.scss +154 -0
  37. data/app/assets/stylesheets/admin/components/_messages.scss +43 -0
  38. data/app/assets/stylesheets/admin/components/_navigation.scss +150 -0
  39. data/app/assets/stylesheets/admin/components/_pagination.scss +17 -0
  40. data/app/assets/stylesheets/admin/components/_product_autocomplete.scss +29 -0
  41. data/app/assets/stylesheets/admin/components/_progress.scss +35 -0
  42. data/app/assets/stylesheets/admin/components/_sidebar.scss +24 -0
  43. data/app/assets/stylesheets/admin/components/_states.scss +34 -0
  44. data/app/assets/stylesheets/admin/components/_table-filter.scss +14 -0
  45. data/app/assets/stylesheets/admin/globals/_functions.scss +25 -0
  46. data/app/assets/stylesheets/admin/globals/_mixins.scss +25 -0
  47. data/app/assets/stylesheets/admin/globals/_variables.scss +142 -0
  48. data/app/assets/stylesheets/admin/globals/_variables_override.scss +7 -0
  49. data/app/assets/stylesheets/admin/hacks/_ie.scss +73 -0
  50. data/app/assets/stylesheets/admin/hacks/_mozilla.scss +32 -0
  51. data/app/assets/stylesheets/admin/hacks/_opera.scss +17 -0
  52. data/app/assets/stylesheets/admin/plugins/_jstree.scss +132 -0
  53. data/app/assets/stylesheets/admin/plugins/_powertip.scss +86 -0
  54. data/app/assets/stylesheets/admin/plugins/_select2.scss +176 -0
  55. data/app/assets/stylesheets/admin/plugins/_token-input.scss +110 -0
  56. data/app/assets/stylesheets/admin/plugins/font-awesome.scss +303 -0
  57. data/app/assets/stylesheets/admin/sections/_bulk_transfer.scss +8 -0
  58. data/app/assets/stylesheets/admin/sections/_edit_checkouts.scss +72 -0
  59. data/app/assets/stylesheets/admin/sections/_image_settings.scss +3 -0
  60. data/app/assets/stylesheets/admin/sections/_orders.scss +54 -0
  61. data/app/assets/stylesheets/admin/sections/_overview.scss +86 -0
  62. data/app/assets/stylesheets/admin/sections/_products.scss +113 -0
  63. data/app/assets/stylesheets/admin/sections/_promotions.scss +100 -0
  64. data/app/assets/stylesheets/admin/shared/_forms.scss +262 -0
  65. data/app/assets/stylesheets/admin/shared/_icons.scss +22 -0
  66. data/app/assets/stylesheets/admin/shared/_layout.scss +91 -0
  67. data/app/assets/stylesheets/admin/shared/_tables.scss +198 -0
  68. data/app/assets/stylesheets/admin/shared/_typography.scss +132 -0
  69. data/app/assets/stylesheets/admin/spree_admin.scss +39 -0
  70. data/app/assets/stylesheets/admin/spree_backend.css +16 -0
  71. data/app/assets/stylesheets/store/backend.css +1 -0
  72. data/app/controllers/spree/admin/adjustments_controller.rb +30 -0
  73. data/app/controllers/spree/admin/banners_controller.rb +14 -0
  74. data/app/controllers/spree/admin/base_controller.rb +92 -0
  75. data/app/controllers/spree/admin/countries_controller.rb +11 -0
  76. data/app/controllers/spree/admin/general_settings_controller.rb +34 -0
  77. data/app/controllers/spree/admin/image_settings_controller.rb +66 -0
  78. data/app/controllers/spree/admin/images_controller.rb +35 -0
  79. data/app/controllers/spree/admin/inventory_units_controller.rb +6 -0
  80. data/app/controllers/spree/admin/line_items_controller.rb +49 -0
  81. data/app/controllers/spree/admin/mail_methods_controller.rb +38 -0
  82. data/app/controllers/spree/admin/option_types_controller.rb +46 -0
  83. data/app/controllers/spree/admin/option_values_controller.rb +11 -0
  84. data/app/controllers/spree/admin/orders/customer_details_controller.rb +40 -0
  85. data/app/controllers/spree/admin/orders_controller.rb +133 -0
  86. data/app/controllers/spree/admin/overview_controller.rb +13 -0
  87. data/app/controllers/spree/admin/payment_methods_controller.rb +65 -0
  88. data/app/controllers/spree/admin/payments_controller.rb +111 -0
  89. data/app/controllers/spree/admin/product_properties_controller.rb +18 -0
  90. data/app/controllers/spree/admin/products_controller.rb +115 -0
  91. data/app/controllers/spree/admin/promotion_actions_controller.rb +45 -0
  92. data/app/controllers/spree/admin/promotion_rules_controller.rb +50 -0
  93. data/app/controllers/spree/admin/promotions_controller.rb +23 -0
  94. data/app/controllers/spree/admin/properties_controller.rb +12 -0
  95. data/app/controllers/spree/admin/prototypes_controller.rb +27 -0
  96. data/app/controllers/spree/admin/reports_controller.rb +55 -0
  97. data/app/controllers/spree/admin/resource_controller.rb +261 -0
  98. data/app/controllers/spree/admin/return_authorizations_controller.rb +21 -0
  99. data/app/controllers/spree/admin/search_controller.rb +27 -0
  100. data/app/controllers/spree/admin/shipping_categories_controller.rb +6 -0
  101. data/app/controllers/spree/admin/shipping_methods_controller.rb +45 -0
  102. data/app/controllers/spree/admin/states_controller.rb +29 -0
  103. data/app/controllers/spree/admin/stock_items_controller.rb +24 -0
  104. data/app/controllers/spree/admin/stock_locations_controller.rb +7 -0
  105. data/app/controllers/spree/admin/stock_movements_controller.rb +60 -0
  106. data/app/controllers/spree/admin/stock_transfers_controller.rb +53 -0
  107. data/app/controllers/spree/admin/tax_categories_controller.rb +19 -0
  108. data/app/controllers/spree/admin/tax_rates_controller.rb +26 -0
  109. data/app/controllers/spree/admin/tax_settings_controller.rb +17 -0
  110. data/app/controllers/spree/admin/taxonomies_controller.rb +21 -0
  111. data/app/controllers/spree/admin/taxons_controller.rb +112 -0
  112. data/app/controllers/spree/admin/trackers_controller.rb +6 -0
  113. data/app/controllers/spree/admin/variants_controller.rb +44 -0
  114. data/app/controllers/spree/admin/zones_controller.rb +26 -0
  115. data/app/helpers/spree/admin/base_helper.rb +168 -0
  116. data/app/helpers/spree/admin/general_settings_helper.rb +13 -0
  117. data/app/helpers/spree/admin/inventory_settings_helper.rb +9 -0
  118. data/app/helpers/spree/admin/navigation_helper.rb +154 -0
  119. data/app/helpers/spree/admin/orders_helper.rb +19 -0
  120. data/app/helpers/spree/admin/payments_helper.rb +11 -0
  121. data/app/helpers/spree/admin/products_helper.rb +27 -0
  122. data/app/helpers/spree/admin/stock_movements_helper.rb +13 -0
  123. data/app/helpers/spree/admin/tables_helper.rb +15 -0
  124. data/app/helpers/spree/admin/taxons_helper.rb +9 -0
  125. data/app/helpers/spree/promotion_rules_helper.rb +13 -0
  126. data/app/models/spree/backend_configuration.rb +5 -0
  127. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +36 -0
  128. data/app/views/spree/admin/adjustments/_form.html.erb +16 -0
  129. data/app/views/spree/admin/adjustments/edit.html.erb +22 -0
  130. data/app/views/spree/admin/adjustments/index.html.erb +14 -0
  131. data/app/views/spree/admin/adjustments/new.html.erb +23 -0
  132. data/app/views/spree/admin/banners/_gateway.html.erb +16 -0
  133. data/app/views/spree/admin/countries/_form.html.erb +22 -0
  134. data/app/views/spree/admin/countries/edit.html.erb +21 -0
  135. data/app/views/spree/admin/countries/index.html.erb +34 -0
  136. data/app/views/spree/admin/general_settings/edit.html.erb +92 -0
  137. data/app/views/spree/admin/image_settings/edit.html.erb +126 -0
  138. data/app/views/spree/admin/images/_form.html.erb +18 -0
  139. data/app/views/spree/admin/images/edit.html.erb +28 -0
  140. data/app/views/spree/admin/images/index.html.erb +58 -0
  141. data/app/views/spree/admin/images/new.html.erb +15 -0
  142. data/app/views/spree/admin/inventory_units/adjust.html.erb +31 -0
  143. data/app/views/spree/admin/line_items/create.js.erb +1 -0
  144. data/app/views/spree/admin/line_items/destroy.js.erb +1 -0
  145. data/app/views/spree/admin/mail_methods/_form.html.erb +80 -0
  146. data/app/views/spree/admin/mail_methods/edit.html.erb +21 -0
  147. data/app/views/spree/admin/option_types/_form.html.erb +17 -0
  148. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +9 -0
  149. data/app/views/spree/admin/option_types/edit.html.erb +50 -0
  150. data/app/views/spree/admin/option_types/index.html.erb +40 -0
  151. data/app/views/spree/admin/option_types/new.html.erb +11 -0
  152. data/app/views/spree/admin/option_types/new.js.erb +2 -0
  153. data/app/views/spree/admin/orders/_add_product.html.erb +15 -0
  154. data/app/views/spree/admin/orders/_form.html.erb +45 -0
  155. data/app/views/spree/admin/orders/_line_item.html.erb +9 -0
  156. data/app/views/spree/admin/orders/_shipment.html.erb +148 -0
  157. data/app/views/spree/admin/orders/customer_details/_form.html.erb +66 -0
  158. data/app/views/spree/admin/orders/customer_details/edit.html.erb +27 -0
  159. data/app/views/spree/admin/orders/edit.html.erb +30 -0
  160. data/app/views/spree/admin/orders/index.html.erb +134 -0
  161. data/app/views/spree/admin/payment_methods/_form.html.erb +57 -0
  162. data/app/views/spree/admin/payment_methods/edit.html.erb +23 -0
  163. data/app/views/spree/admin/payment_methods/index.html.erb +52 -0
  164. data/app/views/spree/admin/payment_methods/new.html.erb +22 -0
  165. data/app/views/spree/admin/payments/_bill_address_form.html.erb +9 -0
  166. data/app/views/spree/admin/payments/_form.html.erb +28 -0
  167. data/app/views/spree/admin/payments/_list.html.erb +26 -0
  168. data/app/views/spree/admin/payments/credit.html.erb +18 -0
  169. data/app/views/spree/admin/payments/index.html.erb +24 -0
  170. data/app/views/spree/admin/payments/new.html.erb +26 -0
  171. data/app/views/spree/admin/payments/show.html.erb +18 -0
  172. data/app/views/spree/admin/payments/source_forms/_check.html.erb +0 -0
  173. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +50 -0
  174. data/app/views/spree/admin/payments/source_views/_check.html.erb +0 -0
  175. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +29 -0
  176. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +17 -0
  177. data/app/views/spree/admin/product_properties/index.html.erb +59 -0
  178. data/app/views/spree/admin/products/_add_stock_form.html.erb +6 -0
  179. data/app/views/spree/admin/products/_form.html.erb +128 -0
  180. data/app/views/spree/admin/products/_properties_form.erb +10 -0
  181. data/app/views/spree/admin/products/edit.html.erb +18 -0
  182. data/app/views/spree/admin/products/index.html.erb +102 -0
  183. data/app/views/spree/admin/products/new.html.erb +81 -0
  184. data/app/views/spree/admin/products/new.js.erb +7 -0
  185. data/app/views/spree/admin/products/stock.html.erb +79 -0
  186. data/app/views/spree/admin/promotion_actions/create.js.erb +13 -0
  187. data/app/views/spree/admin/promotion_actions/destroy.js.erb +1 -0
  188. data/app/views/spree/admin/promotion_rules/create.js.erb +7 -0
  189. data/app/views/spree/admin/promotion_rules/destroy.js.erb +3 -0
  190. data/app/views/spree/admin/promotions/_actions.html.erb +32 -0
  191. data/app/views/spree/admin/promotions/_form.html.erb +56 -0
  192. data/app/views/spree/admin/promotions/_promotion_action.html.erb +11 -0
  193. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +9 -0
  194. data/app/views/spree/admin/promotions/_rules.html.erb +45 -0
  195. data/app/views/spree/admin/promotions/_tab.html.erb +1 -0
  196. data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +26 -0
  197. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +22 -0
  198. data/app/views/spree/admin/promotions/edit.html.erb +28 -0
  199. data/app/views/spree/admin/promotions/index.html.erb +52 -0
  200. data/app/views/spree/admin/promotions/new.html.erb +16 -0
  201. data/app/views/spree/admin/promotions/rules/_first_order.html.erb +0 -0
  202. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +6 -0
  203. data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +5 -0
  204. data/app/views/spree/admin/promotions/rules/_product.html.erb +9 -0
  205. data/app/views/spree/admin/promotions/rules/_user.html.erb +4 -0
  206. data/app/views/spree/admin/promotions/rules/_user_logged_in.html.erb +0 -0
  207. data/app/views/spree/admin/properties/_form.html.erb +16 -0
  208. data/app/views/spree/admin/properties/edit.html.erb +18 -0
  209. data/app/views/spree/admin/properties/filtered.html.erb +1 -0
  210. data/app/views/spree/admin/properties/index.html.erb +41 -0
  211. data/app/views/spree/admin/properties/new.html.erb +13 -0
  212. data/app/views/spree/admin/properties/new.js.erb +2 -0
  213. data/app/views/spree/admin/prototypes/_form.html.erb +25 -0
  214. data/app/views/spree/admin/prototypes/_prototypes.html.erb +25 -0
  215. data/app/views/spree/admin/prototypes/available.js.erb +2 -0
  216. data/app/views/spree/admin/prototypes/edit.html.erb +20 -0
  217. data/app/views/spree/admin/prototypes/index.html.erb +40 -0
  218. data/app/views/spree/admin/prototypes/new.html.erb +11 -0
  219. data/app/views/spree/admin/prototypes/new.js.erb +5 -0
  220. data/app/views/spree/admin/prototypes/select.js.erb +4 -0
  221. data/app/views/spree/admin/prototypes/show.html.erb +42 -0
  222. data/app/views/spree/admin/reports/index.html.erb +21 -0
  223. data/app/views/spree/admin/reports/sales_total.html.erb +37 -0
  224. data/app/views/spree/admin/return_authorizations/_form.html.erb +78 -0
  225. data/app/views/spree/admin/return_authorizations/edit.html.erb +32 -0
  226. data/app/views/spree/admin/return_authorizations/index.html.erb +52 -0
  227. data/app/views/spree/admin/return_authorizations/new.html.erb +22 -0
  228. data/app/views/spree/admin/search/users.rabl +30 -0
  229. data/app/views/spree/admin/shared/_address.html.erb +6 -0
  230. data/app/views/spree/admin/shared/_address_form.html.erb +72 -0
  231. data/app/views/spree/admin/shared/_alert.html.erb +5 -0
  232. data/app/views/spree/admin/shared/_calculator_fields.html.erb +22 -0
  233. data/app/views/spree/admin/shared/_configuration_menu.html.erb +30 -0
  234. data/app/views/spree/admin/shared/_destroy.js.erb +16 -0
  235. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +5 -0
  236. data/app/views/spree/admin/shared/_head.html.erb +25 -0
  237. data/app/views/spree/admin/shared/_new_resource_links.html.erb +5 -0
  238. data/app/views/spree/admin/shared/_order_details.html.erb +56 -0
  239. data/app/views/spree/admin/shared/_order_tabs.html.erb +75 -0
  240. data/app/views/spree/admin/shared/_product_sub_menu.html.erb +8 -0
  241. data/app/views/spree/admin/shared/_product_tabs.html.erb +30 -0
  242. data/app/views/spree/admin/shared/_report_criteria.html.erb +17 -0
  243. data/app/views/spree/admin/shared/_routes.html.erb +8 -0
  244. data/app/views/spree/admin/shared/_show_resource_links.html.erb +5 -0
  245. data/app/views/spree/admin/shared/_stock_movement_form.html.erb +30 -0
  246. data/app/views/spree/admin/shared/_tabs.html.erb +14 -0
  247. data/app/views/spree/admin/shared/_translations.html.erb +32 -0
  248. data/app/views/spree/admin/shared/_update_order_state.js +7 -0
  249. data/app/views/spree/admin/shipping_categories/_form.html.erb +6 -0
  250. data/app/views/spree/admin/shipping_categories/edit.html.erb +20 -0
  251. data/app/views/spree/admin/shipping_categories/index.html.erb +35 -0
  252. data/app/views/spree/admin/shipping_categories/new.html.erb +20 -0
  253. data/app/views/spree/admin/shipping_methods/_form.html.erb +58 -0
  254. data/app/views/spree/admin/shipping_methods/edit.html.erb +29 -0
  255. data/app/views/spree/admin/shipping_methods/index.html.erb +48 -0
  256. data/app/views/spree/admin/shipping_methods/new.html.erb +29 -0
  257. data/app/views/spree/admin/states/_form.html.erb +14 -0
  258. data/app/views/spree/admin/states/_state_list.html.erb +31 -0
  259. data/app/views/spree/admin/states/edit.html.erb +20 -0
  260. data/app/views/spree/admin/states/index.html.erb +24 -0
  261. data/app/views/spree/admin/states/new.html.erb +15 -0
  262. data/app/views/spree/admin/states/new.js.erb +2 -0
  263. data/app/views/spree/admin/stock_locations/_form.html.erb +87 -0
  264. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +39 -0
  265. data/app/views/spree/admin/stock_locations/edit.html.erb +17 -0
  266. data/app/views/spree/admin/stock_locations/index.html.erb +49 -0
  267. data/app/views/spree/admin/stock_locations/new.html.erb +16 -0
  268. data/app/views/spree/admin/stock_movements/_form.html.erb +13 -0
  269. data/app/views/spree/admin/stock_movements/edit.html.erb +16 -0
  270. data/app/views/spree/admin/stock_movements/index.html.erb +43 -0
  271. data/app/views/spree/admin/stock_movements/new.html.erb +16 -0
  272. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +27 -0
  273. data/app/views/spree/admin/stock_transfers/index.html.erb +94 -0
  274. data/app/views/spree/admin/stock_transfers/new.html.erb +108 -0
  275. data/app/views/spree/admin/stock_transfers/show.html.erb +48 -0
  276. data/app/views/spree/admin/tax_categories/_form.html.erb +24 -0
  277. data/app/views/spree/admin/tax_categories/edit.html.erb +18 -0
  278. data/app/views/spree/admin/tax_categories/index.html.erb +48 -0
  279. data/app/views/spree/admin/tax_categories/new.html.erb +19 -0
  280. data/app/views/spree/admin/tax_categories/show.html.erb +1 -0
  281. data/app/views/spree/admin/tax_rates/_form.html.erb +42 -0
  282. data/app/views/spree/admin/tax_rates/edit.html.erb +21 -0
  283. data/app/views/spree/admin/tax_rates/index.html.erb +59 -0
  284. data/app/views/spree/admin/tax_rates/new.html.erb +25 -0
  285. data/app/views/spree/admin/tax_settings/edit.html.erb +18 -0
  286. data/app/views/spree/admin/taxonomies/_form.html.erb +7 -0
  287. data/app/views/spree/admin/taxonomies/_js_head.html.erb +13 -0
  288. data/app/views/spree/admin/taxonomies/_list.html.erb +26 -0
  289. data/app/views/spree/admin/taxonomies/_taxon.html.erb +12 -0
  290. data/app/views/spree/admin/taxonomies/edit.erb +42 -0
  291. data/app/views/spree/admin/taxonomies/index.html.erb +15 -0
  292. data/app/views/spree/admin/taxonomies/new.html.erb +22 -0
  293. data/app/views/spree/admin/taxons/_form.html.erb +44 -0
  294. data/app/views/spree/admin/taxons/_taxon_table.html.erb +23 -0
  295. data/app/views/spree/admin/taxons/edit.html.erb +23 -0
  296. data/app/views/spree/admin/taxons/search.rabl +5 -0
  297. data/app/views/spree/admin/trackers/_form.html.erb +34 -0
  298. data/app/views/spree/admin/trackers/edit.html.erb +20 -0
  299. data/app/views/spree/admin/trackers/index.html.erb +48 -0
  300. data/app/views/spree/admin/trackers/new.html.erb +20 -0
  301. data/app/views/spree/admin/variants/_autocomplete.js.erb +67 -0
  302. data/app/views/spree/admin/variants/_form.html.erb +37 -0
  303. data/app/views/spree/admin/variants/edit.html.erb +15 -0
  304. data/app/views/spree/admin/variants/index.html.erb +74 -0
  305. data/app/views/spree/admin/variants/new.html.erb +9 -0
  306. data/app/views/spree/admin/variants/new.js.erb +3 -0
  307. data/app/views/spree/admin/zones/_country_member.html.erb +5 -0
  308. data/app/views/spree/admin/zones/_form.html.erb +34 -0
  309. data/app/views/spree/admin/zones/_member_type.html.erb +19 -0
  310. data/app/views/spree/admin/zones/_state_member.html.erb +5 -0
  311. data/app/views/spree/admin/zones/edit.html.erb +23 -0
  312. data/app/views/spree/admin/zones/index.html.erb +53 -0
  313. data/app/views/spree/admin/zones/new.html.erb +21 -0
  314. data/app/views/spree/layouts/admin.html.erb +135 -0
  315. data/app/views/spree/test_mailer/test_email.text.erb +4 -0
  316. data/config/initializers/form_builder.rb +15 -0
  317. data/config/routes.rb +159 -0
  318. data/lib/spree/backend.rb +21 -0
  319. data/lib/spree/backend/action_callbacks.rb +26 -0
  320. data/lib/spree/backend/engine.rb +41 -0
  321. data/lib/spree_backend.rb +1 -0
  322. data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
  323. data/vendor/assets/fonts/fontawesome-webfont.svg +255 -0
  324. data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
  325. data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
  326. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  327. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  328. data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  329. data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  330. data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  331. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  332. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  333. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  334. data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  335. data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  336. data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
  337. data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  338. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  339. data/vendor/assets/images/jquery.alerts/images/help.gif +0 -0
  340. data/vendor/assets/images/jquery.alerts/images/important.gif +0 -0
  341. data/vendor/assets/images/jquery.alerts/images/info.gif +0 -0
  342. data/vendor/assets/images/jquery.alerts/images/title.gif +0 -0
  343. data/vendor/assets/javascripts/css_browser_selector_dev.js +156 -0
  344. data/vendor/assets/javascripts/equalize.js +41 -0
  345. data/vendor/assets/javascripts/handlebars.js +1920 -0
  346. data/vendor/assets/javascripts/jquery.adaptivemenu.js +60 -0
  347. data/vendor/assets/javascripts/jquery.alerts/jquery.alerts.js +235 -0
  348. data/vendor/assets/javascripts/jquery.cookie.js +41 -0
  349. data/vendor/assets/javascripts/jquery.delayedobserver.js +35 -0
  350. data/vendor/assets/javascripts/jquery.horizontalNav.js +141 -0
  351. data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +4540 -0
  352. data/vendor/assets/javascripts/jquery.jstree/themes/apple/bg.jpg +0 -0
  353. data/vendor/assets/javascripts/jquery.jstree/themes/apple/d.png +0 -0
  354. data/vendor/assets/javascripts/jquery.jstree/themes/apple/dot_for_ie.gif +0 -0
  355. data/vendor/assets/javascripts/jquery.jstree/themes/apple/style.css +61 -0
  356. data/vendor/assets/javascripts/jquery.jstree/themes/apple/throbber.gif +0 -0
  357. data/vendor/assets/javascripts/jquery.powertip.js +796 -0
  358. data/vendor/assets/javascripts/jquery.vAlign.js +11 -0
  359. data/vendor/assets/javascripts/modernizr.js +4 -0
  360. data/vendor/assets/javascripts/responsive-tables.js +42 -0
  361. data/vendor/assets/javascripts/spin.js +319 -0
  362. data/vendor/assets/javascripts/trunk8.js +233 -0
  363. data/vendor/assets/stylesheets/font-awesome-ie7.css +645 -0
  364. data/vendor/assets/stylesheets/font-awesome.css.erb +303 -0
  365. data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +357 -0
  366. data/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.css.erb +57 -0
  367. data/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.spree.css +29 -0
  368. data/vendor/assets/stylesheets/jquery.powertip.css +85 -0
  369. data/vendor/assets/stylesheets/responsive-tables.css +21 -0
  370. metadata +509 -0
@@ -0,0 +1,21 @@
1
+ module Spree
2
+ module Admin
3
+ class ReturnAuthorizationsController < ResourceController
4
+ belongs_to 'spree/order', :find_by => :number
5
+
6
+ update.after :associate_inventory_units
7
+ create.after :associate_inventory_units
8
+
9
+ def fire
10
+ @return_authorization.send("#{params[:e]}!")
11
+ flash[:success] = Spree.t(:return_authorization_updated)
12
+ redirect_to :back
13
+ end
14
+
15
+ protected
16
+ def associate_inventory_units
17
+ (params[:return_quantity] || []).each { |variant_id, qty| @return_authorization.add_variant(variant_id.to_i, qty.to_i) }
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,27 @@
1
+ module Spree
2
+ module Admin
3
+ class SearchController < Spree::Admin::BaseController
4
+ # http://spreecommerce.com/blog/2010/11/02/json-hijacking-vulnerability/
5
+ before_filter :check_json_authenticity, :only => :index
6
+ respond_to :json
7
+
8
+ # TODO: Clean this up by moving searching out to user_class_extensions
9
+ # And then JSON building with something like Active Model Serializers
10
+ def users
11
+ if params[:ids]
12
+ @users = Spree.user_class.where(:id => params[:ids].split(','))
13
+ else
14
+ @users = Spree.user_class.ransack({
15
+ :m => 'or',
16
+ :email_start => params[:q],
17
+ :ship_address_firstname_start => params[:q],
18
+ :ship_address_lastname_start => params[:q],
19
+ :bill_address_firstname_start => params[:q],
20
+ :bill_address_lastname_start => params[:q]
21
+ }).result.limit(10)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class ShippingCategoriesController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,45 @@
1
+ module Spree
2
+ module Admin
3
+ class ShippingMethodsController < ResourceController
4
+ before_filter :load_data, :except => [:index]
5
+ before_filter :set_shipping_category, :only => [:create, :update]
6
+ before_filter :set_zones, :only => [:create, :update]
7
+
8
+ def destroy
9
+ @object.touch :deleted_at
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
+ @calculators = ShippingMethod.calculators.sort_by(&:name)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,29 @@
1
+ module Spree
2
+ module Admin
3
+ class StatesController < ResourceController
4
+ belongs_to 'spree/country'
5
+ before_filter :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,24 @@
1
+ module Spree
2
+ module Admin
3
+ class StockItemsController < Spree::Admin::BaseController
4
+ before_filter :determine_backorderable
5
+
6
+ def update
7
+ stock_item.save
8
+ respond_to do |format|
9
+ format.js { head :ok }
10
+ end
11
+ end
12
+
13
+ private
14
+
15
+ def stock_item
16
+ @stock_item ||= StockItem.find(params[:id])
17
+ end
18
+
19
+ def determine_backorderable
20
+ stock_item.backorderable = params[:stock_item].present? && params[:stock_item][:backorderable].present? ? true : false
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,7 @@
1
+ module Spree
2
+ module Admin
3
+ class StockLocationsController < ResourceController
4
+
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,60 @@
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.page(params[:page])
9
+ end
10
+
11
+ def new
12
+ @stock_movement = stock_location.stock_movements.build
13
+ end
14
+
15
+ def create
16
+ if params[:stock_movement][:stock_location_id].present?
17
+ variant = Variant.find(params[:stock_item].delete(:variant_id))
18
+ location = StockLocation.find(params[:stock_movement].delete(:stock_location_id))
19
+ @stock_movement = location.stock_movements.build(params[:stock_movement])
20
+ @stock_movement.stock_item = location.stock_items.where(variant_id: variant).first_or_create
21
+ @stock_movement.save ? flash[:success] = flash_message_for(@stock_movement, :successfully_created) : flash[:error] = Spree.t(:could_not_create_stock_movement)
22
+ redirect_to :back
23
+ else
24
+ @stock_movement = stock_location.stock_movements.build(params[:stock_movement])
25
+ @stock_movement.save
26
+ flash[:success] = flash_message_for(@stock_movement, :successfully_created)
27
+ redirect_to admin_stock_location_stock_movements_path(stock_location)
28
+ end
29
+ end
30
+
31
+ def edit
32
+ @stock_movement = StockMovement.find(params[:id])
33
+ end
34
+
35
+ def update
36
+ @stock_movement = StockMovement.find(params[:id])
37
+ if @stock_movement.update_attributes(params[:stock_movement])
38
+ flash[:success] = flash_message_for(@stock_movement, :successfully_updated)
39
+ redirect_to admin_stock_location_stock_movements_path(stock_location)
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ def destroy
46
+ stock_movement = StockMovement.find(params[:id])
47
+ flash[:success] = flash_message_for(stock_movement, :successfully_removed)
48
+ stock_movement.destroy
49
+ redirect_to admin_stock_location_stock_movements_path(stock_location)
50
+ end
51
+
52
+ private
53
+
54
+ def stock_location
55
+ @stock_location ||= StockLocation.find(params[:stock_location_id])
56
+ end
57
+ end
58
+ end
59
+ end
60
+
@@ -0,0 +1,53 @@
1
+ module Spree
2
+ module Admin
3
+ class StockTransfersController < Admin::BaseController
4
+ before_filter :load_stock_locations, :only => :index
5
+
6
+ def index
7
+ @q = StockTransfer.search(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.find_by_param(params[:id])
17
+ end
18
+
19
+ def new
20
+
21
+ end
22
+
23
+ def create
24
+ variants = Hash.new(0)
25
+ params[:variant].each_with_index do |variant_id, i|
26
+ variants[variant_id] += params[:quantity][i].to_i
27
+ end
28
+
29
+ stock_transfer = StockTransfer.create(:reference => params[:reference])
30
+ stock_transfer.transfer(source_location,
31
+ destination_location,
32
+ variants)
33
+
34
+ flash[:success] = t(:stock_successfully_transferred)
35
+ redirect_to admin_stock_transfer_path(stock_transfer)
36
+ end
37
+
38
+ private
39
+ def load_stock_locations
40
+ @stock_locations = Spree::StockLocation.active.order('name ASC')
41
+ end
42
+
43
+ def source_location
44
+ @source_location ||= params.has_key?(:transfer_receive_stock) ? nil :
45
+ StockLocation.find(params[:transfer_source_location_id])
46
+ end
47
+
48
+ def destination_location
49
+ @destination_location ||= StockLocation.find(params[:transfer_destination_location_id])
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,19 @@
1
+ module Spree
2
+ module Admin
3
+ class TaxCategoriesController < ResourceController
4
+ def destroy
5
+ if @object.mark_deleted!
6
+ flash[:success] = flash_message_for(@object, :successfully_removed)
7
+ respond_with(@object) do |format|
8
+ format.html { redirect_to collection_url }
9
+ format.js { render :partial => "spree/admin/shared/destroy" }
10
+ end
11
+ else
12
+ respond_with(@object) do |format|
13
+ format.html { redirect_to collection_url }
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ module Spree
2
+ module Admin
3
+ class TaxRatesController < ResourceController
4
+ before_filter :load_data
5
+
6
+ update.after :update_after
7
+ create.after :create_after
8
+
9
+ private
10
+
11
+ def load_data
12
+ @available_zones = Zone.order(:name)
13
+ @available_categories = TaxCategory.order(:name)
14
+ @calculators = TaxRate.calculators.sort_by(&:name)
15
+ end
16
+
17
+ def update_after
18
+ Rails.cache.delete('vat_rates')
19
+ end
20
+
21
+ def create_after
22
+ Rails.cache.delete('vat_rates')
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Admin
3
+ class TaxSettingsController < Spree::Admin::BaseController
4
+
5
+ def update
6
+ Spree::Config.set(params[:preferences])
7
+
8
+ respond_to do |format|
9
+ format.html {
10
+ redirect_to edit_admin_tax_settings_path
11
+ }
12
+ end
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ module Spree
2
+ module Admin
3
+ class TaxonomiesController < ResourceController
4
+ respond_to :json, :only => [:get_children]
5
+
6
+ def get_children
7
+ @taxons = Taxon.find(params[:parent_id]).children
8
+ end
9
+
10
+ private
11
+
12
+ def location_after_save
13
+ if @taxonomy.created_at == @taxonomy.updated_at
14
+ edit_admin_taxonomy_url(@taxonomy)
15
+ else
16
+ admin_taxonomies_url
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,112 @@
1
+ module Spree
2
+ module Admin
3
+ class TaxonsController < Spree::Admin::BaseController
4
+
5
+ respond_to :html, :json, :js
6
+
7
+ def search
8
+ if params[:ids]
9
+ @taxons = Spree::Taxon.where(:id => params[:ids].split(','))
10
+ else
11
+ @taxons = Spree::Taxon.limit(20).search(:name_cont => params[:q]).result
12
+ end
13
+ end
14
+
15
+ def create
16
+ @taxonomy = Taxonomy.find(params[:taxonomy_id])
17
+ @taxon = @taxonomy.taxons.build(params[:taxon])
18
+ if @taxon.save
19
+ respond_with(@taxon) do |format|
20
+ format.json {render :json => @taxon.to_json }
21
+ end
22
+ else
23
+ flash[:error] = Spree.t('errors.messages.could_not_create_taxon')
24
+ respond_with(@taxon) do |format|
25
+ format.html { redirect_to @taxonomy ? edit_admin_taxonomy_url(@taxonomy) : admin_taxonomies_url }
26
+ end
27
+ end
28
+ end
29
+
30
+ def edit
31
+ @taxonomy = Taxonomy.find(params[:taxonomy_id])
32
+ @taxon = @taxonomy.taxons.find(params[:id])
33
+ @permalink_part = @taxon.permalink.split("/").last
34
+ end
35
+
36
+ def update
37
+ @taxonomy = Taxonomy.find(params[:taxonomy_id])
38
+ @taxon = @taxonomy.taxons.find(params[:id])
39
+ parent_id = params[:taxon][:parent_id]
40
+ new_position = params[:taxon][:position]
41
+
42
+ if parent_id || new_position #taxon is being moved
43
+ new_parent = parent_id.nil? ? @taxon.parent : Taxon.find(parent_id.to_i)
44
+ new_position = new_position.nil? ? -1 : new_position.to_i
45
+
46
+ # Bellow is a very complicated way of finding where in nested set we
47
+ # should actually move the taxon to achieve sane results,
48
+ # JS is giving us the desired position, which was awesome for previous setup,
49
+ # but now it's quite complicated to find where we should put it as we have
50
+ # to differenciate between moving to the same branch, up down and into
51
+ # first position.
52
+ new_siblings = new_parent.children
53
+ if new_position <= 0 && new_siblings.empty?
54
+ @taxon.move_to_child_of(new_parent)
55
+ elsif new_parent.id != @taxon.parent_id
56
+ if new_position == 0
57
+ @taxon.move_to_left_of(new_siblings.first)
58
+ else
59
+ @taxon.move_to_right_of(new_siblings[new_position-1])
60
+ end
61
+ elsif new_position < new_siblings.index(@taxon)
62
+ @taxon.move_to_left_of(new_siblings[new_position]) # we move up
63
+ else
64
+ @taxon.move_to_right_of(new_siblings[new_position-1]) # we move down
65
+ end
66
+ # Reset legacy position, if any extensions still rely on it
67
+ new_parent.children.reload.each{|t| t.update_column(:position, t.position)}
68
+
69
+ if parent_id
70
+ @taxon.reload
71
+ @taxon.set_permalink
72
+ @taxon.save!
73
+ @update_children = true
74
+ end
75
+ end
76
+
77
+ if params.key? "permalink_part"
78
+ parent_permalink = @taxon.permalink.split("/")[0...-1].join("/")
79
+ parent_permalink += "/" unless parent_permalink.blank?
80
+ params[:taxon][:permalink] = parent_permalink + params[:permalink_part]
81
+ end
82
+ #check if we need to rename child taxons if parent name or permalink changes
83
+ @update_children = true if params[:taxon][:name] != @taxon.name || params[:taxon][:permalink] != @taxon.permalink
84
+
85
+ if @taxon.update_attributes(params[:taxon])
86
+ flash[:success] = flash_message_for(@taxon, :successfully_updated)
87
+ end
88
+
89
+ #rename child taxons
90
+ if @update_children
91
+ @taxon.descendants.each do |taxon|
92
+ taxon.reload
93
+ taxon.set_permalink
94
+ taxon.save!
95
+ end
96
+ end
97
+
98
+ respond_with(@taxon) do |format|
99
+ format.html {redirect_to edit_admin_taxonomy_url(@taxonomy) }
100
+ format.json {render :json => @taxon.to_json }
101
+ end
102
+ end
103
+
104
+ def destroy
105
+ @taxon = Taxon.find(params[:id])
106
+ @taxon.destroy
107
+ respond_with(@taxon) { |format| format.json { render :json => '' } }
108
+ end
109
+
110
+ end
111
+ end
112
+ end