Stefan Meyer edited this page Dec 24, 2013 · 14 revisions

gform (dojo-generate-form)

Start reading about gform here.

gform provides a widget that renders a form according to a schema. gform uses dojo as the widget library. Main usage is the creation of administrative front ends. The model driven approach lends itself perfectly to creating a form for backend data models.

json literals are made up of properties. In gform these properties are referred to as attributes.

###Features

  • dojo clientside validation is supported.
  • serverside validation is supported. The error message can be set by a path expression. editor.addError("addresses.0.name","the name is not valid"). Errors added in this manner can be removed by calling editor.resetErrors().
  • changes to attributes are tracked. Each attribute label is decorated with an icon to signal that it was changed. The tooltip contains the original value.
  • groups can be used to add structure to the display of the form. Without a group all attributes are simply displayed in a list. A group can display group of attributes in a tabs, accordions or similar containers. Groups indicate the number of invalid attributes next to the label.
  • The data displayed in the form can be programmatically modified after form creation. The form will be updated accordingly. This is useful for browsing the details of elements in a table. The details form is updated when the user switches between elements in the table.
  • Attributes in the model can be updated by path expressions editor.update("stocks.apple.price",12.2). This is useful to display serverside changes to the model.
  • A function is provided to convert json schema into the gform schema.

###Limitations

Currently the schema does not allow for a properties with arbitrary keys. This can be emulated by using an array with a unique key property.

Further Reading

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.