Skip to content

Commit

Permalink
Pizza Main
Browse files Browse the repository at this point in the history
  • Loading branch information
Andriy Chaika committed Feb 2, 2016
1 parent e841178 commit 8317af2
Show file tree
Hide file tree
Showing 11 changed files with 2,121 additions and 6 deletions.
177 changes: 177 additions & 0 deletions Frontend/src/Pizza_List.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
/**
* Created by diana on 12.01.16.
*/

var pizza_info = [
{
id:1,
icon:'assets/images/pizza_7.jpg',
title: "Імпреза",
type: 'М’ясна піца',
content: {
meat: ['балик', 'салямі'],
chicken: ['куриця'],
cheese: ['сир моцарелла', 'сир рокфорд'],
pineapple: ['ананаси'],
additional: ['томатна паста', 'петрушка']
},
small_size:{
weight: 370,
size: 30,
price: 99
},
big_size:{
weight: 660,
size: 40,
price: 169
},
is_new:true,
is_popular:true

},
{
id:2,
icon:'assets/images/pizza_2.jpg',
title: "BBQ",
type: 'М’ясна піца',
content: {
meat: ['мисливські ковбаски', 'ковбаски папероні', 'шинка'],
cheese: ['сир домашній'],
mushroom: ['шампінйони'],
additional: ['петрушка', 'оливки']
},
small_size:{
weight: 460,
size: 30,
price: 139
},
big_size:{
weight: 840,
size: 40,
price: 199
},
is_popular:true
},
{
id:3,
icon:'assets/images/pizza_1.jpg',
title: "Міксовий поло",
type: 'М’ясна піца',
content: {
meat: ['вітчина', 'куриця копчена'],
cheese: ['сир моцарелла'],
pineapple: ['ананаси'],
additional: ['кукурудза', 'петрушка', 'соус томатний']
},
small_size:{
weight: 430,
size: 30,
price: 115
},
big_size:{
weight: 780,
size: 40,
price: 179
}
},
{
id:4,
icon:'assets/images/pizza_5.jpg',
title: "Сициліано",
type: 'М’ясна піца',
content: {
meat: ['вітчина', 'салямі'],
cheese: ['сир моцарелла'],
mushroom: ['шампінйони'],
additional: ['перець болгарський', 'соус томатний']
},
small_size:{
weight: 450,
size: 30,
price: 111
},
big_size:{
weight: 790,
size: 40,
price: 169
}
},
{
id:17,
icon:'assets/images/pizza_3.jpg',
title: "Маргарита",
type: 'Вега піца',
content: {
cheese: ['сир моцарелла', 'сир домашній'],
tomato: ['помідори'],
additional: ['базилік', 'оливкова олія', 'соус томатний']
},
small_size:{
weight: 370,
size: 30,
price: 89
}
},
{
id:43,
icon:'assets/images/pizza_6.jpg',
title: "Мікс смаків",
type: 'М’ясна піца',
content: {
meat: ['ковбаски'],
cheese: ['сир моцарелла'],
mushroom: ['шампінйони'],
pineapple: ['ананаси'],
additional: ['цибуля кримська', 'огірки квашені', 'соус гірчичний']
},
small_size:{
weight: 470,
size: 30,
price: 115
},
big_size:{
weight: 780,
size: 40,
price: 180
}
},
{
id:90,
icon:'assets/images/pizza_8.jpg',
title: "Дольче Маре",
type: 'Морська піца',
content: {
ocean: ['криветки тигрові', 'мідії', 'ікра червона', 'філе червоної риби'],
cheese: ['сир моцарелла'],
additional: ['оливкова олія', 'вершки']
},
big_size:{
weight: 845,
size: 40,
price: 399
}
},
{
id:6,
icon:'assets/images/pizza_4.jpg',
title: "Россо Густо",
type: 'Морська піца',
content: {
ocean: ['ікра червона', 'лосось копчений'],
cheese: ['сир моцарелла'],
additional: ['оливкова олія', 'вершки']
},
small_size:{
weight: 400,
size: 30,
price: 189
},
big_size:{
weight: 700,
size: 40,
price: 299
}
}
];

module.exports = pizza_info;
10 changes: 10 additions & 0 deletions Frontend/src/Templates.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* Created by chaika on 02.02.16.
*/
var fs = require('fs');
var ejs = require('ejs');


exports.PizzaMenu_OneItem = ejs.compile(fs.readFileSync('./Frontend/templates/PizzaMenu_OneItem.ejs', "utf8"));

