bugfix in cart link

master
Gustavo Luigi 2022-09-07 14:40:02 +02:00
parent 8dac256ecf
commit d8f461db80
11 changed files with 39 additions and 20 deletions

View File

@ -74,6 +74,7 @@ if(input != undefined){
} }
// iti.getNumber(); // iti.getNumber();
function updateProducts(){ function updateProducts(){
$('#list-products').html('');
if(objProducts.length > 0){ if(objProducts.length > 0){
getInfoFromSelectedProduct().done(function(response, status){ getInfoFromSelectedProduct().done(function(response, status){
response.contents.forEach(function(product){ response.contents.forEach(function(product){
@ -106,7 +107,7 @@ $(window).on('load', function(){
totalPrice = 0; totalPrice = 0;
response.contents.forEach(function(product){ response.contents.forEach(function(product){
let objProduct = getProductInfo(product); let objProduct = getProductInfo(product);
calculatePrice(objProduct); objProduct = calculatePrice(objProduct);
totalPrice += objProduct.calc_preis*objProduct.quantity; totalPrice += objProduct.calc_preis*objProduct.quantity;
}); });
$('#total-checkout-price').text(numberToEuroFormat(totalPrice)); $('#total-checkout-price').text(numberToEuroFormat(totalPrice));

View File

@ -17,7 +17,7 @@ function getQuantityOfProducts(){


function getProductInfo(productInfo){ function getProductInfo(productInfo){
let objProduct = objProducts.find(obj => obj.id == productInfo.id); let objProduct = objProducts.find(obj => obj.id == productInfo.id);
return jQuery.extend(objProduct, productInfo); return jQuery.extend([], objProduct, productInfo);
} }


function calculatePrice(objProduct){ function calculatePrice(objProduct){
@ -90,11 +90,18 @@ function hasCartCode(){
return false; return false;
} }


function getCartCode(){
let urlPath = window.location.pathname;
let code = urlPath.split("/");
code = code[code.length-1];
if(isEncoded(code)) return atob(code);
return null;
}

function updateProductsInLocalStorage(){ function updateProductsInLocalStorage(){
localStorage.setItem("products", JSON.stringify(objProducts)); localStorage.setItem("products", JSON.stringify(objProducts));
$('#count-products-in-bag').text(getQuantityOfProducts()); $('#count-products-in-bag').text(getQuantityOfProducts());
$('#list-products-in-bag').html(''); $('#list-products-in-bag').html('');
if(typeof updateProducts === "function") $('#list-products').html('');
totalPrice = 0; totalPrice = 0;
if(objProducts.length > 0){ if(objProducts.length > 0){
getInfoFromSelectedProduct().done(function(response, status){ getInfoFromSelectedProduct().done(function(response, status){
@ -115,8 +122,7 @@ function updateProductsInLocalStorage(){
$('#no-products').hide(); $('#no-products').hide();
$('#modal-buttons').show(); $('#modal-buttons').show();
if(window.location.origin == 'http://localhost') cartLink = window.location.origin+'/areya-energy/public/'+btoa(JSON.stringify(objProducts)); cartLink = window.location.origin+'/'+btoa(JSON.stringify(objProducts));
else cartLink = window.location.origin+'/'+btoa(JSON.stringify(objProducts));
$('.cart-link').val(cartLink); $('.cart-link').val(cartLink);
shareData = { shareData = {
title: "Share cart list", title: "Share cart list",
@ -124,6 +130,8 @@ function updateProductsInLocalStorage(){
url: cartLink, url: cartLink,
}; };



}else{ }else{
$('.cart-link').hide(); $('.cart-link').hide();
$(".btn-share").hide(); $(".btn-share").hide();

View File

@ -5,6 +5,7 @@ $(window).on('load', function(){
if(localStorage.getItem("products") != null) objProducts = JSON.parse(localStorage.getItem("products")); if(localStorage.getItem("products") != null) objProducts = JSON.parse(localStorage.getItem("products"));
updateProductsInLocalStorage(); updateProductsInLocalStorage();
if(hasCartCode()){ if(hasCartCode()){
let productLink = getCartCode();
if(objProducts.length > 0) $('#modal-confirm-product-replacement').modal('show'); if(objProducts.length > 0) $('#modal-confirm-product-replacement').modal('show');
else $('#modal-confirm-addition-of-products').modal('show'); else $('#modal-confirm-addition-of-products').modal('show');
$('.btn-confirm-product-link').click(function(){ $('.btn-confirm-product-link').click(function(){
@ -86,18 +87,24 @@ $(window).on('load', function(){
let objProductInfo = objProducts.find(obj => obj.id == productId); let objProductInfo = objProducts.find(obj => obj.id == productId);
let index = objProducts.indexOf(objProductInfo); let index = objProducts.indexOf(objProductInfo);
objProducts[index].quantity = quantity; objProducts[index].quantity = quantity;
calculatePrice(objProductInfo); localStorage.setItem("products", JSON.stringify(objProducts));
let productPrice = $(this).parent().parent().find('.product-price');
$.get($('meta[name="get-contents"]').attr('content')+"/"+objProductInfo.id).done(function(response, status){
let product = response.contents[0];
let objProduct = getProductInfo(product);
objProduct = calculatePrice(objProduct);
let elementPrice = ` let elementPrice = `
<span>${numberToEuroFormat(objProductInfo.calc_preis)}</span>`; <span>${numberToEuroFormat(objProduct.calc_preis)}</span>`;
if(objProductInfo.calc_preis != objProductInfo.preis) elementPrice += ` if(objProduct.calc_preis != objProduct.preis) elementPrice += `
<br> <br>
<button style="font-size: 14px; padding: 0;" class="btn btn-link text-muted text-decoration-none" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample"> <button style="font-size: 14px; padding: 0;" class="btn btn-link text-muted text-decoration-none" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
<svg style="fill: currentColor; width: 15px; margin-right: 2px; margin-bottom: 2px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.66 173.65l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-164.7 164.69c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l164.69-164.69c3.13-3.12 3.13-8.18.01-11.31zM240 192c0-26.47-21.53-48-48-48s-48 21.53-48 48 21.53 48 48 48 48-21.53 48-48zm-64 0c0-8.83 7.19-16 16-16s16 7.17 16 16-7.19 16-16 16-16-7.17-16-16zm144 80c-26.47 0-48 21.53-48 48s21.53 48 48 48 48-21.53 48-48-21.53-48-48-48zm0 64c-8.81 0-16-7.17-16-16s7.19-16 16-16 16 7.17 16 16-7.19 16-16 16zm192-80c0-35.5-19.4-68.2-49.6-85.5 9.1-33.6-.3-70.4-25.4-95.5s-61.9-34.5-95.5-25.4C324.2 19.4 291.5 0 256 0s-68.2 19.4-85.5 49.6c-33.6-9.1-70.4.3-95.5 25.4s-34.5 61.9-25.4 95.5C19.4 187.8 0 220.5 0 256s19.4 68.2 49.6 85.5c-9.1 33.6.3 70.4 25.4 95.5 26.5 26.5 63.4 34.1 95.5 25.4 17.4 30.2 50 49.6 85.5 49.6s68.1-19.4 85.5-49.6c32.7 8.9 69.4.7 95.5-25.4 25.1-25.1 34.5-61.9 25.4-95.5 30.2-17.3 49.6-50 49.6-85.5zm-91.1 68.3c5.3 11.8 29.5 54.1-6.5 90.1-28.9 28.9-57.5 21.3-90.1 6.5C319.7 433 307 480 256 480c-52.1 0-64.7-49.5-68.3-59.1-32.6 14.8-61.3 22.2-90.1-6.5-36.8-36.7-10.9-80.5-6.5-90.1C79 319.7 32 307 32 256c0-52.1 49.5-64.7 59.1-68.3-5.3-11.8-29.5-54.1 6.5-90.1 36.8-36.9 80.8-10.7 90.1-6.5C192.3 79 205 32 256 32c52.1 0 64.7 49.5 68.3 59.1 11.8-5.3 54.1-29.5 90.1 6.5 36.8 36.7 10.9 80.5 6.5 90.1C433 192.3 480 205 480 256c0 52.1-49.5 64.7-59.1 68.3z"/></svg> <svg style="fill: currentColor; width: 15px; margin-right: 2px; margin-bottom: 2px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.66 173.65l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-164.7 164.69c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l164.69-164.69c3.13-3.12 3.13-8.18.01-11.31zM240 192c0-26.47-21.53-48-48-48s-48 21.53-48 48 21.53 48 48 48 48-21.53 48-48zm-64 0c0-8.83 7.19-16 16-16s16 7.17 16 16-7.19 16-16 16-16-7.17-16-16zm144 80c-26.47 0-48 21.53-48 48s21.53 48 48 48 48-21.53 48-48-21.53-48-48-48zm0 64c-8.81 0-16-7.17-16-16s7.19-16 16-16 16 7.17 16 16-7.19 16-16 16zm192-80c0-35.5-19.4-68.2-49.6-85.5 9.1-33.6-.3-70.4-25.4-95.5s-61.9-34.5-95.5-25.4C324.2 19.4 291.5 0 256 0s-68.2 19.4-85.5 49.6c-33.6-9.1-70.4.3-95.5 25.4s-34.5 61.9-25.4 95.5C19.4 187.8 0 220.5 0 256s19.4 68.2 49.6 85.5c-9.1 33.6.3 70.4 25.4 95.5 26.5 26.5 63.4 34.1 95.5 25.4 17.4 30.2 50 49.6 85.5 49.6s68.1-19.4 85.5-49.6c32.7 8.9 69.4.7 95.5-25.4 25.1-25.1 34.5-61.9 25.4-95.5 30.2-17.3 49.6-50 49.6-85.5zm-91.1 68.3c5.3 11.8 29.5 54.1-6.5 90.1-28.9 28.9-57.5 21.3-90.1 6.5C319.7 433 307 480 256 480c-52.1 0-64.7-49.5-68.3-59.1-32.6 14.8-61.3 22.2-90.1-6.5-36.8-36.7-10.9-80.5-6.5-90.1C79 319.7 32 307 32 256c0-52.1 49.5-64.7 59.1-68.3-5.3-11.8-29.5-54.1 6.5-90.1 36.8-36.9 80.8-10.7 90.1-6.5C192.3 79 205 32 256 32c52.1 0 64.7 49.5 68.3 59.1 11.8-5.3 54.1-29.5 90.1 6.5 36.8 36.7 10.9 80.5 6.5 90.1C433 192.3 480 205 480 256c0 52.1-49.5 64.7-59.1 68.3z"/></svg>
Mengenrabat Mengenrabat
</button> </button>
<span class="badge text-bg-dark">${(((objProductInfo.calc_preis-objProductInfo.preis)*100)/objProductInfo.preis).toFixed(2)} %</span> <span class="badge text-bg-dark">${(((objProduct.calc_preis-objProduct.preis)*100)/objProduct.preis).toFixed(2)} %</span>
`; `;
$(this).parent().parent().find('.product-price').html(elementPrice); productPrice.html(elementPrice);
});
$('#count-products-in-bag').text(getQuantityOfProducts()); $('#count-products-in-bag').text(getQuantityOfProducts());
getInfoFromSelectedProduct().done(function(response, status){ getInfoFromSelectedProduct().done(function(response, status){
totalPrice = 0; totalPrice = 0;
@ -124,7 +131,6 @@ $(window).on('load', function(){
$('#count-items-in-bag').html(objProduct.quantity+`<svg style="fill: white; width: 12px; margin-left: 3px; margin-bottom: 2px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 128C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128H0v304c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V128h-96zM224 48c44.112 0 80 35.888 80 80H144c0-44.112 35.888-80 80-80zm176 384c0 17.645-14.355 32-32 32H80c-17.645 0-32-14.355-32-32V176h48v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h160v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h48v256z"/></svg>`); $('#count-items-in-bag').html(objProduct.quantity+`<svg style="fill: white; width: 12px; margin-left: 3px; margin-bottom: 2px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 128C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128H0v304c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V128h-96zM224 48c44.112 0 80 35.888 80 80H144c0-44.112 35.888-80 80-80zm176 384c0 17.645-14.355 32-32 32H80c-17.645 0-32-14.355-32-32V176h48v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h160v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h48v256z"/></svg>`);
} }
} }
localStorage.setItem("products", JSON.stringify(objProducts));
}); });
$('#btn-copy-cart-link').click(function(){ $('#btn-copy-cart-link').click(function(){
$('.cart-link').select(); $('.cart-link').select();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
<link href="{{storage('assets/libs/bootstrap-5.2.0/bootstrap-5.2.0.min.css')}}" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> <link href="{{storage('assets/libs/bootstrap-5.2.0/bootstrap.min.css')}}" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
<link href="{{storage('assets/libs/animate-4.1.1.min.css')}}" rel="stylesheet"/> <link href="{{storage('assets/libs/animate-4.1.1.min.css')}}" rel="stylesheet"/>
<style> <style>
body{ body{

View File

@ -1,4 +1,4 @@
<script src="{{storage('assets/libs/jquery-3.6.1.min.js')}}"></script> <script src="{{storage('assets/libs/jquery-3.6.1.min.js')}}"></script>
<script src="{{storage('assets/libs/lottie-player-1.5.7.js')}}"></script> <script src="{{storage('assets/libs/lottie-player-1.5.7.js')}}"></script>
<script src="{{storage('assets/libs/popper-2.11.5.min.js')}}" integrity="sha384-Xe+8cL9oJa6tN/veChSP7q+mnSPaj5Bcu9mPX5F5xIGE0DVittaqT5lorf0EI7Vk" crossorigin="anonymous"></script> <script src="{{storage('assets/libs/popper-2.11.5.min.js')}}" integrity="sha384-Xe+8cL9oJa6tN/veChSP7q+mnSPaj5Bcu9mPX5F5xIGE0DVittaqT5lorf0EI7Vk" crossorigin="anonymous"></script>
<script src="{{storage('assets/libs/bootstrap-5.2.0/bootstrap-5.2.0.min.js')}}" integrity="sha384-ODmDIVzN+pFdexxHEHFBQH3/9/vQ9uori45z4JjnFsRydbmQbmL5t1tQ0culUzyK" crossorigin="anonymous"></script> <script src="{{storage('assets/libs/bootstrap-5.2.0/bootstrap.min.js')}}" integrity="sha384-ODmDIVzN+pFdexxHEHFBQH3/9/vQ9uori45z4JjnFsRydbmQbmL5t1tQ0culUzyK" crossorigin="anonymous"></script>