Force7 / index.html
zetarmany's picture
Create index.html
5b21dbf verified
Raw
History Blame Contribute Delete
4.85 kB
{% extends "base.html" %}
{% block title %}Home - Galeri Angkatan{% endblock %}
{% block content %}
<div class="row">
<div class="col-12">
<h1 class="text-center mb-4">Galeri Foto Angkatan</h1>
</div>
</div>
<!-- Trending Section -->
{% if trending %}
<div class="row mb-5">
<div class="col-12">
<h2 class="mb-3">
<i class="bi bi-fire text-danger"></i> Trending Photos
</h2>
</div>
{% for photo in trending %}
<div class="col-md-4 mb-4">
<div class="card trending-card h-100">
<div class="position-relative">
<img src="{{ url_for('static', filename='uploads/' + photo.filename) }}"
class="card-img-top" alt="{{ photo.caption }}">
<div class="trending-badge">
<i class="bi bi-fire"></i> #{{ loop.index }}
</div>
</div>
<div class="card-body">
<p class="card-text">{{ photo.caption or 'Foto angkatan' }}</p>
<div class="d-flex justify-content-between align-items-center">
<small class="text-muted">
<i class="bi bi-heart-fill text-danger"></i> {{ photo.likes_count }} likes
</small>
<small class="text-muted">
<i class="bi bi-calendar"></i> {{ photo.upload_date.strftime('%d/%m/%Y') }}
</small>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
{% endif %}
<!-- All Photos Section -->
<div class="row">
<div class="col-12">
<h2 class="mb-3">Semua Foto</h2>
</div>
<div id="photos-container" class="row">
{% for photo in photos.items %}
<div class="col-md-4 col-sm-6 mb-4 photo-item" data-photo-id="{{ photo.id }}">
<div class="card photo-card h-100">
<img src="{{ url_for('static', filename='uploads/' + photo.filename) }}"
class="card-img-top" alt="{{ photo.caption }}">
<div class="card-body">
<p class="card-text">{{ photo.caption or 'Foto angkatan' }}</p>
<div class="d-flex justify-content-between align-items-center mb-2">
<small class="text-muted">
<i class="bi bi-person-circle"></i> {{ photo.uploader.username }}
</small>
<small class="text-muted">
<i class="bi bi-calendar"></i> {{ photo.upload_date.strftime('%d/%m/%Y') }}
</small>
</div>
<div class="d-flex justify-content-between align-items-center">
<button class="btn btn-outline-danger btn-sm like-btn" data-photo-id="{{ photo.id }}">
<i class="bi bi-heart{% if current_user.is_authenticated and photo.likes|selectattr('user_id', 'equalto', current_user.id)|list %}-fill{% endif %}"></i>
<span class="likes-count">{{ photo.likes_count }}</span>
</button>
<a href="{{ url_for('download_photo', photo_id=photo.id) }}" class="btn btn-outline-primary btn-sm">
<i class="bi bi-download"></i> Download
</a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
<!-- Pagination -->
{% if photos.pages > 1 %}
<div class="col-12">
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
{% if photos.has_prev %}
<li class="page-item">
<a class="page-link" href="{{ url_for('index', page=photos.prev_num) }}">Previous</a>
</li>
{% endif %}
{% for page_num in photos.iter_pages(left_edge=1, right_edge=1, left_current=2, right_current=2) %}
{% if page_num %}
<li class="page-item {% if page_num == photos.page %}active{% endif %}">
<a class="page-link" href="{{ url_for('index', page=page_num) }}">{{ page_num }}</a>
</li>
{% else %}
<li class="page-item disabled"><span class="page-link">...</span></li>
{% endif %}
{% endfor %}
{% if photos.has_next %}
<li class="page-item">
<a class="page-link" href="{{ url_for('index', page=photos.next_num) }}">Next</a>
</li>
{% endif %}
</ul>
</nav>
</div>
{% endif %}
</div>
{% endblock %}