diff --git a/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts b/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts index 5e204e557..c7cc6b7eb 100644 --- a/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts @@ -96,7 +96,7 @@ export const broadcastCampaignsStore = { if (existing.status !== 'draft') { throw new Error('[broadcast] only drafts can be edited; duplicate to revise a sent campaign'); } - const wrapped = { ...patch } as Record; + const wrapped: Partial = { ...patch }; await encryptRecord('broadcastCampaigns', wrapped); await campaignTable.update(id, wrapped); }, @@ -113,7 +113,7 @@ export const broadcastCampaignsStore = { if (existing.status !== 'draft') { throw new Error('[broadcast] only drafts can be edited'); } - const patch = { content } as Record; + const patch: Partial = { content }; await encryptRecord('broadcastCampaigns', patch); await campaignTable.update(id, patch); }, @@ -124,7 +124,7 @@ export const broadcastCampaignsStore = { if (existing.status !== 'draft') { throw new Error('[broadcast] only drafts can be edited'); } - const patch = { audience } as Record; + const patch: Partial = { audience }; await encryptRecord('broadcastCampaigns', patch); await campaignTable.update(id, patch); }, diff --git a/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts b/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts index a5cdee164..14abe6bbe 100644 --- a/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts @@ -161,7 +161,7 @@ export const comicStoriesStore = { const patch = { panelImageIds: nextIds, panelMeta: nextMeta, - } as Record; + } as Partial; await encryptRecord('comicStories', patch); await comicStoriesTable.update(storyId, patch); emitDomainEvent('ComicPanelAppended', 'comic', 'comicStories', storyId, { diff --git a/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts b/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts index 84de1f7f3..bc80cc98c 100644 --- a/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts @@ -135,7 +135,7 @@ export const invoicesStore = { '[invoices] only drafts can be edited; void and duplicate to revise a sent invoice' ); } - const wrapped = { ...patch } as Record; + const wrapped: Partial = { ...patch }; await encryptRecord('invoices', wrapped); await invoiceTable.update(id, wrapped); }, @@ -152,7 +152,7 @@ export const invoicesStore = { throw new Error('[invoices] only drafts can be edited'); } const totals = computeInvoiceTotals(lines); - const patch = { lines, totals } as Record; + const patch: Partial = { lines, totals }; // `lines` is in the encryption allowlist; `totals` is not. encryptRecord // only touches allowlisted keys, so a single call is correct for both. await encryptRecord('invoices', patch); diff --git a/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts b/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts index e3fdd2642..6bd4459d7 100644 --- a/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts @@ -130,7 +130,7 @@ export const libraryEntriesStore = { > > ) { - const wrapped = { ...patch } as Record; + const wrapped: Partial = { ...patch }; await encryptRecord('libraryEntries', wrapped); await libraryEntryTable.update(id, wrapped); // Keep the share-link snapshot in sync if this entry is unlisted. diff --git a/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts b/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts index d52c816e4..3cf530764 100644 --- a/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts @@ -165,7 +165,7 @@ export const meImagesStore = { id: string, patch: Partial> ): Promise { - const wrapped = { ...patch } as Record; + const wrapped: Partial = { ...patch }; await encryptRecord('meImages', wrapped); await meImagesTable.update(id, wrapped); }, diff --git a/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts b/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts index 780f22269..d33ae68cd 100644 --- a/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts @@ -76,7 +76,7 @@ export const recipesStore = { > > ) { - const wrapped = { ...patch } as Record; + const wrapped: Partial = { ...patch }; await encryptRecord('recipes', wrapped); await recipeTable.update(id, wrapped); }, diff --git a/apps/mana/apps/web/src/lib/modules/uload/ListView.svelte b/apps/mana/apps/web/src/lib/modules/uload/ListView.svelte index 8edf7bc9e..bdcfd900d 100644 --- a/apps/mana/apps/web/src/lib/modules/uload/ListView.svelte +++ b/apps/mana/apps/web/src/lib/modules/uload/ListView.svelte @@ -3,6 +3,7 @@ Short links list with click counts and quick link creation. --> - l.id} emptyTitle="Keine Links"> + l.id} emptyTitle={$_('uload.list_view.empty_title')}> {#snippet header()} - {links.length} Links - {totalClicks} Klicks - {folders.length} Ordner + {$_('uload.list_view.header_links', { values: { count: links.length } })} + {$_('uload.list_view.header_clicks', { values: { count: totalClicks } })} + {$_('uload.list_view.header_folders', { values: { count: folders.length } })} {/snippet} {#snippet listHeader()} @@ -113,7 +114,12 @@ > - + @@ -124,7 +130,7 @@ {:else} {/if} {/snippet} diff --git a/apps/mana/apps/web/src/lib/modules/uload/views/DetailView.svelte b/apps/mana/apps/web/src/lib/modules/uload/views/DetailView.svelte index 962036328..373208dde 100644 --- a/apps/mana/apps/web/src/lib/modules/uload/views/DetailView.svelte +++ b/apps/mana/apps/web/src/lib/modules/uload/views/DetailView.svelte @@ -3,6 +3,7 @@ All fields are always editable. Changes auto-save on blur. -->