2014-11-24 21:45:32 +01:00
|
|
|
class ProductsController < ApplicationController
|
2014-12-17 07:31:51 +01:00
|
|
|
load_and_authorize_resource
|
|
|
|
|
2015-03-28 14:36:07 +01:00
|
|
|
respond_to :html, :js
|
|
|
|
|
2014-11-24 21:45:32 +01:00
|
|
|
def new
|
|
|
|
@product = Product.new
|
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
2014-11-25 13:41:22 +01:00
|
|
|
@product = Product.new(product_params)
|
2014-11-24 21:45:32 +01:00
|
|
|
if @product.save
|
2015-03-12 13:25:11 +01:00
|
|
|
redirect_to products_path
|
2014-11-24 21:45:32 +01:00
|
|
|
else
|
2015-03-12 13:25:11 +01:00
|
|
|
render 'new'
|
2014-11-24 21:45:32 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-11-25 13:09:55 +01:00
|
|
|
def index
|
|
|
|
@products = Product.all
|
2014-12-10 22:06:36 +01:00
|
|
|
@categories = Product.categories
|
2015-03-28 14:36:07 +01:00
|
|
|
if current_user.admin?
|
|
|
|
render 'products_list/listview'
|
|
|
|
end
|
2014-11-25 13:09:55 +01:00
|
|
|
end
|
|
|
|
|
2014-11-24 21:45:32 +01:00
|
|
|
def edit
|
2014-11-25 13:09:55 +01:00
|
|
|
@product = Product.find(params[:id])
|
2015-04-03 23:56:13 +02:00
|
|
|
respond_with @product
|
2014-11-24 21:45:32 +01:00
|
|
|
end
|
|
|
|
|
2014-11-25 13:41:22 +01:00
|
|
|
def update
|
|
|
|
@product = Product.find(params[:id])
|
2015-03-28 14:36:07 +01:00
|
|
|
@product.update_attributes product_params
|
|
|
|
respond_with @product
|
2014-11-25 13:41:22 +01:00
|
|
|
end
|
|
|
|
|
2014-11-26 11:58:51 +01:00
|
|
|
def destroy
|
|
|
|
Product.find(params[:id]).destroy
|
2014-12-09 14:42:50 +01:00
|
|
|
flash[:success] = "Succesfully removed product"
|
2015-03-12 13:25:11 +01:00
|
|
|
redirect_to products_path
|
2014-11-24 21:45:32 +01:00
|
|
|
end
|
|
|
|
|
2015-02-08 10:11:23 +01:00
|
|
|
def stock
|
|
|
|
@products = Product.all
|
|
|
|
end
|
|
|
|
|
|
|
|
def update_stock
|
|
|
|
@products = Product.all
|
|
|
|
@products.each do |product|
|
|
|
|
stock_inc = params[:products][product.id.to_s][:stock_inc].to_i
|
|
|
|
product.increment!(:stock, stock_inc) if stock_inc > 0
|
|
|
|
end
|
|
|
|
redirect_to products_path
|
|
|
|
end
|
|
|
|
|
2014-11-24 21:45:32 +01:00
|
|
|
private
|
|
|
|
|
2014-11-25 13:41:22 +01:00
|
|
|
def product_params
|
2015-07-07 20:09:58 +02:00
|
|
|
params.require(:product).permit(:name, :price, :avatar, :category, :stock, :calories)
|
2014-11-24 21:45:32 +01:00
|
|
|
end
|
|
|
|
end
|