routes fixed, orders need to be nested
This commit is contained in:
parent
2575133ce2
commit
5c07c0b2cc
|
@ -1,45 +1,32 @@
|
||||||
class OrdersController < ApplicationController
|
class OrdersController < ApplicationController
|
||||||
def new
|
def overview
|
||||||
@users = User.all
|
@users = User.all
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_session
|
|
||||||
user = User.find(params[:user_id])
|
|
||||||
if user
|
|
||||||
ordering(user)
|
|
||||||
redirect_to order_path
|
|
||||||
else
|
|
||||||
redirect_to overview_path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def order
|
def new
|
||||||
@order = current_ordering_user.orders.build
|
@user = User.find(params[:id])
|
||||||
|
@order = @user.orders.build
|
||||||
@products = Product.all
|
@products = Product.all
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@order = current_ordering_user.orders.build(order_params)
|
@user = User.find(params[:id])
|
||||||
|
@order = @user.orders.build(order_params)
|
||||||
if @order.save
|
if @order.save
|
||||||
#flash[:success] = "order created!"
|
#flash[:success] = "order created!"
|
||||||
end_order
|
|
||||||
redirect_to overview_path
|
redirect_to overview_path
|
||||||
else
|
else
|
||||||
redirect_to root_path
|
@products = Product.all
|
||||||
end
|
render 'new'
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
end
|
||||||
end_order
|
|
||||||
redirect_to overview_path
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def order_params
|
def order_params
|
||||||
#if params.require(:order).permit(:products)?
|
|
||||||
params.require(:order).permit(:products)
|
params.require(:order).permit(:products)
|
||||||
#{}"products"=>"return_products_string"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,11 +1,24 @@
|
||||||
<ul class="users">
|
<%= @user.name %>
|
||||||
<% @users.each do |user| %>
|
|
||||||
<li>
|
|
||||||
<%= form_for overview_path do |f| %>
|
|
||||||
<%= hidden_field_tag 'user_id', user.id %>
|
|
||||||
|
|
||||||
<%= f.submit user.name , class: "btn btn-primary" %>
|
<% @products.each do |p| %>
|
||||||
<% end %>
|
<%#= render "orders/order_button" %>
|
||||||
</li>
|
|
||||||
<% end %>
|
<!-- dit moet in een andere file -->
|
||||||
</ul>
|
<button class="btn btn-default product-btn"
|
||||||
|
data-name= '<%= p.name %>'
|
||||||
|
date-price= '<%= p.sale_price %>'>
|
||||||
|
<%= p.name %>
|
||||||
|
</button>
|
||||||
|
<!-- tot hier -->
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= form_for( @order, url: orders_user_path(@user)) do |f| %>
|
||||||
|
<%= f.submit "Order", class: "btn btn-primary " %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
|
<div style="padding-top: 50px;" class="order_list ">
|
||||||
|
<p>
|
||||||
|
Nothing ordered yet!
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
<%= current_ordering_user.name %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<% @products.each do |p| %>
|
|
||||||
<%#= render "orders/order_button" %>
|
|
||||||
|
|
||||||
<!-- dit moet in een andere file -->
|
|
||||||
<button class="btn btn-default product-btn"
|
|
||||||
data-name= '<%= p.name %>'
|
|
||||||
date-price= '<%= p.sale_price %>'>
|
|
||||||
<%= p.name %>
|
|
||||||
</button>
|
|
||||||
<!-- tot hier -->
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<%= form_for @order do |f| %>
|
|
||||||
<div class="field">
|
|
||||||
<%#= f.text_area :products , placeholder: "dit zou een hidden field moeten zijn met product JSON..." %>
|
|
||||||
</div>
|
|
||||||
<%#= hidden_field_tag "products", "return_products_string" %>
|
|
||||||
<div class="hidden"></div>
|
|
||||||
|
|
||||||
<%= f.submit "Order", class: "btn btn-primary " %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
<div style="padding-top: 50px;" class="order_list ">
|
|
||||||
<p>
|
|
||||||
Nothing ordered yet!
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script charset="utf-8">
|
|
||||||
|
|
||||||
var products = {};
|
|
||||||
//var product_number = 0;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
|
|
||||||
//Making/adding orderlist/JSON
|
|
||||||
$('.product-btn').click(function() {
|
|
||||||
//product_number++;
|
|
||||||
var name = $(this).data('name');
|
|
||||||
var price = $(this).data('price');
|
|
||||||
|
|
||||||
if(products.hasOwnProperty(name)){
|
|
||||||
products[name].number_of++;
|
|
||||||
} else{
|
|
||||||
products[name] = {
|
|
||||||
name : name,
|
|
||||||
price : price,
|
|
||||||
number_of: 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
update();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//updates the orderlist view
|
|
||||||
var update = function(){
|
|
||||||
$('.order_list').empty().append("<p>Ordered: </p>" + JSON.stringify(products) );
|
|
||||||
jQuery.each(products, function(i, product) {
|
|
||||||
$(".order_list").append("<p> - "+ i +": "+ product.number_of +"</p>");
|
|
||||||
});
|
|
||||||
$('.hidden').empty().append("<input id='order_products' name='order[products]' type='hidden' value="+ JSON.stringify(products) +" />")
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
7
app/views/orders/overview.html.erb
Normal file
7
app/views/orders/overview.html.erb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<ul class="users">
|
||||||
|
<% @users.each do |user| %>
|
||||||
|
<li>
|
||||||
|
<%= link_to user.name , orders_new_user_path(user) %>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
|
@ -2,21 +2,21 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
root "users#index"
|
root "users#index"
|
||||||
|
|
||||||
resources :users
|
resources :users do
|
||||||
resources :products
|
member do
|
||||||
|
get 'orders/new'
|
||||||
|
post 'orders' => 'orders#create'
|
||||||
|
|
||||||
get 'overview' => 'orders#new'
|
end
|
||||||
post 'overview' => 'orders#create_session'
|
end
|
||||||
delete 'end_order' => 'orders#destroy'
|
|
||||||
|
resources :products
|
||||||
|
|
||||||
#products
|
#products
|
||||||
get 'products' => 'products#new'
|
get 'products' => 'products#new'
|
||||||
post 'products' => 'products#create'
|
post 'products' => 'products#create'
|
||||||
|
|
||||||
|
|
||||||
#orders
|
|
||||||
get 'order' => 'orders#order'
|
|
||||||
post 'orders' => 'orders#create'
|
|
||||||
|
|
||||||
|
|
||||||
# The priority is based upon order of creation: first created -> highest priority.
|
# The priority is based upon order of creation: first created -> highest priority.
|
||||||
|
|
Loading…
Reference in a new issue