Compare commits
1 commit
main
...
renovate/p
Author | SHA1 | Date | |
---|---|---|---|
|
a03c3c4bb5 |
5 changed files with 15 additions and 27 deletions
|
@ -1,4 +1,4 @@
|
||||||
FROM python:3.11-bookworm@sha256:ba7a7ac30c38e119c4304f98ef0e188f90f4f67a958bb6899da9defb99bfb471 as builder
|
FROM python:3.11-bookworm@sha256:ba55cafcd9bf4c8fad28b770ed9cacab324354666762c1af3017ea1f4f001457 as builder
|
||||||
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||||
PYTHONUNBUFFERED=1 \
|
PYTHONUNBUFFERED=1 \
|
||||||
|
|
|
@ -86,14 +86,11 @@ class _DateTimePicker extends HookWidget {
|
||||||
final timeZones = useMemoized(() => getAllTimeZones(), const []);
|
final timeZones = useMemoized(() => getAllTimeZones(), const []);
|
||||||
|
|
||||||
void pickDate() async {
|
void pickDate() async {
|
||||||
final now = DateTime.now();
|
|
||||||
// Handles cases where the date from the asset is far off in the future
|
|
||||||
final initialDate = date.value.isAfter(now) ? now : date.value;
|
|
||||||
final newDate = await showDatePicker(
|
final newDate = await showDatePicker(
|
||||||
context: context,
|
context: context,
|
||||||
initialDate: initialDate,
|
initialDate: date.value,
|
||||||
firstDate: DateTime(1800),
|
firstDate: DateTime(1800),
|
||||||
lastDate: now,
|
lastDate: DateTime.now(),
|
||||||
);
|
);
|
||||||
if (newDate == null) {
|
if (newDate == null) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -336,18 +336,14 @@ export class AssetService {
|
||||||
|
|
||||||
res.set('Cache-Control', 'private, max-age=86400, no-transform');
|
res.set('Cache-Control', 'private, max-age=86400, no-transform');
|
||||||
res.header('Content-Type', mimeTypes.lookup(filepath));
|
res.header('Content-Type', mimeTypes.lookup(filepath));
|
||||||
return new Promise((resolve, reject) => {
|
res.sendFile(filepath, options, (error: Error) => {
|
||||||
res.sendFile(filepath, options, (error: Error) => {
|
if (!error) {
|
||||||
if (!error) {
|
return;
|
||||||
resolve();
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (error.message !== 'Request aborted') {
|
if (error.message !== 'Request aborted') {
|
||||||
this.logger.error(`Unable to send file: ${error.name}`, error.stack);
|
this.logger.error(`Unable to send file: ${error.name}`, error.stack);
|
||||||
}
|
}
|
||||||
reject(error);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -205,13 +205,12 @@
|
||||||
<section class="px-4 py-4 text-sm">
|
<section class="px-4 py-4 text-sm">
|
||||||
<div class="flex h-10 w-full items-center justify-between">
|
<div class="flex h-10 w-full items-center justify-between">
|
||||||
<h2>PEOPLE</h2>
|
<h2>PEOPLE</h2>
|
||||||
<div class="flex gap-2 items-center">
|
<div class="flex gap-2">
|
||||||
{#if people.some((person) => person.isHidden)}
|
{#if people.some((person) => person.isHidden)}
|
||||||
<CircleIconButton
|
<CircleIconButton
|
||||||
title="Show hidden people"
|
title="Show hidden people"
|
||||||
icon={showingHiddenPeople ? mdiEyeOff : mdiEye}
|
icon={showingHiddenPeople ? mdiEyeOff : mdiEye}
|
||||||
padding="1"
|
padding="1"
|
||||||
buttonSize="32"
|
|
||||||
on:click={() => (showingHiddenPeople = !showingHiddenPeople)}
|
on:click={() => (showingHiddenPeople = !showingHiddenPeople)}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -220,7 +219,6 @@
|
||||||
icon={mdiPencil}
|
icon={mdiPencil}
|
||||||
padding="1"
|
padding="1"
|
||||||
size="20"
|
size="20"
|
||||||
buttonSize="32"
|
|
||||||
on:click={() => (showEditFaces = true)}
|
on:click={() => (showEditFaces = true)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -339,7 +337,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if isOwner}
|
{#if isOwner}
|
||||||
<button class="focus:outline-none p-1">
|
<button class="focus:outline-none">
|
||||||
<Icon path={mdiPencil} size="20" />
|
<Icon path={mdiPencil} size="20" />
|
||||||
</button>
|
</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -351,7 +349,7 @@
|
||||||
<Icon path={mdiCalendar} size="24" />
|
<Icon path={mdiCalendar} size="24" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="focus:outline-none p-1">
|
<button class="focus:outline-none">
|
||||||
<Icon path={mdiPencil} size="20" />
|
<Icon path={mdiPencil} size="20" />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -509,7 +507,7 @@
|
||||||
</div>
|
</div>
|
||||||
{:else if !asset.exifInfo?.city && !asset.isReadOnly && $user && asset.ownerId === $user.id}
|
{:else if !asset.exifInfo?.city && !asset.isReadOnly && $user && asset.ownerId === $user.id}
|
||||||
<div
|
<div
|
||||||
class="flex justify-between place-items-start gap-4 py-4 rounded-lg hover:dark:text-immich-dark-primary hover:text-immich-primary"
|
class="flex justify-between place-items-start gap-4 py-4 rounded-lg pr-2 hover:dark:text-immich-dark-primary hover:text-immich-primary"
|
||||||
on:click={() => (isShowChangeLocation = true)}
|
on:click={() => (isShowChangeLocation = true)}
|
||||||
on:keydown={(event) => event.key === 'Enter' && (isShowChangeLocation = true)}
|
on:keydown={(event) => event.key === 'Enter' && (isShowChangeLocation = true)}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
|
@ -523,7 +521,7 @@
|
||||||
|
|
||||||
<p>Add a location</p>
|
<p>Add a location</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="focus:outline-none p-1">
|
<div class="focus:outline-none">
|
||||||
<Icon path={mdiPencil} size="20" />
|
<Icon path={mdiPencil} size="20" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,13 +11,10 @@
|
||||||
export let forceDark = false;
|
export let forceDark = false;
|
||||||
export let hideMobile = false;
|
export let hideMobile = false;
|
||||||
export let iconColor = 'currentColor';
|
export let iconColor = 'currentColor';
|
||||||
export let buttonSize: string | undefined = undefined;
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
{title}
|
{title}
|
||||||
style:width={buttonSize ? buttonSize + 'px' : ''}
|
|
||||||
style:height={buttonSize ? buttonSize + 'px' : ''}
|
|
||||||
style:background-color={backgroundColor}
|
style:background-color={backgroundColor}
|
||||||
style:--immich-icon-button-hover-color={hoverColor}
|
style:--immich-icon-button-hover-color={hoverColor}
|
||||||
class:dark:text-immich-dark-fg={!forceDark}
|
class:dark:text-immich-dark-fg={!forceDark}
|
||||||
|
|
Loading…
Reference in a new issue