Wycofanie pytania o lokalizacjąna apple.

This commit is contained in:
2026-05-27 17:00:19 +02:00
parent ef8f1472fa
commit 67854b20a4
2 changed files with 82 additions and 6 deletions

View File

@@ -822,6 +822,7 @@ async function loadMenu() {
const response = await fetch('menu.json');
if (!response.ok) throw new Error('Nie udało się załadować menu');
const menuData = await response.json();
window.menuDataRaw = menuData;
const container = document.getElementById('menuContainer');
if (!container) return;
@@ -839,7 +840,7 @@ async function loadMenu() {
category.items.forEach(item => {
html += `
<div class="rmc-position" data-position="${item.position}" data-category-id="${item.categoryId}">
<div class="rmc-position" data-position="${item.position}" data-category-id="${item.categoryId}" onclick="openItemModal('${item.categoryId}', '${item.position}')" style="cursor: pointer;">
<img class="rmc-image" src="${item.image}" alt="" loading="lazy">
<div class="rmc-title">
<h4>${item.title}<span>${item.description}</span></h4>
@@ -865,6 +866,41 @@ async function loadMenu() {
// Inicjalizacja ładowania menu
loadMenu();
window.openItemModal = function(categoryId, position) {
if (!window.menuDataRaw) return;
let foundItem = null;
for (const cat of window.menuDataRaw) {
for (const item of cat.items) {
if (item.categoryId == categoryId && item.position == position) {
foundItem = item;
break;
}
}
if (foundItem) break;
}
if (foundItem) {
document.getElementById('itemModalImage').src = foundItem.image;
document.getElementById('itemModalTitle').textContent = foundItem.title;
document.getElementById('itemModalDesc').textContent = foundItem.description;
document.getElementById('itemModalPrice').textContent = foundItem.price;
const modal = document.getElementById('itemModal');
if (modal) {
modal.classList.add('active');
document.body.style.overflow = 'hidden';
}
}
};
window.closeItemModal = function() {
const modal = document.getElementById('itemModal');
if (modal) {
modal.classList.remove('active');
document.body.style.overflow = '';
}
};
window.editCompanyData = function () {
const n = document.getElementById("cmpName");
const s = document.getElementById("cmpStreet");
@@ -944,6 +980,15 @@ function startApp() {
}
window.initGeolocation = function () {
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
if (isIOS) {
// Tymczasowo pomijamy weryfikację GPS tylko na urządzeniach Apple
// (wymagają bezwzględnie poprawnego certyfikatu HTTPS, inaczej blokują bez pytania)
console.warn("Bypassing geolocation on iOS.");
startApp();
return;
}
const geoScreen = document.getElementById("geoScreen");
const loadingScreen = document.getElementById("loadingScreen");
const geoMsg = document.getElementById("geoMsg");
@@ -986,11 +1031,26 @@ window.initGeolocation = function () {
},
(error) => {
if (error.code === error.PERMISSION_DENIED) {
geoMsg.innerHTML = `<b style="color: #ff6b6b;">Nie mamy Twojej zgody na lokalizację.</b><br><br>
Przeglądarka zapamiętała Twoją odmowę i nie możemy ponownie wyświetlić okienka z zapytaniem. Aby odblokować dostęp:<br><br>
1. Kliknij ikonkę <b>kłódki / ustawień</b> 🔒 🎚️ obok adresu strony na samej górze przeglądarki.<br>
2. Znajdź <b>Uprawnienia</b> (Lokalizacja) i zmień z "Zablokuj" na "Zezwalaj".<br>
3. Odśwież stronę.`;
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
let instructions = '';
if (isIOS) {
instructions = `<b>Instrukcja dla iPhone (Safari):</b><br>
1. Kliknij ikonę <b>"aA"</b> po lewej stronie paska adresu.<br>
2. Wybierz <b>"Ustawienia witryny"</b> (Website Settings).<br>
3. Zmień opcję <b>"Położenie"</b> (Location) na "Zapytaj" lub "Pozwalaj".<br>
4. Odśwież stronę.<br><br>
<i>Uwaga: Na urządzeniach Apple lokalizacja działa WYŁĄCZNIE, gdy adres strony zaczyna się od bezpiecznego <b>https://</b>. Jeżeli jesteś na http://, system zablokuje to automatycznie.</i>`;
} else {
instructions = `<b>Instrukcja dla Android / Chrome:</b><br>
1. Kliknij ikonkę <b>kłódki / ustawień</b> 🔒 obok adresu strony na górze przeglądarki.<br>
2. Znajdź <b>Uprawnienia</b> (Lokalizacja) i zmień z "Zablokuj" na "Zezwalaj".<br>
3. Odśwież stronę.`;
}
geoMsg.innerHTML = `<b style="color: #ff6b6b;">Przeglądarka zablokowała dostęp do lokalizacji.</b><br><br>
Bez tego nie możemy zweryfikować, czy jesteś w restauracji.<br><br>
${instructions}`;
} else {
geoMsg.innerHTML = "Nie udało się pobrać lokalizacji. Sprawdź zasięg lub włącz GPS i spróbuj ponownie.";
}