124 lines
5.3 KiB
HTML
124 lines
5.3 KiB
HTML
{% extends "layout.html" %}
|
|
|
|
{% block content %}
|
|
<h2 class="mb-4"><i class="bi bi-shield-lock"></i> Admin Panel</h2>
|
|
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0"><i class="bi bi-file-earmark-text"></i> Document Statistics</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<ul class="list-group list-group-flush">
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Total Documents
|
|
<span class="badge bg-primary rounded-pill">{{ doc_stats.total_documents }}</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Total Storage Used
|
|
<span class="badge bg-info rounded-pill">{{ (doc_stats.total_size / (1024*1024))|round(2) }} MB</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Active Contributors
|
|
<span class="badge bg-success rounded-pill">{{ doc_stats.total_contributors }}</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-success text-white">
|
|
<h5 class="mb-0"><i class="bi bi-activity"></i> Activity Statistics</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<ul class="list-group list-group-flush">
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Total Actions
|
|
<span class="badge bg-primary rounded-pill">{{ activity_stats.total_actions }}</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Active Users
|
|
<span class="badge bg-info rounded-pill">{{ activity_stats.active_users }}</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Accessed Documents
|
|
<span class="badge bg-success rounded-pill">{{ activity_stats.accessed_documents }}</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-warning text-dark">
|
|
<h5 class="mb-0"><i class="bi bi-gear"></i> System Actions</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="d-grid gap-2">
|
|
<button class="btn btn-outline-primary">
|
|
<i class="bi bi-arrow-repeat"></i> Rebuild Search Index
|
|
</button>
|
|
<button class="btn btn-outline-warning">
|
|
<i class="bi bi-trash"></i> Clear Expired Shares
|
|
</button>
|
|
<button class="btn btn-outline-danger">
|
|
<i class="bi bi-exclamation-triangle"></i> System Maintenance
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header bg-info text-white">
|
|
<h5 class="mb-0"><i class="bi bi-people"></i> User Management</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Username</th>
|
|
<th>Email</th>
|
|
<th>Role</th>
|
|
<th>Created</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for user in users %}
|
|
<tr>
|
|
<td>{{ user.id }}</td>
|
|
<td>{{ user.username }}</td>
|
|
<td>{{ user.email }}</td>
|
|
<td>
|
|
<span class="badge bg-{{ 'danger' if user.role == 'admin' else 'primary' }}">
|
|
{{ user.role }}
|
|
</span>
|
|
</td>
|
|
<td>{{ user.created_at.split(' ')[0] }}</td>
|
|
<td>
|
|
<div class="btn-group btn-group-sm">
|
|
<button class="btn btn-outline-primary">
|
|
<i class="bi bi-pencil"></i> Edit
|
|
</button>
|
|
<button class="btn btn-outline-danger" {% if user.role == 'admin' %}disabled{% endif %}>
|
|
<i class="bi bi-trash"></i> Delete
|
|
</button>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|