From 7c1c1b97dd5a91dcff40fefc065a63eb2172d5e3 Mon Sep 17 00:00:00 2001 From: "pawel.gaca" Date: Thu, 18 Jan 2024 08:10:53 +0100 Subject: [PATCH] Wprowadzenie drobnych poprawek i przekierowania ze strony order1 na place-order --- mapy/oneMap.js | 51 ++++++++++++++++++++++++++++++++------------- script.js | 10 +++++++-- style.css | 3 +++ wydzielonyScript.js | 51 ++++++++++++++++++++++++++++++++------------- 4 files changed, 83 insertions(+), 32 deletions(-) diff --git a/mapy/oneMap.js b/mapy/oneMap.js index aefdc1b..12fa7af 100644 --- a/mapy/oneMap.js +++ b/mapy/oneMap.js @@ -129,9 +129,18 @@ function loadMap() { // Jesli nie ma informacji potrzebnej do mapy, zapisz wiadomosc do errora let errorMessage = ""; - if(!clientStreet) errorMessage += `${}
`; - if(!clientZipCode) errorMessage += `${}
`; - if(!clientCity) errorMessage += `${}`; + if(!clientStreet){ + errorMessage += `${}
`; + addErrorMessage(document.getElementById("client_street"), ) + } + if(!clientZipCode){ + errorMessage += `${}
`; + addErrorMessage(document.getElementById("client_zipcode"), ) + } + if(!clientCity){ + errorMessage += `${}`; + addErrorMessage(document.getElementById("client_city"), ) + } // Zablokuj wybranie mapy jak nie ma adresu if(errorMessage !== ""){ @@ -762,7 +771,7 @@ const SET_REGION = (setRegionInput) => JSON.stringify({ }); // Zmiana regionu dostawy -async function changeRegion(payAndDelData = null, firstLoad = false) { +async function changeRegion(payAndDelData = null) { // Pobranie informacji o regionie z formularza const clientRegion = document.getElementById("client_region").value; const deliveryRegion = document.getElementById("deliver_to_billingaddr").checked ? document.getElementById("delivery_region").value : clientRegion; @@ -780,11 +789,11 @@ async function changeRegion(payAndDelData = null, firstLoad = false) { if (status !== 'success') return alert("Błąd podczas zmiany kraju. Przeładuj stronę jeszcze raz."); // Pobranie nowych metod płatności i dostaw - getNewPaymentsAndDeliveries(payAndDelData, firstLoad); + getNewPaymentsAndDeliveries(payAndDelData); }; // Załadowanie metod dostaw i płatności -function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { +function getNewPaymentsAndDeliveries(data = null) { // Wyczyszczenie zapisanych poprzednich metod płatności prevPayment = undefined; prevShipping = undefined; @@ -822,6 +831,10 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { e.dvp.forEach(function (method) { dvpMarkup += prepareDeliveryMarkup(method, deliveryId); }); + + // Dane do zaznaczenia płatności i dostawy jeśli wcześniej na tej przeglądarce(localStorage) było już zamówienie + const prevOrderInfo = JSON.parse(localStorage.getItem("prevOrderInfo")); + console.log(prevOrderInfo); // Wstawienie metod dostaw na strone const deliveryMarkup = `
${prepaidMarkup}
${dvpMarkup}
`; @@ -931,8 +944,8 @@ const checkedPayment = paymentValue === method.id; if(!pointExists) selectedShipping.checked = false; }); }// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony) - else if(firstLoad && localStorage.getItem("prevCountry") && localStorage.getItem("prevCountry") === document.getElementById("client_region").value){ - const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod")); + else if(firstTimeLoadPage && prevOrderInfo && prevOrderInfo?.prevCountry === document.getElementById("client_region").value){ + const prevPaymentMethod = prevOrderInfo.prevPaymentMethod; // Zaznaczenie metod płatności które nie tworzą popupa if(prevPaymentMethod.id !== "payitem_2" && prevPaymentMethod.group !== "card" && prevPaymentMethod.group !== "transfer"){ @@ -944,7 +957,7 @@ const checkedPayment = paymentValue === method.id; } // Poprzednia dostawa - const prevDeliveryMethod = JSON.parse(localStorage.getItem("prevDeliveryMethod")); + const prevDeliveryMethod = prevOrderInfo.prevDeliveryMethod; const prevDeliveryInput = document.querySelector(`input#${prevDeliveryMethod.id}`); // Sprawdzenie czy istnieje metoda dostawy (na wypadek gdyby była usunięta lub klient zamawiał do innego kraju) @@ -982,6 +995,8 @@ const checkedPayment = paymentValue === method.id; if(firstInput) deliveryDate(firstInput.value, firstInput.dataset.delivery, firstInput.dataset.pickuppoint); calculateBasketCost(); app_shop.fn.ajaxLoadSite(0); + + firstTimeLoadPage = false; }, }); }; @@ -1874,9 +1889,13 @@ function sendOrder(data){ } : false }; - localStorage.setItem("prevPaymentMethod", JSON.stringify(usedPaymentMethod)); - localStorage.setItem("prevDeliveryMethod", JSON.stringify(usedDeliveryMethod)); -localStorage.setItem("prevCountry", usedCountry); + const prevOrderInfo = { + prevPaymentMethod: usedPaymentMethod, + prevDeliveryMethod: usedDeliveryMethod, + prevCountry: usedCountry + } + + localStorage.setItem("prevOrderInfo", JSON.stringify(prevOrderInfo)); // Przeniesienie na stonę informacji o zamóieniu window.location.href = e.location; @@ -2047,11 +2066,12 @@ async function fetchData(options = {}) { } } +let firstTimeLoadPage = true; function initOSCOP(){ // Element z numerem edycji jeśli jest const editNumber = document.getElementById("edit-number"); -if(document.querySelector(".ajax_cop").childElementCount && !editNumber) changeRegion(null, true); +if(document.querySelector(".ajax_cop").childElementCount && !editNumber) changeRegion(null); // Jeśli edycja zamówienia uzupełnij dane (niewiadomo jak z voucherem bo go się nie da edytować) if(editNumber){ @@ -2135,6 +2155,7 @@ if(editNumber){ // Pobranie danych o edytowanym zamówieniu async function getEditData(){ + const data = await fetchData({ data: ORDER_DETAILS(`OrderDetailsInput: { orderNumber: ${editNumber.value}, @@ -2187,9 +2208,9 @@ if(editNumber){ // Metody płatności i dostaw if(document.getElementById("delivery_region").value !== document.getElementById("client_region").value) changeRegion(orderData); - else getNewPaymentsAndDeliveries(orderData, true); + else getNewPaymentsAndDeliveries(orderData); // Jeśli nie było dostawy na inny adres uzupełnij metody dostaw i płatności - }else getNewPaymentsAndDeliveries(orderData, true); + }else getNewPaymentsAndDeliveries(orderData); // Uzupełnienie uwag dla sklepu/kuriera if(orderDetails.remarks){ diff --git a/script.js b/script.js index 44db961..b519f7a 100644 --- a/script.js +++ b/script.js @@ -1,9 +1,15 @@ // Zmiana linku po anulowaniu zamówienia; -setTimeout(function() { +if(window.location.pathname.includes("return.html") && window.location.search.includes("ordercancel_ok")){ + const returnButtonInterval = setInterval(function() { const returnPage = document.querySelector(".return_page"); const returnButton = document.querySelector("#retbut_ordercancel_ok"); if(returnPage && returnButton){ returnButton.href = returnButton.href.replace("&order_number", "&order_number"); + clearInterval(returnButtonInterval); } - }, 50); \ No newline at end of file + }, 100); +} + +// Przekierowanie ze strony order1 na OSCOP +if(window.location.pathname.includes("order1.html")) window.location = "/place-order.php"; \ No newline at end of file diff --git a/style.css b/style.css index 5a86c35..ce9c593 100644 --- a/style.css +++ b/style.css @@ -51,6 +51,9 @@ .has-feedback.--error .form-control{ border-color: @less_iaicolorscheme_danger_color; } + .has-feedback.--error.has-error .f-label{ + color: @less_iaicolorscheme_danger_color; + } // Zmiana fontsize na 16px na desktop .order__voucher_headlines strong, .order__voucher_button, #signin-form-ajax .signin_button, .delivery__address-list-firstname, .delivery__address-list-lastname, .osc_item-modal h2, .propose_title, #e-invoice_dialog .btn, #checkout_step2_2 h3, #summary-points, #fbs_z02_wrapper .big_label, .propose_main .button_password_recover, .rebate__title{ font-size: 1.6rem!important; diff --git a/wydzielonyScript.js b/wydzielonyScript.js index 594a5df..c4356fe 100644 --- a/wydzielonyScript.js +++ b/wydzielonyScript.js @@ -132,9 +132,18 @@ function loadMap() { // Jesli nie ma informacji potrzebnej do mapy, zapisz wiadomosc do errora let errorMessage = ""; - if(!clientStreet) errorMessage += `${}
`; - if(!clientZipCode) errorMessage += `${}
`; - if(!clientCity) errorMessage += `${}`; + if(!clientStreet){ + errorMessage += `${}
`; + addErrorMessage(document.getElementById("client_street"), ) + } + if(!clientZipCode){ + errorMessage += `${}
`; + addErrorMessage(document.getElementById("client_zipcode"), ) + } + if(!clientCity){ + errorMessage += `${}`; + addErrorMessage(document.getElementById("client_city"), ) + } // Zablokuj wybranie mapy jak nie ma adresu if(errorMessage !== ""){ @@ -758,7 +767,7 @@ const SET_REGION = (setRegionInput) => JSON.stringify({ }); // Zmiana regionu dostawy -async function changeRegion(payAndDelData = null, firstLoad = false) { +async function changeRegion(payAndDelData = null) { // Pobranie informacji o regionie z formularza const clientRegion = document.getElementById("client_region").value; const deliveryRegion = document.getElementById("deliver_to_billingaddr").checked ? document.getElementById("delivery_region").value : clientRegion; @@ -776,11 +785,11 @@ async function changeRegion(payAndDelData = null, firstLoad = false) { if (status !== 'success') return alert("Błąd podczas zmiany kraju. Przeładuj stronę jeszcze raz."); // Pobranie nowych metod płatności i dostaw - getNewPaymentsAndDeliveries(payAndDelData, firstLoad); + getNewPaymentsAndDeliveries(payAndDelData); }; // Załadowanie metod dostaw i płatności -function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { +function getNewPaymentsAndDeliveries(data = null) { // Wyczyszczenie zapisanych poprzednich metod płatności prevPayment = undefined; prevShipping = undefined; @@ -819,6 +828,10 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { dvpMarkup += prepareDeliveryMarkup(method, deliveryId); }); + // Dane do zaznaczenia płatności i dostawy jeśli wcześniej na tej przeglądarce(localStorage) było już zamówienie + const prevOrderInfo = JSON.parse(localStorage.getItem("prevOrderInfo")); + console.log(prevOrderInfo); + // Wstawienie metod dostaw na strone const deliveryMarkup = `
${prepaidMarkup}
${dvpMarkup}
`; const previousDeliveries = document.getElementById("osc_order1"); @@ -927,8 +940,8 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { if(!pointExists) selectedShipping.checked = false; }); }// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony) - else if(firstLoad && localStorage.getItem("prevCountry") && localStorage.getItem("prevCountry") === document.getElementById("client_region").value){ - const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod")); + else if(firstTimeLoadPage && prevOrderInfo && prevOrderInfo?.prevCountry === document.getElementById("client_region").value){ + const prevPaymentMethod = prevOrderInfo.prevPaymentMethod; // Zaznaczenie metod płatności które nie tworzą popupa if(prevPaymentMethod.id !== "payitem_2" && prevPaymentMethod.group !== "card" && prevPaymentMethod.group !== "transfer"){ @@ -940,7 +953,7 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { } // Poprzednia dostawa - const prevDeliveryMethod = JSON.parse(localStorage.getItem("prevDeliveryMethod")); + const prevDeliveryMethod = prevOrderInfo.prevDeliveryMethod; const prevDeliveryInput = document.querySelector(`input#${prevDeliveryMethod.id}`); // Sprawdzenie czy istnieje metoda dostawy (na wypadek gdyby była usunięta lub klient zamawiał do innego kraju) @@ -978,6 +991,8 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) { if(firstInput) deliveryDate(firstInput.value, firstInput.dataset.delivery, firstInput.dataset.pickuppoint); calculateBasketCost(); app_shop.fn.ajaxLoadSite(0); + + firstTimeLoadPage = false; }, }); }; @@ -1870,9 +1885,13 @@ function sendOrder(data){ } : false }; - localStorage.setItem("prevPaymentMethod", JSON.stringify(usedPaymentMethod)); - localStorage.setItem("prevDeliveryMethod", JSON.stringify(usedDeliveryMethod)); - localStorage.setItem("prevCountry", usedCountry); + const prevOrderInfo = { + prevPaymentMethod: usedPaymentMethod, + prevDeliveryMethod: usedDeliveryMethod, + prevCountry: usedCountry + } + + localStorage.setItem("prevOrderInfo", JSON.stringify(prevOrderInfo)); // Przeniesienie na stonę informacji o zamóieniu window.location.href = e.location; @@ -2043,11 +2062,12 @@ async function fetchData(options = {}) { } } +let firstTimeLoadPage = true; function initOSCOP(){ // Element z numerem edycji jeśli jest const editNumber = document.getElementById("edit-number"); - if(document.querySelector(".ajax_cop").childElementCount && !editNumber) changeRegion(null, true); + if(document.querySelector(".ajax_cop").childElementCount && !editNumber) changeRegion(null); // Jeśli edycja zamówienia uzupełnij dane (niewiadomo jak z voucherem bo go się nie da edytować) if(editNumber){ @@ -2131,6 +2151,7 @@ function initOSCOP(){ // Pobranie danych o edytowanym zamówieniu async function getEditData(){ + const data = await fetchData({ data: ORDER_DETAILS(`OrderDetailsInput: { orderNumber: ${editNumber.value}, @@ -2183,9 +2204,9 @@ function initOSCOP(){ // Metody płatności i dostaw if(document.getElementById("delivery_region").value !== document.getElementById("client_region").value) changeRegion(orderData); - else getNewPaymentsAndDeliveries(orderData, true); + else getNewPaymentsAndDeliveries(orderData); // Jeśli nie było dostawy na inny adres uzupełnij metody dostaw i płatności - }else getNewPaymentsAndDeliveries(orderData, true); + }else getNewPaymentsAndDeliveries(orderData); // Uzupełnienie uwag dla sklepu/kuriera if(orderDetails.remarks){