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,16 @@
1
+ /*
2
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
5
+
6
+ *= require jquery.alerts/jquery.alerts
7
+ *= require jquery.alerts/jquery.alerts.spree
8
+ *= require responsive-tables
9
+ *= require normalize
10
+ *= require skeleton
11
+ *= require jquery-ui.datepicker
12
+ *= require jquery.powertip
13
+ *= require select2
14
+
15
+ *= require ./spree_admin
16
+ */
@@ -0,0 +1 @@
1
+ /* Placeholder for backend dummy app */
@@ -0,0 +1,30 @@
1
+ module Spree
2
+ module Admin
3
+ class AdjustmentsController < ResourceController
4
+ belongs_to 'spree/order', :find_by => :number
5
+ destroy.after :reload_order
6
+
7
+ def toggle_state
8
+ redirect_to admin_order_adjustments_path(@order) if @adjustment.finalized?
9
+
10
+ if @adjustment.immutable?
11
+ @adjustment.fire_state_event(:open)
12
+ flash[:success] = Spree.t(:adjustment_successfully_opened)
13
+ else
14
+ @adjustment.fire_state_event(:close)
15
+ flash[:success] = Spree.t(:adjustment_successfully_closed)
16
+ end
17
+ redirect_to admin_order_adjustments_path(@order)
18
+ end
19
+
20
+ private
21
+ def reload_order
22
+ @order.reload
23
+ end
24
+
25
+ def collection
26
+ parent.adjustments.eligible
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,14 @@
1
+ module Spree
2
+ module Admin
3
+ class BannersController < Spree::Admin::BaseController
4
+ def dismiss
5
+ if params[:id]
6
+ if user = try_spree_current_user
7
+ user.dismiss_banner(params[:id])
8
+ end
9
+ end
10
+ render :nothing => true
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,92 @@
1
+ module Spree
2
+ module Admin
3
+ class BaseController < Spree::BaseController
4
+ ssl_required
5
+
6
+ helper 'spree/admin/navigation'
7
+ helper 'spree/admin/tables'
8
+ layout '/spree/layouts/admin'
9
+
10
+ before_filter :check_alerts
11
+ before_filter :authorize_admin
12
+
13
+ protected
14
+ def action
15
+ params[:action].to_sym
16
+ end
17
+
18
+ def authorize_admin
19
+ if respond_to?(:model_class, true) && model_class
20
+ record = model_class
21
+ else
22
+ record = Object
23
+ end
24
+ authorize! :admin, record
25
+ authorize! action, record
26
+ end
27
+
28
+ # Need to generate an API key for a user due to some backend actions
29
+ # requiring authentication to the Spree API
30
+ def generate_admin_api_key
31
+ if user = try_spree_current_user
32
+ if user.spree_api_key.blank?
33
+ user.generate_spree_api_key!
34
+ end
35
+ end
36
+ end
37
+
38
+ def check_alerts
39
+ return unless should_check_alerts?
40
+
41
+ unless session.has_key? :alerts
42
+ begin
43
+ session[:alerts] = Spree::Alert.current(request.host)
44
+ filter_dismissed_alerts
45
+ Spree::Config.set :last_check_for_spree_alerts => DateTime.now.to_s
46
+ rescue
47
+ session[:alerts] = nil
48
+ end
49
+ end
50
+ end
51
+
52
+ def should_check_alerts?
53
+ return false if !Rails.env.production? || !Spree::Config[:check_for_spree_alerts]
54
+
55
+ last_check = Spree::Config[:last_check_for_spree_alerts]
56
+ return true if last_check.blank?
57
+
58
+ DateTime.parse(last_check) < 12.hours.ago
59
+ end
60
+
61
+ def flash_message_for(object, event_sym)
62
+ resource_desc = object.class.model_name.human
63
+ resource_desc += " \"#{object.name}\"" if object.respond_to?(:name) && object.name.present?
64
+ Spree.t(event_sym, :resource => resource_desc)
65
+ end
66
+
67
+ def render_js_for_destroy
68
+ render :partial => '/spree/admin/shared/destroy'
69
+ end
70
+
71
+ # Index request for JSON needs to pass a CSRF token in order to prevent JSON Hijacking
72
+ def check_json_authenticity
73
+ return unless request.format.js? or request.format.json?
74
+ return unless protect_against_forgery?
75
+ auth_token = params[request_forgery_protection_token]
76
+ unless (auth_token and form_authenticity_token == URI.unescape(auth_token))
77
+ raise(ActionController::InvalidAuthenticityToken)
78
+ end
79
+ end
80
+
81
+ def filter_dismissed_alerts
82
+ return unless session[:alerts]
83
+ dismissed = (Spree::Config[:dismissed_spree_alerts] || '').split(',')
84
+ session[:alerts].reject! { |a| dismissed.include? a["id"].to_s }
85
+ end
86
+
87
+ def config_locale
88
+ Spree::Backend::Config[:locale]
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module Admin
3
+ class CountriesController < ResourceController
4
+
5
+ def collection
6
+ super.order(:name)
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,34 @@
1
+ module Spree
2
+ module Admin
3
+ class GeneralSettingsController < Spree::Admin::BaseController
4
+
5
+ def edit
6
+ @preferences_general = [:site_name, :default_seo_title, :default_meta_keywords,
7
+ :default_meta_description, :site_url]
8
+ @preferences_security = [:allow_ssl_in_production,
9
+ :allow_ssl_in_staging, :allow_ssl_in_development_and_test,
10
+ :check_for_spree_alerts]
11
+ @preferences_currency = [:display_currency, :hide_cents]
12
+ end
13
+
14
+ def update
15
+ params.each do |name, value|
16
+ next unless Spree::Config.has_preference? name
17
+ Spree::Config[name] = value
18
+ end
19
+ flash[:success] = Spree.t(:successfully_updated, :resource => Spree.t(:general_settings))
20
+
21
+ redirect_to edit_admin_general_settings_path
22
+ end
23
+
24
+ def dismiss_alert
25
+ if request.xhr? and params[:alert_id]
26
+ dismissed = Spree::Config[:dismissed_spree_alerts] || ''
27
+ Spree::Config.set :dismissed_spree_alerts => dismissed.split(',').push(params[:alert_id]).join(',')
28
+ filter_dismissed_alerts
29
+ render :nothing => true
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,66 @@
1
+ module Spree
2
+ module Admin
3
+ class ImageSettingsController < Spree::Admin::BaseController
4
+ def edit
5
+ @styles = ActiveSupport::JSON.decode(Spree::Config[:attachment_styles])
6
+ @headers = ActiveSupport::JSON.decode(Spree::Config[:s3_headers])
7
+ end
8
+
9
+ def update
10
+ update_styles(params)
11
+ update_headers(params) if Spree::Config[:use_s3]
12
+
13
+ Spree::Config.set(params[:preferences])
14
+ update_paperclip_settings
15
+
16
+ respond_to do |format|
17
+ format.html {
18
+ flash[:success] = Spree.t(:image_settings_updated)
19
+ redirect_to spree.edit_admin_image_settings_path
20
+ }
21
+ end
22
+ end
23
+
24
+
25
+ private
26
+
27
+ def update_styles(params)
28
+ params[:new_attachment_styles].each do |index, style|
29
+ params[:attachment_styles][style[:name]] = style[:value] unless style[:value].empty?
30
+ end if params[:new_attachment_styles].present?
31
+
32
+ styles = params[:attachment_styles]
33
+
34
+ Spree::Config[:attachment_styles] = ActiveSupport::JSON.encode(styles) unless styles.nil?
35
+ end
36
+
37
+ def update_headers(params)
38
+ params[:new_s3_headers].each do |index, header|
39
+ params[:s3_headers][header[:name]] = header[:value] unless header[:value].empty?
40
+ end if params[:new_s3_headers].present?
41
+
42
+ headers = params[:s3_headers]
43
+
44
+ Spree::Config[:s3_headers] = ActiveSupport::JSON.encode(headers) unless headers.nil?
45
+ end
46
+
47
+ def update_paperclip_settings
48
+ if Spree::Config[:use_s3]
49
+ s3_creds = { :access_key_id => Spree::Config[:s3_access_key], :secret_access_key => Spree::Config[:s3_secret], :bucket => Spree::Config[:s3_bucket] }
50
+ Spree::Image.attachment_definitions[:attachment][:storage] = :s3
51
+ Spree::Image.attachment_definitions[:attachment][:s3_credentials] = s3_creds
52
+ Spree::Image.attachment_definitions[:attachment][:s3_headers] = ActiveSupport::JSON.decode(Spree::Config[:s3_headers])
53
+ Spree::Image.attachment_definitions[:attachment][:bucket] = Spree::Config[:s3_bucket]
54
+ else
55
+ Spree::Image.attachment_definitions[:attachment].delete :storage
56
+ end
57
+
58
+ Spree::Image.attachment_definitions[:attachment][:styles] = ActiveSupport::JSON.decode(Spree::Config[:attachment_styles])
59
+ Spree::Image.attachment_definitions[:attachment][:path] = Spree::Config[:attachment_path]
60
+ Spree::Image.attachment_definitions[:attachment][:default_url] = Spree::Config[:attachment_default_url]
61
+ Spree::Image.attachment_definitions[:attachment][:default_style] = Spree::Config[:attachment_default_style]
62
+ end
63
+ end
64
+ end
65
+ end
66
+
@@ -0,0 +1,35 @@
1
+ module Spree
2
+ module Admin
3
+ class ImagesController < ResourceController
4
+ before_filter :load_data
5
+
6
+ create.before :set_viewable
7
+ update.before :set_viewable
8
+ destroy.before :destroy_before
9
+
10
+ private
11
+
12
+ def location_after_save
13
+ admin_product_images_url(@product)
14
+ end
15
+
16
+ def load_data
17
+ @product = Product.find_by_permalink(params[:product_id])
18
+ @variants = @product.variants.collect do |variant|
19
+ [variant.options_text, variant.id]
20
+ end
21
+ @variants.insert(0, [Spree.t(:all), @product.master.id])
22
+ end
23
+
24
+ def set_viewable
25
+ @image.viewable_type = 'Spree::Variant'
26
+ @image.viewable_id = params[:image][:viewable_id]
27
+ end
28
+
29
+ def destroy_before
30
+ @viewable = @image.viewable
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class InventoryUnitsController < Spree::Admin::BaseController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,49 @@
1
+ module Spree
2
+ module Admin
3
+ class LineItemsController < Spree::Admin::BaseController
4
+ layout nil, :only => [:create, :destroy, :update]
5
+
6
+ before_filter :load_order
7
+ before_filter :load_line_item, :only => [:destroy, :update]
8
+
9
+ respond_to :html, :js
10
+
11
+ def create
12
+ variant = Variant.find(params[:line_item][:variant_id])
13
+ @line_item = @order.contents.add(variant, params[:line_item][:quantity].to_i)
14
+
15
+ if @order.save
16
+ render_order_form
17
+ else
18
+ respond_with(@line_item) do |format|
19
+ format.js { render :action => 'create', :locals => { :order => @order.reload } }
20
+ end
21
+ end
22
+ end
23
+
24
+ def destroy
25
+ @line_item.destroy
26
+ render_order_form
27
+ end
28
+
29
+ def update
30
+ @line_item.update_attributes(params[:line_item])
31
+ render_order_form
32
+ end
33
+
34
+ private
35
+ def render_order_form
36
+ render :partial => 'spree/admin/orders/form', :locals => { :order => @order.reload }
37
+ end
38
+
39
+ def load_order
40
+ @order = Order.find_by_number!(params[:order_id])
41
+ authorize! action, @order
42
+ end
43
+
44
+ def load_line_item
45
+ @line_item = @order.line_items.find(params[:id])
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,38 @@
1
+ module Spree
2
+ module Admin
3
+ class MailMethodsController < Spree::Admin::BaseController
4
+ after_filter :initialize_mail_settings
5
+
6
+ def update
7
+ if params[:smtp_password].blank?
8
+ params.delete(:smtp_password)
9
+ end
10
+
11
+ params.each do |name, value|
12
+ next unless Spree::Config.has_preference? name
13
+ Spree::Config[name] = value
14
+ end
15
+
16
+ flash[:success] = Spree.t(:successfully_updated, :resource => Spree.t(:mail_methods))
17
+ render :edit
18
+ end
19
+
20
+ def testmail
21
+ if TestMailer.test_email(try_spree_current_user).deliver
22
+ flash[:success] = Spree.t('admin.mail_methods.testmail.delivery_success')
23
+ else
24
+ flash[:error] = Spree.t('admin.mail_methods.testmail.delivery_error')
25
+ end
26
+ rescue Exception => e
27
+ flash[:error] = Spree.t('admin.mail_methods.testmail.error') % {:e => e}
28
+ ensure
29
+ redirect_to edit_admin_mail_method_url
30
+ end
31
+
32
+ private
33
+ def initialize_mail_settings
34
+ Spree::Core::MailSettings.init
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,46 @@
1
+ module Spree
2
+ module Admin
3
+ class OptionTypesController < ResourceController
4
+ before_filter :setup_new_option_value, :only => [:edit]
5
+
6
+ def update_values_positions
7
+ params[:positions].each do |id, index|
8
+ OptionValue.where(:id => id).update_all(:position => index)
9
+ end
10
+
11
+ respond_to do |format|
12
+ format.html { redirect_to admin_product_variants_url(params[:product_id]) }
13
+ format.js { render :text => 'Ok' }
14
+ end
15
+ end
16
+
17
+ protected
18
+
19
+ def location_after_save
20
+ if @option_type.created_at == @option_type.updated_at
21
+ edit_admin_option_type_url(@option_type)
22
+ else
23
+ admin_option_types_url
24
+ end
25
+ end
26
+
27
+
28
+ private
29
+ def load_product
30
+ @product = Product.find_by_param!(params[:product_id])
31
+ end
32
+
33
+ def setup_new_option_value
34
+ @option_type.option_values.build if @option_type.option_values.empty?
35
+ end
36
+
37
+ def set_available_option_types
38
+ @available_option_types = if @product.option_type_ids.any?
39
+ OptionType.where('id NOT IN (?)', @product.option_type_ids)
40
+ else
41
+ OptionType.all
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end