Seite 1 von 1

we:Eingabefelder mit ajax nachladen

Verfasst: Di 24. Mär 2020, 18:11
von Jens Degner
Hallo zusammen,
ich hoffe es geht euch in diesen chaotischen Zeiten allen gut!
Ich nutze die Zeit, um unsere Templates für den Redakteur moderner und benutzerfreundlicher zu gestalten. Dazu möchte ich gerne webEdion Eingabefelder (also bspw. ein we:input) im editmode über eine Schaltfläche per ajax nachladen. Ich würde das gerne über ajax machen, weil ich die sonst üblichen reloads in webEdition umgehen möchte (z.B. bei we:block).
Zum Teil gelingt mir das schon, aber webEdition stellt die Felder erst nach einem reload richtig dar. Und genau das will ich ja vermeiden.
Hat Jemand eine Idee, woran das liegt, bzw. kann mir sagen, was webEdition beim reload genau macht?
Grüße
Jens

Re: we:Eingabefelder mit ajax nachladen

Verfasst: Mi 25. Mär 2020, 02:57
von mokraemer
ich bin mir nicht sicher, ob das der richtige Weg ist das selbst so zu probieren.
Vermutlich müssen wir dann auch was an den Templates / der Blockgenerierung ändern. Egal ob RPC oder nicht, das Template muß "neu geladen werden", man könnte dann aber nur die Änderung an den Client schicken, was den Seitenaufbau ruhiger machen würde. Dazu müssen wir dann mal sehen, ob der Block dann Dummy-Elemente einfügen muß damit man die später per ajax greifen kann. Da muß man dann auch schauen ob das keine Nebeneffekte hat.

Ich denke das müssen wir schon im Core angehen, dazu hatten wir auch schon mal Überlegungen, die dann aus Zeitgründen erst mal pausiert wurden. Das wäre dann aber auch erst was für Barrhorn; Ich bin leider aktuell grad sehr eingespannt, und Barrhorn soll ja auch endlich fertig werden :)

Re: we:Eingabefelder mit ajax nachladen

Verfasst: Mi 25. Mär 2020, 11:18
von Finn
Wäre auf jeden Fall längerfristig eine super Funktion. Die Reloads im Backend gerade mit verschachtelten Blöcken sind für Redakteure sehr träge, was den Workflow ein bisschen stört.

Re: we:Eingabefelder mit ajax nachladen

Verfasst: Mi 25. Mär 2020, 17:58
von Jens Degner
Danke für die Antwort!
Ich habe in der Doku zum Thema "Eigene Tags erstellen" folgendes im Beispiel Quellcode gefunden: we_weTag_parser::printTag('a', $attribs, 'MyLink', false, true).
Tag parsen - das hört sich für mich so an als wäre es in etwa so etwas, was ich benötige. Könnte ich damit weiterkommen?
Schade, dass unsere Tagung jetzt nicht stattfinden kann, sonst hätte man sich dort mal mit dem Thema befassen können.

Re: we:Eingabefelder mit ajax nachladen

Verfasst: Do 26. Mär 2020, 09:29
von mokraemer
Also noch ist die Tagung nicht abgesagt, aber realistisch betrachtet findet sie wohl nicht statt.

Grundsätzlich kommst du damit weiter. Ich würde trotzdem überlegen die Änderungen für Barrhorn vorzusehen, da es hier einfach viele Änderungen gibt.
Bei einfachen Tags, wie z.B. <we:img> dürfte das einfach sein. Da sollte man dann einen spezielle Klasse im RPC-Bereich einfügen. Was definitiv Probleme macht, sind dann die if-Tags die genau auf sowas im Editmode triggern: <we:ifNotEmpty type="img"> - vermutlich wäre hier nur das Austauschen wirklich "sicher".
Ich glaube das war am Ende auch der Grund, warum wir es erst mal auf Eis gelegt haben - denn auch wenn man hier "nur" ein Bild nachladen muß, ändert sich evtl. das Verhalten der Vorlage.
Man müßte also selbst hier die Vorlage im rpc neu parsen + ausführen und die Änderungen zur alten Version suchen und geeignet übermitteln. Evtl. muß dazu jedes Tag gekapselt werden damit man es irgendwie ansprechen kann.... Ich denke es ist klar worauf ich raus will, du kannst hier ja auch noch mal etwas weiter denken, vielleicht hast du ja auch eine einfache Idee.

Re: we:Eingabefelder mit ajax nachladen

Verfasst: Do 26. Mär 2020, 15:48
von WBTMagnum
Das ist ein Gedanke den wir auch immer wieder mal gewälzt haben. Wir haben doch einige komplexere Templates mit verschachtelten Blöcken, da stören die Reloads schon erheblich. Wie Marc aber schon geschrieben hat, wird das mit reinen Ajax Calls nur bedingt behebbar sein, da hier die im Template abgebildete Logik nicht einfach abbildbar ist. Und das komplett auf den Client zu verfrachten widerspricht der aktuellen Umsetzung.

Vielleicht wäre aber eine Lösung mittels Shadow-DOM möglich. Das würde zwar noch immer die ganze Seite am Server parsen, der Aufbau am Client wäre aber viel ruhiger, weil nur die Änderungen im DOM eingespielt werden. So ähnliche Lösungen haben wir mit vue.js schon für einige Applikationen umgesetzt.

Liebe Grüße,
Sascha

Re: we:Eingabefelder mit ajax nachladen

Verfasst: Do 26. Mär 2020, 20:07
von mokraemer
ja, das mit dem Shadow hatte ich auch schon mal in Betracht gezogen, das Rendering der Seite beim Laden das ganze unruhig macht, könnte das schon auch eine Lösung sein. Soweit ich mich erinnere gibt es doch da zu Problemen mit JS Events.