diff --git a/front-api/controllers/cart.rb b/front-api/controllers/cart.rb index fd33f19..f2ee8d7 100644 --- a/front-api/controllers/cart.rb +++ b/front-api/controllers/cart.rb @@ -17,6 +17,7 @@ get '/cart' do Cart.find_or_create(anonymous_id, -1).to_json end +# gets number of items in cart for every item get '/cart/item' do Cart.find_or_create(anonymous_id, -1).item_in_carts.to_json end @@ -29,5 +30,4 @@ update_cart_item = ->() { ItemInCart.update_state(cart_id, item_id, count).to_json } put '/cart/item', &update_cart_item -post '/cart/item', &update_cart_item - +post '/cart/item', &update_cart_item diff --git a/front-api/controllers/item.rb b/front-api/controllers/item.rb index e93c209..c5b428b 100644 --- a/front-api/controllers/item.rb +++ b/front-api/controllers/item.rb @@ -69,3 +69,11 @@ get '/item/sub_category/:sub_category_id/offset/:offset/limit/:limit' do |sub_ca items = Item.best_selling_in_sub_category(sub_category_id, offset, limit) prepare_items_for_mass_display(items) end + +# gets list of items in cart without count +get '/item/cart' do |cart| + cart = Cart.find_or_create(anonymous_id, -1).to_json + item_ids = cart.item_in_carts.map ->(x) { x.item_id } + items = Item.find(item_ids) + prepare_items_for_mass_display(items) +end diff --git a/front-api/controllers/section.rb b/front-api/controllers/section.rb index eb22147..0f2a972 100644 --- a/front-api/controllers/section.rb +++ b/front-api/controllers/section.rb @@ -1,10 +1,9 @@ get '/section' do - Section.order(:name).all.to_json(:include => - [:categories => { :include => :sub_categories }]) + Section.order(:name).all.to_json(:include => + [:categories => { :include => :sub_categories }]) end get '/section/:id' do Section.find(params[:id].to_i).to_json(:include => [ - :categories => { :include => :sub_categories } ]) - + :categories => { :include => :sub_categories } ]) end diff --git a/front-ui/app/components/cart/cartPage.js b/front-ui/app/components/cart/cartPage.js new file mode 100644 index 0000000..cc2b61d --- /dev/null +++ b/front-ui/app/components/cart/cartPage.js @@ -0,0 +1,47 @@ +var React = require('react'), + CartStore = require('../../stores/cartStore'), + AddToCart = require('../cart/addToCart'); + +var Router = require('react-router'); + + +var ItemWithDetailsPage = React.createClass({ + + render: function() { + + return ( + +
+ This is the cart page! + +
+ ); + + }, + + // Add change listeners to stores + componentDidMount: function() { + CartStore.addChangeListener(this._onChange); + + }, + + componentWillUnmount: function () { + CartStore.removeChangeListener(this._onChange); + }, + + _onChange: function () { + + if (this.isMounted()) { + this.setState(ItemDetailsStore.getState()); + } + + }, + + getInitialState: function () { + return CartStore.getState(); + } + +}); + + +module.exports = ItemWithDetailsPage; diff --git a/front-ui/app/components/items/singleItem.js b/front-ui/app/components/items/singleItem.js index a1dffb3..96e5471 100644 --- a/front-ui/app/components/items/singleItem.js +++ b/front-ui/app/components/items/singleItem.js @@ -10,7 +10,7 @@ var SingleItem = React.createClass({ var self = this; var itemClick = this.itemClick; var firstImage = this.props.item.get('multi_media_descriptions')[0]; - firstImage = firstImage || { url: "http://res.cloudinary.com/lfvt7ps2n/image/upload/c_crop,g_center,w_300/v1421732950/http_www.asms.ru_bitrix_templates_main_images_nophoto_irnofq.png" } ; + firstImage = firstImage || { url: "https://res.cloudinary.com/lfvt7ps2n/image/upload/c_crop,g_center,w_300/v1421732950/http_www.asms.ru_bitrix_templates_main_images_nophoto_irnofq.png" } ; return (