diff --git a/front-api/controllers/cart.rb b/front-api/controllers/cart.rb index 97780c2..062e725 100644 --- a/front-api/controllers/cart.rb +++ b/front-api/controllers/cart.rb @@ -1,4 +1,4 @@ - + helpers do def anonymous_id @@ -55,7 +55,7 @@ update_delivery_destination = ->() { params = @json_params.reject { |key,_| !allowed_keys.include?(key) } cart.delivery_destination.update_attributes(params) cart.delivery_destination.save! - cart.delivery_destination.to_json + cart.delivery_destination.to_json(:except => [:created_at, :email_verification_code, :phone_verification_code]) } put '/cart/delivery_destination', &update_delivery_destination post '/cart/delivery_destination', &update_delivery_destination \ No newline at end of file diff --git a/front-ui/app/actions/cartActions.js b/front-ui/app/actions/cartActions.js index 59dc3d3..c1a7c8c 100644 --- a/front-ui/app/actions/cartActions.js +++ b/front-ui/app/actions/cartActions.js @@ -40,7 +40,7 @@ var CartActions = { changeDeliveryDestinationProperty: function(property, value) { AppDispatcher.handleAction({ actionType: CartConstants.CHANGE_DELIVERY_DESTINATION_PROPERTY, - property: property, + propertyName: property, value: value }); }, diff --git a/front-ui/app/stores/cartStore.js b/front-ui/app/stores/cartStore.js index 685641d..abda775 100644 --- a/front-ui/app/stores/cartStore.js +++ b/front-ui/app/stores/cartStore.js @@ -30,20 +30,22 @@ var loadCart = function() { }); _itemsForDisplay.fetch({ - success: function() { - CartActions.dataLoaded(); - } - }) - _deliveryDestination.fetch({ - success: function() { + success: function() { CartActions.dataLoaded(); } }) + if (!_deliveryDestination.get('id')) { + _deliveryDestination.fetch({ + success: function() { + CartActions.dataLoaded(); + } + }); + } }; var addItem = function(itemId) { - + var state = states[itemId] || new ItemInCart({ item_id: itemId, count: 0 @@ -54,13 +56,13 @@ var addItem = function(itemId) { }; var takeItemOut = function(itemId) { - + var state = states[itemId] || new ItemInCart({ item_id: itemId, count: 0 }) if (state.get('count') > 0) { - state.set('count', state.get('count') - 1); + state.set('count', state.get('count') - 1); } states[itemId] = state; saveCartStateForItem(itemId); @@ -69,13 +71,13 @@ var takeItemOut = function(itemId) { var saveCartStateForItem = function(itemId) { var item = CartStore.getStateFor(itemId); item.save({ - success: function () { + success: function() { CartActions.dataLoaded(); } }); }; -var changeDeliveryDestinationProperty = function (property, value) { +var changeDeliveryDestinationProperty = function(property, value) { _deliveryDestination.set(property, value); }; @@ -92,7 +94,7 @@ var saveDeliveryDestination = function() { var CartStore = _.extend({}, EventEmitter.prototype, { getStateFor: function(itemId) { - + var state = states[itemId] || new ItemInCart({ item_id: itemId, count: 0 @@ -102,16 +104,16 @@ var CartStore = _.extend({}, EventEmitter.prototype, { getWholeCartState: function() { - var numberOfItems = 0; + var numberOfItems = 0; for (key in states) { - if(states.hasOwnProperty(key)){ - var value = states[key]; - if (value.get('count') > 0) { + if (states.hasOwnProperty(key)) { + var value = states[key]; + if (value.get('count') > 0) { numberOfItems += value.get('count'); - } - } - }; + } + } + }; var state = { count: numberOfItems, @@ -144,7 +146,7 @@ var CartStore = _.extend({}, EventEmitter.prototype, { // Register callback with AppDispatcher AppDispatcher.register(function(payload) { var action = payload.action; - var text; + var text; switch (action.actionType) { @@ -163,12 +165,14 @@ AppDispatcher.register(function(payload) { // do nothing - jsut emmit change break; case CartConstants.SAVE_CART_STATE_FOR_ITEM: - // saveCartStateForItem(action.itemId); + saveCartStateForItem(action.itemId); break; case CartConstants.CHANGE_DELIVERY_DESTINATION_PROPERTY: - changeDeliveryDestinationProperty(action.propety, action.value) + changeDeliveryDestinationProperty(action.propertyName, action.value) + break; case CartConstants.CONFIRM_DELIVERY: saveDeliveryDestination(); + break; default: return true; }