36 lines
1.3 KiB
Svelte
36 lines
1.3 KiB
Svelte
<script lang="ts">
|
|
import type { PageProps } from './$types';
|
|
let { data, form }: PageProps = $props();
|
|
</script>
|
|
|
|
<svelte:head><title>Archiv | Sendewerk</title></svelte:head>
|
|
|
|
<div class="page-wrap narrow-page">
|
|
<header class="page-heading">
|
|
<h1>Archiv</h1>
|
|
<p class="page-intro">Abgelegte Pieces; abgeschlossene Sendungen folgen in Etappe 6.</p>
|
|
</header>
|
|
{#if form?.error}<div class="form-message error" role="alert">{form.error}</div>{/if}
|
|
{#if form?.success}<div class="form-message success" role="status">{form.success}</div>{/if}
|
|
{#if data.pieces.length}<div class="archive-list">
|
|
{#each data.pieces as piece (piece.id)}<article>
|
|
<div>
|
|
<h2>{piece.title}</h2>
|
|
<p>{piece.summary || 'Keine Kurzbeschreibung.'}</p>
|
|
</div>
|
|
<form method="POST" action="?/restore">
|
|
<input type="hidden" name="pieceId" value={piece.id} /><input
|
|
type="hidden"
|
|
name="revision"
|
|
value={piece.revision}
|
|
/><button class="secondary-button" type="submit">Wiederherstellen</button>
|
|
</form>
|
|
</article>{/each}
|
|
</div>
|
|
{:else}<section class="quiet-panel planned-panel">
|
|
<div class="planned-icon" aria-hidden="true">□</div>
|
|
<h2>Keine Pieces archiviert</h2>
|
|
<p>Archivierte Inhalte lassen sich hier später wiederherstellen.</p>
|
|
</section>{/if}
|
|
</div>
|