shoppy 0.9.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 (352) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +34 -0
  5. data/app/.DS_Store +0 -0
  6. data/app/api/apihelpers/api_auth.rb +50 -0
  7. data/app/api/base.rb +7 -0
  8. data/app/api/v1/auth.rb +57 -0
  9. data/app/api/v1/test.rb +15 -0
  10. data/app/api/v1/users.rb +50 -0
  11. data/app/api/v1/v1_api.rb +15 -0
  12. data/app/api/vo/user_vo.rb +7 -0
  13. data/app/assets/fonts/.DS_Store +0 -0
  14. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  15. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  16. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  17. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  18. data/app/assets/images/.DS_Store +0 -0
  19. data/app/assets/images/Sorting icons.psd +0 -0
  20. data/app/assets/images/back_disabled.png +0 -0
  21. data/app/assets/images/back_enabled.png +0 -0
  22. data/app/assets/images/back_enabled_hover.png +0 -0
  23. data/app/assets/images/favicon.ico +0 -0
  24. data/app/assets/images/forward_disabled.png +0 -0
  25. data/app/assets/images/forward_enabled.png +0 -0
  26. data/app/assets/images/forward_enabled_hover.png +0 -0
  27. data/app/assets/images/shoppy.svg +34 -0
  28. data/app/assets/images/sort_asc.png +0 -0
  29. data/app/assets/images/sort_asc_disabled.png +0 -0
  30. data/app/assets/images/sort_both.png +0 -0
  31. data/app/assets/images/sort_desc.png +0 -0
  32. data/app/assets/images/sort_desc_disabled.png +0 -0
  33. data/app/assets/images/spritemap.png +0 -0
  34. data/app/assets/images/spritemap@2x.png +0 -0
  35. data/app/assets/javascripts/.DS_Store +0 -0
  36. data/app/assets/javascripts/bootstrap.js +2114 -0
  37. data/app/assets/javascripts/bootstrap.min.js +6 -0
  38. data/app/assets/javascripts/jasny-bootstrap.min.js +6 -0
  39. data/app/assets/javascripts/jquery.dataTables.min.js +155 -0
  40. data/app/assets/javascripts/main.js +29 -0
  41. data/app/assets/javascripts/shoppy.js +31 -0
  42. data/app/assets/stylesheets/.DS_Store +0 -0
  43. data/app/assets/stylesheets/bootstrap.css +6203 -0
  44. data/app/assets/stylesheets/jasny-bootstrap.css +621 -0
  45. data/app/assets/stylesheets/jquery.dataTables.min.css +1 -0
  46. data/app/assets/stylesheets/jquery.dataTables_themeroller.css +330 -0
  47. data/app/assets/stylesheets/shoppy.css +23 -0
  48. data/app/assets/stylesheets/style.sass +79 -0
  49. data/app/controllers/.DS_Store +0 -0
  50. data/app/controllers/shoppy/accounts_controller.rb +102 -0
  51. data/app/controllers/shoppy/application_controller.rb +23 -0
  52. data/app/controllers/shoppy/brands_controller.rb +60 -0
  53. data/app/controllers/shoppy/cart_controller.rb +46 -0
  54. data/app/controllers/shoppy/categories_controller.rb +72 -0
  55. data/app/controllers/shoppy/concerns/.keep +0 -0
  56. data/app/controllers/shoppy/customer_addresses_controller.rb +90 -0
  57. data/app/controllers/shoppy/home_controller.rb +9 -0
  58. data/app/controllers/shoppy/inventories_controller.rb +62 -0
  59. data/app/controllers/shoppy/locations_controller.rb +80 -0
  60. data/app/controllers/shoppy/logs_controller.rb +9 -0
  61. data/app/controllers/shoppy/manufacturers_controller.rb +77 -0
  62. data/app/controllers/shoppy/options_controller.rb +63 -0
  63. data/app/controllers/shoppy/orders_controller.rb +130 -0
  64. data/app/controllers/shoppy/products_controller.rb +98 -0
  65. data/app/controllers/shoppy/reviews_controller.rb +70 -0
  66. data/app/controllers/shoppy/sessions_controller.rb +5 -0
  67. data/app/controllers/shoppy/settings_controller.rb +26 -0
  68. data/app/controllers/shoppy/shipments_controller.rb +125 -0
  69. data/app/controllers/shoppy/variants_controller.rb +104 -0
  70. data/app/helpers/shoppy/accounts_helper.rb +5 -0
  71. data/app/helpers/shoppy/application_helper.rb +19 -0
  72. data/app/helpers/shoppy/brands_helper.rb +4 -0
  73. data/app/helpers/shoppy/cart_helper.rb +66 -0
  74. data/app/helpers/shoppy/categories_helper.rb +4 -0
  75. data/app/helpers/shoppy/customer_addresses_helper.rb +4 -0
  76. data/app/helpers/shoppy/home_helper.rb +5 -0
  77. data/app/helpers/shoppy/inventories_helper.rb +53 -0
  78. data/app/helpers/shoppy/locations_helper.rb +4 -0
  79. data/app/helpers/shoppy/logs_helper.rb +4 -0
  80. data/app/helpers/shoppy/manufacturers_helper.rb +4 -0
  81. data/app/helpers/shoppy/options_helper.rb +43 -0
  82. data/app/helpers/shoppy/orders_helper.rb +61 -0
  83. data/app/helpers/shoppy/products_helper.rb +65 -0
  84. data/app/helpers/shoppy/reviews_helper.rb +4 -0
  85. data/app/helpers/shoppy/settings_helper.rb +5 -0
  86. data/app/helpers/shoppy/shipments_helper.rb +43 -0
  87. data/app/helpers/shoppy/variants_helper.rb +4 -0
  88. data/app/models/shoppy/.DS_Store +0 -0
  89. data/app/models/shoppy/admin.rb +5 -0
  90. data/app/models/shoppy/brand.rb +23 -0
  91. data/app/models/shoppy/cart_item.rb +13 -0
  92. data/app/models/shoppy/category.rb +50 -0
  93. data/app/models/shoppy/concerns/.DS_Store +0 -0
  94. data/app/models/shoppy/concerns/models/api_token_authenticatable.rb +36 -0
  95. data/app/models/shoppy/concerns/models/hashable.rb +60 -0
  96. data/app/models/shoppy/concerns/models/optionable.rb +60 -0
  97. data/app/models/shoppy/concerns/models/promotional.rb +36 -0
  98. data/app/models/shoppy/concerns/models/taggable.rb +44 -0
  99. data/app/models/shoppy/customer.rb +10 -0
  100. data/app/models/shoppy/customer_address.rb +44 -0
  101. data/app/models/shoppy/inventory.rb +18 -0
  102. data/app/models/shoppy/log.rb +8 -0
  103. data/app/models/shoppy/manufacturer.rb +35 -0
  104. data/app/models/shoppy/options_group.rb +57 -0
  105. data/app/models/shoppy/options_item.rb +18 -0
  106. data/app/models/shoppy/order.rb +15 -0
  107. data/app/models/shoppy/order_line.rb +16 -0
  108. data/app/models/shoppy/payment_method.rb +19 -0
  109. data/app/models/shoppy/product.rb +43 -0
  110. data/app/models/shoppy/review.rb +12 -0
  111. data/app/models/shoppy/setting.rb +11 -0
  112. data/app/models/shoppy/shipment.rb +11 -0
  113. data/app/models/shoppy/stock_location.rb +47 -0
  114. data/app/models/shoppy/user.rb +37 -0
  115. data/app/models/shoppy/variant.rb +48 -0
  116. data/app/views/.DS_Store +0 -0
  117. data/app/views/accounts/admins.html.erb +104 -0
  118. data/app/views/accounts/customers.html.erb +106 -0
  119. data/app/views/accounts/show.html.erb +50 -0
  120. data/app/views/brands/index.html.erb +85 -0
  121. data/app/views/brands/show.html.erb +31 -0
  122. data/app/views/cart/index.html.erb +52 -0
  123. data/app/views/categories/index.html.erb +84 -0
  124. data/app/views/categories/show.html.erb +29 -0
  125. data/app/views/customer_addresses/index.html.erb +112 -0
  126. data/app/views/customer_addresses/show.html.erb +50 -0
  127. data/app/views/devise/confirmations/new.html.erb +12 -0
  128. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  129. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  130. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  131. data/app/views/devise/passwords/edit.html.erb +16 -0
  132. data/app/views/devise/passwords/new.html.erb +12 -0
  133. data/app/views/devise/registrations/edit.html.erb +29 -0
  134. data/app/views/devise/registrations/new.html.erb +23 -0
  135. data/app/views/devise/sessions/new.html.erb +33 -0
  136. data/app/views/devise/shared/_links.erb +25 -0
  137. data/app/views/devise/unlocks/new.html.erb +12 -0
  138. data/app/views/home/index.html.erb +4 -0
  139. data/app/views/inventories/.DS_Store +0 -0
  140. data/app/views/inventories/index.html.erb +119 -0
  141. data/app/views/layouts/.DS_Store +0 -0
  142. data/app/views/layouts/shoppy.html.erb +27 -0
  143. data/app/views/locations/index.html.erb +120 -0
  144. data/app/views/locations/show.html.erb +58 -0
  145. data/app/views/logs/index.html.erb +49 -0
  146. data/app/views/manufacturers/index.html.erb +119 -0
  147. data/app/views/manufacturers/show.html.erb +62 -0
  148. data/app/views/options/index.html.erb +90 -0
  149. data/app/views/options/show.html.erb +32 -0
  150. data/app/views/orders/index.html.erb +174 -0
  151. data/app/views/orders/show.html.erb +74 -0
  152. data/app/views/products/index.html.erb +102 -0
  153. data/app/views/products/show.html.erb +112 -0
  154. data/app/views/reviews/index.html.erb +58 -0
  155. data/app/views/reviews/show.html.erb +46 -0
  156. data/app/views/settings/show.html.erb +50 -0
  157. data/app/views/shared/_custom_file_input.html.erb +12 -0
  158. data/app/views/shared/_flashes.html.erb +21 -0
  159. data/app/views/shared/_navigation.html.erb +66 -0
  160. data/app/views/shipments/index.html.erb +97 -0
  161. data/app/views/shipments/show.html.erb +84 -0
  162. data/app/views/variants/index.html.erb +119 -0
  163. data/app/views/variants/show.html.erb +114 -0
  164. data/bin/shoppy +183 -0
  165. data/config/routes.rb +124 -0
  166. data/db/.DS_Store +0 -0
  167. data/db/migrate/001__setup_hstore.rb +9 -0
  168. data/db/migrate/002__create_logs.rb +11 -0
  169. data/db/migrate/003__devise_create_users.rb +49 -0
  170. data/db/migrate/004__add_personal_info_to_user.rb +8 -0
  171. data/db/migrate/005__create_user_addresses.rb +16 -0
  172. data/db/migrate/006__create_categories.rb +11 -0
  173. data/db/migrate/007__create_brands.rb +10 -0
  174. data/db/migrate/008__create_manufacturers.rb +19 -0
  175. data/db/migrate/009__create_options_groups.rb +10 -0
  176. data/db/migrate/010__create_options_items.rb +10 -0
  177. data/db/migrate/011__create_products.rb +14 -0
  178. data/db/migrate/012__create_product_options_joint_table.rb +9 -0
  179. data/db/migrate/013__create_stock_locations.rb +18 -0
  180. data/db/migrate/014__create_variants.rb +12 -0
  181. data/db/migrate/015__add_promotional_to_variant.rb +8 -0
  182. data/db/migrate/016__create_inventories.rb +12 -0
  183. data/db/migrate/017__create_payment_methods.rb +9 -0
  184. data/db/migrate/018__create_cart_items.rb +12 -0
  185. data/db/migrate/019__create_orders.rb +11 -0
  186. data/db/migrate/020__create_order_lines.rb +14 -0
  187. data/db/migrate/021__add_type_to_user.rb +5 -0
  188. data/db/migrate/022__rename_user_address_to_customer_address.rb +5 -0
  189. data/db/migrate/023__create_shipments.rb +12 -0
  190. data/db/migrate/024__add_shipment_id_to_order_line.rb +5 -0
  191. data/db/migrate/025__change_user_gender_to_not_nullable.rb +5 -0
  192. data/db/migrate/026__add_category_id_to_product.rb +5 -0
  193. data/db/migrate/027__add_attachment_brand_image_to_brands.rb +11 -0
  194. data/db/migrate/028__add_delivery_date_to_shipment.rb +5 -0
  195. data/db/migrate/029__add_customer_info_to_order.rb +13 -0
  196. data/db/migrate/030__add_status_to_order.rb +5 -0
  197. data/db/migrate/031__add_default_address_to_user.rb +5 -0
  198. data/db/migrate/032__add_options_to_variant.rb +5 -0
  199. data/db/migrate/033__add_display_to_options_groups.rb +5 -0
  200. data/db/migrate/034__add_points_to_variant.rb +5 -0
  201. data/db/migrate/035__add_points_to_user.rb +5 -0
  202. data/db/migrate/036__define_ids.rb +25 -0
  203. data/db/migrate/037__create_seed_users.rb +13 -0
  204. data/db/migrate/038__add_name_to_customer_address.rb +5 -0
  205. data/db/migrate/039__create_reviews.rb +14 -0
  206. data/db/migrate/040__alter_table_customer_address.rb +5 -0
  207. data/db/migrate/041__create_settings.rb +23 -0
  208. data/lib/.DS_Store +0 -0
  209. data/lib/shoppy.rb +13 -0
  210. data/lib/shoppy/client.rb +53 -0
  211. data/lib/shoppy/engine.rb +4 -0
  212. data/lib/shoppy/version.rb +3 -0
  213. data/lib/tasks/shoppy_tasks.rake +4 -0
  214. data/lib/template/.gitignore +20 -0
  215. data/lib/template/Gemfile +46 -0
  216. data/lib/template/Gemfile.lock +218 -0
  217. data/lib/template/Rakefile +6 -0
  218. data/lib/template/app/assets/images/.keep +0 -0
  219. data/lib/template/app/assets/javascripts/application.js +13 -0
  220. data/lib/template/app/assets/stylesheets/application.css +15 -0
  221. data/lib/template/app/controllers/accounts_controller.rb +3 -0
  222. data/lib/template/app/controllers/application_controller.rb +3 -0
  223. data/lib/template/app/controllers/brands_controller.rb +3 -0
  224. data/lib/template/app/controllers/cart_controller.rb +3 -0
  225. data/lib/template/app/controllers/categories_controller.rb +3 -0
  226. data/lib/template/app/controllers/concerns/.keep +0 -0
  227. data/lib/template/app/controllers/customer_addresses_controller.rb +3 -0
  228. data/lib/template/app/controllers/home_controller.rb +3 -0
  229. data/lib/template/app/controllers/inventories_controller.rb +3 -0
  230. data/lib/template/app/controllers/locations_controller.rb +3 -0
  231. data/lib/template/app/controllers/logs_controller.rb +3 -0
  232. data/lib/template/app/controllers/manufacturers_controller.rb +3 -0
  233. data/lib/template/app/controllers/options_controller.rb +3 -0
  234. data/lib/template/app/controllers/orders_controller.rb +3 -0
  235. data/lib/template/app/controllers/products_controller.rb +3 -0
  236. data/lib/template/app/controllers/reviews_controller.rb +3 -0
  237. data/lib/template/app/controllers/sessions_controller.rb +3 -0
  238. data/lib/template/app/controllers/settings_controller.rb +3 -0
  239. data/lib/template/app/controllers/shipments_controller.rb +3 -0
  240. data/lib/template/app/controllers/variants_controller.rb +3 -0
  241. data/lib/template/app/helpers/.keep +0 -0
  242. data/lib/template/app/helpers/orders_helper.rb +4 -0
  243. data/lib/template/app/mailers/.keep +0 -0
  244. data/lib/template/app/models/.keep +0 -0
  245. data/lib/template/app/models/account.rb +4 -0
  246. data/lib/template/app/models/admin.rb +4 -0
  247. data/lib/template/app/models/brand.rb +3 -0
  248. data/lib/template/app/models/cart_item.rb +3 -0
  249. data/lib/template/app/models/category.rb +3 -0
  250. data/lib/template/app/models/concerns/.keep +0 -0
  251. data/lib/template/app/models/concerns/hashable.rb +4 -0
  252. data/lib/template/app/models/customer.rb +4 -0
  253. data/lib/template/app/models/customer_address.rb +3 -0
  254. data/lib/template/app/models/inventory.rb +3 -0
  255. data/lib/template/app/models/log.rb +3 -0
  256. data/lib/template/app/models/manufacturer.rb +3 -0
  257. data/lib/template/app/models/option_item.rb +3 -0
  258. data/lib/template/app/models/options_group.rb +3 -0
  259. data/lib/template/app/models/order.rb +3 -0
  260. data/lib/template/app/models/order_line.rb +3 -0
  261. data/lib/template/app/models/payment_method.rb +3 -0
  262. data/lib/template/app/models/product.rb +3 -0
  263. data/lib/template/app/models/review.rb +3 -0
  264. data/lib/template/app/models/setting.rb +3 -0
  265. data/lib/template/app/models/shipment.rb +3 -0
  266. data/lib/template/app/models/stock_location.rb +3 -0
  267. data/lib/template/app/models/variant.rb +3 -0
  268. data/lib/template/app/views/layouts/.keep +0 -0
  269. data/lib/template/bin/bundle +3 -0
  270. data/lib/template/bin/rails +8 -0
  271. data/lib/template/bin/rake +8 -0
  272. data/lib/template/bin/spring +18 -0
  273. data/lib/template/config.ru +4 -0
  274. data/lib/template/config/application.rb +23 -0
  275. data/lib/template/config/boot.rb +4 -0
  276. data/lib/template/config/database.yml +86 -0
  277. data/lib/template/config/environment.rb +5 -0
  278. data/lib/template/config/environments/development.rb +37 -0
  279. data/lib/template/config/environments/production.rb +78 -0
  280. data/lib/template/config/environments/test.rb +39 -0
  281. data/lib/template/config/initializers/assets.rb +8 -0
  282. data/lib/template/config/initializers/backtrace_silencers.rb +7 -0
  283. data/lib/template/config/initializers/cookies_serializer.rb +3 -0
  284. data/lib/template/config/initializers/devise.rb +256 -0
  285. data/lib/template/config/initializers/filter_parameter_logging.rb +4 -0
  286. data/lib/template/config/initializers/inflections.rb +16 -0
  287. data/lib/template/config/initializers/mime_types.rb +4 -0
  288. data/lib/template/config/initializers/session_store.rb +3 -0
  289. data/lib/template/config/initializers/wrap_parameters.rb +14 -0
  290. data/lib/template/config/locales/devise.en.yml +59 -0
  291. data/lib/template/config/locales/en.yml +23 -0
  292. data/lib/template/config/routes.rb +3 -0
  293. data/lib/template/config/secrets.yml +22 -0
  294. data/lib/template/db/migrate/.keep +0 -0
  295. data/lib/template/db/seeds.rb +7 -0
  296. data/lib/template/lib/assets/.keep +0 -0
  297. data/lib/template/lib/tasks/.keep +0 -0
  298. data/lib/template/log/.keep +0 -0
  299. data/lib/template/public/404.html +67 -0
  300. data/lib/template/public/422.html +67 -0
  301. data/lib/template/public/500.html +66 -0
  302. data/lib/template/public/favicon.ico +0 -0
  303. data/lib/template/public/robots.txt +5 -0
  304. data/lib/template/test/controllers/.keep +0 -0
  305. data/lib/template/test/fixtures/.keep +0 -0
  306. data/lib/template/test/helpers/.keep +0 -0
  307. data/lib/template/test/integration/.keep +0 -0
  308. data/lib/template/test/mailers/.keep +0 -0
  309. data/lib/template/test/models/.keep +0 -0
  310. data/lib/template/test/test_helper.rb +10 -0
  311. data/lib/template/vendor/assets/javascripts/.keep +0 -0
  312. data/lib/template/vendor/assets/stylesheets/.keep +0 -0
  313. data/test/dummy/README.rdoc +28 -0
  314. data/test/dummy/Rakefile +6 -0
  315. data/test/dummy/app/assets/javascripts/application.js +13 -0
  316. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  317. data/test/dummy/app/controllers/application_controller.rb +5 -0
  318. data/test/dummy/app/helpers/application_helper.rb +2 -0
  319. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  320. data/test/dummy/bin/bundle +3 -0
  321. data/test/dummy/bin/rails +4 -0
  322. data/test/dummy/bin/rake +4 -0
  323. data/test/dummy/config.ru +4 -0
  324. data/test/dummy/config/application.rb +23 -0
  325. data/test/dummy/config/boot.rb +5 -0
  326. data/test/dummy/config/database.yml +25 -0
  327. data/test/dummy/config/environment.rb +5 -0
  328. data/test/dummy/config/environments/development.rb +37 -0
  329. data/test/dummy/config/environments/production.rb +78 -0
  330. data/test/dummy/config/environments/test.rb +39 -0
  331. data/test/dummy/config/initializers/assets.rb +8 -0
  332. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  333. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  334. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  335. data/test/dummy/config/initializers/inflections.rb +16 -0
  336. data/test/dummy/config/initializers/mime_types.rb +4 -0
  337. data/test/dummy/config/initializers/session_store.rb +3 -0
  338. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  339. data/test/dummy/config/locales/en.yml +23 -0
  340. data/test/dummy/config/routes.rb +56 -0
  341. data/test/dummy/config/secrets.yml +22 -0
  342. data/test/dummy/public/404.html +67 -0
  343. data/test/dummy/public/422.html +67 -0
  344. data/test/dummy/public/500.html +66 -0
  345. data/test/dummy/public/favicon.ico +0 -0
  346. data/test/integration/navigation_test.rb +10 -0
  347. data/test/shoppy/Users/alybadawy/exp/shoppy/lib/template/Gemfile.lock +217 -0
  348. data/test/shoppy/Users/alybadawy/exp/shoppy/lib/template/README.rdoc +28 -0
  349. data/test/shoppy/Users/alybadawy/exp/shoppy/lib/template/config.ru +4 -0
  350. data/test/shoppy_test.rb +7 -0
  351. data/test/test_helper.rb +15 -0
  352. metadata +495 -0
