enhancement
major
minor
major
minor
major
#30013
TL Views: Auswahlfelder bieten später angelegte Objekte ihres Typs erst nach neuer Anmeldung an
Problem
Ein <value-input type="my:SomeClass"> in einer .view.xml ohne eigenen options-Ausdruck bietet die Instanzen seines Typs als Optionen an. Diese Optionen werden einmal berechnet, wenn die Ansicht aufgebaut wird (ValueInputElement, AttributeOptions.optionsFor(type)), und danach nur noch bei Änderung eines inputs-Kanals eines options-Ausdrucks aktualisiert. Ein Objekt des Typs, das später angelegt wird – durch einen Befehl derselben Ansicht oder durch einen anderen Benutzer –, erscheint in der Auswahl erst nach einer neuen Anmeldung. Ein Neuladen der Seite genügt nicht, da die Ansicht an die Sitzung gebunden ist.
Beobachtet in der React-Demo (com.top_logic.demo.react, Ticket-Ansicht): Die Auswahl „Katalog für neue Schlagwörter“ zeigte nach dem Anlegen von Katalogen durch „Beispiele erzeugen“ weiterhin „Nichts gefunden“.
Dasselbe gilt für das Formularfeld eines Referenz-Attributs (AttributeSelectFieldModel): Es berechnet seine Optionen nur neu, wenn sich ein anderes Feld des Formulars ändert oder ein anderes Objekt bearbeitet wird.
Erwartetes Verhalten
Die Optionen eines solchen Auswahlfelds folgen dem Bestand: Ein angelegtes oder gelöschtes Objekt des Typs wird ohne neue Anmeldung angeboten bzw. nicht mehr angeboten – analog zu observed-types der Tabelle.
Lösung
- <value-input> beobachtet seine Optionen mit demselben Mechanismus wie <table> und <object-list> (RowSourceObserver): Anlegen eines Objekts eines beobachteten Typs, Änderung oder Löschen eines angebotenen Objekts und Änderung eines Eingabekanals berechnen die Optionen neu. Die Beobachtung läuft nur, solange das Feld angezeigt wird.
- Neue Eigenschaft observed-types an <value-input> (wie an <table>): die Typen, deren Objekte die Optionen beeinflussen. Ohne Angabe wird der Typ des Werts beobachtet, sofern er eine Klasse ist – der Fall des Tickets funktioniert damit ohne Konfiguration.
- Das Auswahlfeld eines Referenz-Attributs im Formular beobachtet ebenso den Zieltyp des Attributs und berechnet seine Optionen bei angelegten oder gelöschten Objekten neu.