feat(projects): demote "Projekt archivieren" into Edit modal danger zone (t-paliad-236)

Archive is a rare, deliberate action — it doesn't deserve real estate next
to navigation / common actions on the project view. Move it from the
prominent entity-detail-footer button into the bottom of the Edit Project
modal as a tertiary btn-link-danger inside a visually separated
.modal-danger-zone (top-bordered section, right-aligned).

The visibility wiring (project-delete-wrap, admin-gated in renderHeader)
and click handler (project-delete-btn → delete-modal confirm flow) keep
the same DOM ids, so the existing confirm-modal and POST behaviour are
unchanged. Backend (/api/projects/{id} status=archived) untouched.
This commit is contained in:
mAi
2026-05-22 15:51:34 +02:00
parent 34372ca4c8
commit 83b00d13fe
2 changed files with 18 additions and 6 deletions

View File

@@ -659,12 +659,6 @@ export function renderProjectsDetail(): string {
Schriftsätze werden direkt aus dem Projekt heraus als .docx generiert. Anpassen, drucken, einreichen.
</p>
</section>
<div className="entity-detail-footer" id="project-delete-wrap" style="display:none">
<button id="project-delete-btn" className="btn-secondary" type="button" data-i18n="projects.detail.delete">
Projekt archivieren
</button>
</div>
</div>
{/* Full edit modal — same form as /projects/new, pre-filled. */}
@@ -696,6 +690,12 @@ export function renderProjectsDetail(): string {
<button type="submit" className="btn-primary btn-cta-lime" data-i18n="projects.detail.save">Speichern</button>
</div>
</form>
{/* Danger zone — destructive action, visually separated from Save/Cancel. */}
<div className="modal-danger-zone" id="project-delete-wrap" style="display:none">
<button id="project-delete-btn" className="btn-link-danger" type="button" data-i18n="projects.detail.delete">
Projekt archivieren
</button>
</div>
</div>
</div>

View File

@@ -11020,6 +11020,18 @@ dialog.quick-add-sheet::backdrop {
margin-top: 0.5rem;
}
/* --- Modal danger zone (t-paliad-236) -------------------------------
Destructive action separated from the form's Save / Cancel row so a
rare action (Projekt archivieren) doesn't sit next to the primary CTA.
Top border + muted padding mark it as a distinct, lower-priority area. */
.modal-danger-zone {
margin-top: 1.5rem;
padding-top: 1rem;
border-top: 1px solid var(--color-border);
display: flex;
justify-content: flex-end;
}
/* --- Standardised tab toolbar action buttons (t-paliad-049) ----------
The .party-controls toolbar above each project sub-tab table
used a mix of <a class="btn-cta-lime btn-small"> and <button>; pin them