- Set z-index to 999999/999998/999997 for dialogs
- Added !important to all positioning properties
- Forced width/height to 100vw/100vh
- Added pointer-events: auto to ensure clickability
- Restricted Leaflet z-index to prevent interference
- Popups were showing but rendered behind map layers
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added explicit z-index layers (map: 1, dialogs: 10000+)
- Force visibility, opacity, and overflow on dialogs
- Added reflow trigger to ensure proper rendering
- Added console logging for debugging
- Ensure body has overflow: visible
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added 100ms delay to ensure DOM is ready before showing icon selector
- Popups already have proper z-index (3000+) above controls (1000)
- Icon selector should now appear immediately on page load if no icon saved
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added console logging for debugging
- Increased timeout to 100ms to ensure DOM is ready
- Added preventDefault and stopPropagation
- Included inline onclick as fallback method
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Admin panel HTML is created after JavaScript runs
- Used setTimeout to defer event binding until DOM is ready- Close button now properly attaches and functions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed selector to use correct ID 'adminCloseBtn'
- Close button now properly dismisses overlay and returns to edit mode
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Issues fixed:
- Removed broken range slider that was causing black boxes
- Simplified HTML structure with proper containers
- Fixed input visibility on both mobile and desktop
- Added proper flex containers for inputs and units
- Removed complex wrapper divs that were breaking layout
- Ensured all inputs are visible and properly sized
- Fixed checkbox alignment issues
- Made inputs actually usable on all screen sizes
The admin panel should now work properly on both mobile and desktop.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvements:
1. Mobile-friendly redesign with vertical stacking
2. Touch-optimized inputs (44px minimum targets)
3. Better event handling with input events
4. Debounced saving to prevent excessive saves
5. Visual save indicator (toast notification)
6. Collapsible sections for better organization
7. Range sliders with value display
8. Responsive design (mobile-first approach)
Fixes:
- Settings now save immediately on input
- Visual feedback when settings are saved
- Proper mobile layout with full-width inputs
- Larger touch targets for better usability
- Sections can be collapsed and state persists
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Features added:
1. Custom icon colors - Choose any color for geocache icons
2. Secret caches - Set visibility distance (only visible within X meters)
3. Edit existing caches - Change title, icon, color, visibility after creation
4. Geocache list sidebar - View all caches in edit mode, click to navigate
5. Visual indicators for secret caches (purple badge, transparency in edit mode)
Implementation:
- Added color picker with preview in geocache dialog
- Added visibility distance field (0 = always visible)
- Edit button for existing caches in edit mode
- Dynamic visibility updates based on user location in nav mode
- Geocache list sidebar with stats and quick navigation
- All properties sync via WebSocket to other users
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
The title and icon fields were not showing when creating new geocaches.
Added the missing logic to show these fields for new caches.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Added title field for naming geocaches when created
- Added icon selection with MDI icon support
- Users can browse Material Design Icons and choose custom icons
- Updated notifications to show geocache title instead of 'undefined'
- Messages now say 'Someone left a note at [geocache title]'
- Fixed nearby cache notifications to include title
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed notification not triggering when adding message from another device
- Now notifies ALL devices (including your own) when near a cache with new message
- Added null checks for messages array to prevent errors
- Notifications work for messages from same user on different devices
This fixes the issue where adding a message from desktop wouldn't
notify your phone even when nearby.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added "Send Test Notification to All Users" button in admin panel
- Button appears after enabling push notifications
- Server endpoint /test-notification sends to all subscribed users
- Shows count of successful deliveries
- Purple button to distinguish from other actions
- Useful for testing notification system is working
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented three types of notifications with cooldowns:
1. Nearby Cache Notification
- Triggers when within 200m of a geocache
- 10-minute cooldown per cache
- Resets when you move >200m away
2. Cache Message Notification
- Triggers when another user adds a message to a nearby cache
- Only notifies if you're within 200m of the cache
3. Destination Arrival Notification
- Triggers when within 10m of navigation destination
- 1-minute cooldown to prevent spam
Features:
- Server endpoint /send-notification for triggering push notifications
- Cooldown tracking to prevent notification spam
- Distance-based triggers for relevant notifications
- Automatic cleanup of expired subscriptions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed from new Notification() to registration.showNotification()
- Mobile browsers require ServiceWorkerRegistration API for notifications
- Added vibrate pattern and badge icon for better mobile experience
This fixes the "Illegal constructor" error when enabling push notifications
on Chrome for Android and other mobile browsers.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed showStatus() to updateStatus() in 3 places
- Added proper status types ('success', 'info') for notifications
- Fixes ReferenceError when enabling/disabling push notifications
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Double-tap now requires both taps to be within 30 pixels of each other
- Prevents accidental navigation from taps with different fingers
- If second tap is too far away, it starts a new double-tap sequence
This ensures double-tap only works when intentionally tapping the same spot twice.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed quick-tap navigation (was interfering with map panning)
- Keep long-press (500ms hold) as primary navigation method
- Added double-tap as fallback for browsers with touch issues
- Double-click also works on desktop in navigation mode
- No single taps trigger navigation, allowing normal map interaction
This ensures map panning works normally while providing two clear
methods to set navigation destinations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed touch event handlers from L.DomEvent to native addEventListener
- Added passive: false to allow preventDefault on touch events
- Implemented fallback quick-tap navigation for Chrome/PWA compatibility
- Added capture: true for better touch event handling
- Quick taps (<300ms) now trigger navigation dialog immediately
This fixes the issue where tap-to-navigate only worked on Firefox mobile
but not Chrome or installed PWA. Now supports both long-press and quick-tap.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major features added:
- Progressive Web App (PWA) manifest and service worker for offline support
- Push notifications with VAPID authentication
- Mobile-optimized UI with touch navigation fix
- Admin panel with configurable settings
- Geocache sound alerts
- App icons in all required sizes
Technical improvements:
- Fixed mobile touch handling for navigation selection
- Added remesh tool for track point standardization
- Improved pathfinding algorithm for more efficient routes
- WebSocket-based real-time multi-user tracking
- Docker deployment with persistent data volumes
Ready for APK generation via PWA2APK.com or Bubblewrap
Full offline support with map tile caching
Push notifications for geocache alerts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed icon switching between read/unread states
- Fixed CSS conflict between transform transition and pulse animation
- Changed proximity detection to directly toggle DOM classes instead of recreating icons
- Now uses classList.add/remove on marker._icon instead of setIcon() to prevent rendering issues
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>