////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////

==== f:all

===== Purpose

Renders fields for all properties of an object by using `f:field` for each property.

The `id`, `version`, `dateCreated` and `lastUpdated` properties are skipped on domain classes. Additionally any property with a `display: false` constraint set will be skipped.


===== Attributes

.Attributes for f:all
[options="header",cols="1,1,3"]

|===
|Name | Required | Description

|*bean*
|if not inside `f:with`
|The bean whose property is being rendered. This can be the object itself or the name of a page-scope variable.

|*except*
| N/A
|A comma-separated list of properties that should be skipped (in addition to the defaults).

|*order*
| N/A
|A comma-separated list of properties which represents the order in which the tag should generate fields.

|*prefix*
|String
|A string (including the trailing period) that should be appended before the input name such as `name="${prefix}propertyName"`.  The label is also modified.

|*theme*
|String
|Theme to use if available.
|===



===== Extra attributes (Since version 2.1.4)


You can pass extra attributes to the *all* tag that will be propagated to the inner fields.


===== Example


[source,groovy]
----
<f:all bean="person" wrapper="someWrapper"/>
----

In that way all the fields are going to be executed as if they were executed with the extra attribute on them.

NOTE: Remember that if you want to use some of those attributes in the *widget* templates you need to prefix them with the *widget-* word (unless you have configured another prefix)