diff --git a/src/resources/js/components/MeetingEditForm.svelte b/src/resources/js/components/MeetingEditForm.svelte index 836345467..8a508d2ca 100644 --- a/src/resources/js/components/MeetingEditForm.svelte +++ b/src/resources/js/components/MeetingEditForm.svelte @@ -150,7 +150,10 @@ trainLines: selectedMeeting?.trainLines ?? '', comments: selectedMeeting?.comments ?? '', customFields: selectedMeeting?.customFields - ? { ...Object.fromEntries(globalSettings.customFields.map((field) => [field.name, ''])), ...selectedMeeting.customFields } + ? { + ...Object.fromEntries(globalSettings.customFields.map((field) => [field.name, ''])), + ...Object.fromEntries(Object.entries(selectedMeeting.customFields).map(([key, value]) => [key, value ?? ''])) + } : Object.fromEntries(globalSettings.customFields.map((field) => [field.name, ''])) }; let latitude = initialValues.latitude; @@ -615,7 +618,7 @@
- + {#if $errors.name} @@ -626,7 +629,7 @@
- + {#if $errors.day} @@ -646,7 +649,7 @@ {/if}
- + {#if $errors.startTime} @@ -655,7 +658,7 @@ {/if}
- + setData('duration', e.detail.duration)} /> {#if $errors.duration} @@ -666,7 +669,7 @@
- + {#if $errors.email} @@ -686,7 +689,7 @@ {/if}
- + {#if $errors.worldId} @@ -696,7 +699,7 @@
- + {item.name} @@ -714,7 +717,7 @@
- + {#if $errors.longitude} @@ -743,7 +746,7 @@ {/if}
- + {#if $errors.latitude} @@ -754,7 +757,7 @@
- + {#if $errors.locationText} @@ -765,7 +768,7 @@
- + {#if $errors.locationInfo} @@ -776,7 +779,7 @@
- + {#if $errors.locationStreet} @@ -787,7 +790,7 @@
- + {#if $errors.locationNeighborhood} @@ -796,7 +799,7 @@ {/if}
- + {#if $errors.locationCitySubsection} @@ -807,7 +810,7 @@
- + {#if $errors.locationMunicipality} @@ -816,7 +819,7 @@ {/if}
- + {#if countiesAndSubProvincesChoices.length > 0} {:else} @@ -844,7 +847,7 @@ {/if}
- + {#if $errors.locationPostalCode1} @@ -853,7 +856,7 @@ {/if}
- + {#if $errors.locationNation} @@ -864,7 +867,7 @@
- + {#if $errors.phoneMeetingNumber} @@ -875,7 +878,7 @@
- + {#if $errors.virtualMeetingLink} @@ -886,7 +889,7 @@
- + {#if $errors.virtualMeetingAdditionalInfo} @@ -900,7 +903,7 @@
- + {#if $errors.comments} @@ -911,7 +914,7 @@
- + {#if $errors.busLines} @@ -920,7 +923,7 @@ {/if}
- + {#if $errors.trainLines} @@ -931,7 +934,7 @@
- + {#if $errors.contactName1} @@ -940,7 +943,7 @@ {/if}
- + {#if $errors.contactPhone1} @@ -949,7 +952,7 @@ {/if}
- + {#if $errors.contactEmail1} @@ -960,7 +963,7 @@
- + {#if $errors.contactName2} @@ -969,7 +972,7 @@ {/if}
- + {#if $errors.contactPhone2} @@ -978,7 +981,7 @@ {/if}
- + {#if $errors.contactEmail2} @@ -990,7 +993,7 @@ {#each globalSettings.customFields as { name, displayName }}
- + {#if $errors.customFields?.[name]} diff --git a/src/resources/js/lib/utils.ts b/src/resources/js/lib/utils.ts index 6c70606b8..55474ceda 100644 --- a/src/resources/js/lib/utils.ts +++ b/src/resources/js/lib/utils.ts @@ -23,6 +23,11 @@ export function formIsDirty(initialValues: any, currentValues: any): boolean { return true; } } + } else if (typeof initialValues[key] === 'object') { + if (formIsDirty(initialValues[key], currentValues[key])) { + isDirty.set(true); + return true; + } } else if (initialValues[key] !== currentValues[key]) { isDirty.set(true); return true;