/** * @file development/issues/open/210.mjs * @url https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/210 * @description initializing of reloaded html fields * @issue 210 */ import "../../../source/components/style/property.pcss"; import "../../../source/components/style/color.pcss"; import "../../../source/components/style/normalize.pcss"; import "../../../source/components/style/typography.pcss"; import "../../../source/components/style/form.pcss"; import "../../../source/components/datatable/datasource/rest.mjs"; import "../../../source/components/datatable/save-button.mjs"; import "../../../source/components/form/form.mjs"; import "../../../source/components/form/field-set.mjs"; import "../../../source/components/form/select.mjs"; import "../../../source/components/form/context-help.mjs"; import "../../../source/components/form/context-error.mjs"; import {domReady} from "../../../source/dom/ready.mjs"; domReady.then(() => { // get html from server '/issue-210.html' and insert after last field in form fetch('/issue-210.html') .then(response => response.text()) .then(html => { const form = document.querySelector('monster-form'); const fieldSet = document.querySelector('monster-field-set'); if (!fieldSet) { return; } fieldSet.insertAdjacentHTML('beforeend', html); // form.refresh(); }); }); /** * Interne Daten löschen, nicht übertragen * Änderungen werden global geändert * diese Werte stehen nach dem speichern nicht mehr zur Verfügung for (const [key, value] of Object.entries(data.dataset)) { for (const [k, v] of Object.entries(data.dataset[key])) { if (k.indexOf(internalDataPrefix) !== -1) { delete data.dataset[key][k]; }; } } //nicht mit den Original daten arbeiten //da sich so auch die Originaldaten ändern let currentData = clone(data); let d = diff(currentData.dataset,lastData.dataset); /** * Daten für den nächsten Vergleich speichern lastData = clone(currentData); let changedKeys = []; for (const [key, value] of Object.entries(d)) { let index = value.path[0] if(changedKeys.includes(index)===false){ changedKeys.push(index); } } /** * Daten die sich nicht geändert haben löschen let updateData = []; for (const [key, value] of Object.entries(currentData.dataset)) { if(changedKeys.includes(key)===true){ updateData.push(currentData.dataset[key]); } }; /** * Zeit umformatieren für die Daten die noch * übertragen werden sollen for (const [key, value] of Object.entries(updateData)) { let time = updateData[key]?.scheduler?.time; if (time !== undefined) { /** * Locale Zeit '2024-03-22T11:22:33' let d = new Date(Date.parse(time)); /** * UTC Zeit '2024-03-22T10:22:33.000Z' d = d.toISOString(); updateData[key].scheduler.time = d; } } return updateData; */