Naprawa buga ze zwracaniem wartości z funkcji async
This commit is contained in:
47
README.md
47
README.md
@@ -1,10 +1,10 @@
|
|||||||
# OSCOP #
|
# OSCOP #
|
||||||
Pliki związane z OSCOP. Żeby działał trzeba stworzyć kopie jednego komponenta z place-order(testowane na komponencie układ) i resztę usunąć. Następnie wkleić kod w odpowiednie miejsca w skopiowanym komponencie:
|
Pliki związane z OSCOP. Żeby działał trzeba stworzyć kopie jednego komponenta z place-order(testowane na komponencie układ) i resztę usunąć. Następnie wkleić kod w odpowiednie miejsca w skopiowanym komponencie:
|
||||||
index.xslt w XML/XSLT\
|
\index.xslt w XML/XSLT
|
||||||
wydzielonyScript.js w Wydzielony Javascript\
|
\wydzielonyScript.js w Wydzielony Javascript
|
||||||
script.js w Javascript\
|
\script.js w Javascript
|
||||||
style.css w Less/CSS\
|
\style.css w Less/CSS
|
||||||
Dodatkowo Trzeba będzie zrobić przekierowanie (można nawet dodatkiem) po kliknięciu na "Przejdź dalej" do strony "place-order.php"
|
\Dodatkowo Trzeba będzie zrobić przekierowanie (można nawet dodatkiem) po kliknięciu na "Przejdź dalej" do strony "place-order.php"
|
||||||
|
|
||||||
## Ikony markera na mapie ##
|
## Ikony markera na mapie ##
|
||||||
Aby dodać zdjęcie ikony: moderacja -> cms -> Zarządzanie plikami dla CMS. Żeby dodać nową ikonę trzeba dodać nowy obiekt w mapMarkerUrls. Można do tam wybrać link url do ikony, rozmiar, klasę. Dodatkowe opcje znajdują się w dokumentacji Leaflet w opcjach markera: https://leafletjs.com/reference.html#marker
|
Aby dodać zdjęcie ikony: moderacja -> cms -> Zarządzanie plikami dla CMS. Żeby dodać nową ikonę trzeba dodać nowy obiekt w mapMarkerUrls. Można do tam wybrać link url do ikony, rozmiar, klasę. Dodatkowe opcje znajdują się w dokumentacji Leaflet w opcjach markera: https://leafletjs.com/reference.html#marker
|
||||||
@@ -17,33 +17,34 @@ Aby je zmienić trzeba wejść w panel -> moderacja -> działanie sklepu -> Pane
|
|||||||
Następnie wejść w edycje wybranego sposobu logowania i wrzucić nową ikonę w miejsce "Grafika mała na stronie". UWAGA! Plików svg nie da się wprowadzić.
|
Następnie wejść w edycje wybranego sposobu logowania i wrzucić nową ikonę w miejsce "Grafika mała na stronie". UWAGA! Plików svg nie da się wprowadzić.
|
||||||
|
|
||||||
## Brakujące Tłumaczenia (literały) ##
|
## Brakujące Tłumaczenia (literały) ##
|
||||||
Trzeba je później podmienić w kodzie w Wydzielonym Java script na np.:\
|
Trzeba je później podmienić w kodzie w Wydzielonym Java script na np.:
|
||||||
<iai:variable vid="Pokaż Listę"/>
|
\<iai:variable vid="Pokaż Listę"/>
|
||||||
|
|
||||||
### Wydzielony Javascript ###
|
### Wydzielony Javascript ###
|
||||||
Pokaż Listę\
|
Pokaż Listę
|
||||||
Pokaż Mapę\
|
\Pokaż Mapę
|
||||||
Błąd podczas zmiany kraju. Przeładuj stronę jeszcze raz.\
|
\Błąd podczas zmiany kraju. Przeładuj stronę jeszcze raz.
|
||||||
Błąd podczas logowania, proszę spróbować ponownie\
|
\Błąd podczas logowania, proszę spróbować ponownie
|
||||||
banków\
|
\banków
|
||||||
kart płatniczych\
|
\kart płatniczych
|
||||||
Lista\
|
\Lista
|
||||||
Wybierz z\
|
\Wybierz z
|
||||||
|
|
||||||
## Zalety ##
|
## Zalety ##
|
||||||
Zablokowana edycja danych osobowych w trakcie zamówienia(klient dalej może wysłać zamówienie na inny adres).\
|
Zablokowana edycja danych osobowych w trakcie zamówienia(klient dalej może wysłać zamówienie na inny adres).
|
||||||
Zmiana sposobów dostaw zależnie od państwa(Czasami się buguje, może to być zależne od plików cookies)\
|
\Zmiana sposobów dostaw zależnie od państwa(Czasami się buguje, może to być zależne od plików cookies)
|
||||||
Sprawdzenie czy wpisano dobry bon towarowy przed złożeniem zamówienia\
|
\Sprawdzenie czy wpisano dobry bon towarowy przed złożeniem zamówienia
|
||||||
lepiej zabezpieczony numer telefonu?(na standardzie to +2+++++++++1 przejdzie)\
|
\lepiej zabezpieczony numer telefonu?(na standardzie to +2+++++++++1 przejdzie)
|
||||||
autouzupełnianie metod płatności i dostawy w edycji\
|
\autouzupełnianie metod płatności i dostawy w edycji
|
||||||
autouzupełnianie metod płatności i dostawy na podstawie poprzednio wykonanego zakupu\
|
\autouzupełnianie metod płatności i dostawy na podstawie poprzednio wykonanego zakupu
|
||||||
|
|
||||||
## Minusy ##
|
## Minusy ##
|
||||||
nie ma faktury na inne dane(żeby nie używać tego samego zapytania co OSCOP Idosella, na wszelki wypadek żeby nie pobierało opłat)
|
nie ma faktury na inne dane(żeby nie używać tego samego zapytania co OSCOP Idosella, na wszelki wypadek żeby nie pobierało opłat)
|
||||||
|
|
||||||
## Dodatkowe pomysły do zrealizowania ##
|
## Dodatkowe pomysły do zrealizowania ##
|
||||||
sprawdzanie logina w trakcie pisania(może być słabe dla ochrony danych klienta)\
|
sprawdzanie logina w trakcie pisania(może być słabe dla ochrony danych klienta)
|
||||||
Limit znaków | Wydłużanie się okienka od uwag do sklepu|kuriera
|
\Limit znaków | Wydłużanie się okienka od uwag do sklepu|kuriera
|
||||||
|
|
||||||
## Uwagi ##
|
## Uwagi ##
|
||||||
W przypadku edycji zamówienia z zapłatą za pobraniem nie można pobrać danych takiego zamówienia przed dokonaniem zapłaty. Idosell sprawdza ten problem w komunikacie na zooart6.
|
W przypadku edycji zamówienia z zapłatą za pobraniem nie można pobrać danych takiego zamówienia przed dokonaniem zapłaty. Idosell sprawdza ten problem w komunikacie na zooart6.
|
||||||
|
\ Dziwna rzecz którą zauważyłem. Jak składasz zamówienie wraz z zakładaniem konta, ale okazuje się że brakuje któregoś produktu w koszyku, to konto dalej się zakłada(ponieważ w takiej sytuacji najpierw zakłada się konto, a później składa się zamówienie)
|
||||||
11
index.xslt
11
index.xslt
@@ -86,7 +86,10 @@
|
|||||||
<iaixsl:attribute name="href"><iaixsl:value-of select="@login_url"/></iaixsl:attribute>
|
<iaixsl:attribute name="href"><iaixsl:value-of select="@login_url"/></iaixsl:attribute>
|
||||||
<img>
|
<img>
|
||||||
<iaixsl:attribute name="src">
|
<iaixsl:attribute name="src">
|
||||||
<iaixsl:value-of select="@gfx"></iaixsl:value-of>
|
<iaixsl:choose>
|
||||||
|
<iaixsl:when test="@gfx"><iaixsl:value-of select="@gfx"></iaixsl:value-of></iaixsl:when>
|
||||||
|
<iaixsl:otherwise><iaixsl:value-of select="@gfx_big"></iaixsl:value-of></iaixsl:otherwise>
|
||||||
|
</iaixsl:choose>
|
||||||
</iaixsl:attribute>
|
</iaixsl:attribute>
|
||||||
<iaixsl:attribute name="alt">
|
<iaixsl:attribute name="alt">
|
||||||
<iaixsl:value-of select="@name"></iaixsl:value-of>
|
<iaixsl:value-of select="@name"></iaixsl:value-of>
|
||||||
@@ -880,12 +883,14 @@
|
|||||||
<input type="checkbox" id="rebate_option" name="rebate_option" class="--arrow-input"></input>
|
<input type="checkbox" id="rebate_option" name="rebate_option" class="--arrow-input"></input>
|
||||||
<label for="rebate_option" class="--arrow-label"><iai:variable vid="Posiadasz kod rabatowy?"/></label>
|
<label for="rebate_option" class="--arrow-label"><iai:variable vid="Posiadasz kod rabatowy?"/></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="rebate__code has-feedback">
|
<div class="rebate__code">
|
||||||
<div class="rebate__code-container">
|
<div class="rebate__code-container has-feedback">
|
||||||
|
<div>
|
||||||
<input type="text" id="rebate_code" name="rebate_code" class="form-control">
|
<input type="text" id="rebate_code" name="rebate_code" class="form-control">
|
||||||
<iaixsl:attribute name="placeholder"><iai:variable vid="Wpisz kod rabatowy"/></iaixsl:attribute>
|
<iaixsl:attribute name="placeholder"><iai:variable vid="Wpisz kod rabatowy"/></iaixsl:attribute>
|
||||||
</input>
|
</input>
|
||||||
<span class="form-control-feedback"></span>
|
<span class="form-control-feedback"></span>
|
||||||
|
</div>
|
||||||
<button class="rebate__code-realize bm-oscop__btn"><iai:variable vid="Zrealizuj"/></button>
|
<button class="rebate__code-realize bm-oscop__btn"><iai:variable vid="Zrealizuj"/></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -841,9 +841,11 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
|
|
||||||
// Przygotowanie Płatności
|
// Przygotowanie Płatności
|
||||||
e.prepaids_method.forEach(function (method) {
|
e.prepaids_method.forEach(function (method) {
|
||||||
|
const checkedPayment = paymentValue === method.id;
|
||||||
|
|
||||||
const markup = `
|
const markup = `
|
||||||
<label class="osc_item" for="payitem_${method.id}">
|
<label class="osc_item" for="payitem_${method.id}">
|
||||||
<input id="payitem_${method.id}" value="${method.id}" type="radio" name="payform_id" ${paymentValue === method.id ? "checked" : ""} data-group="${method.group}">
|
<input id="payitem_${method.id}" value="${method.id}" type="radio" name="payform_id" ${checkedPayment ? "checked" : ""} data-group="${method.group}">
|
||||||
<div class="photo">
|
<div class="photo">
|
||||||
<img src="${method.icon}" alt="${method.name}">
|
<img src="${method.icon}" alt="${method.name}">
|
||||||
</div>
|
</div>
|
||||||
@@ -917,7 +919,7 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
// Wstawienie pickuppoint jeśli edycja i istnieje
|
// Wstawienie pickuppoint jeśli edycja i istnieje
|
||||||
if(data?.pickupData !== undefined && data?.pickupData !== null){
|
if(data?.pickupData !== undefined && data?.pickupData !== null){
|
||||||
const selectedShipping = document.querySelector(`#cop_seection2 input#${deliveryId}`);
|
const selectedShipping = document.querySelector(`#cop_seection2 input#${deliveryId}`);
|
||||||
const pointExists = checkPrevPickupPoint(
|
checkPrevPickupPoint(
|
||||||
selectedShipping.parentElement.querySelector(".fselectedPoint"),
|
selectedShipping.parentElement.querySelector(".fselectedPoint"),
|
||||||
data.pickupData.id,
|
data.pickupData.id,
|
||||||
data.pickupData.name,
|
data.pickupData.name,
|
||||||
@@ -925,11 +927,10 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
data.pickupData.address.city,
|
data.pickupData.address.city,
|
||||||
data.pickupData.address.postcode,
|
data.pickupData.address.postcode,
|
||||||
data.deliveryMethodId
|
data.deliveryMethodId
|
||||||
);
|
).then(pointExists=>{
|
||||||
|
|
||||||
// Odznaczenie punktu jeśli punkt odbioru nie istnieje(Wcześniej był zaznaczony przy edycji)
|
// Odznaczenie punktu jeśli punkt odbioru nie istnieje(Wcześniej był zaznaczony przy edycji)
|
||||||
if(!pointExists) selectedShipping.checked = 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)
|
}// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony)
|
||||||
else if(localStorage.getItem("prevPaymentMethod") && localStorage.getItem("prevDeliveryMethod") && firstLoad){
|
else if(localStorage.getItem("prevPaymentMethod") && localStorage.getItem("prevDeliveryMethod") && firstLoad){
|
||||||
const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod"));
|
const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod"));
|
||||||
@@ -949,7 +950,7 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
if(prevDeliveryInput){
|
if(prevDeliveryInput){
|
||||||
// sprawdzenie czy dostawa miała punkt odbioru
|
// sprawdzenie czy dostawa miała punkt odbioru
|
||||||
if(prevDeliveryMethod.fselectedPoint){
|
if(prevDeliveryMethod.fselectedPoint){
|
||||||
const pointExists = checkPrevPickupPoint(
|
checkPrevPickupPoint(
|
||||||
prevDeliveryInput.parentElement.querySelector(".fselectedPoint"),
|
prevDeliveryInput.parentElement.querySelector(".fselectedPoint"),
|
||||||
prevDeliveryMethod.fselectedPoint.deliveryPointId,
|
prevDeliveryMethod.fselectedPoint.deliveryPointId,
|
||||||
prevDeliveryMethod.fselectedPoint.name,
|
prevDeliveryMethod.fselectedPoint.name,
|
||||||
@@ -957,13 +958,21 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
prevDeliveryMethod.fselectedPoint.city,
|
prevDeliveryMethod.fselectedPoint.city,
|
||||||
prevDeliveryMethod.fselectedPoint.zipcode,
|
prevDeliveryMethod.fselectedPoint.zipcode,
|
||||||
prevDeliveryMethod.fselectedPoint.courierId
|
prevDeliveryMethod.fselectedPoint.courierId
|
||||||
);
|
).then(pointExists=>{
|
||||||
if(pointExists) prevDeliveryInput.checked = true;
|
if(pointExists) prevDeliveryInput.checked = true;
|
||||||
|
});
|
||||||
}else{
|
}else{
|
||||||
prevDeliveryInput.checked = true;
|
prevDeliveryInput.checked = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Zaznaczenie karty/banku w przypadku edycji
|
||||||
|
const checkedPayment = document.querySelector(`#osc_prepaids_method input[name="payform_id"]:checked`)
|
||||||
|
if(checkedPayment && (checkedPayment.dataset.group === "card" || checkedPayment.dataset.group === "transfer")){
|
||||||
|
cloneElement(checkedPayment);
|
||||||
|
}
|
||||||
// Przeładowanie mapy
|
// Przeładowanie mapy
|
||||||
loadMap();
|
loadMap();
|
||||||
// Przeliczenie kosztu dostawy
|
// Przeliczenie kosztu dostawy
|
||||||
@@ -1042,6 +1051,7 @@ const SEARCH_PICKUP_POINTS_QUERY = (searchPickupPointsInput) => JSON.stringify({
|
|||||||
}`,
|
}`,
|
||||||
})
|
})
|
||||||
async function checkPrevPickupPoint(selectedPoint, deliveryPointId, name, street, city, zipcode, courierId){
|
async function checkPrevPickupPoint(selectedPoint, deliveryPointId, name, street, city, zipcode, courierId){
|
||||||
|
if(!name || !city || !zipcode) return false;
|
||||||
// Pobranie punktów z tym samym id co poprzedni
|
// Pobranie punktów z tym samym id co poprzedni
|
||||||
app_shop.fn.ajaxLoadSite(1)
|
app_shop.fn.ajaxLoadSite(1)
|
||||||
const resultData = await fetchData({
|
const resultData = await fetchData({
|
||||||
@@ -1484,7 +1494,7 @@ async function updateCode(){
|
|||||||
// Pokazanie błędu
|
// Pokazanie błędu
|
||||||
const { message } = rebateStatus?.data?.activateRebateCode?.error;
|
const { message } = rebateStatus?.data?.activateRebateCode?.error;
|
||||||
addError(rebateCode);
|
addError(rebateCode);
|
||||||
rebateCode.insertAdjacentHTML("afterend",`<span class="help-block validate_message text-danger">${message}.</span>`);
|
addErrorMessage(rebateCode, message);
|
||||||
// Schowaj kod (show=false, error=true)
|
// Schowaj kod (show=false, error=true)
|
||||||
toggleActiveCode(false, true);
|
toggleActiveCode(false, true);
|
||||||
}
|
}
|
||||||
@@ -1561,7 +1571,7 @@ rebateCode.addEventListener("keydown", e=>{
|
|||||||
// ZŁOŻENIE ZAMÓWIENIA
|
// ZŁOŻENIE ZAMÓWIENIA
|
||||||
|
|
||||||
// Zwaliduj wszystkie dostępne inputy zawierające dane klienta i dane adresowe
|
// Zwaliduj wszystkie dostępne inputy zawierające dane klienta i dane adresowe
|
||||||
function validateAllInputs(){
|
async function validateAllInputs(){
|
||||||
// Zmienna trzymająca informację czy wystąpił jakiś błąd
|
// Zmienna trzymająca informację czy wystąpił jakiś błąd
|
||||||
let allGood = true;
|
let allGood = true;
|
||||||
|
|
||||||
@@ -1572,12 +1582,12 @@ function validateAllInputs(){
|
|||||||
}
|
}
|
||||||
if(!document.querySelector(".--logged")){
|
if(!document.querySelector(".--logged")){
|
||||||
// Sprawdzenie emaila i telefonu
|
// Sprawdzenie emaila i telefonu
|
||||||
allGood = validateRequest(document.getElementById("client_email"), true) && allGood;
|
allGood = await validateRequest(document.getElementById("client_email"), true) && allGood;
|
||||||
allGood = validatePhone(document.getElementById("client_phone")) && allGood;
|
allGood = validatePhone(document.getElementById("client_phone")) && allGood;
|
||||||
// Sprawdzenie nazwy firmy i nipu
|
// Sprawdzenie nazwy firmy i nipu
|
||||||
if(document.getElementById("client_type1").checked){
|
if(document.getElementById("client_type1").checked){
|
||||||
allGood = validateNotEmpty(document.getElementById("client_firm")) && allGood;
|
allGood = validateNotEmpty(document.getElementById("client_firm")) && allGood;
|
||||||
allGood = validateRequest(document.getElementById("client_nip"), true) && allGood;
|
allGood = await validateRequest(document.getElementById("client_nip"), true) && allGood;
|
||||||
}
|
}
|
||||||
// Sprawdzenie reszty pól
|
// Sprawdzenie reszty pól
|
||||||
allGood = validateFormInputs("client") && allGood;
|
allGood = validateFormInputs("client") && allGood;
|
||||||
@@ -1589,13 +1599,13 @@ function validateAllInputs(){
|
|||||||
}
|
}
|
||||||
return allGood
|
return allGood
|
||||||
}
|
}
|
||||||
function validateFormInputs(query){
|
async function validateFormInputs(query){
|
||||||
let isFormGood = true;
|
let isFormGood = true;
|
||||||
|
|
||||||
isFormGood = validateNotEmpty(document.getElementById(`${query}_firstname`)) && isFormGood;
|
isFormGood = validateNotEmpty(document.getElementById(`${query}_firstname`)) && isFormGood;
|
||||||
isFormGood = validateNotEmpty(document.getElementById(`${query}_lastname`)) && isFormGood;
|
isFormGood = validateNotEmpty(document.getElementById(`${query}_lastname`)) && isFormGood;
|
||||||
isFormGood = validateStreet(document.getElementById(`${query}_street`)) && isFormGood;
|
isFormGood = validateStreet(document.getElementById(`${query}_street`)) && isFormGood;
|
||||||
isFormGood = validateRequest(document.getElementById(`${query}_zipcode`),true) && isFormGood;
|
isFormGood = await validateRequest(document.getElementById(`${query}_zipcode`),true) && isFormGood;
|
||||||
isFormGood = validateNotEmpty(document.getElementById(`${query}_city`)) && isFormGood;
|
isFormGood = validateNotEmpty(document.getElementById(`${query}_city`)) && isFormGood;
|
||||||
|
|
||||||
return isFormGood;
|
return isFormGood;
|
||||||
@@ -1887,6 +1897,7 @@ async function addClient(succes, error){
|
|||||||
const saveToSms = document.getElementById("client_sms");
|
const saveToSms = document.getElementById("client_sms");
|
||||||
let saveToSmsData = false;
|
let saveToSmsData = false;
|
||||||
if(saveToSms && saveToSms.checked) saveToSmsData = true;
|
if(saveToSms && saveToSms.checked) saveToSmsData = true;
|
||||||
|
|
||||||
const registerClientData = await fetchData({
|
const registerClientData = await fetchData({
|
||||||
data: REGISTER_CLIENT(`RegisterClientInput: {
|
data: REGISTER_CLIENT(`RegisterClientInput: {
|
||||||
clientData: {
|
clientData: {
|
||||||
|
|||||||
48
style.css
48
style.css
@@ -305,7 +305,7 @@
|
|||||||
line-height: 43px;
|
line-height: 43px;
|
||||||
}
|
}
|
||||||
.has-error .form-control-feedback, .has-success .form-control-feedback {
|
.has-error .form-control-feedback, .has-success .form-control-feedback {
|
||||||
line-height: 38px;
|
line-height: 34px;
|
||||||
}
|
}
|
||||||
select{
|
select{
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -837,39 +837,38 @@
|
|||||||
fill: @less_iaicolorscheme_background_active_color!important;
|
fill: @less_iaicolorscheme_background_active_color!important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.rebate, .rebate .rebate__code .rebate__code-container:has(.help-block.validate_message.text-danger){
|
.rebate{
|
||||||
margin-bottom: 2rem;
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
.rebate{
|
.rebate{
|
||||||
padding-bottom: 0.9rem;
|
padding-bottom: 0.9rem;
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
.rebate__options, .rebate__code .rebate__code-container{
|
.rebate__options, .rebate__code{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.rebate__code{
|
.rebate__code{
|
||||||
display: none;
|
display: none;
|
||||||
.rebate__code-container{
|
.rebate__code-container{
|
||||||
gap: 2rem;
|
display: grid;
|
||||||
|
grid-template-columns: 5fr 3fr;
|
||||||
padding: 2rem 1rem 0 1rem;
|
padding: 2rem 1rem 0 1rem;
|
||||||
|
> div{
|
||||||
position: relative;
|
position: relative;
|
||||||
|
margin-right: 2rem;
|
||||||
|
}
|
||||||
.help-block.validate_message.text-danger{
|
.help-block.validate_message.text-danger{
|
||||||
position: absolute;
|
grid-column: 1 / span2;
|
||||||
bottom: 0;
|
margin-top: 1rem;
|
||||||
transform: translateY(150%);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.form-control-feedback{
|
|
||||||
line-height: 75px!important;
|
|
||||||
right: 47%!important;
|
|
||||||
}
|
|
||||||
#rebate_code{
|
#rebate_code{
|
||||||
margin: 0!important;
|
margin: 0!important;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.rebate__code-realize{
|
.rebate__code-realize{
|
||||||
padding: 1rem 14%;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.rebate__active .rebate__active-options{
|
.rebate__active .rebate__active-options{
|
||||||
@@ -926,9 +925,6 @@
|
|||||||
.zipcode_wrapper{
|
.zipcode_wrapper{
|
||||||
padding-right: 0!important;
|
padding-right: 0!important;
|
||||||
}
|
}
|
||||||
#cop_seection3 .rebate .rebate__code .form-control-feedback{
|
|
||||||
right: 34vw!important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@media(max-width: 757px){
|
@media(max-width: 757px){
|
||||||
.form-control-feedback{
|
.form-control-feedback{
|
||||||
@@ -1114,22 +1110,22 @@
|
|||||||
font-size: 2rem!important;
|
font-size: 2rem!important;
|
||||||
}
|
}
|
||||||
.rebate .rebate__code-container{
|
.rebate .rebate__code-container{
|
||||||
flex-direction: column;
|
gap: 1.2rem;
|
||||||
gap: 1.2rem!important;
|
grid-template-columns: 1fr!important;
|
||||||
align-items: flex-start!important;
|
> div{
|
||||||
|
margin-right: 0!important;
|
||||||
|
grid-column: 1 / span1;
|
||||||
|
}
|
||||||
.help-block.validate_message.text-danger{
|
.help-block.validate_message.text-danger{
|
||||||
position: static!important;
|
grid-column: 1 / span1!important;
|
||||||
transform: translateY(0%)!important;
|
grid-row: 2 / span1;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
|
margin-top: 0!important;
|
||||||
}
|
}
|
||||||
.form-control-feedback{
|
.rebate__code-realize{
|
||||||
line-height: 83px!important;
|
grid-column: 1 / span1;
|
||||||
right: 0%!important;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.rebate__code-container:has(.help-block.validate_message.text-danger){
|
|
||||||
margin-bottom: 0!important;
|
|
||||||
}
|
|
||||||
.rebate__code-realize{
|
.rebate__code-realize{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -838,9 +838,11 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
|
|
||||||
// Przygotowanie Płatności
|
// Przygotowanie Płatności
|
||||||
e.prepaids_method.forEach(function (method) {
|
e.prepaids_method.forEach(function (method) {
|
||||||
|
const checkedPayment = paymentValue === method.id;
|
||||||
|
|
||||||
const markup = `
|
const markup = `
|
||||||
<label class="osc_item" for="payitem_${method.id}">
|
<label class="osc_item" for="payitem_${method.id}">
|
||||||
<input id="payitem_${method.id}" value="${method.id}" type="radio" name="payform_id" ${paymentValue === method.id ? "checked" : ""} data-group="${method.group}">
|
<input id="payitem_${method.id}" value="${method.id}" type="radio" name="payform_id" ${checkedPayment ? "checked" : ""} data-group="${method.group}">
|
||||||
<div class="photo">
|
<div class="photo">
|
||||||
<img src="${method.icon}" alt="${method.name}">
|
<img src="${method.icon}" alt="${method.name}">
|
||||||
</div>
|
</div>
|
||||||
@@ -914,7 +916,7 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
// Wstawienie pickuppoint jeśli edycja i istnieje
|
// Wstawienie pickuppoint jeśli edycja i istnieje
|
||||||
if(data?.pickupData !== undefined && data?.pickupData !== null){
|
if(data?.pickupData !== undefined && data?.pickupData !== null){
|
||||||
const selectedShipping = document.querySelector(`#cop_seection2 input#${deliveryId}`);
|
const selectedShipping = document.querySelector(`#cop_seection2 input#${deliveryId}`);
|
||||||
const pointExists = checkPrevPickupPoint(
|
checkPrevPickupPoint(
|
||||||
selectedShipping.parentElement.querySelector(".fselectedPoint"),
|
selectedShipping.parentElement.querySelector(".fselectedPoint"),
|
||||||
data.pickupData.id,
|
data.pickupData.id,
|
||||||
data.pickupData.name,
|
data.pickupData.name,
|
||||||
@@ -922,11 +924,10 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
data.pickupData.address.city,
|
data.pickupData.address.city,
|
||||||
data.pickupData.address.postcode,
|
data.pickupData.address.postcode,
|
||||||
data.deliveryMethodId
|
data.deliveryMethodId
|
||||||
);
|
).then(pointExists=>{
|
||||||
|
|
||||||
// Odznaczenie punktu jeśli punkt odbioru nie istnieje(Wcześniej był zaznaczony przy edycji)
|
// Odznaczenie punktu jeśli punkt odbioru nie istnieje(Wcześniej był zaznaczony przy edycji)
|
||||||
if(!pointExists) selectedShipping.checked = 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)
|
}// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony)
|
||||||
else if(localStorage.getItem("prevPaymentMethod") && localStorage.getItem("prevDeliveryMethod") && firstLoad){
|
else if(localStorage.getItem("prevPaymentMethod") && localStorage.getItem("prevDeliveryMethod") && firstLoad){
|
||||||
const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod"));
|
const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod"));
|
||||||
@@ -946,7 +947,7 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
if(prevDeliveryInput){
|
if(prevDeliveryInput){
|
||||||
// sprawdzenie czy dostawa miała punkt odbioru
|
// sprawdzenie czy dostawa miała punkt odbioru
|
||||||
if(prevDeliveryMethod.fselectedPoint){
|
if(prevDeliveryMethod.fselectedPoint){
|
||||||
const pointExists = checkPrevPickupPoint(
|
checkPrevPickupPoint(
|
||||||
prevDeliveryInput.parentElement.querySelector(".fselectedPoint"),
|
prevDeliveryInput.parentElement.querySelector(".fselectedPoint"),
|
||||||
prevDeliveryMethod.fselectedPoint.deliveryPointId,
|
prevDeliveryMethod.fselectedPoint.deliveryPointId,
|
||||||
prevDeliveryMethod.fselectedPoint.name,
|
prevDeliveryMethod.fselectedPoint.name,
|
||||||
@@ -954,13 +955,21 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
|||||||
prevDeliveryMethod.fselectedPoint.city,
|
prevDeliveryMethod.fselectedPoint.city,
|
||||||
prevDeliveryMethod.fselectedPoint.zipcode,
|
prevDeliveryMethod.fselectedPoint.zipcode,
|
||||||
prevDeliveryMethod.fselectedPoint.courierId
|
prevDeliveryMethod.fselectedPoint.courierId
|
||||||
);
|
).then(pointExists=>{
|
||||||
if(pointExists) prevDeliveryInput.checked = true;
|
if(pointExists) prevDeliveryInput.checked = true;
|
||||||
|
});
|
||||||
}else{
|
}else{
|
||||||
prevDeliveryInput.checked = true;
|
prevDeliveryInput.checked = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Zaznaczenie karty/banku w przypadku edycji
|
||||||
|
const checkedPayment = document.querySelector(`#osc_prepaids_method input[name="payform_id"]:checked`)
|
||||||
|
if(checkedPayment && (checkedPayment.dataset.group === "card" || checkedPayment.dataset.group === "transfer")){
|
||||||
|
cloneElement(checkedPayment);
|
||||||
|
}
|
||||||
// Przeładowanie mapy
|
// Przeładowanie mapy
|
||||||
loadMap();
|
loadMap();
|
||||||
// Przeliczenie kosztu dostawy
|
// Przeliczenie kosztu dostawy
|
||||||
@@ -1039,6 +1048,7 @@ const SEARCH_PICKUP_POINTS_QUERY = (searchPickupPointsInput) => JSON.stringify({
|
|||||||
}`,
|
}`,
|
||||||
})
|
})
|
||||||
async function checkPrevPickupPoint(selectedPoint, deliveryPointId, name, street, city, zipcode, courierId){
|
async function checkPrevPickupPoint(selectedPoint, deliveryPointId, name, street, city, zipcode, courierId){
|
||||||
|
if(!name || !city || !zipcode) return false;
|
||||||
// Pobranie punktów z tym samym id co poprzedni
|
// Pobranie punktów z tym samym id co poprzedni
|
||||||
app_shop.fn.ajaxLoadSite(1)
|
app_shop.fn.ajaxLoadSite(1)
|
||||||
const resultData = await fetchData({
|
const resultData = await fetchData({
|
||||||
@@ -1481,7 +1491,7 @@ async function updateCode(){
|
|||||||
// Pokazanie błędu
|
// Pokazanie błędu
|
||||||
const { message } = rebateStatus?.data?.activateRebateCode?.error;
|
const { message } = rebateStatus?.data?.activateRebateCode?.error;
|
||||||
addError(rebateCode);
|
addError(rebateCode);
|
||||||
rebateCode.insertAdjacentHTML("afterend",`<span class="help-block validate_message text-danger">${message}.</span>`);
|
addErrorMessage(rebateCode, message);
|
||||||
// Schowaj kod (show=false, error=true)
|
// Schowaj kod (show=false, error=true)
|
||||||
toggleActiveCode(false, true);
|
toggleActiveCode(false, true);
|
||||||
}
|
}
|
||||||
@@ -1558,7 +1568,7 @@ rebateCode.addEventListener("keydown", e=>{
|
|||||||
// ZŁOŻENIE ZAMÓWIENIA
|
// ZŁOŻENIE ZAMÓWIENIA
|
||||||
|
|
||||||
// Zwaliduj wszystkie dostępne inputy zawierające dane klienta i dane adresowe
|
// Zwaliduj wszystkie dostępne inputy zawierające dane klienta i dane adresowe
|
||||||
function validateAllInputs(){
|
async function validateAllInputs(){
|
||||||
// Zmienna trzymająca informację czy wystąpił jakiś błąd
|
// Zmienna trzymająca informację czy wystąpił jakiś błąd
|
||||||
let allGood = true;
|
let allGood = true;
|
||||||
|
|
||||||
@@ -1569,12 +1579,12 @@ function validateAllInputs(){
|
|||||||
}
|
}
|
||||||
if(!document.querySelector(".--logged")){
|
if(!document.querySelector(".--logged")){
|
||||||
// Sprawdzenie emaila i telefonu
|
// Sprawdzenie emaila i telefonu
|
||||||
allGood = validateRequest(document.getElementById("client_email"), true) && allGood;
|
allGood = await validateRequest(document.getElementById("client_email"), true) && allGood;
|
||||||
allGood = validatePhone(document.getElementById("client_phone")) && allGood;
|
allGood = validatePhone(document.getElementById("client_phone")) && allGood;
|
||||||
// Sprawdzenie nazwy firmy i nipu
|
// Sprawdzenie nazwy firmy i nipu
|
||||||
if(document.getElementById("client_type1").checked){
|
if(document.getElementById("client_type1").checked){
|
||||||
allGood = validateNotEmpty(document.getElementById("client_firm")) && allGood;
|
allGood = validateNotEmpty(document.getElementById("client_firm")) && allGood;
|
||||||
allGood = validateRequest(document.getElementById("client_nip"), true) && allGood;
|
allGood = await validateRequest(document.getElementById("client_nip"), true) && allGood;
|
||||||
}
|
}
|
||||||
// Sprawdzenie reszty pól
|
// Sprawdzenie reszty pól
|
||||||
allGood = validateFormInputs("client") && allGood;
|
allGood = validateFormInputs("client") && allGood;
|
||||||
@@ -1586,13 +1596,13 @@ function validateAllInputs(){
|
|||||||
}
|
}
|
||||||
return allGood
|
return allGood
|
||||||
}
|
}
|
||||||
function validateFormInputs(query){
|
async function validateFormInputs(query){
|
||||||
let isFormGood = true;
|
let isFormGood = true;
|
||||||
|
|
||||||
isFormGood = validateNotEmpty(document.getElementById(`${query}_firstname`)) && isFormGood;
|
isFormGood = validateNotEmpty(document.getElementById(`${query}_firstname`)) && isFormGood;
|
||||||
isFormGood = validateNotEmpty(document.getElementById(`${query}_lastname`)) && isFormGood;
|
isFormGood = validateNotEmpty(document.getElementById(`${query}_lastname`)) && isFormGood;
|
||||||
isFormGood = validateStreet(document.getElementById(`${query}_street`)) && isFormGood;
|
isFormGood = validateStreet(document.getElementById(`${query}_street`)) && isFormGood;
|
||||||
isFormGood = validateRequest(document.getElementById(`${query}_zipcode`),true) && isFormGood;
|
isFormGood = await validateRequest(document.getElementById(`${query}_zipcode`),true) && isFormGood;
|
||||||
isFormGood = validateNotEmpty(document.getElementById(`${query}_city`)) && isFormGood;
|
isFormGood = validateNotEmpty(document.getElementById(`${query}_city`)) && isFormGood;
|
||||||
|
|
||||||
return isFormGood;
|
return isFormGood;
|
||||||
|
|||||||
Reference in New Issue
Block a user