feat: Add interactive map functionality with Leaflet.js

- Implemented interactive map card with expand functionality
- Added Leaflet.js integration with OpenStreetMap tiles
- Created expandable map modal (80% screen coverage)
- Fixed cover image display on community page
- Enhanced post detail page with interactive route visualization
- Added proper error handling and fallback content
- Cleaned up JavaScript structure and removed duplicate code
- Updated community index template to use cover images
- Added GPX file processing utilities
- Fixed indentation error in run.py

Map features:
- Country-level positioning (Romania default)
- Zoom controls and interactive navigation
- Test marker with popup functionality
- Expandable full-screen view with X button
- Clean console logging for debugging
- Responsive design with Tailwind CSS styling
This commit is contained in:
ske087
2025-07-24 21:36:42 +03:00
parent 58e5d1b83d
commit 187254beca
16 changed files with 13626 additions and 119 deletions

View File

@@ -126,9 +126,16 @@
<div class="grid gap-6 md:grid-cols-2 lg:grid-cols-3">
{% for post in posts.items %}
<article class="bg-white/10 backdrop-blur-sm rounded-xl overflow-hidden shadow-xl hover:shadow-2xl transition-all duration-300 border border-white/20 hover:border-white/40 transform hover:-translate-y-1">
{% if post.images %}
{% set cover_image = post.images.filter_by(is_cover=True).first() %}
{% if cover_image %}
<div class="aspect-w-16 aspect-h-9 bg-gray-900">
<img src="{{ url_for('static', filename='uploads/images/' + post.images[0].filename) }}"
<img src="{{ cover_image.get_url() }}"
alt="{{ post.title }}"
class="w-full h-48 object-cover">
</div>
{% elif post.images %}
<div class="aspect-w-16 aspect-h-9 bg-gray-900">
<img src="{{ post.images[0].get_url() }}"
alt="{{ post.title }}"
class="w-full h-48 object-cover">
</div>