Wrenn - Templates { if (e.key === 'Escape') { if (openDropdownName) { openDropdownName = null; return; } if (deleting || launching) return; deleteTarget = null; launchTarget = null; } }} onclick={(e) => { if (openDropdownName && !(e.target as Element)?.closest('.split-btn-container')) { openDropdownName = null; } }} />

Templates

Saved capsule states and base images. Launch a new capsule from any template.

{#if pageTab === 'snapshots'}
{#if error}
{error}
{/if} {#if loading}
Loading snapshots...
{:else}
{#each ([['all', 'All'], ['snapshot', 'Snapshots'], ['base', 'Images']] as const) as [val, label]} {/each}
{filteredSnapshots.length} {filteredSnapshots.length === 1 ? 'snapshot' : 'snapshots'}
{#if filteredSnapshots.length === 0}

{emptyHeading(typeFilter)}

{emptyDescription(typeFilter)}

{#if typeFilter === 'all' || typeFilter === 'snapshot'} Go to Capsules {/if}
{:else}
Name
Type
vCPUs
Memory
Size
Created
Actions
{#each filteredSnapshots as snapshot, i (snapshot.name)}
{snapshot.name}
{#if snapshot.type === 'snapshot'} Snapshot {:else} Image {/if}
{#if snapshot.type === 'snapshot' && snapshot.vcpus != null} {snapshot.vcpus} {:else} {/if}
{#if snapshot.type === 'snapshot' && snapshot.memory_mb != null} {snapshot.memory_mb} MB {:else} {/if}
{formatBytes(snapshot.size_bytes)}
{timeAgo(snapshot.created_at)}
{/each}

{filteredSnapshots.length} {filteredSnapshots.length === 1 ? 'snapshot' : 'snapshots'} {typeFilter !== 'all' ? `· filtered` : '· total'}

{/if} {/if}
{/if}
All systems operational
{#if openDropdownName} {@const dropdownSnapshot = snapshots.find((s) => s.name === openDropdownName)} {#if dropdownSnapshot}
{/if} {/if} {#if deleteTarget}
{ if (!deleting) deleteTarget = null; }} onkeydown={(e) => { if (e.key === 'Escape' && !deleting) deleteTarget = null; }} >

Delete Snapshot

Delete {deleteTarget.name}? This action cannot be undone.

{#if deleteTarget.type === 'snapshot'}

This live capture includes saved memory state. Any capsule relying on it will be unable to resume.

{/if} {#if deleteError}
{deleteError}
{/if}
{/if} {#if launchTarget}
{ if (!launching) launchTarget = null; }} onkeydown={(e) => { if (e.key === 'Escape' && !launching) launchTarget = null; }} >

Launch Capsule

Start a new capsule from this template.

{#if launchError}
{launchError}
{/if}
{#if launchTarget.type === 'snapshot'} {:else} {/if} {launchTarget.name} {launchTarget.type === 'snapshot' ? 'Snapshot' : 'Image'}
{#if launchTarget.type === 'snapshot'}
{launchTarget.vcpus ?? 1}
{:else} {/if}
{#if launchTarget.type === 'snapshot'}
{launchTarget.memory_mb ?? 512}
{:else} {/if}
{/if}