{% macro renderDynamicFields(entity, entity_class = null, ignoredFields = {}) %} {% import _self as entityConfigMacros %} {% import '@OroUI/macros.html.twig' as ui %} {% set dynamicFields = oro_get_dynamic_fields(entity, entity_class) %} {% if dynamicFields is defined and dynamicFields|length %} {% for fieldName, item in dynamicFields %} {% if fieldName not in ignoredFields %} {{ ui.renderHtmlProperty( item.label|trans, entityConfigMacros.formatDynamicFieldValue( entity, entity_class, fieldName, item ) ) }} {% endif %} {% endfor %} {% endif %} {% endmacro %} {% macro renderDynamicField(entity, field) %} {% import '@OroUI/macros.html.twig' as ui %} {% import _self as entityConfigMacros %} {% set dynamicField = oro_get_dynamic_field(entity, field) %} {% if dynamicField %} {{ ui.renderHtmlProperty( dynamicField.label|trans, entityConfigMacros.formatDynamicFieldValue( entity, field.entity.className, field.fieldName, dynamicField ) ) }} {% endif %} {% endmacro %} {% macro formatDynamicFieldValue(entity, entity_class, field_name, item) %} {% import _self as entityConfigMacros %} {% set hasLink = false %} {% set fieldValue = item.value %} {% if fieldValue is iterable %} {% if fieldValue.values is defined %} {%- for value in fieldValue.values -%} {{- entityConfigMacros.renderField(value) -}} {%- if not loop.last -%} ,  {%- endif -%} {%- else -%} {{- 'N/A'|trans -}} {%- endfor -%} {% else %} {{ entityConfigMacros.renderField(fieldValue) }} {% endif %} {% else %} {{ entityConfigMacros.renderFormatted(entity, entity_class, field_name, item) }} {% endif %} {% endmacro %} {% macro renderFormatted(entity, entity_class, field_name, item) %} {% import '@OroUI/macros.html.twig' as UI %} {% set value = item.value %} {% set type = item.type %} {% if type == 'text' and value %} {% set value %} {{ value|nl2br }} {% endset %} {% elseif type == 'html' %} {{ UI.renderCollapsibleHtml( value|oro_html_sanitize|default('N/A'|trans)|raw, entity, item.label ) }} {% elseif type == 'boolean' and value is not null %} {% set value = value ? 'Yes'|trans : 'No'|trans %} {% elseif type == 'money' %} {% set value = value ? value | oro_format_currency : null %} {% elseif type == 'decimal' or type == 'float' %} {% set value = value ? value | oro_format_decimal : null %} {% elseif type == 'percent' %} {% set value = value ? value | oro_format_percent : null %} {% elseif type == 'date' %} {% set value = value ? value | oro_format_date : null %} {% elseif type == 'datetime' %} {% set value = value ? value | oro_format_datetime : null %} {% endif %} {% if type == 'wysiwyg' %} {{ UI.renderCollapsibleWysiwygContentPreview(value) }} {% elseif type != 'html' %} {{ value|default('N/A'|trans) }} {% endif %} {% endmacro %} {% macro renderField(value) %} {% import '@OroUI/macros.html.twig' as ui %} {% if value.template is defined %} {{ include(value.template, { data: value}) }} {% elseif value.link is defined and value.link != false %} {{ ui.renderUrl(value.link, value.title) }} {% elseif value.raw is defined %} {{ value.title|raw }} {% else %} {{- value.title|escape -}} {% endif %} {% endmacro %} {% macro displayLayoutActions(actions) %} {% import '@OroUI/macros.html.twig' as UI %} {% for button in actions %} {% set componentData = {} %} {% if button.page_component_module is defined %} {% set componentData = {'page-component-module' : button.page_component_module} %} {% if button.page_component_options is defined %} {% set componentData = componentData|merge({ 'page-component-options' : button.page_component_options|json_encode }) %} {% endif %} {% endif %} {{ UI.button({ 'path' : button.void is defined ? '#' : path(button.route, button.args|default({})), 'data' : { 'url' : button.void is defined ? path(button.route, button.args|default({})) : null, }|merge(componentData), 'iCss' : button.iCss|default(''), 'aCss' : button.aCss|default(''), 'title' : button.title|default(button.name)|trans, 'label' : button.name|trans }) }} {% endfor %} {% endmacro %}