feat: Implement is_deleted flag for items, add new utility scripts, and refine UI styles.
This commit is contained in:
@@ -3,18 +3,22 @@
|
||||
<div class="container">
|
||||
<h1>APPROVAL QUEUE</h1>
|
||||
<p>Items here are pending approval.</p>
|
||||
<table class="table" style="width: 100%">
|
||||
|
||||
@if(pending.length > 0)
|
||||
<h2>Pending Uploads</h2>
|
||||
<table class="table" style="width: 100%; margin-bottom: 30px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Preview</td>
|
||||
<td>ID</td>
|
||||
<td>Uploader</td>
|
||||
<td>Type</td>
|
||||
<td>Tags</td>
|
||||
<td>Action</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@each(posts as post)
|
||||
@each(pending as post)
|
||||
<tr>
|
||||
<td>
|
||||
<video controls loop muted preload="metadata" style="max-height: 200px; max-width: 300px;">
|
||||
@@ -24,6 +28,11 @@
|
||||
<td>{{ post.id }}</td>
|
||||
<td>{{ post.username }}</td>
|
||||
<td>{{ post.mime }}</td>
|
||||
<td>
|
||||
@each(post.tags as tag)
|
||||
<span class="badge badge-secondary" style="margin-right: 5px;">{{ tag }}</span>
|
||||
@endeach
|
||||
</td>
|
||||
<td>
|
||||
<a href="/admin/approve/?id={{ post.id }}" class="badge badge-success">Approve</a>
|
||||
<a href="/admin/deny/?id={{ post.id }}" class="badge badge-danger btn-deny-async">Deny /
|
||||
@@ -31,13 +40,60 @@
|
||||
</td>
|
||||
</tr>
|
||||
@endeach
|
||||
@if(posts.length === 0)
|
||||
<tr>
|
||||
<td colspan="5">No pending items.</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if(trash.length > 0)
|
||||
<h2 style="color: #ff6b6b; margin-top: 40px;">Reference / Soft Deleted</h2>
|
||||
<p class="text-muted">These items are in the deleted folder but not purged from DB. Approving them will restore
|
||||
them.</p>
|
||||
<table class="table" style="width: 100%; opacity: 0.8;">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Preview</td>
|
||||
<td>ID</td>
|
||||
<td>Uploader</td>
|
||||
<td>Type</td>
|
||||
<td>Tags</td>
|
||||
<td>Action</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@each(trash as post)
|
||||
<tr>
|
||||
<td>
|
||||
@if(post.thumbnail)
|
||||
<img src="data:image/webp;base64,{{ post.thumbnail }}" style="max-height: 150px; opacity: 0.6;">
|
||||
@else
|
||||
<span style="color:red;">[File Missing]</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ post.id }}</td>
|
||||
<td>{{ post.username }}</td>
|
||||
<td>{{ post.mime }}</td>
|
||||
<td>
|
||||
@each(post.tags as tag)
|
||||
<span class="badge badge-secondary" style="margin-right: 5px;">{{ tag }}</span>
|
||||
@endeach
|
||||
</td>
|
||||
<td>
|
||||
<a href="/admin/approve/?id={{ post.id }}" class="badge badge-warning">Restore</a>
|
||||
<a href="/admin/deny/?id={{ post.id }}" class="badge badge-danger btn-deny-async">Purge</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endeach
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if(pending.length === 0 && trash.length === 0)
|
||||
<div style="text-align: center; padding: 50px;">
|
||||
<h3>No pending items.</h3>
|
||||
<p>Go touch grass?</p>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<br>
|
||||
@if(typeof pages !== 'undefined' && pages > 1)
|
||||
<div class="pagination" style="display: flex; gap: 10px; align-items: center; justify-content: center;">
|
||||
@@ -54,7 +110,7 @@
|
||||
|
||||
<div style="text-align: center; margin-bottom: 20px;">
|
||||
<button id="btn-deny-all" class="badge badge-danger" onclick="window.handleDenyAll(event)"
|
||||
style="font-size: 1.2em; padding: 10px 20px; border: none; cursor: pointer;">Deny All</button>
|
||||
style="font-size: 1.2em; padding: 10px 20px; border: none; cursor: pointer;">Deny All Visible</button>
|
||||
</div>
|
||||
|
||||
<a href="/admin">Back to Admin</a>
|
||||
|
||||
Reference in New Issue
Block a user