From 977820a348f374c4ac886c3236ad86d958d013d3 Mon Sep 17 00:00:00 2001 From: dudaa28 Date: Sat, 14 Sep 2024 23:10:32 -0300 Subject: [PATCH] Criacao do JS da pagina basket --- app/static/js/basket.js | 76 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 app/static/js/basket.js diff --git a/app/static/js/basket.js b/app/static/js/basket.js new file mode 100644 index 0000000..7819056 --- /dev/null +++ b/app/static/js/basket.js @@ -0,0 +1,76 @@ +document.addEventListener('DOMContentLoaded', function () { + function atualizarCarrinho() { + fetch('/obter_carrinho/') + .then(response => response.json()) + .then(data => { + const carrinhoItens = document.getElementById('carrinho-itens'); + const totalElem = document.getElementById('total'); + const totalItensElem = document.getElementById('total-itens'); + const total = parseFloat(data.total); + + carrinhoItens.innerHTML = ''; + let totalItens = 0; + + data.carrinho.forEach(item => { + const bolo = document.createElement('div'); + bolo.classList.add('item'); + + bolo.innerHTML = ` + ${item.bolo_nome} +
+ ${item.bolo_nome} + ${item.descricao} + ${item.quantidade} + ${item.tamanho} + R$ ${item.preco.toFixed(2)} +
+ `; + + carrinhoItens.appendChild(bolo); + totalItens += item.quantidade; + }); + + totalElem.textContent = `R$ ${total.toFixed(2)}`; + totalItensElem.textContent = totalItens; + }) + .catch(error => console.error('Erro ao carregar o carrinho:', error)); + } + + // Atualiza o carrinho quando a página é carregada + atualizarCarrinho(); + + // Função para finalizar o pedido + const finalizarCompraBtn = document.getElementById('finalizar-compra'); + finalizarCompraBtn.addEventListener('click', function () { + fetch('/finalizar_compra/', { + method: 'POST', + headers: { + 'X-CSRFToken': getCSRFToken(), // Função para obter o CSRF token + 'Content-Type': 'application/json' + }, + }) + .then(response => response.json()) + .then(data => { + if (data.success) { + alert('Pedido finalizado com sucesso!'); + window.location.reload(); // Recarrega a página + } else { + alert('Erro ao finalizar o pedido.'); + } + }) + .catch(error => console.error('Erro ao finalizar o pedido:', error)); + }); + + // Função para obter o CSRF token + function getCSRFToken() { + let csrfToken = null; + const cookies = document.cookie.split(';'); + cookies.forEach(cookie => { + const [name, value] = cookie.trim().split('='); + if (name === 'csrftoken') { + csrfToken = value; + } + }); + return csrfToken; + } +});