Closed Twiek closed 6 years ago
In der aktuellen Version funktioniert das Aktualisieren bei geöffnetem Edit-Formular leider nicht wenn in einem anderen Tab eine Änderung vorgenommen wird. Von ActionCable wird state.entities korrekt aktualisiert aber das Formular hat noch den alten Stand. In der ShowView klappt es weil die direkt aus dem state liest.
Unabhängig davon werden 'nur' die contract-changes im Aktualisiert und Dinge, die dort nicht auftauchen aber im representer stehen (bestes Beispiel: label) werden nicht aktualisiert. Vielleicht ist das aber gar kein großartiges Problem..
Dass Formularinhalte nicht verändert werden ist gewolltes Verhalten. Man müsste ja im Zweifelsfall einen diff erstellen zwischen dem, was ein Nutzer bereits verändert hat und dem, was gerade als Veränderung reinkommt.
Man könnte überlegen, eine Warnmeldung anzuzeigen, wenn am Basisinhalt des Formulars was verändert wurde. Das wäre dann aber eher ein neues Feature.
Es stimmt allerdings, dass ich "berechnete" Representer-Felder nicht bedacht habe. Es werden die model.changes
benutzt
Aber hatten wir das nicht auf staging zusammen ausprobiert und da hat es noch funktioniert? Ich meine nicht den Fall, dass ich Änderungen in meinem Formular haben und diese überschrieben werden oder ein Diff gemacht werden sollte. Es geht einfach nur um einen geöffneten EditView ohne jegliche Änderungen und dann werden in einem anderen Tab oder von einem anderen User Änderungen an diesem Objekt vorgenommen. Die Änderungen kamen dann doch im Tab A an, dachte ich..
Nee, sowas habe ich nicht eingebaut und noch nicht funktionieren sehen. Was klappt und woran du dich vielleicht erinnerst ist, dass ich Veränderungen in einem Formular machen kann und wenn es mir dann weggenommen wird weil eine andere Zuweisung reinkommt werden die Formularfelder disabled. Wenn ich mir wieder eine neue Zuweisung erstelle sind die Felder wieder enabled und meine vorigen Änderungen sind noch da. Ansonsten werden entity Änderungen nur im Show aktualisiert.
Hmm da vllt. hat mein Gehirn da einfach ein wenig dazugedichtet ^^ Genau, die Zuweisung & die deaktivierten Formularfelder helfen ja schon ordentlich, dass man sich nicht gegenseitig Änderungen überschreibt.
Szenario: Person A editiert eine Orga während Person B eine Division erstellt welche sie dieser Orga zuordnet. Wenn Person B vor Person A speichert fliegt die Division gleich wieder raus.
Viele Ähnliche Fälle sind denkbar. eleganteste Lösung: Live-Server-Updates, d.h. Im Orga-Edit-View wird die von Person B erstellte Division direkt angezeigt sobald sie abgespeichert wurde.
1333