exports.PizzaCart_OneItem = ejs.compile(fs.readFileSync('./Frontend/templates/PizzaCart_OneItem.ejs', "utf8"));
15 changes: 15 additions & 0 deletions Frontend/src/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/**
* Created by chaika on 25.01.16.
*/

$(function(){
//This code will execute when the page is ready
var PizzaMenu = require('./pizza/PizzaMenu');
var PizzaCart = require('./pizza/PizzaCart');
var Pizza_List = require('./Pizza_List');

PizzaCart.initialiseCart();
PizzaMenu.initialiseMenu();


});
87 changes: 87 additions & 0 deletions Frontend/src/pizza/PizzaCart.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/**
* Created by chaika on 02.02.16.
*/
var Templates = require('../Templates');

//Перелік розмірів піци
var PizzaSize = {
Big: "big_size",
Small: "small_size"
};

//Змінна в якій зберігаються перелік піц в кошику
var Cart = [];

//HTML едемент куди будуть додаватися піци
var $cart = $("#cart");

function addToCart(pizza, size) {
//Додавання однієї піци в кошик покупок

//Приклад реалізації, можна робити будь-яким іншим способом
Cart.push({
pizza: pizza,
size: size,
quantity: 1
});

//Оновити вміст кошика на сторінці
updateCart();
}

function removeFromCart(cart_item) {
//Видалити піцу з кошика
//TODO: треба зробити

//Після видалення оновити відображення
updateCart();
}

function initialiseCart() {
//Фукнція віпрацьвуватиме при завантаженні сторінки
//Тут можна наприклад, зчитати вміст корзини який збережено в Local Storage то показати його
//TODO: ...

updateCart();
}

function getPizzaInCart() {
//Повертає піци які зберігаються в кошику
return Cart;
}

function updateCart() {
//Функція викликається при зміні вмісту кошика
//Тут можна наприклад показати оновлений кошик на екрані та зберегти вміт кошика в Local Storage

//Очищаємо старі піци в кошику
$cart.html("");

//Онволення однієї піци
function showOnePizzaInCart(cart_item) {
var html_code = Templates.PizzaCart_OneItem(cart_item);

var $node = $(html_code);

$node.find(".plus").click(function(){
//Збільшуємо кількість замовлених піц
cart_item.quantity += 1;

//Оновлюємо відображення
updateCart();
});

$cart.append($node);
}

Cart.forEach(showOnePizzaInCart);

}

exports.removeFromCart = removeFromCart;
exports.addToCart = addToCart;

exports.getPizzaInCart = getPizzaInCart;
exports.initialiseCart = initialiseCart;

exports.PizzaSize = PizzaSize;
55 changes: 55 additions & 0 deletions Frontend/src/pizza/PizzaMenu.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/**
* Created by chaika on 02.02.16.
*/
var Templates = require('../Templates');
var PizzaCart = require('./PizzaCart');
var Pizza_List = require('../Pizza_List');

//HTML едемент куди будуть додаватися піци
var $pizza_list = $("#pizza_list");

function showPizzaList(list) {
//Очищаємо старі піци в кошику
$pizza_list.html("");

//Онволення однієї піци
function showOnePizza(pizza) {
var html_code = Templates.PizzaMenu_OneItem({pizza: pizza});

var $node = $(html_code);

$node.find(".buy-big").click(function(){
PizzaCart.addToCart(pizza, PizzaCart.PizzaSize.Big);
});
$node.find(".buy-small").click(function(){
PizzaCart.addToCart(pizza, PizzaCart.PizzaSize.Small);
});

$pizza_list.append($node);
}

list.forEach(showOnePizza);
}

function filterPizza(filter) {
//Масив куди потраплять піци які треба показати
var pizza_shown = [];

Pizza_List.forEach(function(pizza){
//Якщо піка відповідає фільтру
//pizza_shown.push(pizza);

//TODO: зробити фільтри
});

//Показати відфільтровані піци
showPizzaList(pizza_shown);
}

function initialiseMenu() {
//Показуємо усі піци
showPizzaList(Pizza_List)
}

exports.filterPizza = filterPizza;
exports.initialiseMenu = initialiseMenu;
9 changes: 9 additions & 0 deletions Frontend/templates/PizzaCart_OneItem.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<div>
<%= pizza.title %> (<%= size %>)
<div>Ціна: <%= pizza[size].price %> грн.</div>
<div>
<button class="btn btn-danger minus">-</button>
<span class="label label-default"><%= quantity %></span>
<button class="btn btn-success plus">+</button>
</div>
</div>
Loading

0 comments on commit 8317af2

Please sign in to comment.