Restore campaign terminology across UI and docs

This commit is contained in:
2026-09-19 22:41:33 -04:00
parent 05024c7675
commit 68b21a83ce
19 changed files with 56 additions and 56 deletions
+8 -8
View File
@@ -93,7 +93,7 @@
async function loadCampaigns(): Promise<void> {
try {
const res = await fetch('/api/campaigns');
if (!res.ok) throw new Error('Could not refresh rollouts.');
if (!res.ok) throw new Error('Could not refresh campaigns.');
deployments = (await res.json()).deployments; loadError = '';
} catch (error) { loadError = (error as Error).message; }
finally { loading = false; }
@@ -225,12 +225,12 @@
);
</script>
<svelte:head><title>Rollouts | Electric Cherry</title></svelte:head>
<svelte:head><title>Campaigns | Electric Cherry</title></svelte:head>
<div class="page">
<SectionHeader
title="Rollouts"
subtitle="Track file rollouts, reconcile drift, and review rollbacks."
title="Campaigns"
subtitle="Track file campaigns, reconcile drift, and review rollbacks."
/>
{#if loadError}<div class="ui-error" role="alert">{loadError}<Button size="sm" onclick={loadCampaigns}>Retry</Button></div>{/if}
@@ -325,7 +325,7 @@
{#if result}<div class="result" class:result-error={skipped.length > 0} role={skipped.length ? 'alert' : 'status'}>
<strong>{result.totalServers} server{result.totalServers === 1 ? '' : 's'} updated{skipped.length ? `, ${skipped.length} with skipped files` : ''}</strong>
<p>{result.totalRemoved} files removed; {result.totalRestored} installed. {result.totalServers ? 'Affected servers restart when empty, then health is verified.' : skipped.length ? 'No changes could be applied. Review the reasons below.' : 'The reviewed servers already match the intended files.'}</p>
{#if result.deploymentId}<a href="/campaigns/{result.deploymentId}">View rollout →</a>{/if}
{#if result.deploymentId}<a href="/campaigns/{result.deploymentId}">View campaign →</a>{/if}
{#each skipped as server}<div><a href="/servers/{encodeURIComponent(server.server)}?tab=diagnostics"><ServerIdentity name={server.server} /></a><ul>{#each server.skipped as reason}<li>{reason}</li>{/each}</ul></div>{/each}
{#if skipped.length}<Button onclick={() => reviewDrift(false, skipped.map(server => server.server))}>Review unresolved servers</Button>{/if}
</div>{/if}
@@ -359,7 +359,7 @@
</div>
{#if history.length === 0}
<EmptyState
title="No completed rollouts in the retention window"
title="No completed campaigns in the retention window"
description="Retention is 7 days by default."
/>
{:else}
@@ -375,7 +375,7 @@
{/each}
{/if}
</section>
<ListFooter total={history.length} bind:limit onchange={saveContext} label="rollouts" />
<ListFooter total={history.length} bind:limit onchange={saveContext} label="campaigns" />
{/if}
</div>
@@ -396,7 +396,7 @@
{#if flash && flashId === d.id}<div class="result" class:result-error={flashError} role={flashError ? 'alert' : 'status'}>{flash}</div>{/if}
<div class="row-head">
<div class="row-head-l">
<a class="action" href="/campaigns/{d.id}">{d.action} rollout <span class="sr-only">{d.id}</span></a>
<a class="action" href="/campaigns/{d.id}">{d.action} campaign <span class="sr-only">{d.id}</span></a>
{#if d.action === 'promote' || d.action === 'rollback'}
<span class="target">{scriptSummary(d)}</span>
{/if}