FriendsOfREDAXO / mform

Spielend einfach umfangreiche Modul-Input-Formulare erzeugen.
MIT License
77 stars 18 forks source link

MForm 8 Beta - Repeater: Anmerkungen / Vorschläge / Wünsche #323

Closed ischfr closed 2 months ago

ischfr commented 2 months ago

Nach Beschäftigung mit dem großartigen neuen Repeater-Feature der MForm 8 Beta, habe ich hier mal ein paar Anmerkungen / Vorschläge / Wünsche gesammelt, die mir dazu eingefallen sind. Wenn es zur Diskussion anregt würde ich mich freuen. 🙂

Einträge Hinzufügen - nicht nur am Ende

Momentan erscheint der +-Button immer nur beim letzten Repeater-Eintrag. Es wäre toll, wenn man auch nach allen anderen Einträgen einen neuen hinzufügen könnte (vgl. MBlock) – vor allem dann, wenn die Liste etwas länger ist.

Ergänzend wäre es noch besser, wenn jeder Eintrag die Möglichkeit hätte, entweder DAVOR oder DANACH einen neuen Eintrag einzufügen. Evtl. über getrennte +-Buttons?

Oder vielleicht die +-Buttons gleich zwischen den Einträgen anordnen, wie bei regulären Artikelblöcken?

Online-Status

Ein Online/Offline-Status analog zu regulären Blöcken wäre nützlich, um Einträge deaktivieren zu können, statt sie löschen zu müssen. Das fehlte mir bisher bei MBlock auch.

Anpassen der Scroll-Position beim Umsortieren

Wenn man auf Pfeil hoch / Pfeil runter klickt, dann sollte sich der betreffende Eintrag nach dem Verschieben durch automatisches Scrollen idealerweise an der gleichen Stelle im Viewport befinden. So wäre es einfacher, erneut den selben Pfeil zu klicken und weiter in derselben Richtung zu verschieben.

Button Positionen

Ergänzend zu den o.g. Punkten wäre es evtl. sinnvoll, immer alle Buttons (Sortieren, Löschen, usw.) anzuzeigen und nicht zutreffende zu disablen. So haben alle Buttons immer gleichbleibende Positionen, was gerade beim Sortieren intuitiver wäre.

Bessere Unterscheidbarkeit der Repeater-Ebenen

Es ist toll, dass man nun mit Repeater beliebig bis zu zwei Ebenen tief verschachtelte Blöcke realisieren kann! Ich würde mir dazu für das Backend einen klareren Style-Ansatz wünschen, um die Ebenen im Editor intuitiver unterscheiden zu können. Mit den momentanen Boxen wird das bei zwei oder mehr Ebenen schnell unübersichtlich.

Hat dazu jemand Ideen? Die sollten natürlich auch im Dark-Mode funktionieren.

Ich fand schon bei MBlöcken (im Standard-Styling) die optische Abgrenzung immer etwas schwierig. Ich hatte das für mich durch stärkeres Tönen der MBlock-Backgrounds gelöst - aber da ging es auch nur um eine zusätzliche Ebene.

Man sollte als Nutzer in der Lage sein, bis zu drei Repeater-Ebenen gut auseinander halten zu können.

Hervorhebung aktuelles Repeater-Element

Die Schatten und die seitliche Linie beim Hovern finde ich gut – das dürfte m.E. fast noch etwas deutlicher sein. Nur das "Eindrücken" durch die verbreiterte linke Border finde ich irritierend, da sich die Width reduziert und sich dadurch alle Felder der Box bewegen. Kann man die Hervorhebung auch lösen, ohne dass die Width des Containers sich dadurch verändert?

Modus für kompakte/minimierte Darstellung einer Repeater-Liste?

