diff --git a/web/src/lib/modals/AlbumOptionsModal.svelte b/web/src/lib/modals/AlbumOptionsModal.svelte index cc832453fc..93c95bbeaf 100644 --- a/web/src/lib/modals/AlbumOptionsModal.svelte +++ b/web/src/lib/modals/AlbumOptionsModal.svelte @@ -24,10 +24,11 @@ type Props = { album: AlbumResponseDto; + readOnly?: boolean; onClose: () => void; }; - let { album, onClose }: Props = $props(); + let { album, readOnly = false, onClose }: Props = $props(); const handleRoleSelect = async (user: UserResponseDto, role: AlbumUserRole | 'none') => { if (role === 'none') { @@ -72,14 +73,14 @@ onAlbumUpdate={(newAlbum) => (album = newAlbum)} /> - +
{$t('settings')}
{#if album.order} - +
-
- - {$t('shared_links')} - - + {#if !readOnly} +
+ + {$t('shared_links')} + + -
- - {#each sharedLinks as sharedLink (sharedLink.id)} - - {/each} - +
+ + {#each sharedLinks as sharedLink (sharedLink.id)} + + {/each} + +
-
+ {/if} diff --git a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 4112cd4f27..6258df34aa 100644 --- a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -37,7 +37,6 @@ import { TimelineManager } from '$lib/managers/timeline-manager/timeline-manager.svelte'; import type { TimelineAsset } from '$lib/managers/timeline-manager/types'; import AlbumOptionsModal from '$lib/modals/AlbumOptionsModal.svelte'; - import SharedLinkCreateModal from '$lib/modals/SharedLinkCreateModal.svelte'; import { Route } from '$lib/route'; import { getAlbumActions, @@ -66,6 +65,7 @@ mdiArrowLeft, mdiCogOutline, mdiDeleteOutline, + mdiDotsHorizontal, mdiDotsVertical, mdiDownload, mdiImageOutline, @@ -373,38 +373,41 @@ {#if album.albumUsers.length > 1 || (album.hasSharedLink && isOwned)}
- - {#if album.hasSharedLink && isOwned} - modalManager.show(SharedLinkCreateModal, { albumId: album.id })} - /> - {/if} - - - {#each album.albumUsers.filter(({ role }) => role === AlbumUserRole.Editor || role === AlbumUserRole.Owner) as { user } (user.id)} - - {/each} + {/each} - - {#if albumHasViewers} - modalManager.show(AlbumOptionsModal, { album })} - /> + + {#if albumHasViewers} + + {/if} + + {#if album.hasSharedLink && isOwned} + + {/if} + + + {#if isOwned} + {/if} - -
{/if}