fix: JSON.parse of wea selector values correctly replaces " allowing mw to be parsed
Deploy Standortplaner / deploy (push) Successful in 16s Details

This commit is contained in:
Johannes Baumeister 2026-07-04 22:10:15 +02:00
parent 3ce303a00f
commit 2c6eac1c99
1 changed files with 11 additions and 12 deletions

23
app.js
View File

@ -386,11 +386,13 @@ document.addEventListener('DOMContentLoaded', async () => {
const fr = overrideData?.fr || Number.parseFloat(inputFoundation?.value) || 15; const fr = overrideData?.fr || Number.parseFloat(inputFoundation?.value) || 15;
let type = overrideData?.type || "Standard Typ"; let type = overrideData?.type || "Standard Typ";
let hersteller = overrideData?.hersteller || "Unbekannt"; let hersteller = overrideData?.hersteller || "Unbekannt";
let mw = overrideData?.mw || null;
if (!overrideData && weaTypeSelector && weaTypeSelector.value) { if (!overrideData && weaTypeSelector && weaTypeSelector.value) {
try { try {
const parsed = JSON.parse(weaTypeSelector.value); const parsed = JSON.parse(weaTypeSelector.value.replace(/"/g, '"'));
type = parsed.anlagentyp; type = parsed.anlagentyp;
hersteller = parsed.hersteller; hersteller = parsed.hersteller;
mw = parsed.nennleistung;
} catch(e) {} } catch(e) {}
} }
const weaNr = overrideData?.nr || loadedNr || (state.turbines.length + 1).toString(); const weaNr = overrideData?.nr || loadedNr || (state.turbines.length + 1).toString();
@ -418,7 +420,7 @@ document.addEventListener('DOMContentLoaded', async () => {
id: `WEA_${Date.now()}`, id: `WEA_${Date.now()}`,
nr: weaNr, nr: weaNr,
variant: overrideData?.variant || state.activeVariant, variant: overrideData?.variant || state.activeVariant,
hersteller, type, rd, hh, fr, latlng, hersteller, type, mw, rd, hh, fr, latlng,
ksfAngle, ksfMirrored, ksfAngle, ksfMirrored,
totalHeight: geoms.totalHeight, totalHeight: geoms.totalHeight,
layers: { layers: {
@ -555,11 +557,13 @@ document.addEventListener('DOMContentLoaded', async () => {
const newNr = editNr.value; const newNr = editNr.value;
let newManufacturer = activeTurbine.hersteller; let newManufacturer = activeTurbine.hersteller;
let newType = activeTurbine.type; let newType = activeTurbine.type;
let newMw = activeTurbine.mw;
if (editWeaSelector && editWeaSelector.value) { if (editWeaSelector && editWeaSelector.value) {
try { try {
const parsed = JSON.parse(editWeaSelector.value); const parsed = JSON.parse(editWeaSelector.value.replace(/"/g, '"'));
newManufacturer = parsed.hersteller; newManufacturer = parsed.hersteller;
newType = parsed.anlagentyp; newType = parsed.anlagentyp;
newMw = parsed.nennleistung;
} catch(e) {} } catch(e) {}
} }
const newRd = Number.parseFloat(editRd.value); const newRd = Number.parseFloat(editRd.value);
@ -575,6 +579,7 @@ document.addEventListener('DOMContentLoaded', async () => {
activeTurbine.nr = newNr; activeTurbine.nr = newNr;
activeTurbine.hersteller = newManufacturer; activeTurbine.hersteller = newManufacturer;
activeTurbine.type = newType; activeTurbine.type = newType;
activeTurbine.mw = newMw;
activeTurbine.rd = newRd; activeTurbine.rd = newRd;
activeTurbine.hh = newNh; activeTurbine.hh = newNh;
activeTurbine.fr = newFr; activeTurbine.fr = newFr;
@ -2411,6 +2416,7 @@ document.addEventListener('DOMContentLoaded', async () => {
variant: t.variant, variant: t.variant,
hersteller: t.hersteller, hersteller: t.hersteller,
type: t.type, type: t.type,
mw: t.mw,
rd: t.rd, rd: t.rd,
hh: t.hh, hh: t.hh,
ksfAngle: t.ksfAngle, ksfAngle: t.ksfAngle,
@ -2480,6 +2486,7 @@ document.addEventListener('DOMContentLoaded', async () => {
nr: t.nr, nr: t.nr,
hersteller: t.hersteller, hersteller: t.hersteller,
type: t.type, type: t.type,
mw: t.mw ? Number.parseFloat(t.mw) : null,
rd: Number.parseFloat(t.rd) || 160, rd: Number.parseFloat(t.rd) || 160,
hh: Number.parseFloat(t.hh) || 165, hh: Number.parseFloat(t.hh) || 165,
ksfAngle: Number.parseFloat(t.ksfangle ?? t.ksfAngle ?? 0), ksfAngle: Number.parseFloat(t.ksfangle ?? t.ksfAngle ?? 0),
@ -2741,16 +2748,8 @@ document.addEventListener('DOMContentLoaded', async () => {
const latlng = t.layers.marker.getLatLng(); const latlng = t.layers.marker.getLatLng();
const utmCoords = proj4(wgs84, utm32, [latlng.lng, latlng.lat]); const utmCoords = proj4(wgs84, utm32, [latlng.lng, latlng.lat]);
// Nennleistung aus loaded types finden
let nennleistung = '-';
if (window.availableWeaTypes) {
const matchedType = window.availableWeaTypes.find(w => w.hersteller === t.hersteller && w.anlagentyp === t.type);
if (matchedType && matchedType.nennleistung) {
nennleistung = matchedType.nennleistung;
}
}
const anlagentyp = t.type === 'Standard Typ' ? '-' : (t.type || '-'); const anlagentyp = t.type === 'Standard Typ' ? '-' : (t.type || '-');
let nennleistung = t.mw ? t.mw.toString() : '-';
return [ return [
t.nr, t.nr,