Upload files to "frontend/templates/partials"

This commit is contained in:
Thierry 2026-03-26 11:30:05 +01:00
parent d504a39d40
commit d009e0da62
5 changed files with 114 additions and 0 deletions

View file

@ -0,0 +1,42 @@
<Layout title="Admin — Nuages de points" active_tab="admin">
<Card title="🗂️ Nuages de points">
<div class="flex justify-between items-center mb-4">
<Button
label="🔄 Actualiser"
variant="ghost"
hx_get="/admin/list"
hx_target="#main-content"
/>
</div>
{% if error %}
<Alert message="{{ error }}" type="error" />
{% elif not pointclouds %}
<p class="text-base-content/40 text-sm text-center py-8">
Aucun nuage disponible sur le serveur.
</p>
{% else %}
<p class="text-xs text-base-content/40 mb-3">{{ pointclouds|length }} nuage(s)</p>
<div class="overflow-x-auto">
<table class="table table-sm">
<thead>
<tr>
<th>ID</th>
<th>Format</th>
<th>Taille</th>
<th>Créé le</th>
<th>Actions</th>
</tr>
</thead>
<tbody id="cloud-table-body">
{% for pc in pointclouds %}
<CloudRow :pc="pc" />
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
</Card>
<div id="debug-panel"></div>
</Layout>

View file

@ -0,0 +1,18 @@
<div id="debug-panel">
<Card class_extra="mt-4">
<div class="flex items-center justify-between mb-3">
<h3 class="font-semibold text-sm">Debug : <code>{{ pc_id }}</code></h3>
<Button
label="✕ Fermer"
variant="ghost"
hx_get="/admin/list"
hx_target="#main-content"
/>
</div>
{% if error %}
<Alert message="{{ error }}" type="error" />
{% else %}
<pre class="bg-base-200 rounded p-3 text-xs overflow-auto max-h-80">{{ data | tojson(indent=2) }}</pre>
{% endif %}
</Card>
</div>

View file

@ -0,0 +1,14 @@
{% if ok %}
<div class="flex items-center gap-2">
{% if entwine_available %}
<Badge label="backend ✓" variant="success" />
<Badge label="entwine ✓" variant="success" />
{% else %}
<Badge label="backend ✓" variant="success" />
<Badge label="entwine absent" variant="warning" />
{% endif %}
<span class="text-xs text-base-content/40">{{ disk_free_gb }} GB libres</span>
</div>
{% else %}
<Badge label="backend inaccessible" variant="error" />
{% endif %}

View file

@ -0,0 +1,26 @@
{% if error %}
<Alert message="{{ error }}" type="error" />
{% else %}
<Card>
<div class="flex items-center gap-2 mb-3">
<Badge label="✓ Conversion EPT terminée" variant="success" />
</div>
<div class="text-sm space-y-1 mb-4">
<div><span class="text-base-content/50">ID</span><code class="ml-2">{{ result.id }}</code></div>
<div><span class="text-base-content/50">Fichier</span><span class="ml-2">{{ result.filename }}</span></div>
<div><span class="text-base-content/50">Taille</span><span class="ml-2">{{ result.size_mb }} MB</span></div>
<div><span class="text-base-content/50">Conversion</span><span class="ml-2">{{ result.conversion_time_seconds }}s</span></div>
</div>
<div class="flex gap-2">
<Button
label="👁️ Visualiser"
variant="primary"
hx_get="/viewer/{{ result.id }}"
hx_target="#viewer-container"
/>
<a href="/viewer/{{ result.id }}" target="_blank" class="btn btn-ghost btn-sm">
↗ Nouvel onglet
</a>
</div>
</Card>
{% endif %}

View file

@ -0,0 +1,14 @@
<div class="w-full flex flex-col gap-2">
<div class="flex items-center justify-between px-1">
<span class="text-sm text-base-content/50">
Nuage actif : <code>{{ pc_id }}</code>
</span>
<a href="{{ embed_url }}" target="_blank" class="btn btn-ghost btn-xs">↗ Plein écran</a>
</div>
<iframe
src="{{ embed_url }}"
class="w-full rounded-lg border border-base-300"
style="height: 680px;"
allowfullscreen
></iframe>
</div>