diff --git a/map/app/controllers/authController.js b/map/app/controllers/authController.js index 0ce52ce..b2cfb17 100644 --- a/map/app/controllers/authController.js +++ b/map/app/controllers/authController.js @@ -72,7 +72,7 @@ class AuthController { req.session.userId = user.id || user.Id; req.session.userEmail = user.email || user.Email; // Make sure this is set req.session.userName = user.name || user.Name; - req.session.isAdmin = user.admin || false; + req.session.isAdmin = user.admin || user.Admin || false; logger.info('User logged in:', { email: req.session.userEmail, diff --git a/map/app/public/index.html b/map/app/public/index.html index 199e19d..5bf6364 100644 --- a/map/app/public/index.html +++ b/map/app/public/index.html @@ -44,7 +44,7 @@
- + diff --git a/map/app/public/js/auth.js b/map/app/public/js/auth.js index fa67724..5241dde 100644 --- a/map/app/public/js/auth.js +++ b/map/app/public/js/auth.js @@ -36,6 +36,16 @@ export function updateUserInterface() { if (mobileUserEmailElement) { mobileUserEmailElement.textContent = currentUser.email; } + + // Control visibility of homepage link for admins + const homepageLink = document.getElementById('homepage-link'); + if (homepageLink) { + if (currentUser.isAdmin) { + homepageLink.style.display = 'inline-flex'; + } else { + homepageLink.style.display = 'none'; + } + } // Add admin link if user is admin if (currentUser.isAdmin) { @@ -77,5 +87,42 @@ function addAdminLinks() { mobileDropdownContent.appendChild(adminItem); } } + + // Add homepage link for mobile dropdown if it doesn't exist + if (!mobileDropdownContent.querySelector('.homepage-link-mobile')) { + const homepageItem = document.createElement('div'); + homepageItem.className = 'mobile-dropdown-item homepage-link-mobile'; + + const homepageLink = document.createElement('a'); + homepageLink.href = '#'; // Or the correct link for homepage + homepageLink.id = 'mobile-homepage-link'; + homepageLink.style.color = 'inherit'; + homepageLink.style.textDecoration = 'none'; + homepageLink.textContent = '🖥️ Homepage'; + + homepageItem.appendChild(homepageLink); + + // Insert after the admin link + const adminLink = mobileDropdownContent.querySelector('.admin-link-mobile'); + if (adminLink && adminLink.nextSibling) { + mobileDropdownContent.insertBefore(homepageItem, adminLink.nextSibling); + } else if (adminLink) { + mobileDropdownContent.appendChild(homepageItem); + } else if (mobileDropdownContent.firstChild) { + mobileDropdownContent.insertBefore(homepageItem, mobileDropdownContent.firstChild); + } else { + mobileDropdownContent.appendChild(homepageItem); + } + + // Add event listener for mobile homepage link + const mobileHomepageLink = document.getElementById('mobile-homepage-link'); + const desktopHomepageLink = document.getElementById('homepage-link'); + if (mobileHomepageLink && desktopHomepageLink) { + mobileHomepageLink.addEventListener('click', (e) => { + e.preventDefault(); + desktopHomepageLink.click(); + }); + } + } } } diff --git a/mkdocs/docs/services/map.md b/mkdocs/docs/services/map.md index 1ae7050..db7321b 100644 --- a/mkdocs/docs/services/map.md +++ b/mkdocs/docs/services/map.md @@ -1,5 +1,7 @@ # Map +![alt text](map.png) + Interactive map service for geospatial data visualization, powered by NocoDB and Leaflet.js. ## Overview diff --git a/mkdocs/docs/services/map.png b/mkdocs/docs/services/map.png new file mode 100644 index 0000000..c6a0fdb Binary files /dev/null and b/mkdocs/docs/services/map.png differ