Skip to content
Snippets Groups Projects
Solid-Form.rst 4.9 KiB
Newer Older
.. _solid-form:
solid-form
==========

Receives the URL of a ressource via its ``data-src`` attribute, and
displays a form to edit the resource. If given the URL of a container of
ressources, and displays a creation form to add a resource to the
container.

.. code:: html

Matthieu Fesselier's avatar
Matthieu Fesselier committed
   <solid-form data-src="http://server/todos/"></solid-form>
Matthieu Fesselier's avatar
Matthieu Fesselier committed
Mixins
------

This component uses the following mixins:
   * :ref:`next-mixin <next-mixin>`
   * :ref:`store-mixin <store-mixin>`
   * :ref:`validation-mixin <validation-mixin>`
   * :ref:`widget-mixin <widget-mixin>`
Matthieu Fesselier's avatar
Matthieu Fesselier committed

Please check their documentation to know more about their capabilities.

Attributes
----------
``fields``
~~~~~~~~~~
   List of the fields used to create the form (by default, all of them are used).

Matthieu Fesselier's avatar
Matthieu Fesselier committed
``label-[field]``
~~~~~~~~~~~~~~~~~
   When displaying a form, the default labels are the fields names of the model.
   If you want something fancier, you can set this attribute.
   i.e. ``label-username="Your name"``

``naked``
~~~~~~~~~
   When the attribute is set, the submit button will be
   removed. It’s particularly useful to prevent the nested forms to
   display their own submit button.
Matthieu Fesselier's avatar
Matthieu Fesselier committed
``upload-url-[field]``
~~~~~~~~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   URL to upload file for field ``[field]``, it
   automatically set ``widget-[field]`` to ``solid-form-file`` if net defined.
   It’s particularly useful with a dropdown field.

``submit-button``
~~~~~~~~~~~~~~~~~
   Text of the submit button of the form.

Matthieu Fesselier's avatar
Matthieu Fesselier committed
``range-[field]``
~~~~~~~~~~~~~~~~~
   URL of a container which list the accepted values
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   for the field ``[field]``. It’s particularly useful with a dropdown
Matthieu Fesselier's avatar
Matthieu Fesselier committed
``enum-[field]``
~~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   *Available from version 0.13*

Matthieu Fesselier's avatar
Matthieu Fesselier committed
   List of values of your choice for the field ``[field]``. 
Manon Bourgognon's avatar
Manon Bourgognon committed
   They have to be filled manually and must be separated by commas. 
   It’s particularly useful with a dropdown or radio field.

   Two formats are possible:
Matthieu Fesselier's avatar
Matthieu Fesselier committed
      * ``enum-[field]="value 1, value 2, value 3"`` : each value will be displayed 
Manon Bourgognon's avatar
Manon Bourgognon committed
      and loaded in value attribute
Matthieu Fesselier's avatar
Matthieu Fesselier committed
      * ``enum-[field]="value1 = a, value2 = b, value3 = c"``: each value will be displayed 
Manon Bourgognon's avatar
Manon Bourgognon committed
      and "a", "b", "c" will be loaded in value attribute.

Matthieu Fesselier's avatar
Matthieu Fesselier committed
``order-asc-[field]`` or ``order-desc-[field]``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   Name of the field used to order the range list ``[field]``.
``partial``
~~~~~~~~~~~
   Add this attribute when the form does not include
   all the fields of the resource to update.
Matthieu Fesselier's avatar
Matthieu Fesselier committed
``min-[field]``
~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   Add this attribute for the field ``[field]`` to define its minimum value.
   It works only with a ``solid-form-number`` widget.

Matthieu Fesselier's avatar
Matthieu Fesselier committed
``max-[field]``
~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   Add this attribute for the field ``[field]`` to define its maximum value.
   It works only with a ``solid-form-number`` widget.

Matthieu Fesselier's avatar
Matthieu Fesselier committed
``pattern-[field]``
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   *Available from version 0.13*

Matthieu Fesselier's avatar
Matthieu Fesselier committed
   Add this attribute for the field ``[field]`` to define a regular expression to check the input's value.
   It works only with a ``solid-form-text`` widget.

Matthieu Fesselier's avatar
Matthieu Fesselier committed
``title-[field]``
~~~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   *Available from version 0.13*

Matthieu Fesselier's avatar
Matthieu Fesselier committed
   Add this attribute for the field ``[field]`` to precise extra information about an element.
   It works only with a ``solid-form-text`` widget.

``confirmation-message``
~~~~~~~~~~~~~~~~~~~~~~~~
Matthieu Fesselier's avatar
Matthieu Fesselier committed
   *Available from version 0.13*
   **Migrated to the validation mixin page in version 0.16**
Matthieu Fesselier's avatar
Matthieu Fesselier committed

   Add this attribute to create a dialog box linked with the submit button of the solid-form.
   Its value matches the message displayed in the dialog box.

``autocomplete-[field]``
~~~~~~~~~~~~~~~~~~~~~~~~
   *Available from version 0.15*

Manon Bourgognon's avatar
Manon Bourgognon committed
   Equal to the value ``off``, it cancels the automatic entry of values in the relevant ``[field]``.
   It can be added to ``inputs``, ``textarea`` and ``select``.
``autosave``
~~~~~~~~~~~~
   *Available from version 0.16*

   If the attribute is defined, each change in an input will trigger a request to update the resource.
   This attribute works only when editing resources, not creating them.

``maxlength-[field]``
~~~~~~~~~~~~~~~~~~~~~
   Add this attribute for the field ``[field]`` to define the maximum number of characters that can be typed.
   It works only with ``<input type="text">``, ``solid-form-email`` or ``solid-form-password`` and ``solid-form-textarea`` widgets.

``minlength-[field]``
~~~~~~~~~~~~~~~~~~~~~
   Add this attribute for the field ``[field]`` to define the minimum number of characters that can be typed.
   It works only with ``<input type="text">``, ``solid-form-email`` or ``solid-form-password`` and ``solid-form-textarea`` widgets.
Widgets
-------
By default, the widget used is ``<solid-form-label-text>``. Cf the
Matthieu Fesselier's avatar
Matthieu Fesselier committed
`Widget <https://docs.startinblox.com/import_documentation/Widgets/Reference.html>`__ page for more info.
Matthieu Fesselier's avatar
Matthieu Fesselier committed
Events
-------

``formChange``
~~~~~~~~~~~~~~
   Triggered when the form values change

``save``
~~~~~~~~~~~~~~
   Triggered when the response of the submit has been received (successfull or not)