Improve client proofing workflow and link editing

This commit is contained in:
2026-10-04 18:32:37 +03:00
parent 2e6f027b71
commit 183910c62f

View File

@@ -108,23 +108,25 @@ function CreateForm({ onCreated }: { onCreated: () => void }) {
maxLength={120}
required
/>
<div className="admin-field">
<label htmlFor="proof-alias">Client URL alias (optional)</label>
<input
id="proof-alias"
value={alias}
onChange={(e) =>
setAlias(
e.target.value
.replace(/\s+/g, '-')
.replace(/[^A-Za-z0-9-]/g, ''),
)
}
placeholder="Client"
maxLength={64}
/>
</div>
</div>
<div className="admin-field">
<label htmlFor="proof-alias">Client URL alias</label>
<input
id="proof-alias"
value={alias}
onChange={(e) =>
setAlias(
e.target.value
.replace(/\s+/g, '-')
.replace(/[^A-Za-z0-9-]/g, ''),
)
}
placeholder="Client (Optional)"
maxLength={64}
/>
</div>
<div className="admin-field">
<label htmlFor="proof-album">Album</label>
<select
@@ -134,7 +136,10 @@ function CreateForm({ onCreated }: { onCreated: () => void }) {
required
disabled={!albums}
>
<option value="">{albums ? 'Choose an Immich album…' : 'Loading albums…'}</option>
<option value="">
{albums ? 'Choose an Immich album…' : 'Loading albums…'}
</option>
{albums?.map((album) => (
<option key={album.id} value={album.id}>
{album.albumName} ({album.assetCount})
@@ -142,6 +147,7 @@ function CreateForm({ onCreated }: { onCreated: () => void }) {
))}
</select>
</div>
<div className="admin-field">
<label htmlFor="proof-expires">Valid until (optional)</label>
<input
@@ -151,20 +157,21 @@ function CreateForm({ onCreated }: { onCreated: () => void }) {
onChange={(e) => setExpiresOn(e.target.value)}
/>
</div>
<div className="admin-field">
<label htmlFor="proof-download">Downloads</label>
<select
id="proof-download"
value={downloadsAllowed ? 'allowed' : 'none'}
onChange={(e) =>
setDownloadsAllowed(e.target.value === 'allowed')
}
>
<option value="none">No downloads</option>
<option value="allowed">Downloads allowed</option>
</select>
</div>
<div className="admin-field">
<label htmlFor="proof-download">Downloads</label>
<select
id="proof-download"
value={downloadsAllowed ? 'allowed' : 'none'}
onChange={(e) =>
setDownloadsAllowed(e.target.value === 'allowed')
}
>
<option value="none">Downloads disabled</option>
<option value="allowed">Downloads allowed</option>
</select>
</div>
{downloadsAllowed && (
<div className="admin-field">
<label htmlFor="proof-limit">Download limit (optional)</label>