Merge pull request #246 from IBCornelsen/dev-moritz
Ausweis Speichern, Startmonat, TagInput
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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)}
|
||||
>
|
||||
×</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"
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user