@@ -0,0 +1,52 @@
1
+ <div class="row">
2
+
3
+ <%= render 'shared/flashes' %>
4
+
5
+ <div class="panel panel-default">
6
+ <div class="panel-heading clearfix">
7
+ <h3 class="panel-title pull-left">Manage <%= @customer.name %>'s Cart</h3>
8
+ <%= link_to "<button type='button' class='btn btn-danger pull-right'>Empty Cart</button>".html_safe, "/accounts/#{@customer.id}/cart", method: :delete, data: { confirm: "Are you Sure you want to Empty this cart?" } %>
9
+ </div>
10
+ <div class="panel-body">
11
+ <% if @cart_items.count > 0 %>
12
+ <div class="clearfix">
13
+ <div class="form-group col-xs-2 table-show">
14
+ <label class="form-label">Show Rows:</label>
15
+ </div>
16
+ <div class="form-group col-xs-5 table-search pull-right">
17
+ <label class="form-label">Search Cart Items </label>
18
+ </div>
19
+ </div>
20
+
21
+ <hr>
22
+ <table class="table filterTable ">
23
+ <thead>
24
+ <tr>
25
+ <th>#</th>
26
+ <th>Product</th>
27
+ <th>Product's options</th>
28
+ <th class="text-right">Actions</th>
29
+
30
+ </tr>
31
+ </thead>
32
+ <tbody>
33
+ <% @cart_items.each do |ci| %>
34
+ <tr>
35
+ <td><%= ci.id %></td>
36
+ <td><%= ci.variant.product.name %></td>
37
+ <td><%= ci.variant.name %></td>
38
+ <td class="text-right">
39
+ <%= link_to "<span class='glyphicon glyphicon-trash'></span>".html_safe, "/accounts/#{@customer.id}/cart/#{ci.id}", method: :delete, data: { confirm: "Are you Sure you want to delete this item?" }, class: "btn btn-sm btn-danger", title: "Delete" %>
40
+ </td>
41
+ </tr>
42
+ <% end -%>
43
+ </tbody>
44
+ </table>
45
+ <% else %>
46
+ <h4 class="text-center light-color">Cart is empty!</h4>
47
+ <% end -%>
48
+ </div>
49
+ </div>
50
+ </div>
51
+
52
+
@@ -0,0 +1,84 @@
1
+ <div class="row">
2
+
3
+ <%= render 'shared/flashes' %>
4
+
5
+ <div class="panel panel-default">
6
+ <div class="panel-heading clearfix">
7
+ <h3 class="panel-title pull-left">Manage Categories</h3>
8
+ <button type="button" class="btn btn-primary pull-right" data-toggle="modal" data-target="#NewCategory">
9
+ <span class="glyphicon glyphicon-plus"></span> New Category
10
+ </button>
11
+ </div>
12
+ <div class="panel-body">
13
+ <% if @categories.count > 0 %>
14
+ <div class="clearfix">
15
+ <div class="form-group col-xs-2 table-show">
16
+ <label class="form-label">Show Rows:</label>
17
+ </div>
18
+ <div class="form-group col-xs-5 table-search pull-right">
19
+ <label class="form-label">Search Categories </label>
20
+ </div>
21
+ </div>
22
+
23
+ <hr>
24
+
25
+ <table class="table filterTable ">
26
+ <thead>
27
+ <tr>
28
+ <th>#</th>
29
+ <th>Name</th>
30
+ <th>Full hirarechy</th>
31
+ <th class="text-right">Actions</th>
32
+ </tr>
33
+ </thead>
34
+ <tbody>
35
+ <% @categories.each do |c| %>
36
+ <tr>
37
+ <td><%= c.id %></td>
38
+ <td><%= c.name %></td>
39
+ <td><%= c.breadcrumb %></td>
40
+ <td class="text-right">
41
+ <%= link_to "<span class='glyphicon glyphicon-trash'></span>".html_safe, "/products/categories/#{c.id}", method: :delete, data: { confirm: "Are you Sure you want to delete this category?" }, class: "btn btn-sm btn-danger", title: "Delete" %>
42
+ <%= link_to "<span class='glyphicon glyphicon-edit'></span>".html_safe, "/products/categories/#{c.id}", class: "btn btn-sm btn-info", title: "Show/Edit" %>
43
+ </td>
44
+ </tr>
45
+ <% end -%>
46
+ </tbody>
47
+ </table>
48
+ <% else %>
49
+ <h4 class="text-center light-color">No Categories Yet</h4>
50
+ <% end -%>
51
+ </div>
52
+ </div>
53
+ </div>
54
+
55
+ <!-- Modal -->
56
+ <div class="modal fade" id="NewCategory" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
57
+ <div class="modal-dialog">
58
+ <div class="modal-content">
59
+ <div class="modal-header">
60
+ <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
61
+ <h4 class="modal-title" id="myModalLabel">Add a Category</h4>
62
+ </div>
63
+
64
+ <%= form_tag("/products/categories", method: "post", role: "form", autocomplete: "off") do %>
65
+ <div class="modal-body">
66
+ <div class="form-group">
67
+ <label class="control-label">Category Name *</label> <br>
68
+ <%= text_field_tag(:name, nil, class: "form-control") %>
69
+ </div>
70
+
71
+ <div class="form-group">
72
+ <label class="control-label">Parent Category *</label> <br>
73
+ <%= collection_select :parent_category_id, :id, Category.all_sorted, :id, :breadcrumb, {:include_blank => 'Root'}, class: "form-control" %>
74
+ </div>
75
+
76
+ </div>
77
+ <div class="modal-footer">
78
+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
79
+ <%= submit_tag("Add category", class: "btn btn-info") %>
80
+ </div>
81
+ <% end %>
82
+ </div>
83
+ </div>
84
+ </div>
@@ -0,0 +1,29 @@
1
+ <div class="row">
2
+ <%= render 'shared/flashes' %>
3
+ <div class="panel panel-default">
4
+ <div class="panel-heading">
5
+ <h3 class="panel-title"><%= @category.name %> details</h3>
6
+ </div>
7
+ <%= form_for @category, method: :put, url: {action: "edit", category_id: @category.id}, class: "form-horizontal" do |f| %>
8
+ <div class="panel-body">
9
+ <div class="form-group">
10
+ <%= f.label :name, "Name *", class: "control-label" %>
11
+ <%= f.text_field :name, class: "form-control" %>
12
+ </div>
13
+ <div class="form-group">
14
+ <%= f.label :parent_category, "Parent Category *", class: "control-label" %>
15
+ <%= f.select(:parent_category_id, [["Root", nil]] + Category.all_sorted.collect {|c| [c.breadcrumb, c.id]}, { :include_blank=> false }, { :class => 'form-control' } ) %>
16
+ </div>
17
+
18
+ </div>
19
+ <div class="panel-footer clearfix">
20
+ <div class="pull-right">
21
+ <%= link_to "<span class='glyphicon glyphicon-trash'></span> Delete".html_safe, "/products/categories/#{@category.id}?view=show", method: :delete, data: { confirm: "Are you Sure you want to delete this category?" }, class: "btn btn-danger", title: "Delete" %>
22
+ <%= f.submit "Update", class: "btn btn-success" %>
23
+ </div>
24
+ <a class="btn btn-default pull-left" href="/products/categories/" role="button">Back to Categories</a>
25
+ </div>
26
+ <% end %>
27
+
28
+ </div>
29
+ </div>
@@ -0,0 +1,112 @@
1
+ <div class="row">
2
+
3
+ <%= render 'shared/flashes' %>
4
+
5
+ <div class="panel panel-default">
6
+ <div class="panel-heading clearfix">
7
+ <h3 class="panel-title pull-left">Manage <%= @customer.name %>'s Addresses</h3>
8
+ <button type="button" class="btn btn-primary pull-right" data-toggle="modal" data-target="#newAddressModal">
9
+ <span class="glyphicon glyphicon-plus"></span> New Address
10
+ </button>
11
+ </div>
12
+ <div class="panel-body">
13
+ <% if @addresses.count > 0 %>
14
+ <div class="clearfix">
15
+ <div class="form-group col-xs-2 table-show">
16
+ <label class="form-label">Show Rows:</label>
17
+ </div>
18
+ <div class="form-group col-xs-5 table-search pull-right">
19
+ <label class="form-label">Search Addresses </label>
20
+ </div>
21
+ </div>
22
+
23
+ <hr>
24
+
25
+ <table class="table filterTable ">
26
+ <thead>
27
+ <tr>
28
+ <th>#</th>
29
+ <th>Name</th>
30
+ <th>Street Address</th>
31
+ <th>City</th>
32
+ <th>State</th>
33
+ <th>Country</th>
34
+ <th>Zip</th>
35
+ <th>Actions</th>
36
+ </tr>
37
+ </thead>
38
+ <tbody>
39
+ <% @addresses.each do |a| %>
40
+ <tr>
41
+ <td><%= a.id %></td>
42
+ <td><%= a.name %></td>
43
+ <td><%= "#{a.add_line1} - #{a.add_line2}" %></td>
44
+ <td><%= a.city %></td>
45
+ <td><%= a.state %></td>
46
+ <td><%= a.country %></td>
47
+ <td><%= a.zip %></td>
48
+ <td class="text-right">
49
+ <%= link_to "<span class='glyphicon glyphicon-trash'></span>".html_safe, "/accounts/#{@customer.id}/addresses/#{a.id}", method: :delete, data: { confirm: "Are you Sure you want to delete this Address?" }, class: "btn btn-sm btn-danger", title: "Delete" %>
50
+ <%= link_to "<span class='glyphicon glyphicon-edit'></span>".html_safe, "/accounts/#{@customer.id}/addresses/#{a.id}", class: "btn btn-sm btn-info", title: "Show/Edit" %>
51
+ </td>
52
+ </tr>
53
+ <% end -%>
54
+ </tbody>
55
+ </table>
56
+ <% else %>
57
+ <h4 class="text-center light-color">No Addresses Yet</h4>
58
+ <% end -%>
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+ <!-- Modal -->
64
+ <div class="modal fade" id="newAddressModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
65
+ <div class="modal-dialog">
66
+ <div class="modal-content">
67
+ <div class="modal-header">
68
+ <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
69
+ <h4 class="modal-title" id="myModalLabel">Add an address to <%= @customername %></h4>
70
+ </div>
71
+
72
+ <%= form_tag("/accounts/#{@customer.id}/addresses", method: "post", role: "form", autocomplete: "off") do %>
73
+ <div class="modal-body">
74
+ <div class="form-group">
75
+ <label class="control-label">Address Name *</label> <br>
76
+ <%= text_field_tag(:name, nil, class: "form-control", placeholder: "Default Address") %>
77
+ </div>
78
+ <div class="form-group">
79
+ <label class="control-label">Address Line 1 *</label> <br>
80
+ <%= text_field_tag(:add_line1, nil, class: "form-control") %>
81
+ </div>
82
+ <div class="form-group">
83
+ <label class="control-label">Address Line 2</label> <br>
84
+ <%= text_field_tag(:add_line2, nil, class: "form-control") %>
85
+ </div>
86
+ <div class="row">
87
+ <div class="form-group col-xs-3">
88
+ <label class="control-label">City *</label> <br>
89
+ <%= text_field_tag(:city, nil, class: "form-control") %>
90
+ </div>
91
+ <div class="form-group col-xs-3">
92
+ <label class="control-label">State *</label> <br>
93
+ <%= text_field_tag(:state, nil, class: "form-control") %>
94
+ </div>
95
+ <div class="form-group col-xs-3">
96
+ <label class="control-label">Country *</label> <br>
97
+ <%= text_field_tag(:country, nil, class: "form-control") %>
98
+ </div>
99
+ <div class="form-group col-xs-3">
100
+ <label class="control-label">Zip</label> <br>
101
+ <%= text_field_tag(:zip, nil, class: "form-control") %>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ <div class="modal-footer">
106
+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
107
+ <%= submit_tag("Add Address", class: "btn btn-info") %>
108
+ </div>
109
+ <% end %>
110
+ </div>
111
+ </div>
112
+ </div>
@@ -0,0 +1,50 @@
1
+ <div class="row">
2
+ <%= render 'shared/flashes' %>
3
+ <div class="panel panel-default">
4
+ <div class="panel-heading">
5
+ <h3 class="panel-title"><%= @customer.name %>'s address details</h3>
6
+ </div>
7
+ <%= form_for @address, method: :put, url: {action: "edit"}, class: "form-horizontal" do |f| %>
8
+ <div class="panel-body">
9
+ <div class="form-group">
10
+ <%= f.label :add_line1, "Address Name *", class: "control-label" %>
11
+ <%= f.text_field :name, class: "form-control" %>
12
+ </div>
13
+ <div class="form-group">
14
+ <%= f.label :add_line1, "Address Line 1 *", class: "control-label" %>
15
+ <%= f.text_field :add_line1, class: "form-control" %>
16
+ </div>
17
+ <div class="form-group">
18
+ <%= f.label :add_line2, "Address Line 2", class: "control-label" %>
19
+ <%= f.text_field :add_line2, class: "form-control" %>
20
+ </div>
21
+ <div class="form-group">
22
+ <%= f.label :city, "City *", class: "control-label" %>
23
+ <%= f.text_field :city, class: "form-control" %>
24
+ </div>
25
+ <div class="form-group">
26
+ <%= f.label :state, "State *", class: "control-label" %>
27
+ <%= f.text_field :state, class: "form-control" %>
28
+ </div>
29
+ <div class="form-group">
30
+ <%= f.label :state, "Country *", class: "control-label" %>
31
+ <%= f.text_field :country, class: "form-control" %>
32
+ </div>
33
+ <div class="form-group">
34
+ <%= f.label :zip, "Zip code", class: "control-label" %>
35
+ <%= f.text_field :zip, class: "form-control" %>
36
+ </div>
37
+
38
+
39
+ </div>
40
+ <div class="panel-footer clearfix">
41
+ <div class="pull-right">
42
+ <%= link_to "<span class='glyphicon glyphicon-trash'></span> Delete".html_safe, "/accounts/#{@customer.id}/addresses/#{@address.id}?view=show", method: :delete, data: { confirm: "Are you Sure you want to delete this Address?" }, class: "btn btn-danger", title: "Delete" %>
43
+ <%= f.submit "Update", class: "btn btn-success" %>
44
+ </div>
45
+ <a class="btn btn-default pull-left" href="/accounts/<%= @customer.id %>/addresses" role="button">Back to Addresses</a>
46
+ </div>
47
+ <% end %>
48
+
49
+ </div>
50
+ </div>
@@ -0,0 +1,12 @@
1
+ <h2>Resend confirmation instructions</h2>
2
+
3
+ <%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %>
4
+ <%= devise_error_messages! %>
5
+
6
+ <div><%= f.label :email %><br />
7
+ <%= f.email_field :email, autofocus: true %></div>
8
+
9
+ <div><%= f.submit "Resend confirmation instructions" %></div>
10
+ <% end %>
11
+
12
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,5 @@
1
+ <p>Welcome <%= @email %>!</p>
2
+
3
+ <p>You can confirm your account email through the link below:</p>
4
+
5
+ <p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
@@ -0,0 +1,8 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Someone has requested a link to change your password. You can do this through the link below.</p>
4
+
5
+ <p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p>
6
+
7
+ <p>If you didn't request this, please ignore this email.</p>
8
+ <p>Your password won't change until you access the link above and create a new one.</p>
@@ -0,0 +1,7 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
4
+
5
+ <p>Click the link below to unlock your account:</p>
6
+
7
+ <p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %></p>
@@ -0,0 +1,16 @@
1
+ <h2>Change your password</h2>
2
+
3
+ <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
4
+ <%= devise_error_messages! %>
5
+ <%= f.hidden_field :reset_password_token %>
6
+
7
+ <div><%= f.label :password, "New password" %><br />
8
+ <%= f.password_field :password, autofocus: true, autocomplete: "off" %></div>
9
+
10
+ <div><%= f.label :password_confirmation, "Confirm new password" %><br />
11
+ <%= f.password_field :password_confirmation, autocomplete: "off" %></div>
12
+
13
+ <div><%= f.submit "Change my password" %></div>
14
+ <% end %>
15
+
16
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,12 @@
1
+ <h2>Forgot your password?</h2>
2
+
3
+ <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
4
+ <%= devise_error_messages! %>
5
+
6
+ <div><%= f.label :email %><br />
7
+ <%= f.email_field :email, autofocus: true %></div>
8
+
9
+ <div><%= f.submit "Send me reset password instructions" %></div>
10
+ <% end %>
11
+
12
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,29 @@
1
+ <h2>Edit <%= resource_name.to_s.humanize %></h2>
2
+
3
+ <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
4
+ <%= devise_error_messages! %>
5
+
6
+ <div><%= f.label :email %><br />
7
+ <%= f.email_field :email, autofocus: true %></div>
8
+
9
+ <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
10
+ <div>Currently waiting confirmation for: <%= resource.unconfirmed_email %></div>
11
+ <% end %>
12
+
13
+ <div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
14
+ <%= f.password_field :password, autocomplete: "off" %></div>
15
+
16
+ <div><%= f.label :password_confirmation %><br />
17
+ <%= f.password_field :password_confirmation, autocomplete: "off" %></div>
18
+
19
+ <div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
20
+ <%= f.password_field :current_password, autocomplete: "off" %></div>
21
+
22
+ <div><%= f.submit "Update" %></div>
23
+ <% end %>
24
+
25
+ <h3>Cancel my account</h3>
26
+
27
+ <p>Unhappy? <%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete %></p>
28
+
29
+ <%= link_to "Back", :back %>
@@ -0,0 +1,23 @@
1
+ <h2>Sign up</h2>
2
+
3
+ <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
4
+ <%= devise_error_messages! %>
5
+
6
+ <div>
7
+ <%= f.label :name %><br />
8
+ <%= f.text_field :name %>
9
+ </div>
10
+
11
+ <div><%= f.label :email %><br />
12
+ <%= f.email_field :email, autofocus: true %></div>
13
+
14
+ <div><%= f.label :password %><br />
15
+ <%= f.password_field :password, autocomplete: "off" %></div>
16
+
17
+ <div><%= f.label :password_confirmation %><br />
18
+ <%= f.password_field :password_confirmation, autocomplete: "off" %></div>
19
+
20
+ <div><%= f.submit "Sign up" %></div>
21
+ <% end %>
22
+
23
+ <%= render "devise/shared/links" %>