created cart icon with number of items notification - it's still buggy
This commit is contained in:
@@ -32,12 +32,7 @@ var addItem = function(itemId) {
|
||||
})
|
||||
state.set('count', state.get('count') + 1);
|
||||
states[itemId] = state;
|
||||
state.save({
|
||||
success: function () {
|
||||
CartActions.dataLoaded();
|
||||
}
|
||||
});
|
||||
|
||||
saveCartStateForItem(itemId);
|
||||
};
|
||||
|
||||
var takeItemOut = function(itemId) {
|
||||
@@ -47,15 +42,20 @@ var takeItemOut = function(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;
|
||||
state.save({
|
||||
saveCartStateForItem(itemId);
|
||||
};
|
||||
|
||||
var saveCartStateForItem = function(itemId) {
|
||||
var item = CartStore.getStateFor(itemId);
|
||||
item.save({
|
||||
success: function () {
|
||||
CartActions.dataLoaded();
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -64,8 +64,7 @@ var takeItemOut = function(itemId) {
|
||||
var CartStore = _.extend({}, EventEmitter.prototype, {
|
||||
|
||||
getStateFor: function(itemId) {
|
||||
|
||||
// TODO: get from server side ?
|
||||
|
||||
var state = states[itemId] || new ItemInCart({
|
||||
item_id: itemId,
|
||||
count: 0
|
||||
@@ -73,6 +72,15 @@ var CartStore = _.extend({}, EventEmitter.prototype, {
|
||||
return state
|
||||
},
|
||||
|
||||
getWholeCartState: function() {
|
||||
|
||||
var numberOfItems = _itemsInCart.models.filter(function(item) { return item.get('count') > 0 }).length;
|
||||
var state = {
|
||||
count: numberOfItems
|
||||
};
|
||||
return state;
|
||||
},
|
||||
|
||||
// Emit Change event
|
||||
emitChange: function() {
|
||||
console.log("Emitting cart change!");
|
||||
@@ -95,7 +103,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) {
|
||||
|
||||
@@ -113,7 +121,9 @@ AppDispatcher.register(function(payload) {
|
||||
case CartConstants.CART_DATA_LOADED:
|
||||
// just emit change
|
||||
break;
|
||||
|
||||
case CartConstants.SAVE_CART_STATE_FOR_ITEM:
|
||||
saveCartStateForItem(action.itemId);
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user