diff --git a/bun.lock b/bun.lock index 73863ed9..36f6b9a9 100644 --- a/bun.lock +++ b/bun.lock @@ -86,7 +86,7 @@ "prisma-dbml-generator": "^0.12.0", "prisma-generator-fake-data": "^0.14.3", "tsx": "^4.19.3", - "typescript": "^4.9.5", + "typescript": "^5", "zod-prisma": "^0.5.4", }, }, @@ -2539,7 +2539,7 @@ "type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="], - "typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="], + "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], "ufo": ["ufo@1.5.4", "", {}, "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="], diff --git a/package.json b/package.json index cd28e355..93239d0c 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "prisma-dbml-generator": "^0.12.0", "prisma-generator-fake-data": "^0.14.3", "tsx": "^4.19.3", - "typescript": "^4.9.5", + "typescript": "^5.8.3", "zod-prisma": "^0.5.4" }, "overrides": { diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index f3b7b0ed..e3eb22c2 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -5,10 +5,6 @@ export const createCaller = createCallerFactory({ "klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"), "postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"), "unterlage": await import("../src/pages/api/unterlage.ts"), - "ausweise": await import("../src/pages/api/ausweise/index.ts"), - "auth/access-token": await import("../src/pages/api/auth/access-token.ts"), - "auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"), - "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"), "admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"), @@ -16,11 +12,15 @@ export const createCaller = createCallerFactory({ "admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"), "admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"), "admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"), + "auth/access-token": await import("../src/pages/api/auth/access-token.ts"), + "auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"), + "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), + "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"), "bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"), - "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), + "ausweise": await import("../src/pages/api/ausweise/index.ts"), "bilder/[id]": await import("../src/pages/api/bilder/[id].ts"), "geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"), "geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"), diff --git a/src/client/lib/speichern.ts b/src/client/lib/speichern.ts index b424785e..e7c83331 100644 --- a/src/client/lib/speichern.ts +++ b/src/client/lib/speichern.ts @@ -1,5 +1,5 @@ import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js"; -import { Aufnahme, Objekt } from "#lib/server/prisma.js"; +import { Aufnahme, Objekt } from "#lib/client/prisma.js"; import { api } from "astro-typesafe-api/client"; import Cookies from "js-cookie"; diff --git a/src/components/Ausweis/AngabenZurHeizunganlage.svelte b/src/components/Ausweis/AngabenZurHeizunganlage.svelte index 8347d79d..b4c705ed 100644 --- a/src/components/Ausweis/AngabenZurHeizunganlage.svelte +++ b/src/components/Ausweis/AngabenZurHeizunganlage.svelte @@ -118,7 +118,7 @@ xl:grid-cols-4 xl:gap-x-8 xl:gap-y-8 > {#each hotWaterProductionTypes as type, i} - + {/each} diff --git a/src/components/Ausweis/ButtonWeiterHilfe.svelte b/src/components/Ausweis/ButtonWeiterHilfe.svelte index b119c4bb..0f67425f 100644 --- a/src/components/Ausweis/ButtonWeiterHilfe.svelte +++ b/src/components/Ausweis/ButtonWeiterHilfe.svelte @@ -27,6 +27,7 @@ export let ausweistyp: AusweisTyp = Enums.AusweisTyp.Standard; async function ausweisAbschicken() { + // Wir müssen überprüfen, dass mindestens ein Baujahr eingegeben wurde. if (aufnahme.baujahr_gebaeude.length === 0) { (form.querySelector("input[name='baujahr_gebaeude']") as HTMLInputElement).setCustomValidity("Die Eingabe von mindestens einem Baujahr ist verpflichtend.") } else { @@ -39,12 +40,12 @@ (form.querySelector("input[name='baujahr_heizung']") as HTMLInputElement).setCustomValidity("") } - new FormData(form).forEach((value, key) => { - if (key === "baujahr_heizung" || key === "baujahr_gebaeude" || key === "baujahr_klima") { - return - } + // Wir holen uns die Daten aus dem Formular + const data = new FormData(form); + // Und gleichen diese mit allen Feldern ab die "required" sind, damit stellen wir sicher, dass alles richtig ausgefüllt wurde. + (form.querySelectorAll("select[name][required],input[name][required]") as NodeListOf).forEach((element) => { + const value = data.get(element.getAttribute("name") as string) - const element = (form.querySelector(`[name='${key}']`) as HTMLSelectElement); if (!value && element.required) { element.setCustomValidity("Eine Auswahl ist verpflichtend.") } else { @@ -52,6 +53,7 @@ } }) + // Falls das Formular nicht valid ist markieren wir die fehlenden Felder. if (!form.checkValidity()) { // Entferne die Klasse "2xl:mt-[370px]" falls vorhanden form.classList.remove("2xl:mt-[370px]"); @@ -98,8 +100,8 @@ let loginAction: () => any = ausweisAbschicken; - async function spaeterWeitermachen() { - loginAction = spaeterWeitermachen; + async function speichern() { + loginAction = speichern; if (!(await validateAccessTokenClient())) { loginOverlayHidden = false; return @@ -161,7 +163,7 @@ sm:grid-cols-[1fr_min-content_min-content_min-content] sm:justify-self-end"> {/if} - diff --git a/src/components/Ausweis/Fensterflaechen.svelte b/src/components/Ausweis/Fensterflaechen.svelte index 4df61d55..4db38789 100644 --- a/src/components/Ausweis/Fensterflaechen.svelte +++ b/src/components/Ausweis/Fensterflaechen.svelte @@ -154,21 +154,21 @@ xl:grid-cols-4 xl:gap-x-8 xl:gap-y-8 required > - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
diff --git a/src/components/Dashboard/DashboardAusweis.svelte b/src/components/Dashboard/DashboardAusweis.svelte index 76f91f42..c3b4db8b 100644 --- a/src/components/Dashboard/DashboardAusweis.svelte +++ b/src/components/Dashboard/DashboardAusweis.svelte @@ -318,6 +318,11 @@ class="button text-sm" href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}" >Bearbeiten + {:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen} + Bearbeiten {/if} {/if} diff --git a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte index 059ef7f1..ceb99436 100644 --- a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte +++ b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte @@ -1,7 +1,6 @@