fix geo-check on frontend

This commit is contained in:
2025-03-29 15:19:49 +01:00
parent 4f8718c18a
commit 039fda5797

View File

@@ -23,6 +23,11 @@ document.addEventListener('DOMContentLoaded', () => {
const geoErrorEl = document.getElementById('geo-error'); const geoErrorEl = document.getElementById('geo-error');
const asnErrorEl = document.getElementById('asn-error'); const asnErrorEl = document.getElementById('asn-error');
const rdnsErrorEl = document.getElementById('rdns-error'); const rdnsErrorEl = document.getElementById('rdns-error');
// Get references to the info containers themselves
const geoInfo = document.getElementById('geo-info');
const asnInfo = document.getElementById('asn-info');
const rdnsInfo = document.getElementById('rdns-info');
// --- DOM Elements (Lookup) --- // --- DOM Elements (Lookup) ---
const lookupIpInput = document.getElementById('lookup-ip-input'); const lookupIpInput = document.getElementById('lookup-ip-input');
@@ -97,8 +102,10 @@ document.addEventListener('DOMContentLoaded', () => {
if (errorElement) errorElement.textContent = ''; // Clear previous error if (errorElement) errorElement.textContent = ''; // Clear previous error
// Zeige das Elternelement des valueElements, falls es vorher versteckt war (für initiale Ladeanzeige) // Zeige das Elternelement des valueElements, falls es vorher versteckt war (für initiale Ladeanzeige)
if (valueElement?.parentElement?.classList.contains('hidden')) { // This should be the data container div (e.g., the div inside #geo-info)
valueElement.parentElement.classList.remove('hidden'); const dataContainer = valueElement?.closest('div:not(.loader)'); // Find closest parent div that isn't a loader
if (dataContainer?.classList.contains('hidden')) {
dataContainer.classList.remove('hidden');
} }
if (value && typeof value === 'object' && value.error) { if (value && typeof value === 'object' && value.error) {
@@ -125,8 +132,9 @@ document.addEventListener('DOMContentLoaded', () => {
if (errorElement) errorElement.textContent = ''; if (errorElement) errorElement.textContent = '';
// Zeige das Elternelement des listElements, falls es vorher versteckt war // Zeige das Elternelement des listElements, falls es vorher versteckt war
if (listElement?.parentElement?.classList.contains('hidden')) { const dataContainer = listElement?.closest('div:not(.loader)');
listElement.parentElement.classList.remove('hidden'); if (dataContainer?.classList.contains('hidden')) {
dataContainer.classList.remove('hidden');
} }
if (rdnsData && Array.isArray(rdnsData)) { if (rdnsData && Array.isArray(rdnsData)) {
@@ -206,12 +214,10 @@ document.addEventListener('DOMContentLoaded', () => {
async function fetchIpInfo() { async function fetchIpInfo() {
hideGlobalError(); hideGlobalError();
[ipLoader, geoLoader, asnLoader, rdnsLoader, mapLoader].forEach(l => l?.classList.remove('hidden')); [ipLoader, geoLoader, asnLoader, rdnsLoader, mapLoader].forEach(l => l?.classList.remove('hidden'));
// Hide data containers initially // Hide data elements initially (containers are hidden by default in HTML)
ipAddressEl.classList.add('hidden'); ipAddressEl.classList.add('hidden');
geoInfo.querySelector('div').classList.add('hidden');
asnInfo.querySelector('div').classList.add('hidden');
rdnsInfo.querySelector('div').classList.add('hidden');
mapEl.classList.add('hidden'); mapEl.classList.add('hidden');
// Ensure map message is hidden initially
mapMessageEl.classList.add('hidden'); mapMessageEl.classList.add('hidden');
@@ -244,6 +250,11 @@ document.addEventListener('DOMContentLoaded', () => {
console.error('Failed to fetch user IP info:', error); console.error('Failed to fetch user IP info:', error);
showGlobalError(`Could not load initial IP information. ${error.message}`); showGlobalError(`Could not load initial IP information. ${error.message}`);
[ipLoader, geoLoader, asnLoader, rdnsLoader, mapLoader].forEach(l => l?.classList.add('hidden')); [ipLoader, geoLoader, asnLoader, rdnsLoader, mapLoader].forEach(l => l?.classList.add('hidden'));
// Ensure data containers are visible to show potential errors inside them
[geoInfo, asnInfo, rdnsInfo].forEach(container => {
const dataDiv = container?.querySelector('div:not(.loader)'); // Select the data div, not the loader
if (dataDiv) dataDiv.classList.remove('hidden');
});
mapMessageEl.textContent = 'Map could not be loaded due to an error.'; mapMessageEl.textContent = 'Map could not be loaded due to an error.';
mapMessageEl.classList.remove('hidden'); mapMessageEl.classList.remove('hidden');
} }