Freigabe-Anpassung und Soft-Trash
release-tag / release-image (push) Successful in 1m34s

This commit is contained in:
2026-07-29 11:08:03 +02:00
parent a33ff09c41
commit dc369dab65
14 changed files with 1233 additions and 122 deletions
+35
View File
@@ -25,6 +25,10 @@
<aside class="sidebar">
<section class="filters">
<div class="scope-switch" role="group" aria-label="Datenbereich">
<button id="scopeProduction" type="button" class="scope-btn active" data-scope="production">Produktiv</button>
<button id="scopeStaging" type="button" class="scope-btn" data-scope="staging">Staging <span id="stagingCountBadge">0</span></button>
</div>
<label class="search-wrap">
<span></span>
<input id="searchInput" type="search" placeholder="Code, Titel, Text, Keyword …" autocomplete="off">
@@ -77,9 +81,12 @@
<div class="editor-head">
<div class="breadcrumb">
<span id="filePath"></span>
<span id="stagingBadge" class="badge staging hidden">AI-STAGING · UNGEPRÜFT</span>
<span id="dirtyBadge" class="badge warn hidden">Ungespeichert</span>
</div>
<div class="editor-actions">
<button id="deleteStagingBtn" class="btn danger hidden">Löschen</button>
<button id="promoteStagingBtn" class="btn primary hidden">✓ Freigeben → Produktiv</button>
<button id="formatJsonBtn" class="btn ghost hidden">JSON formatieren</button>
<button id="saveBtn" class="btn success">Speichern <span class="shortcut">Ctrl S</span></button>
</div>
@@ -245,6 +252,34 @@
</form>
</dialog>
<dialog id="stagingBulkDialog" class="modal staging-modal">
<form method="dialog" class="modal-card">
<header class="modal-head">
<div>
<h2>Staging-Aktionen</h2>
<p id="stagingBulkTargetText"></p>
</div>
<button value="cancel" class="icon-btn" aria-label="Schließen">×</button>
</header>
<div class="modal-body">
<div class="staging-info-card">
<strong>Review-Workflow</strong>
<p>Freigeben kopiert den aktuellen JSON-Inhalt unverändert in die produktive Wissensbasis und archiviert den geprüften Originalentwurf anschließend unter <code>staging/.approved</code>. <code>auto_reply</code> bleibt genau wie im Entwurf gesetzt.</p>
</div>
<div id="stagingBulkResult" class="preview-box hidden"></div>
</div>
<footer class="modal-foot">
<span class="muted-text">Löschen verschiebt Entwürfe sicher nach <code>staging/.trash</code>.</span>
<div>
<button value="cancel" class="btn ghost">Abbrechen</button>
<button id="bulkDeleteStagingBtn" type="button" class="btn danger">Auswahl löschen</button>
<button id="bulkPromoteStagingBtn" type="button" class="btn primary">Auswahl freigeben</button>
</div>
</footer>
</form>
</dialog>
<div id="toastHost" class="toast-host" aria-live="polite"></div>
<script src="/app.js" defer></script>
</body>