diff --git a/assets/js/page_image_detail.js b/assets/js/page_image_detail.js index 9bda634a18ece173ed5194b60b7951c87b55c1e8..b81504890e532cae318338b76a643fea2db9adb9 100644 --- a/assets/js/page_image_detail.js +++ b/assets/js/page_image_detail.js @@ -28,12 +28,20 @@ const currentState = () => { return data; }; +const formDataToJson = (data) => { + const result = {}; + for (let key of data.keys()) { + result[key] = data.getAll(key); + } + return data; +}; + const doSave = () => { const data = currentState(); save.value = "Saving…"; postData(location.href, data).then((json) => { save.value = "Saved"; - lastSaved = data; + lastSaved = formDataToJson(data); }) }; @@ -84,7 +92,7 @@ save.addEventListener("click", (e) => { }); window.addEventListener("beforeunload", (e) => { - const state = currentState(); + const state = formDataToJson(currentState()); if (hasChangedEver && lastSaved !== state) { const message = "Your changes have not been saved. Are you sure you want to leave?"; e.preventDefault();