Jmix version: 2.5.2
Jmix Studio Plugin Version: 2.5.2-243
IntelliJ version: OpenIDE 2024.3.5
Добрый день!
При использовании PropertyFilter в XML конфигурациях Generic Filter для полей с Сущностями в JMIX используется EntityPicker, который не удобен, если значений в справочнике мало, в этих случаях лучше использовать EntityComboBox.
В XML конфигурации фильтра можно для propertyFilter переопределить использующийся компонент например:
<genericFilter id="genericFilter"
dataLoader="tasksDl">
<properties include=".*"/>
<configurations>
<configuration id="defaultTaskGFConfig" default="true">
<propertyFilter property="category" operation="EQUAL">
<entityComboBox id="taskCategoryComboBox" dataContainer="tasksDc" property="category" required="false">
<itemsQuery class="com.company.testgfcustom.entity.TaskCategory" escapeValueForLike="true"
searchStringFormat="(?i)%${inputString}%">
<fetchPlan extends="_base"/>
<query>
<![CDATA[select e from TaskCategory e where e.name like :searchString escape '\' order by e.name]]>
</query>
</itemsQuery>
<actions>
<action id="entityClear" type="entity_clear"/>
</actions>
</entityComboBox>
</propertyFilter>
</configuration>
</configurations>
</genericFilter>
В этом случае вместо EntityPicker будет использоваться EntityComboBox. Но есть проблема, которая заключается в том, что к этому EntityComboBox применяются валидаторы, например если Task.category
помечен как mandatory
то в фильтре он будет invalid
, даже если везде проставить required="false"
, т.е. атрибут required в XML просто игнорируется.
На мой взгляд это ошибка, нормальным поведением было бы убирать валидатор required в GenericFilter.
Есть ли способ обойти такое поведение?