{ if (!isOpen && saving) return; open = isOpen; }}> Create backup {#if selectedItem} {#if selectedItem.type === 'container'}{:else}{/if} {selectedItem.name} on {selectedItem.envName} {#if selectedDest} → {selectedDest.name} {/if} {/if}
{#if step === 1}
{ selectedEnvId = Number(v); selectedItem = null; fetchContainers(Number(v)); }}> {@const env = environments.find(e => e.id === selectedEnvId)} {#if env} {env.name} {:else}Select environment{/if} {#each environments as env} {env.name} {/each} {#if selectedEnvId}
{/if}
{/if}
{#if step === 1}
{#if loadingContainers}
{:else if selectedEnvId && filteredContainers.length > 0}
{#each filteredContainers as item} {/each}
{:else if selectedEnvId}

No containers or stacks found

{:else}

Select an environment to see available sources

{/if}
{:else if step === 2}

Ensures data consistency (will restart after)

{#if selectedItem} {/if}
{:else if step === 3}
{#if allVolumes} All volumes {:else} {selectedVolumes.length} volume{selectedVolumes.length !== 1 ? 's' : ''} {/if} {#if stopBeforeBackup} · stop during backup {/if}
{ saveSchedule = !saveSchedule; }} /> Save as recurring schedule
{#if saveSchedule}
{:else}

Runs once now. The backup stays on the list so you can re-run or remove it later — it just won't run on a schedule.

{/if}
{#if saveSchedule} {/if}
{/if}