vendor/sonata-project/admin-bundle/src/Resources/views/CRUD/base_list_field.html.twig line 1

Open in your IDE?
  1. {#
  2. This file is part of the Sonata package.
  3. (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  4. For the full copyright and license information, please view the LICENSE
  5. file that was distributed with this source code.
  6. #}
  7. <td class="sonata-ba-list-field sonata-ba-list-field-{{ field_description.type }}" objectId="{{ admin.id(object) }}"{% if field_description.option('row_align') %} style="text-align:{{ field_description.option('row_align') }}"{% endif %}>
  8.     {% set route_name = field_description.option('route').name|default(sonata_config.getOption('default_admin_route')) %}
  9.     {% set route_parameters = field_description.option('route').parameters|default([]) %}
  10.     {% if
  11.         field_description.option('identifier', false)
  12.         and admin.hasRoute(route_name)
  13.         and admin.hasAccess(route_name, route_name in ['show', 'edit'] ? object : null)
  14.     %}
  15.         <a class="sonata-link-identifier" href="{{ admin.generateObjectUrl(route_name, object, route_parameters) }}">
  16.             {%- block field %}
  17.                 {% apply spaceless %}
  18.                     {% if field_description.option('collapse') is not null %}
  19.                         {% set collapse = field_description.option('collapse') %}
  20.                         <div class="sonata-readmore"
  21.                               data-readmore-height="{{ collapse.height|default(40) }}"
  22.                               data-readmore-more="{{ collapse.more|default('read_more')|trans({}, 'SonataAdminBundle') }}"
  23.                               data-readmore-less="{{ collapse.less|default('read_less')|trans({}, 'SonataAdminBundle') }}">{{ value }}</div>
  24.                     {% else %}
  25.                         {{ value }}
  26.                     {% endif %}
  27.                 {% endapply %}
  28.             {% endblock -%}
  29.         </a>
  30.     {% else %}
  31.         {% set is_editable = field_description.option('editable', false) and admin.hasAccess('edit', object) %}
  32.         {% if is_editable and field_description.option('multiple', false) and value is iterable %}
  33.             {# multiple editable field should be real multiple #}
  34.             {# https://vitalets.github.io/x-editable/docs.html#checklist #}
  35.             {% set x_editable_type = 'checklist' %}
  36.         {% else %}
  37.             {% set x_editable_type = field_description.type|sonata_xeditable_type %}
  38.         {% endif %}
  39.         {% if is_editable and x_editable_type %}
  40.             {% set url = path(
  41.                 'sonata_admin_set_object_field_value',
  42.                 {
  43.                     '_sonata_admin': admin.baseCodeRoute,
  44.                     'context': 'list',
  45.                     'field': field_description.name,
  46.                     'objectId': admin.urlSafeIdentifier(object)
  47.                 } + (admin.hasRequest() ? admin.request.attributes.get('_route_params', {}) : {})
  48.                 + admin.getPersistentParameters()
  49.                 + app.request.query.all|default({})
  50.             ) %}
  51.             {% if field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_DATE') and value is not empty %}
  52.                 {# it is a x-editable format https://vitalets.github.io/x-editable/docs.html#date #}
  53.                 {% set data_value = value|date('Y-m-d', options.timezone|default(null)) %}
  54.             {% elseif field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_BOOLEAN') and value is empty %}
  55.                 {% set data_value = 0 %}
  56.             {% elseif value is iterable %}
  57.                 {% set data_value = value|json_encode %}
  58.             {% else %}
  59.                 {% set data_value = value %}
  60.             {% endif %}
  61.             <span {% block field_span_attributes %}class="x-editable"
  62.                   data-type="{{ x_editable_type }}"
  63.                   data-value="{{ data_value }}"
  64.                   {% if field_description.label is not same as(false) %}
  65.                       {% if field_description.translationDomain is same as(false) %}
  66.                           data-title="{{ field_description.label }}"
  67.                       {% else %}
  68.                           data-title="{{ field_description.label|trans({}, field_description.translationDomain) }}"
  69.                       {% endif %}
  70.                   {% endif %}
  71.                   {% if field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_DATE') %}
  72.                     data-format="yyyy-mm-dd"
  73.                   {% endif %}
  74.                   data-pk="{{ admin.id(object) }}"
  75.                   data-url="{{ url }}" {% endblock %}>
  76.                 {{ block('field') }}
  77.             </span>
  78.         {% else %}
  79.             {{ block('field') }}
  80.         {% endif %}
  81.     {% endif %}
  82. </td>