diff --git a/workspace/assets/js/kalender.js b/workspace/assets/js/kalender.js index 9aa5c17d..58518635 100644 --- a/workspace/assets/js/kalender.js +++ b/workspace/assets/js/kalender.js @@ -1553,6 +1553,30 @@ $('f-ort').value = termin.ort || ''; $('f-text').value = termin.beschreibung || ''; baueDabei(termin.teilnehmer_ids || []); + + /* DAS GEGENUEBER VORBELEGEN -- und das war ein Datenverlust + (08.09.2026, screen19). + + "Mit wem" wurde beim Bearbeiten NIE gefuellt. Das Feld stand + leer da, und weil `koerper.teilnehmer_extern` beim Speichern + trotzdem mitgeschickt wird, ueberschrieb der leere Wert den + vorhandenen: Wer einen Termin mit einem frei eingetragenen + Namen ("BananaStift") bearbeitete und speicherte, hatte den + Namen danach verloren -- ohne ihn je gesehen zu haben. + + Filipe: "wenn ich auf bearbeiten drücke will ich dass mir immer + die daten angezeigt werden die schon ausgewählt wurden, damit + ich auch immer sehe okee das war alles und das änder ich." + + Nur fuer die Leitung, wie beim Speichern auch: Fuer die anderen + Rollen gibt es das Feld gar nicht, und `personenwahl` liefe ins + Leere. */ + if (LEITUNG.has(ich.rolle)) { + window.personenwahl?.('f-teilnehmer') + ?.setzen(termin.creator_id ?? termin.teilnehmer_id ?? '', + termin.teilnehmer_extern || ''); + } + $('f-takt').value = ''; wdhVorschau(); /* `false`: Beim Bearbeiten bleibt die eingetragene Dauer stehen. */ diff --git a/workspace/assets/js/wahl.js b/workspace/assets/js/wahl.js index b46fa4e6..59d8ef55 100644 --- a/workspace/assets/js/wahl.js +++ b/workspace/assets/js/wahl.js @@ -451,6 +451,38 @@ return { wert: () => f.value, extern: () => f.dataset.extern || '', + /* SETZEN -- fehlte bis zum 08.09.2026, und das Fehlen hat Daten + gekostet. + + Die Schnittstelle konnte lesen (`wert`, `extern`) und leeren + (`zuruecksetzen`), aber nicht FUELLEN. Ein Bearbeiten-Formular + konnte einen frei eingetragenen Namen deshalb gar nicht + anzeigen -- es blieb leer. Beim Speichern wurde dann der leere + Wert mitgeschickt und ueberschrieb den vorhandenen: Wer einen + Termin mit "BananaStift" bearbeitete und speicherte, hatte den + Namen danach geloescht, ohne ihn je gesehen zu haben. + + Genau das meinte Filipe mit "damit ich auch immer sehe okee das + war alles und das aender ich" (screen19). + + Zwei Faelle, und sie schliessen sich aus: Entweder steht dort + eine PERSON aus der Liste (dann traegt das Feld ihre Nummer), + oder ein FREIER NAME (dann ist die Nummer leer und der Name + steht in `dataset.extern`). Beides gleichzeitig gibt es nicht -- + deshalb setzt das eine das andere zurueck. */ + setzen(wert, externText) { + const zz = OFFEN.get(f); + const frei = String(externText || '').replace(/\s+/g, ' ').trim().slice(0, EXTERN_MAX); + if (frei) { + f.value = ''; + f.dataset.extern = frei; + } else { + f.dataset.extern = ''; + f.value = wert == null ? '' : String(wert); + } + if (zz) zeige(zz); + return this; + }, zuruecksetzen() { f.value = ''; f.dataset.extern = '';