yakamara / yform

YForm für REDAXO 5 – Formulare im Frontend und Backend mit Verwaltung von Datenbank-Tabellen.
MIT License
77 stars 55 forks source link

Key-Generierung nach preValidateAction verlagert #1363

Closed christophboecker closed 1 year ago

christophboecker commented 1 year ago

Auslöser für diesen PR ist eine Diskussion im Slack. Daniel Springer (@medienfeuer) bemerkte, dass UUIDs beim erneuten Speichern das Datensatzes neu generiert wurden, was eigentlich nicht sein sollte. Auch Alex (@alxndr-w) hat das von Zeit zu Zeit.

Theoretisch ist der alte Code ok; trotzdem passiert es.

Mein Lösungsvorchlag wäre, den Code näher an den Code von rex_yform_value_generate_key zu bringen. In dem Value wird der Key bereits in der Methode preValidateAction erzeugt. Vieleicht hilft es ja.

Und enterObject ist folglich auch angepasst. Hier wird zusätzlich eine Option ShowValue berücksichtigt, die ich dann auch angefügt habe.

alxndr-w commented 1 year ago

Getestet von @danspringer

danspringer commented 1 year ago

Das Problem scheint mit diesem PR nun behoben und die UUID bleibt gleich, wenn man etwas ändert.

Ich habe im Redaxo-Backend einen YCom-User, der ein UUID-Feld hat über den Table-Manager geändert: Ich habe nur den Vornamen geändert, sonst nichts. Bisher hat sich dabei dann die UUID geändert, auch wenn es bereits eine gab.

Bildschirmfoto 2023-02-02 um 09 25 26

Mit dem PR bleibt die UUID nach der Änderung gleich. Bildschirmfoto 2023-02-02 um 09 25 46