From 3903173848e275796fbc12255fd4e6cea5a7317f Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Wed, 11 Dec 2013 13:36:12 +1100 Subject: [PATCH] Working reloading of products, changing order cycles, sticky state --- .../javascripts/darkswarm/services/order_cycle.js.coffee | 9 +++++---- .../javascripts/darkswarm/services/product.js.coffee | 2 ++ app/assets/javascripts/darkswarm/shop.js.coffee | 3 ++- app/views/shop/_order_cycles.html.haml | 6 ++++-- spec/controllers/shop_controller_spec.rb | 7 +++++++ 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/darkswarm/services/order_cycle.js.coffee b/app/assets/javascripts/darkswarm/services/order_cycle.js.coffee index 053447fc3e..bbf7714311 100644 --- a/app/assets/javascripts/darkswarm/services/order_cycle.js.coffee +++ b/app/assets/javascripts/darkswarm/services/order_cycle.js.coffee @@ -1,9 +1,10 @@ Shop.factory 'OrderCycle', ($resource, Product) -> - new class OrderCycle - @order_cycle: + class OrderCycle + @order_cycle = { order_cycle_id: null + } - set_order_cycle: (id = null)-> - new $resource("/shop/order_cycle").save {order_cycle_id: id}, -> + @set_order_cycle: -> + new $resource("/shop/order_cycle").save {order_cycle_id: @order_cycle.order_cycle_id}, -> Product.update() diff --git a/app/assets/javascripts/darkswarm/services/product.js.coffee b/app/assets/javascripts/darkswarm/services/product.js.coffee index 1e328c52a7..5b7df226af 100644 --- a/app/assets/javascripts/darkswarm/services/product.js.coffee +++ b/app/assets/javascripts/darkswarm/services/product.js.coffee @@ -3,5 +3,7 @@ Shop.factory 'Product', ($resource) -> @products: null update: -> @products = $resource("/shop/products").query() + console.log @products + @products all: -> @products || @update() diff --git a/app/assets/javascripts/darkswarm/shop.js.coffee b/app/assets/javascripts/darkswarm/shop.js.coffee index b8e26d5abd..faffd0e6c4 100644 --- a/app/assets/javascripts/darkswarm/shop.js.coffee +++ b/app/assets/javascripts/darkswarm/shop.js.coffee @@ -1 +1,2 @@ -window.Shop = angular.module("Shop", ["ngResource"]) +window.Shop = angular.module("Shop", ["ngResource"]).config ($httpProvider) -> + $httpProvider.defaults.headers.post['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content') diff --git a/app/views/shop/_order_cycles.html.haml b/app/views/shop/_order_cycles.html.haml index 1d2eb1bff8..d48fb5149d 100644 --- a/app/views/shop/_order_cycles.html.haml +++ b/app/views/shop/_order_cycles.html.haml @@ -1,7 +1,9 @@ %ordercycle{"ng-controller" => "OrderCycleCtrl"} - if @order_cycles.empty? Orders are currently closed for this hub - %p Please contact your hub directly to see if they accept late orders, or wait until the next cycle opens. + %p + Please contact your hub directly to see if they accept late orders, + or wait until the next cycle opens. = render partial: "shop/next_order_cycle" = render partial: "shop/last_order_cycle" @@ -9,6 +11,6 @@ - else Ready for: %select{"ng-model" => "order_cycle.order_cycle_id", + "ng-init" => "order_cycle.order_cycle_id = #{current_order_cycle.id}", "ng-change" => "changeOrderCycle()", "ng-options" => "c for c in #{@order_cycles.map {|oc| oc.id}.to_json}"} - diff --git a/spec/controllers/shop_controller_spec.rb b/spec/controllers/shop_controller_spec.rb index 0622910a6f..6f57add80c 100644 --- a/spec/controllers/shop_controller_spec.rb +++ b/spec/controllers/shop_controller_spec.rb @@ -13,6 +13,13 @@ describe ShopController do controller.stub(:current_distributor).and_return d end + describe "Fetching products" do + it "should return products for the current order cycle" do + spree_get :products + end + it "should not return other products" + end + describe "Selecting order cycles" do it "should select an order cycle when only one order cycle is open" do oc1 = create(:order_cycle, distributors: [d])