templates/bundles/SonataAdminBundle/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.             {% if field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_DATETIME') and value is not empty %}
  8.                 {# it is a x-editable format https://vitalets.github.io/x-editable/docs.html#date #}
  9.                 {% set data_value = value|date('Y-m-d H:i:s', options.timezone|default(null)) %}
  10.             {% elseif field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_DATE') and value is not empty %}
  11.                 {# it is a x-editable format https://vitalets.github.io/x-editable/docs.html#date #}
  12.                 {% set data_value = value|date('Y-m-d', options.timezone|default(null)) %}
  13.             {% elseif field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_BOOLEAN') and value is empty %}
  14.                 {% set data_value = 0 %}
  15.             {% elseif value is iterable %}
  16.                 {% set data_value = value|json_encode %}
  17.             {% else %}
  18.                 {% set data_value = value %}
  19.             {% endif %}
  20. <td data-field="{{ field_description.options.attr.data_field | default(field_description.name) }}" data-value="{{ data_value }}" class="{{ field_description.options.attr.class | default('') }} sonata-ba-list-field sonata-ba-list-field-{{ field_description.type }}" objectId="{{ admin.id(object) }}" style="{{ field_description.options.attr.style | default('') }} {% if field_description.option('row_align') %}text-align:{{ field_description.option('row_align') }};{% endif %}">
  21.     {% set route_name = field_description.option('route').name|default(sonata_config.getOption('default_admin_route')) %}
  22.     {% set route_parameters = field_description.option('route').parameters|default([]) %}
  23.     {% if
  24.         field_description.option('identifier', false)
  25.         and admin.hasRoute(route_name)
  26.         and admin.hasAccess(route_name, route_name in ['show', 'edit'] ? object : null)
  27.     %}
  28.         {% set modalClass = '' %}
  29.         {% set modalAttr = '' %}
  30.         {% if(field_description.option('modal-link', false)) %}
  31.             {% set modalClass = 'modal-show' %}
  32.             {% set modalAttr = '' %}
  33.             {% for attr, value in field_description.option('modal-attr', []) %}
  34.                 {% set modalAttr = modalAttr ~ ' ' ~ attr ~ ' = "' ~ value ~ '"'%}
  35.             {% endfor %}
  36.         {% endif %}
  37.         <a class="sonata-link-identifier {{ modalClass }}" {{ modalAttr | raw }} href="{{ admin.generateObjectUrl(route_name, object, route_parameters) }}">
  38.             {%- block field %}
  39.                 {% apply spaceless %}
  40.                     {% if field_description.option('collapse') is not null %}
  41.                         {% set collapse = field_description.option('collapse') %}
  42.                         <div class="sonata-readmore"
  43.                              data-readmore-height="{{ collapse.height|default(40) }}"
  44.                              data-readmore-more="{{ collapse.more|default('read_more')|trans({}, 'SonataAdminBundle') }}"
  45.                              data-readmore-less="{{ collapse.less|default('read_less')|trans({}, 'SonataAdminBundle') }}">{{ value }}</div>
  46.                     {% else %}
  47.                         {{ value }}
  48.                     {% endif %}
  49.                 {% endapply %}
  50.             {% endblock -%}
  51.         </a>
  52.     {% else %}
  53.         {% set is_editable = field_description.option('editable', false) and admin.hasAccess('edit', object) %}
  54.         {% if is_editable and field_description.option('multiple', false) and value is iterable %}
  55.             {# multiple editable field should be real multiple #}
  56.             {# https://vitalets.github.io/x-editable/docs.html#checklist #}
  57.             {% set x_editable_type = 'checklist' %}
  58.         {% else %}
  59.             {% set x_editable_type = field_description.type|sonata_xeditable_type %}
  60.         {% endif %}
  61.         {% if is_editable and x_editable_type %}
  62.             {% set url = path(
  63.                 'sonata_admin_set_object_field_value',
  64.                 {
  65.                     '_sonata_admin': admin.baseCodeRoute,
  66.                     'context': 'list',
  67.                     'field': field_description.name,
  68.                     'objectId': admin.urlSafeIdentifier(object)
  69.                 } + (admin.hasRequest() ? admin.request.attributes.get('_route_params', {}) : {})
  70.                 + admin.getPersistentParameters()
  71.                 + app.request.query.all|default({})
  72.                 ) %}
  73.             <span {% block field_span_attributes %}class="x-editable"
  74.                   data-type="{{ x_editable_type }}"
  75.                   data-value="{{ data_value }}"
  76.                   {% if field_description.label is not same as(false) %}
  77.                       {% if field_description.translationDomain is same as(false) %}
  78.                           data-title="{{ field_description.label }}"
  79.                       {% else %}
  80.                           data-title="{{ field_description.label|trans({}, field_description.translationDomain) }}"
  81.                       {% endif %}
  82.                   {% endif %}
  83.                     {% if field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_DATE') %}
  84.                         data-format="yyyy-mm-dd"
  85.                     {% endif %}
  86.                   data-pk="{{ admin.id(object) }}"
  87.                   data-url="{{ url }}" {% endblock %}>
  88.                 {{ block('field') }}
  89.             </span>
  90.         {% else %}
  91.             {{ block('field') }}
  92.         {% endif %}
  93.     {% endif %}
  94. </td>