60 lines
3.1 KiB
HTML
60 lines
3.1 KiB
HTML
{% macro room_card(room, current_user) %}
|
|
<div class="col">
|
|
<div class="card h-100 shadow-sm hover-shadow">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-start mb-3">
|
|
<div>
|
|
<h5 class="card-title mb-0">{{ room.name }}</h5>
|
|
<div class="text-muted small mt-1">Created on {{ room.created_at.strftime('%b %d, %Y') }}</div>
|
|
</div>
|
|
<span class="badge bg-light text-dark">
|
|
<i class="fas fa-users"></i> {{ room.member_permissions|length }}
|
|
</span>
|
|
</div>
|
|
<p class="card-text text-muted">{{ room.description or 'No description' }}</p>
|
|
<div class="d-flex align-items-center mt-3">
|
|
<img src="{{ url_for('profile_pic', filename=room.creator.profile_picture) if room.creator.profile_picture else url_for('static', filename='default-avatar.png') }}"
|
|
alt="Creator"
|
|
class="rounded-circle me-2"
|
|
style="width: 32px; height: 32px; object-fit: cover;">
|
|
<div>
|
|
<small class="text-muted">Created by</small>
|
|
<div class="fw-medium">{{ room.creator.username }} {{ room.creator.last_name }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer bg-transparent border-top-0">
|
|
<div class="d-flex gap-2">
|
|
<a href="{{ url_for('rooms.room', room_id=room.id) }}" class="btn btn-primary flex-grow-1">
|
|
<i class="fas fa-door-open me-2"></i>Open Room
|
|
</a>
|
|
{% if current_user.is_admin %}
|
|
<div class="dropdown">
|
|
<button class="btn btn-secondary dropdown-toggle" type="button" id="roomActions{{ room.id }}" data-bs-toggle="dropdown" aria-expanded="false">
|
|
<i class="fas fa-ellipsis-v"></i>
|
|
</button>
|
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="roomActions{{ room.id }}">
|
|
<li>
|
|
<a class="dropdown-item" href="{{ url_for('rooms.edit_room', room_id=room.id) }}">
|
|
<i class="fas fa-edit me-2"></i>Edit Room
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="dropdown-item" href="{{ url_for('rooms.room_members', room_id=room.id) }}">
|
|
<i class="fas fa-users me-2"></i>Manage Members
|
|
</a>
|
|
</li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li>
|
|
<button type="button" class="dropdown-item text-danger" data-bs-toggle="modal" data-bs-target="#deleteRoomModal{{ room.id }}">
|
|
<i class="fas fa-trash me-2"></i>Delete Room
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endmacro %} |