created cart icon with number of items notification - it's still buggy

This commit is contained in:
Senad Uka
2015-02-08 15:17:35 +01:00
parent 113b70e8fa
commit b25683abca
9 changed files with 114 additions and 20 deletions

View File

@@ -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;
}