...
- To create a new button, open the form in the form builder.
- Create a new section at the bottom of the form.
- Edit the section's load binderdata store, and set it to Bean Shell Form Binderdata store.
In the Bean Shell Form Binderdata store, add the following code.
Code Block language java import org.joget.apps.form.lib.SubmitButton; import org.joget.apps.form.lib.CustomHTML; import org.joget.apps.form.model.Column; import org.joget.apps.form.model.Element; import org.joget.apps.form.model.FormAction; import org.joget.apps.form.model.FormData; import org.joget.apps.form.model.Section; import org.joget.apps.form.service.FormUtil; import java.util.ArrayList; import java.util.Collection; Collection formActions = new ArrayList(); String saveButtonLabel = "Save As Draft with Validation"; Element saveButton = new SubmitButton(); saveButton.setProperty(FormUtil.PROPERTY_ID, "customSaveAsDraft"); saveButton.setProperty("label", saveButtonLabel); formActions.add(saveButton); Section section = element; ArrayList columns = (ArrayList) section.getChildren(); Column column = columns.get(0); column.setProperty("horizontal", "true"); column.setChildren(formActions); //add a custom html to fix the layout issue Element html = new CustomHTML(); String script = "<script>$(document).ready(function(){"; script += "$(\"#"+section.getPropertyString("id")+"\").find(\".form-cell\").prependTo(\"#section-actions .form-column\");"; script += "$(\"#"+section.getPropertyString("id")+"\").remove();"; script += "});</script>"; html.setProperty("id", "button_layout_fixes"); html.setProperty("label", ""); html.setProperty("value", script); formActions.add(html); return null;
...