Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Zweiter Submit Button - andere Funktion

More
2 months 4 days ago #10423 by Schulamt
Zweiter Submit Button - andere Funktion was created by Schulamt
Hallo liebes Team,

mittlerweile arbeite ich sehr gerne und oft mit den Frontend-Webassets. Das ist echt ne tolle Sache. So prüfe komplexe Eingaben auf ihre Plausibilität.
Den Submit-Button graue ich aus, bis alle Felder gefüllt oder die Berechnungen der Eingaben alle Prüfungen bestanden haben.
Unsere Nutzer haben sich nun eine Möglichkeit gewünscht, ihre bisherigen Eingaben zwischenzuspeichern.
Hierzu, dachte ich, wäre ein zweiter Submit-Button sinnvoll. Dieser ist immer klickbar ohne eine Prüfung bestehen zu müssen. Allerdings sollte dieser die Datensätze dann als versteckt anlegen.
Wird der Datensatz editiert und dann statt zwischenspeichern das Formular mit dem eigentlichen Submit-Button abgeschickt, so soll der Datensatz auf veröffentlicht gesetzt werden. So weiß ich als Admin, dass der Datensatz nun vollständig ist und kann damit weiterarbeiten.

Fällt die eine Möglichkeit ein, dies umzusetzen?

Danke im Voraus und viele Grüße
Michael

More
2 months 4 days ago #10424 by MaliRaj
Replied by MaliRaj on topic Zweiter Submit Button - andere Funktion
Mein Gedanken dazu:
Je nachdem, wie viel Zeit zwischen dem "Zwischenspeichern" und dem "Fertig" liegt, könnte man das auch ohne einen zweiten Button mit Hilfe von Cookies mit entsprechender Gültigkeitsdauer lösen. Das ist eine klassische "Warenkorb-merken"-Funktion.

Mit einem zweiten Button wäre zwar mit den FEWAs ein "Zwischenspeichern" ohne browserseitige Validierung möglich, aber wohl nur zusammen mit einem Custom-Plugin kann man in den passenden Events die Option "Datensatz automatisch veröffentlichen" ja/nein steuern.

Eine weitere Möglichkeit ohne Custom-Plugin wäre, ein Edit-only-Status-Feld in das Formular einzufügen, z.Bsp. eine Radio-Gruppe mit den Optionen 1 = in Bearbeitung, 2 = fertig. Das könnte man in den FEWAs auswerten (evtl. den Submit-Button aktivieren/deaktivieren) und in den Listenansichten wäre der Bearbeitungsstatus auch erkennbar.

Freundliche Grüße aus PM
Heinz

More
2 months 4 days ago #10425 by Administrator IV
Replied by Administrator IV on topic Zweiter Submit Button - andere Funktion
Hallo Michael,

die
- individuelle Steuerung des Datensatz-Status 'veröffentlicht',
- für den gegebenen Datensatz,
- beim Absenden des Formulars,
- für die beiden Fälle 'Abschicken' und 'Editieren',
- erfolgt am besten und sehr direkt in einem Custom Plugin.

Du brauchst einen möglichst einfachen Mechanismus, die beiden Fälle zu unterscheiden.
Da gibt es zahlreiche Möglichkeiten.
Eine grundsätzliche einfache und übersichtliche Lösung wäre, dass der Button-Klick für beide Buttons jeweils eine andere 'Spur' hinterlässt.
Anhand dieser 'Spur' reagierst du im Custom Plugin entsprechend.
Diese 'Spur' könnte etwa das Setzen eines zusätzlichen versteckten Feldes sein, dass speziell für diesen Zweck angelegt wurde.

Du nutzt die beiden folgenden Events für 'Abschicken' und 'Editieren'.
Du bündelst die Bearbeitung in einer privaten Hilfs-Funktion, welche die gesamte Logik an einer Stelle enthält:
Code:
public function onVisformsAfterFormSave(VisformsAfterFormSaveEvent $event): void {     // Form submitted event     $this->handleRecordsetStatePublished($event->getContext(), $event->getForm(), $event->getFields()); } public function onVisformsAfterEditFormSave(VisformsAfterEditFormSaveEvent $event): void {     // Form data edited event     $this->handleRecordsetStatePublished($event->getContext(), $event->getForm(), $event->getFields()); } private function handleRecordsetStatePublished($context, $form, $fields): void {     // context = 'com_visforms.form'          // handle published/unpublished of data recordset          // test for published/unpublished     // your code ...          // write published/unpublished to form data recordset     // your code ... }

Falls du Hilfe bei der Entwicklung des Plugins benötigst, dann können wir dich gerne dabei unterstützen - auch mit der kompletten Implementierung.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
1 month 3 days ago #10485 by Schulamt
Replied by Schulamt on topic Zweiter Submit Button - andere Funktion
Vielen Dank für die beiden Antworten.

Prinzipiell ist auch die Möglichkeit über einen Radiobutton nicht schlecht und vor allem sehr schnell umzusetzen, danke hierfür!

Das Schreiben eines Custom-Plugins, gehe ich mal an, wenn ich Zeit finde.
Bei Erfolg oder Misserfolg melde ich mich nochmal :).

VG Michael

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum