From 27354b8d081c896e8a856af3353d0a17dd8aafea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aaron=20D=C3=B6tsch?= <aaron@fsmpi.rwth-aachen.de> Date: Thu, 26 Sep 2024 08:42:46 +0200 Subject: [PATCH] update --- src/routes/admin/mr-x/[id=number]/+page.svelte | 4 ++-- src/routes/admin/mr-x/[id=number]/Entry.svelte | 4 ++-- src/routes/admin/rabatte/[id=number]/+page.server.ts | 2 +- src/routes/admin/rabatte/[id=number]/+page.svelte | 3 +++ .../admin/rabatte/[id=number]/OpeningHoursInput.svelte | 10 +++++----- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/routes/admin/mr-x/[id=number]/+page.svelte b/src/routes/admin/mr-x/[id=number]/+page.svelte index 4cd88ee..b26e029 100644 --- a/src/routes/admin/mr-x/[id=number]/+page.svelte +++ b/src/routes/admin/mr-x/[id=number]/+page.svelte @@ -1,6 +1,6 @@ <script lang="ts"> import H1 from "$lib/components/H1.svelte"; - import { Breadcrumb, BreadcrumbItem, Button, Card, Input, Textarea } from "flowbite-svelte"; + import { Breadcrumb, BreadcrumbItem, Button, Card, Fileupload, Input, Textarea } from "flowbite-svelte"; import Entry from "./Entry.svelte"; import { enhance } from "$app/forms"; import { invalidateAll } from "$app/navigation"; @@ -28,7 +28,7 @@ }}> <Input name="time" type="datetime-local" class="mb-2" required /> <Textarea name="text" class="mb-2" /> - <Input name="image" type="file" accept="image/png, image/jpeg" class="mb-2" /> + <Fileupload name="image" accept="image/png, image/jpeg" class="mb-2" /> <Button type="submit" class="w-full">Erstellen</Button> </form> </Card> diff --git a/src/routes/admin/mr-x/[id=number]/Entry.svelte b/src/routes/admin/mr-x/[id=number]/Entry.svelte index 69ae9a2..b04bb07 100644 --- a/src/routes/admin/mr-x/[id=number]/Entry.svelte +++ b/src/routes/admin/mr-x/[id=number]/Entry.svelte @@ -1,5 +1,5 @@ <script lang="ts"> - import { Card, Textarea, Button, ButtonGroup, Input } from "flowbite-svelte"; + import { Card, Textarea, Button, ButtonGroup, Fileupload, Input } from "flowbite-svelte"; import type { MrXData } from "../../../(non-admin)/mr-x/[id=number]/data/+server"; import { enhance } from "$app/forms"; import Image from "$lib/components/Image.svelte"; @@ -39,7 +39,7 @@ <input bind:this={imageInput} name="image" type="file" accept="image/png, image/jpeg" class={removeImage ? "mb-2" : "hidden"} onchange={()=>removeImage=true} /> <input type="hidden" name="removeImage" value={removeImage ? "true" : null} /> {:else} - <Input name="image" type="file" accept="image/png, image/jpeg" class="mb-2" /> + <Fileupload name="image" accept="image/png, image/jpeg" class="mb-2" /> {/if} <div class="flex gap-2"> <Button type="submit" class="w-full">Speichern</Button> diff --git a/src/routes/admin/rabatte/[id=number]/+page.server.ts b/src/routes/admin/rabatte/[id=number]/+page.server.ts index 87d7c9a..c9f33dc 100644 --- a/src/routes/admin/rabatte/[id=number]/+page.server.ts +++ b/src/routes/admin/rabatte/[id=number]/+page.server.ts @@ -72,7 +72,7 @@ export const actions = { } const day = data.get(`openingHours[${currentDay}]`); if(typeof day !== "string" || !(["1","2","3","4","5","6","7"].includes(day) || day==="holiday" || (day.match(/^\d{4}-\d{2}-\d{2}$/) && !isNaN(Date.parse(day))))) error(400, `Invalid day: ${day}`); - openingHours[day as keyof Discount["openingHours"]] = hours; + openingHours[day as keyof Discount["openingHours"]] = hours.sort((a,b)=>a[0][0]*60+a[0][1]-b[0][0]*60-b[0][1]); currentDay++; } await Discount.update(id, { diff --git a/src/routes/admin/rabatte/[id=number]/+page.svelte b/src/routes/admin/rabatte/[id=number]/+page.svelte index 0c8255e..435ad4d 100644 --- a/src/routes/admin/rabatte/[id=number]/+page.svelte +++ b/src/routes/admin/rabatte/[id=number]/+page.svelte @@ -51,6 +51,9 @@ function roundTo5Digits(num: number): number{ return Math.round(num * 1e5) / 1e5; } + // somehow got compilation errors when building with this + //function refocusMap(address: string): void; + //function refocusMap(latitude: number, longitude: number): void; async function refocusMap(){ if(arguments.length === 1){ const [address] = arguments; diff --git a/src/routes/admin/rabatte/[id=number]/OpeningHoursInput.svelte b/src/routes/admin/rabatte/[id=number]/OpeningHoursInput.svelte index 50a89ef..6eff713 100644 --- a/src/routes/admin/rabatte/[id=number]/OpeningHoursInput.svelte +++ b/src/routes/admin/rabatte/[id=number]/OpeningHoursInput.svelte @@ -2,7 +2,7 @@ import type { Discount } from "$lib/server/database/entities/Discount.entity"; import { Button, CloseButton, Input, Table, TableBody, TableBodyCell, TableBodyRow, TableHead, TableHeadCell } from "flowbite-svelte"; - let { openingHours }: { openingHours: Discount["openingHours"] } = $props(); + let { openingHours = $bindable() }: { openingHours: Discount["openingHours"] } = $props(); for(const day of [1,2,3,4,5,6,7] as const){ if(!openingHours[day]) openingHours[day] = []; @@ -38,14 +38,14 @@ <TableBodyCell class="px-3 py-1"> {#each openingHours[day as keyof typeof openingHours]||[] as [start, end], j} <div class="w-min mx-1 inline-block rtl:text-right px-2 py-[0.15rem] border focus-within:ring-1 focus-within:border-primary-500 focus-within:ring-primary-500 dark:focus-within:border-primary-500 dark:focus-within:ring-primary-500 bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white border-gray-300 dark:border-gray-600 text-sm rounded-lg"> - <input name="openingHours[{i}][{j}][sh]" class="w-[2em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="23" bind:value={start[0]} required /> + <input name="openingHours[{i}][{j}][sh]" class="w-[2.5em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="23" bind:value={start[0]} required /> : - <input name="openingHours[{i}][{j}][sm]" class="w-[2em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="59" bind:value={start[1]} required /> + <input name="openingHours[{i}][{j}][sm]" class="w-[2.5em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="59" bind:value={start[1]} required /> bis <!-- no max on this input, 25 o'clock is 1 o'clock of the next day --> - <input name="openingHours[{i}][{j}][eh]" class="w-[2em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="47" bind:value={end[0]} required /> + <input name="openingHours[{i}][{j}][eh]" class="w-[2.5em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="47" bind:value={end[0]} required /> : - <input name="openingHours[{i}][{j}][em]" class="w-[2em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="59" bind:value={end[1]} required /> + <input name="openingHours[{i}][{j}][em]" class="w-[2.5em] p-1 border-none focus:ring-0 [appearance:textfield] bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white" type="number" step="1" min="0" max="59" bind:value={end[1]} required /> <CloseButton name="entfernen" class="p-1 my-0" on:click={()=>openingHours = Object.assign(openingHours, {[day]: openingHours[day as keyof typeof openingHours]?.filter((_,k)=>k!==j)})} /> </div> {/each} -- GitLab