drupal/core/themes/claro/templates/content-edit/file-managed-file.html.twig

68 lines
2.2 KiB
Twig

{#
/**
* @file
* Theme override to display a file form widget.
*
* Available variables:
* - main_items: Main render elements of the file or image widget:
* file name, upload input, upload and remove buttons and hidden inputs.
* - data: Other render elements of the image widget like preview, alt or title,
* or the description input and the display checkbox of the file widget.
* - display: A flag indicating whether the display field is visible.
* - attributes: HTML attributes for the containing element.
* - multiple: Whether this widget is the part of a multi-value file widget or
* not.
* - upload: Whether the file upload input is displayed or not.
* - has_value: true if the widget already contains a file.
* - has_meta: true when the display checkbox or the description, alt or title
* inputs are enabled and at least one of them is visible.
*
* @see template_preprocess_file_managed_file()
* @see claro_preprocess_file_managed_file()
*/
#}
{%
set classes = [
'js-form-managed-file',
'form-managed-file',
multiple ? 'is-multiple' : 'is-single',
upload ? 'has-upload' : 'no-upload',
has_value ? 'has-value' : 'no-value',
has_meta ? 'has-meta' : 'no-meta',
]
%}
<div{{ attributes.addClass(classes).removeClass('clearfix') }}>
<div class="form-managed-file__main">
{{ main_items.filename }}
{{ main_items|without('filename') }}
</div>
{% if has_meta or data.preview %}
<div class="form-managed-file__meta-wrapper">
<div class="form-managed-file__meta">
{% if data.preview %}
<div class="form-managed-file__image-preview image-preview">
<div class="image-preview__img-wrapper">
{{ data.preview }}
</div>
</div>
{% endif %}
{% if data.description or display or data.alt or data.title %}
<div class="form-managed-file__meta-items">
{{ data.description }}
{% if display %}
{{ data.display }}
{% endif %}
{{ data.alt }}
{{ data.title }}
</div>
{% endif %}
</div>
</div>
{% endif %}
{# Every third-party addition will be rendered here. #}
{{ data|without('preview', 'alt', 'title', 'description', 'display') }}
</div>