Wenn es darum geht, längere Repeater-Listen (oder Sub-Listen usw.) umzusortieren, würde es helfen, möglichst viele Einträge auf einmal sehen zu können. Dabei würde eine minimierte Darstellung helfen. Evtl. so etwas wie ein Akkordion, wobei eines der Textfelder im Eintrag als Beschriftung dienen müsste.

joachimdoerr commented 2 months ago

Das sind alles in allem viele gute Punkte.

  1. + Button -> ich hab den alpine gebauten repeater von Thorben genommen, da gibts am Ende ein fetten Button zum hinzufügen von Blöcken, den wollte ich so nicht und hab einfach in den letzten Block das MBlock Typische + eingebaut, die Funktionalität müsste also erst noch aufwändig gebaut werden, was nicht so einfach ist weil Alpine da mit JSON Arrays und Positionen im Array arbeitet...
  2. Online Status sehe ich bewusst nicht als option. MBlock-Blöcke und auch Repeater-Blöcke sind keine Slices.
  3. Es gibt nicht beliebig viele Level, man kann den Repeater nur einmal verschachteln also 2 Ebenen.
  4. Die Button Position und das Layout kann man natürlich auch so wie Du meinst ein passen, ich denke es wäre viel sinnvoller, wenn man noch 2 oder 3 Repeater-Layouts dazu hätte aus denen man wählen kann, so könnten man auch einen Kompakt-Modus umsetzen
joachimdoerr commented 2 months ago
ischfr commented 2 months ago

zu 1. + Button -> hatte schon vermutet, dass es technische Gründe hat, dass es nicht so wie in MBlock gelöst ist. Wäre halt nice-to-have, falls sich mal eine Lösung anbieten sollte. Vielleicht hat Thorben dazu noch ne Idee?

zu 2. Online Status: ich versuche halt, es aus Redakteurs-Sicht zu sehen. Meine bisherigen Erfahrungen zu dem Thema stammen natürlich eher von MBlock. Ich hatte dort bei Kunden-Schulungen immer den Eindruck, dass es bei den Nutzern eine intuitive Erwartungshaltung gibt, die für Blöcke gelernten Möglichkeiten auch auf diese "Sub-Blöcke" übertragen zu können (auch, wenn das intern natürlich ein ganz anderer Vorgang ist). Die Möglichkeit, solch einen Sub-Block mal zu deaktivieren und für später aufzuheben zu können, hat m.E. durchaus Praxis-Relevanz für die Nutzung. Es wäre ja letztlich auch nur ein Flag, das im Output-Modul-Code abgefragt werden müsste.

zu 3.: Sorry, das mit den max. 2 Ebenen hatte ich falsch verstanden. Ich hab mal meinen Beitrag korrigiert, damit es nicht anderen auch so geht. Es steht aber glaube ich bisher auch noch nirgendwo explizit, oder?

zu 4. Button Positionen: hier geht es mir hauptsächlich um Ansätze, wie man die Sortierbarkeit vereinfachen kann. Meine MBlock-Module waren bisher oft so hoch, dass ich (bzw. die Redakteure) meist nur einen kleinen Teil davon gleichzeitig darstellen können – es ist also immer schwer, den Überblick zu behalten. Bei mir kommt deshalb auch die MBlock-Drag-Drop-Funktion kaum zum Einsatz, da ich für die Endposition eines zu verschiebenden Blocks oft scrollen muss. Dann nutze ich lieber die Pfeile. Deshalb die Vorschläge in diese Richtung – vielleicht gibts ja auch noch andere Ideen, um das Sortieren zu vereinfachen?

joachimdoerr commented 2 months ago

Ich hab jetzt erstmal ein paar Punkte aufgenommen, das mit dem Status muss ich mir noch überlegen. Es wäre halt ein Repeater-Status als zusätzliches Feld am Repeater-Block-Formular nötig, das ist schon sehr unschön, da greift dann der Repeater in das Formular zu Erfassung ein und belegt ein Schlüssel, dieser muss dann im Output auch von Hand berücksichtigt werden...