Merge pull request #246 from IBCornelsen/dev-moritz

Ausweis Speichern, Startmonat, TagInput
This commit is contained in:
Moritz Utcke
2024-12-20 14:46:54 +07:00
committed by GitHub
4 changed files with 46 additions and 59 deletions

View File

@@ -152,8 +152,9 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
<TagInput
name="baujahr_gebaeude"
type="number"
minlength={4}
maxlength={4}
onlyUnique={true}
minChars={4}
onFocusIn={() => {
addNotification({
message: "Info",
@@ -193,7 +194,8 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
name="baujahr_heizung"
type="number"
onlyUnique={true}
minChars={4}
minlength={4}
maxlength={4}
onFocusIn={() => {
addNotification({
message: "Info",

View File

@@ -65,8 +65,8 @@
fuelMap[fuel[0]].push(fuel[1]);
}
let month = ausweis.startdatum?.getMonth() || null;
let year = ausweis.startdatum?.getFullYear() || null;
let month = ausweis.startdatum?.getMonth();
let year = ausweis.startdatum?.getFullYear();
$: {
if (typeof month === "number" && typeof year === "number") {
@@ -158,11 +158,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
{#each Array.from(availableDates.reduce((a, c) => {
a.add(c.month);
return a;
}, new Set())) as month}
}, new Set())) as availableMonth}
<option
value={month}
selected={ausweis.startdatum?.getMonth() === month}
>{monthNames[month]}</option
value={availableMonth}
selected={month === availableMonth}
>{monthNames[availableMonth]}</option
>
{/each}
{/if}

View File

@@ -12,7 +12,8 @@
export let splitWith: string = ",";
export let name: string = "";
export let disable: boolean = false;
export let minChars: number = 0;
export let minlength: number = 0;
export let maxlength: number = Infinity;
export let readonly: boolean = false;
export let onTagClick: Function = ()=>{};
export let onFocusIn: () => any = () => {};
@@ -25,7 +26,7 @@
return;
}
if (minChars > tag.toString().length) {
if (minlength > tag.toString().length || tag.toString().length > maxlength) {
return;
}
@@ -50,15 +51,14 @@
</script>
<div
class="flex flex-row gap-1 h-10 p-0"
class="flex flex-row h-10 p-0"
>
{#if tags.length > 0}
{#each tags as tag, i}
<button class="rounded-lg bg-white px-1.5 border border-gray-300 flex flex-row items-center justify-between gap-2" type="button" on:click={onTagClick(tag)}>
<button class="bg-white px-1.5 border border-gray-300 flex flex-row items-center justify-between gap-2" type="button" on:click={onTagClick(tag)}>
{tag}
{#if !disable && !readonly}
<span
class="svelte-tags-input-tag-remove"
on:pointerdown={() => removeTag(i)}
>
&#215;</span
@@ -75,12 +75,14 @@
on:focusin={onFocusIn}
on:focusout={onFocusOut}
on:blur={() => {
if (tag.toString().length >= minChars) {
if (tag.toString().length >= minlength && tag.toString().length < maxlength) {
addTag(tag)
tag = ""
}
}}
class="input input-bordered h-10 px-2 py-1.5 {className}"
{minlength}
{maxlength}
disabled={disable}
readonly={readonly}
autocomplete="off"

View File

@@ -68,54 +68,37 @@
loginOverlayHidden = true;
if (ausweis.uid) {
// Anscheinend wurde der Ausweis bereits erstellt und hat eine UID.
// Jetzt müssen wir ihn nun nur noch abspeichern.
try {
await client.v1.verbrauchsausweisWohnen[2016].speichern.mutate({
// Wir speichern den Ausweis ab und leiten auf die "ausweis-gespeichert" Seite weiter.
try {
const response = await verbrauchsausweisWohnenSpeichern(ausweis,
gebaeude,
gebaeude_aufnahme_allgemein,
images,
user)
if (response !== null) {
await bilderHochladen();
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// Sonst müsste er alles neu eingeben...
ausweis.uid = response.uid;
gebaeude.uid = response.gebaeude_uid;
gebaeude_aufnahme_allgemein.uid = response.gebaeude_aufnahme_uid;
return true
}
return false;
} catch (e: any) {
await client.v1.tickets.erstellen.mutate({
titel: "Ausweis konnte nicht gespeichert werden",
beschreibung: e.stack,
email: user.email ?? "",
metadata: JSON.stringify({
ausweis,
gebaeude
})
await bilderHochladen();
return true;
} catch (e) {
// TODO: Ticket mit Fehldermeldung abschicken.
}
} else {
// Wir speichern den Ausweis ab und leiten auf die "ausweis-gespeichert" Seite weiter.
try {
const response = await verbrauchsausweisWohnenSpeichern(ausweis,
gebaeude,
gebaeude_aufnahme_allgemein,
images,
user)
if (response !== null) {
await bilderHochladen();
// Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// Sonst müsste er alles neu eingeben...
ausweis.uid = response.uid;
gebaeude.uid = response.gebaeude_uid;
gebaeude_aufnahme_allgemein.uid = response.gebaeude_aufnahme_uid;
return true
}
return false;
} catch (e: any) {
await client.v1.tickets.erstellen.mutate({
titel: "Ausweis konnte nicht gespeichert werden",
beschreibung: e.stack,
email: user.email ?? "",
metadata: JSON.stringify({
ausweis,
gebaeude
})
})
// TODO: Ticket mit Fehldermeldung abschicken.
}
})
// TODO: Ticket mit Fehldermeldung abschicken.
}
addNotification({