rowe42 / lhm_animad_admin_html5

0 stars 6 forks source link

Keine "Unter-Views" in der DSL #245

Closed rowe42 closed 6 years ago

rowe42 commented 6 years ago

In unserer aktuellen Implementierung ist die Struktur wie folgt:

.../animals-view Zeigt die Tabelle mit allen Animals. Ein Klick auf "Neu" bzw. "Update" führt zu

.../animals-view/create bzw. .../animals-view/update/<oid-animal-to-update>

Es handelt sich hierbei um eine Art "Unter-Views", die innerhalb der animad-animals-view.html über ein iron-pages Element eingeblendet werden.

Die DSL sieht aber offenbar keine Definition von solchen "Unter-Views" vor. Stattdessen ist das im Zoo-Beispiel wie folgt definiert:

    view animals appearsInMenu {
        component animals for administration.animal type Table {
            button detail navigatesTo animalDetailView;
        }
        ...
    }
...
    view animalDetailView {
        component readAnimal for administration.animal type ReadWriteForm {
        }
        ...
    }

Wenn wir also die DSL nicht irgendwie erweitern wollen, bleibt uns nur übrig, die Navigation so zu gestalten: .../animals-view, Klick auf "Neu" bzw. "Update" führt zu

.../animalsCreateView-view/ bzw. .../AnimalDetailView-view/<oid-keeper-to-update> (wobei eine animalsCreateView im Zoo-Beispiel nicht existiert, weil das Create-Form direkt auf der animals-View angesiedelt ist)

Eine Herausforderung ist dabei außerdem: Woher weiß denn die animalDetailView welches Animal anzuzeigen ist? Das muss also in der Zeile button detail navigatesTo animalDetailView; implizit mitgegeben werden. Wir müssen also standardmäßig jedem Button innerhalb einer Table-Komponente die OID des gewählten Objekts mitgeben.

@xdoo @FabianWilms @dragonfly28 @Baumfrosch @ejcsid @a52team @Dr-Thomas-Tensi Haben wir da alle das gleiche Verständnis?

xdoo commented 6 years ago

Ich würde das nicht nicht "Unter-View" bezeichnen. Das sind halt views, auf die man (im Modell) navigieren kann. Ja, wenn man dabei spezifischer wird, dann muss natürlich eine Referenz zu dem anzuzeigenden Objekt mitgegeben werden. Aber das haben doch heute auch schon, oder?

rowe42 commented 6 years ago

Aber bei uns ist es eben anders implementiert, da wir den Pfad der View beibehalten und noch ein "create" oder "update/[oid]" anhängen. Das lässt sich aber mit der aktuellen DSL-Syntax nicht so beibehalten.

xdoo commented 6 years ago

Ja. Ich denke da werden wir uns einen anderen Implementierungsweg überlegen müssen. Die generierte Navigation führt ja immer von einer modellierten Seite zur anderen. Durch die oben beschriebene Implementierung würden ja Seiten entstehen, die nie modelliert, aber auch nicht von Hand implementiert wurden. Das halte ich für keine gute Sache.

rowe42 commented 6 years ago

Habe es mal in branch 245 ausprobiert. Wir können es auch ohne unter views machen, müssen dazu aber die Navigation ein bisschen verändern. Ich werde das aber so ins template einbauen, da es anders ja nicht geht (und weiche damit vom Übergabe branch ab @a52team)

Dr-Thomas-Tensi commented 6 years ago

Ich hatte ja in dem Navigationspapier vorgeschlagen, dass man die DSL so umgestaltet, dass beliebige Hierarchien von Views möglich sind. Derzeit ist es zweistufig. Vielleicht sollten wir das mittelfristig noch mal aufgreifen...

rowe42 commented 6 years ago

Eine Version ohne Unter-Views ist jetzt auch in master. Dabei gibt es bei den Wärtern je eine Create- und eine Update-View, bei Enclosures und Animals ist Create in der Tabelle unten dran (damit man beides mal sieht). Habe es nochmal getestet. Schließe das Issue.