base_show.html.twig 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. {% extends base_template %}
  8. {%- block actions -%}
  9. {% include 'SonataAdminBundle:CRUD:action_buttons.html.twig' %}
  10. {%- endblock -%}
  11. {% block tab_menu %}
  12. {{ knp_menu_render(admin.sidemenu(action), {
  13. 'currentClass' : 'active',
  14. 'template': sonata_admin.adminPool.getTemplate('tab_menu_template')
  15. }, 'twig') }}
  16. {% endblock %}
  17. {% block show %}
  18. <div class="sonata-ba-view">
  19. {{ sonata_block_render_event('sonata.admin.show.top', { 'admin': admin, 'object': object }) }}
  20. {% set has_tab = (admin.showtabs|length == 1 and admin.showtabs|keys[0] != 'default') or admin.showtabs|length > 1 %}
  21. {% if has_tab %}
  22. <div class="nav-tabs-custom">
  23. <ul class="nav nav-tabs" role="tablist">
  24. {% for name, show_tab in admin.showtabs %}
  25. <li{% if loop.first %} class="active"{% endif %}>
  26. <a href="#tab_{{ admin.uniqid }}_{{ loop.index }}" data-toggle="tab">
  27. <i class="fa fa-exclamation-circle has-errors hide" aria-hidden="true"></i>
  28. {{ name|trans({}, show_tab.translation_domain ?: admin.translationDomain) }}
  29. </a>
  30. </li>
  31. {% endfor %}
  32. </ul>
  33. <div class="tab-content">
  34. {% for code, show_tab in admin.showtabs %}
  35. <div
  36. class="tab-pane fade{% if loop.first %} in active{% endif %}"
  37. id="tab_{{ admin.uniqid }}_{{ loop.index }}"
  38. >
  39. <div class="box-body container-fluid">
  40. <div class="sonata-ba-collapsed-fields">
  41. {% if show_tab.description != false %}
  42. <p>{{ show_tab.description|raw }}</p>
  43. {% endif %}
  44. {% set groups = show_tab.groups %}
  45. {{ block('show_groups') }}
  46. </div>
  47. </div>
  48. </div>
  49. {% endfor %}
  50. </div>
  51. </div>
  52. {% elseif admin.showtabs is iterable %}
  53. {% set groups = admin.showtabs.default.groups %}
  54. {{ block('show_groups') }}
  55. {% endif %}
  56. </div>
  57. {{ sonata_block_render_event('sonata.admin.show.bottom', { 'admin': admin, 'object': object }) }}
  58. {% endblock %}
  59. {% block show_groups %}
  60. <div class="row">
  61. {% block field_row %}
  62. {% for code in groups %}
  63. {% set show_group = admin.showgroups[code] %}
  64. <div class="{{ show_group.class|default('col-md-12') }} {{ no_padding|default(false) ? 'nopadding' }}">
  65. <div class="{{ show_group.box_class }}">
  66. <div class="box-header">
  67. <h4 class="box-title">
  68. {% block show_title %}
  69. {{ admin.trans(show_group.name, {}, show_group.translation_domain) }}
  70. {% endblock %}
  71. </h4>
  72. </div>
  73. <div class="box-body table-responsive no-padding">
  74. <table class="table">
  75. <tbody>
  76. {% for field_name in show_group.fields %}
  77. {% block show_field %}
  78. <tr class="sonata-ba-view-container">
  79. {% if elements[field_name] is defined %}
  80. {{ elements[field_name]|render_view_element(object)}}
  81. {% endif %}
  82. </tr>
  83. {% endblock %}
  84. {% endfor %}
  85. </tbody>
  86. </table>
  87. </div>
  88. </div>
  89. </div>
  90. {% endfor %}
  91. {% endblock %}
  92. </div>
  93. {% endblock %}