yform icon indicating copy to clipboard operation
yform copied to clipboard

Datensatz klonen verbessern

Open dergel opened this issue 2 years ago • 1 comments

Von @christophboecker

@dergel Super, Jan, das ging ja ratz fatz. Sieht so aus, als ob es funktioniert. Ein Kurztest sagt: dobsche.

Darf ich dennoch was anmerken:

Ich hätte mich nicht getraut, einen PR zu bauen, der einen YForm-Hack zum Umbau von YForm-Code in YForm einbaut. :-) Hast Du das Kleingedruckte des Tricks gelesen? Die EPs laufen nicht unbedingt so ab, wie vieleicht erwartet. Beim Aufbau des Formulars nach Klick auf die Klonen-Aktion wird der EP YFORM_DATA_UPDATE aufgerufen und nicht YFORM_DATA_ADD, während beim Speichern nach Klick auf den Save-Button erst der EP YFORM_DATA_ADD und dann YFORM_DATA_ADDED angezogen werden. Da werden bestimmt noch Fragen nach YFORM_DATA_CLONE und YFORM_DATA_CLONED kommen, die man bei enem Trick nicht stellen würde.

Die Lösung erwischt zwar auch Datentypen, die auf be_manager_relation aufsetzen, aber nicht “private” Datentypen, die Relationen aufbauen und verwalten. Ob das mit einer tiefer in YFORM verdrahteten Lösung andes wäre? Vermutlich nicht. Nur um es erwähnt zu haben.

Als Icon würde ich beim Klonen-Icon (.fa-copy oder .rex-icon-duplicate) bleiben, grade um den Unterschied zum normalen Hinzufügen (+) herauszustellen. Perspektivisch könnte man irgendwie wohl doch mal rangehen und $afterFieldsExecuted in den eigentlichen Code aufröseln. Also z.B. nicht nachträglich HTML rauswerfen oder ändern, sondern sofort passend weglassen/erzeugen. Falls das überhaupt mit vertretbarem Aufwand in dem komplexen Gesamtzusammenhang machbar ist. Ich bin bisher davor zurückgeschreckt.

dergel avatar Jan 09 '23 08:01 dergel

Noch was: evtl wäre noch ein EP notwendig, z.B. für Nacharbeiten im Dateisystem. Ich denke hier an sowas wie das Upload-Feld. Dahinter liegt ja auch eine Datei im Data-Verzeichnis, die durch den Clone-Trick nicht mit kopiert wird. Für private Value-Felder, die Dateien referenzieren, gilt das analog.

christophboecker avatar May 17 '23 13:05 christophboecker