I have fieldsets defined to display and edit my content correctly, they are defined into my metadata set like this :
<cms:metadata-ref name="adresse"> <cms:fieldset role="fieldset"> <cms:label i18n="false">Adresse</cms:label> <cms:metadata-ref name="numero" /> <cms:metadata-ref name="typeVoie" /> <cms:metadata-ref name="nomVoie" /> <cms:metadata-ref name="commune" /> <cms:metadata-ref name="codePostal" /> </cms:fieldset> <cms:fieldset role="fieldset"> <cms:label i18n="false">Coordonnées numériques</cms:label> <cms:metadata-ref name="web" /> <cms:metadata-ref name="telephone" /> <cms:metadata-ref name="fax" /> <cms:metadata-ref name="courriel" /> </cms:fieldset> <cms:fieldset role="fieldset"> <cms:label i18n="false">Coordonnées GPS</cms:label> <cms:metadata-ref name="gps" /> </cms:fieldset> </cms:metadata-ref>
In this example, adresse is a composite, so maybe I can separate each groups (but I'm not sure that multiple metadata-ref with the same name are supported). But if I have the same case (and it is) in a repeater, it's a real problem.
Here is the logs of the cause :
Caused by: org.apache.avalon.framework.configuration.ConfigurationException: The group 'adresse' can't contain something else than model view items, configured with 'metadata-ref' elements. [myFile]:[line]:[column] at org.ametys.cms.contenttype.DefaultContentType._parseModelViewItem(DefaultContentType.java:1185) at org.ametys.cms.contenttype.DefaultContentType._fillViewItems(DefaultContentType.java:1111) at org.ametys.cms.contenttype.DefaultContentType._parseView(DefaultContentType.java:1085) at org.ametys.cms.contenttype.DefaultContentType._parseViews(DefaultContentType.java:1052) at org.ametys.cms.contenttype.DefaultContentType._configureViews(DefaultContentType.java:996) at org.ametys.cms.contenttype.DefaultContentType.configure(DefaultContentType.java:376) at org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:202) at org.ametys.runtime.plugin.component.ThreadSafeComponentManager$ComponentFactory.configureAndStart(ThreadSafeComponentManager.java:359) at org.ametys.runtime.plugin.component.ThreadSafeComponentManager$ComponentFactory.newInstance(ThreadSafeComponentManager.java:378) at org.ametys.runtime.plugin.component.ThreadSafeComponentManager.lookup(ThreadSafeComponentManager.java:138) ... 102 more
The old API allowed it
The new API did not
Currently contents are manipulated with the old API
By now, the new API only log it as an error and ignore it