{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #} {% use 'bootstrap_4_layout.html.twig' %} {% block form_start %} {% if form.vars.errors|length > 0 and 'ea_crud' in form.vars.block_prefixes|default([]) %} {{ form_errors(form) }} {% endif %} {{ parent() }} {% endblock form_start %} {# Widgets #} {% block form_widget_simple -%} {% if type is not defined or type not in ['file', 'hidden'] %} {%- set attr = attr|merge({class: (attr.class|default(''))|trim}) -%} {% endif %} {%- if type is defined and (type == 'range' or type == 'color') %} {# Attribute "required" is not supported #} {%- set required = false -%} {% endif %} {{- parent() -}} {%- endblock form_widget_simple %} {% block date_widget -%}
{{- parent() -}}
{%- endblock date_widget %} {% block time_widget -%}
{{- parent() -}}
{%- endblock time_widget %} {% block file_widget -%} {% if vich|default(false) %} {%- set type = type|default('file') -%} {{- block('form_widget_simple') -}} {% else %} {{- parent() -}} {% endif %} {%- endblock %} {# Rows #} {% block form_row %} {% set row_attr = row_attr|merge({ class: row_attr.class|default('') ~ ' form-group' }) %}
{{- form_label(form) -}}
{% set has_prepend_html = ea.field.prepend_html|default(null) is not null %} {% set has_append_html = ea.field.append_html|default(null) is not null %} {% set has_input_groups = has_prepend_html or has_append_html %} {% if has_input_groups %}
{% endif %} {% if has_prepend_html %}
{{ ea.field.prepend_html|raw }}
{% endif %} {{ form_widget(form) }} {% if has_append_html %}
{{ ea.field.append_html|raw }}
{% endif %} {% if has_input_groups %}
{% endif %} {% set nullable_fields_fqcn = [ 'EasyCorp\Bundle\EasyAdminBundle\Field\DateTimeField', 'EasyCorp\Bundle\EasyAdminBundle\Field\DateField', 'EasyCorp\Bundle\EasyAdminBundle\Field\TimeField', ] %} {% if form.vars.ea_crud_form.ea_field.fieldFqcn|default(false) in nullable_fields_fqcn and ea.field.nullable|default(false) %}
{% endif %} {% if ea.field.help|default(form.vars.help) != '' %} {{ ea.field.help|default(form.vars.help)|raw }} {% endif %} {{- form_errors(form) -}}
{% endblock form_row %} {% block collection_row %} {% if prototype is defined and not prototype.rendered %} {% set row_attr = row_attr|merge({ 'data-prototype': form_row(prototype) }) %} {% endif %} {% set row_attr = row_attr|merge({ 'data-ea-collection-field': 'true', 'data-entry-is-complex': form.vars.ea_crud_form.ea_field and form.vars.ea_crud_form.ea_field.customOptions.get('entryIsComplex') ? 'true' : 'false', 'data-allow-add': allow_add ? 'true' : 'false', 'data-allow-delete': allow_delete ? 'true' : 'false', 'data-num-items': form.children|length, 'data-form-type-name-placeholder': prototype is defined ? prototype.vars.name : '', }) %} {{ block('form_row') }} {% endblock collection_row %} {% block collection_widget %} {{ block('form_widget') }} {% if allow_add|default(false) %} {% endif %} {% endblock collection_widget %} {% block collection_entry_widget %} {% set is_complex = form_parent(form).vars.ea_crud_form.ea_field.customOptions.get('entryIsComplex') ?? false %}
{{ form_widget(form) }} {% if form_parent(form).vars.allow_delete|default(false) %} {% endif %}
{% endblock collection_entry_widget %} {% block button_row -%}
{{- form_widget(form) -}}
{%- endblock button_row %} {# Labels #} {% block form_label -%} {% if label is not same as(false) -%} {%- if compound is defined and compound -%} {%- set element = 'legend' -%} {%- set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' col-form-label')|trim}) -%} {%- else -%} {%- set label_attr = label_attr|merge({for: id, class: (label_attr.class|default('') ~ ' form-control-label')|trim}) -%} {%- endif -%} {% if required -%} {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' required')|trim}) %} {%- endif -%} {% if label is empty -%} {%- if label_format is not empty -%} {% set label = label_format|replace({ '%name%': name, '%id%': id, }) %} {%- else -%} {% set label = name|humanize %} {%- endif -%} {%- endif -%} <{{ element|default('label') }}{% if label_attr %}{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}{% endif %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }} {%- endif -%} {%- endblock form_label %} {# Errors #} {% block form_widget_compound %}
{% if 'collection' in block_prefixes %} {# the "is iterable" check is needed because if an object implements __toString() and returns an empty string, "is empty" returns true even if it's not a collection #} {% set isEmptyCollection = value is null or (value is iterable and value is empty) %} {% if isEmptyCollection %} {{ block('empty_collection') }} {% endif %} {% if isEmptyCollection or form.vars.prototype is defined %} {% set attr = attr|merge({'data-empty-collection': block('empty_collection') }) %} {% endif %} {% endif %} {{ parent() }}
{% endblock form_widget_compound %} {% block empty_collection %}
{{ include(ea.templatePath('label/empty')) }}
{% endblock empty_collection %} {% block vich_file_row %} {% set force_error = true %} {{ block('form_row') }} {% endblock %} {% block vich_file_widget %}
{% if download_uri|default('') is not empty %} {% set download_title = download_uri|split('/')|last ?: 'download'|trans({}, 'VichUploaderBundle') %} {% set file_extension = download_uri|split('.')|last %} {% set extension_icons = { 'gif': 'fa-file-image-o', 'jpg': 'fa-file-image-o', 'pdf': 'fa-file-pdf-o', 'png': 'fa-file-image-o', 'zip': 'fa-file-archive-o' } %} {{ download_title }} {% endif %} {% set file_upload_js %} var newFile = document.getElementById('{{ form.file.vars.id }}').files[0]; var fileSizeInMegabytes = newFile.size > 1024 * 1024; var fileSize = fileSizeInMegabytes ? newFile.size / (1024 * 1024) : newFile.size / 1024; document.getElementById('{{ form.file.vars.id }}_new_file_name').innerText = newFile.name + ' (' + fileSize.toFixed(2) + ' ' + (fileSizeInMegabytes ? 'MB' : 'KB') + ')'; {% endset %}
{# the container element is needed to allow customizing the #}
{{ 'action.choose_file'|trans({}, 'EasyAdminBundle') }} {{ form_widget(form.file, { 'attr': { 'onchange': file_upload_js }, vich: true}) }}
{% if form.delete is defined %} {{ form_row(form.delete, { label: 'form.label.delete'|trans({}, 'VichUploaderBundle') }) }} {% endif %}
{% endblock %} {% block vich_image_row %} {% set force_error = true %} {{ block('form_row') }} {% endblock %} {% block vich_image_widget %} {% set formTypeOptions = ea_crud_form.ea_field.formTypeOptions|default('') %}
{% if image_uri|default('') is not empty %} {% if download_uri|default('') is empty %}
{% if formTypeOptions.imagine_pattern is defined and formTypeOptions.imagine_pattern is not empty %} {% else %} {% endif %}
{% else %} {% set _lightbox_id = 'ea-lightbox-' ~ id %} {% if formTypeOptions.imagine_pattern is defined and formTypeOptions.imagine_pattern is not empty %} {% else %} {% endif %}
{% if formTypeOptions.imagine_pattern is defined and formTypeOptions.imagine_pattern is not empty %} {% else %} {% endif %}
{% endif %} {% endif %} {% set file_upload_js %} var newFile = document.getElementById('{{ form.file.vars.id }}').files[0]; var fileSizeInMegabytes = newFile.size > 1024 * 1024; var fileSize = fileSizeInMegabytes ? newFile.size / (1024 * 1024) : newFile.size / 1024; document.getElementById('{{ form.file.vars.id }}_new_file_name').innerText = newFile.name + ' (' + fileSize.toFixed(2) + ' ' + (fileSizeInMegabytes ? 'MB' : 'KB') + ')'; {% endset %}
{# the container element is needed to allow customizing the #}
{{ 'action.choose_file'|trans({}, 'EasyAdminBundle') }} {{ form_widget(form.file, { 'attr': { 'onchange': file_upload_js }, vich: true}) }}
{% if form.delete is defined %} {{ form_row(form.delete, { label: 'form.label.delete'|trans({}, 'VichUploaderBundle') }) }} {% endif %}
{% endblock %} {% block ea_crud_rest %} {{ form_rest(form) }} {% endblock ea_crud_rest %} {# EasyAdmin form type #} {% block ea_crud_widget %} {% if ea_crud_form.form_tabs|length > 0 %}
{% else %} {{ block('ea_crud_widget_panels') }} {% endif %} {% endblock ea_crud_widget %} {% block ea_crud_widget_panels %} {% for panel_name, panel_config in ea_crud_form.form_panels|filter(panel_config => not panel_config.form_tab or panel_config.form_tab == tab_name) %} {% set panel_has_header = panel_config.label|default(false) or panel_config.icon|default(false) %} {% set collapsible = panel_config.collapsible %} {% set collapsed = panel_config.collapsed %}
{% if panel_has_header %}
{% if collapsible %} {% endif %} {% if panel_config.help|default(false) %}
{{ panel_config.help|raw }}
{% endif %}
{% endif %}
{% else %}
{% endfor %} {% endblock ea_crud_widget_panels %} {# EasyAdminAutocomplete form type #} {% block ea_autocomplete_widget %} {{ form_widget(form.autocomplete, { attr: attr|merge({ required: required }) }) }} {% endblock ea_autocomplete_widget %} {% block ea_autocomplete_inner_label %} {% set name = form_parent(form).vars.name %} {{ block('form_label') }} {% endblock ea_autocomplete_inner_label %} {# EasyAdmin's CodeEditor form type #} {% block ea_code_editor_widget %} {{ form_widget(form, { attr: attr|merge({ 'data-ea-code-editor-field': 'true', 'data-language': form.vars.ea_crud_form.ea_field.customOptions.get('language'), 'data-tab-size': form.vars.ea_crud_form.ea_field.customOptions.get('tabSize'), 'data-indent-with-tabs': form.vars.ea_crud_form.ea_field.customOptions.get('indentWithTabs') ? 'true' : 'false', 'data-show-line-numbers': form.vars.ea_crud_form.ea_field.customOptions.get('showLineNumbers') ? 'true' : 'false', }) }) }} {% set numOfRows = form.vars.ea_crud_form.ea_field.customOptions.get('numOfRows') %} {% if numOfRows is not null %} {% endif %} {% endblock ea_code_editor_widget %} {# EasyAdmin's TextEditor form type #} {% block ea_text_editor_widget %} {% set numOfRows = form.vars.ea_crud_form.ea_field.customOptions.get('numOfRows') %} {{ form_widget(form, { attr: attr|merge({ style: 'display: none', class: 'ea-text-editor-content' }) }) }}
{% if numOfRows %} {% endif %} {% endblock ea_text_editor_widget %} {# EasyAdminSection form type #} {% block ea_section_row %}

{% if ea.field.icon|default(false) %}{% endif %} {% if ea.field.label|default(false) %}{{ ea.field.label|default('')|trans(domain = ea.i18n.translationDomain)|raw }}{% endif %}

{% if ea.field.help|default(false) %}

{{ ea.field.help|trans(domain = ea.i18n.translationDomain)|raw }}

{% endif %}
{% endblock ea_section_row %} {# EasyAdminBatch form type #} {% block ea_batch_widget %} {% set _trans_parameters = { '%entity_name%': ea.entity.name|trans(domain = ea.i18n.translationDomain), '%entity_label%': ea.entity.label|trans(domain = ea.i18n.translationDomain) } %} {{ form_widget(form.ids) }} {% for action in batch_actions %} {% endfor %} {% endblock ea_batch_widget %} {# EasyAdminFilters form type #} {% block ea_filters_widget %} {% set applied_filters = ea.request.query.get('filters')|default([])|keys %} {% for field in form %}
{{ field.vars.label|default(field.vars.name|humanize)|trans(domain = ea.i18n.translationDomain) }}
{{ form_widget(field) }}
{% endfor %} {{ include('@EasyAdmin/crud/includes/_select2_widget.html.twig') }} {% endblock ea_filters_widget %} {% block ea_numeric_filter_widget %}
{{ form_row(form.comparison) }} {{ form_row(form.value) }}
{{ form_row(form.value2) }}
{{- form_errors(form) -}} {% endblock ea_numeric_filter_widget %} {% block ea_datetime_filter_widget %} {{ block('ea_numeric_filter_widget') }} {% endblock ea_datetime_filter_widget %} {% block ea_fileupload_widget %}
{% set placeholder = '' %} {% set title = '' %} {% set filesLabel = 'files'|trans({}, 'EasyAdminBundle') %} {% if currentFiles %} {% if multiple %} {% set placeholder = currentFiles|length ~ ' ' ~ filesLabel %} {% else %} {% set placeholder = (currentFiles|first).filename %} {% set title = (currentFiles|first).mTime|date %} {% endif %} {% endif %} {{ form_widget(form.file, { attr: form.file.vars.attr|merge({ placeholder: placeholder, title: title, 'data-files-label': filesLabel }) }) }}
{%- if currentFiles -%} {% if multiple %} {{ (currentFiles|reduce((carry, file) => carry + file.size))|ea_filesize }} {% else %} {{ (currentFiles|first).size|ea_filesize }} {% endif %} {%- endif -%} {% if allow_delete %} {% endif %}
{% if multiple and currentFiles %}
{% for file in currentFiles %} {% endfor %}
{% if download_path %}{% endif %} {{ file.filename }} {% if download_path %}{% endif %} {{ file.size|ea_filesize }}
{% endif %} {% if allow_delete %}
{{ form_widget(form.delete, { label: false }) }}
{% endif %}
{{ form_errors(form.file) }} {% endblock %} {% block ea_slug_widget %} {% set attr = attr|merge({ 'data-ea-slug-field': '', 'data-target': form.parent.children[target].vars.id }) %}
{{ block('form_widget') }}
{% endblock %}