feat: Fusion bloc 1 — barre d'apps commune (ACC-1.1, #17) et références croisées external_ref (ACC-1.3, #18)
FlowDeck CI / lint (push) Failing after 2m33s
FlowDeck CI / test (push) Failing after 30m3s
FlowDeck CI / docker (push) Skipped

This commit is contained in:
Spark
2026-10-20 23:17:18 -04:00
parent 12beab01c9
commit d8548eede9
16 changed files with 845 additions and 4 deletions
+26
View File
@@ -755,6 +755,32 @@
</button>
</div>
<!-- ═══ Liens — références croisées (Fusion ACC-1.3) ═══
Liste rendue côté serveur ; ajout/retrait par
static/js/draco-refs.js (API /api/pages/<id>/refs). -->
<section class="draco-liens" data-refs data-owner-type="flowdeck.page" data-owner-id="{{ page.id }}">
<h3 class="draco-liens-title">Liens</h3>
<ul class="draco-liens-list">
{% for r in page_refs %}
<li class="draco-liens-item">
<span class="draco-ref-dot" style="background:{{ r.app_color }}"></span>
<a href="{{ r.target_url }}" target="_blank" rel="noopener">{{ r.label }}</a>
{% if page_data.can_edit %}
<button type="button" class="draco-liens-del" data-ref-del="{{ r.id }}" title="Retirer le lien">✕</button>
{% endif %}
</li>
{% endfor %}
</ul>
{% if page_data.can_edit %}
<form class="draco-liens-form" data-refs-form>
<input type="url" required placeholder="Coller une URL profonde (TikTak, ObsiGate, Gitea, Flowdeck)…">
<input type="text" placeholder="Libellé (optionnel)">
<button type="submit">Lier</button>
</form>
<p class="draco-liens-erreur" data-refs-erreur hidden></p>
{% endif %}
</section>
<div class="editor-statusbar">
<span x-show="saving">Saving...</span>
<span x-show="!saving&&dirty">Unsaved</span>